зеркало из https://github.com/microsoft/clang-1.git
Add abort() as a builtin. This has two effects: one, we warn for incorrect
declarations of abort(), and two, we mark it noreturn. Missing the latter shows up in one of the "embarassing" tests (from the thread on llvmdev "detailed comparison of generated code size for LLVM and other compilers"). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91515 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
ac7db1fecf
Коммит
772494c3b8
|
@ -475,6 +475,7 @@ BUILTIN(__sync_fetch_and_umax, "UiUi*Ui", "n")
|
|||
|
||||
// C99 library functions
|
||||
// C99 stdlib.h
|
||||
LIBBUILTIN(abort, "v", "fr", "stdlib.h")
|
||||
LIBBUILTIN(calloc, "v*zz", "f", "stdlib.h")
|
||||
LIBBUILTIN(exit, "vi", "fr", "stdlib.h")
|
||||
LIBBUILTIN(_Exit, "vi", "fr", "stdlib.h")
|
||||
|
|
|
@ -48,6 +48,7 @@ int setuid(uid_t);
|
|||
int setregid(gid_t, gid_t);
|
||||
int setreuid(uid_t, uid_t);
|
||||
extern void check(int);
|
||||
void abort(void);
|
||||
|
||||
void test_setuid()
|
||||
{
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
// RUN: %clang_cc1 %s -verify -fsyntax-only
|
||||
|
||||
void abort(void);
|
||||
|
||||
@interface Subclass
|
||||
+ (int)magicNumber;
|
||||
+ (void)setMagicNumber:(int)value;
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
- (void) setOptional_getter_attr:(int)value { ivar = value; }
|
||||
@end
|
||||
|
||||
void abort(void);
|
||||
int main ()
|
||||
{
|
||||
Test *x = [[Test alloc] init];
|
||||
|
|
|
@ -80,6 +80,7 @@ static int g_val;
|
|||
}
|
||||
@end
|
||||
|
||||
void abort(void);
|
||||
int main (void) {
|
||||
Subclass *x = [[Subclass alloc] init];
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче