forked from OSchip/llvm-project
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"). llvm-svn: 91515
This commit is contained in:
parent
ce5b95c05a
commit
53b3cde60f
|
@ -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];
|
||||
|
||||
|
|
Loading…
Reference in New Issue