]> granicus.if.org Git - clang/commitdiff
Add abort() as a builtin. This has two effects: one, we warn for incorrect
authorEli Friedman <eli.friedman@gmail.com>
Wed, 16 Dec 2009 06:28:21 +0000 (06:28 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Wed, 16 Dec 2009 06:28:21 +0000 (06:28 +0000)
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

include/clang/Basic/Builtins.def
test/Analysis/security-syntax-checks.m
test/SemaObjC/newproperty-class-method-1.m
test/SemaObjC/property-13.m
test/SemaObjC/property-user-setter.m

index e700cdeb5d6c6313685bb6b82e02cb4401d5334e..1adf85b149d1b9c6a247c708b03f04edb6da332f 100644 (file)
@@ -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")
index 1d35ccffe397c888020f39ef14148ec07596ba19..cfdb030746dc69e2538a4a164f84c6c769b6fba8 100644 (file)
@@ -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() 
 {
index 7048fb6aaeedba809cb2322bcbf7f4f03bf4d9cd..d4ea5e54a553757a76884672d5e77c0721051280 100644 (file)
@@ -1,5 +1,7 @@
 // RUN: %clang_cc1 %s -verify -fsyntax-only
 
+void abort(void);
+
 @interface Subclass
 + (int)magicNumber;
 + (void)setMagicNumber:(int)value;
index dde7af014623a944ff7bbb9822c4c64e4592f227..f34ec568b94c1fbe26d8dcf9b32e5b1d290e5821 100644 (file)
@@ -44,6 +44,7 @@
 - (void) setOptional_getter_attr:(int)value { ivar = value; }
 @end
 
+void abort(void);
 int main ()
 {
        Test *x = [[Test alloc] init];
index 96f75164cd47ffdb079f0259034e650c97f9363c..c06f2b6f44fbd5555b3f3d539d9f8f4b20acafb6 100644 (file)
@@ -80,6 +80,7 @@ static int g_val;
 }
 @end
 
+void abort(void);
 int main (void) {
     Subclass *x = [[Subclass alloc] init];