forked from OSchip/llvm-project
Use functions with prototypes when appropriate; NFC
A significant number of our tests in C accidentally use functions without prototypes. This patch converts the function signatures to have a prototype for the situations where the test is not specific to K&R C declarations. e.g., void func(); becomes void func(void); This is the final batch of tests being updated to add prototypes, hopefully.
This commit is contained in:
parent
f9704f0cfb
commit
1c2558021c
|
@ -51,7 +51,7 @@ typedef signed char BOOL;
|
|||
- (void)setObject:(id)object atIndexedSubscript:(int)index;
|
||||
@end
|
||||
|
||||
void TestObjCEncode() {
|
||||
void TestObjCEncode(void) {
|
||||
@encode(int);
|
||||
@encode(typeof(^{;}));
|
||||
}
|
||||
|
@ -61,11 +61,11 @@ void TestObjCMessage(I *Obj) {
|
|||
[I method2];
|
||||
}
|
||||
|
||||
void TestObjCBoxed() {
|
||||
void TestObjCBoxed(void) {
|
||||
@(1 + 1);
|
||||
}
|
||||
|
||||
void TestObjCSelector() {
|
||||
void TestObjCSelector(void) {
|
||||
SEL s = @selector(dealloc);
|
||||
}
|
||||
|
||||
|
@ -90,7 +90,7 @@ void TestObjCIVarRef(I *Ptr) {
|
|||
Ptr->public = 0;
|
||||
}
|
||||
|
||||
void TestObjCBoolLiteral() {
|
||||
void TestObjCBoolLiteral(void) {
|
||||
__objc_yes;
|
||||
__objc_no;
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ void TestObjCBoolLiteral() {
|
|||
// CHECK-NEXT: "name": "TestObjCEncode",
|
||||
// CHECK-NEXT: "mangledName": "TestObjCEncode",
|
||||
// CHECK-NEXT: "type": {
|
||||
// CHECK-NEXT: "qualType": "void ()"
|
||||
// CHECK-NEXT: "qualType": "void (void)"
|
||||
// CHECK-NEXT: },
|
||||
// CHECK-NEXT: "inner": [
|
||||
// CHECK-NEXT: {
|
||||
|
@ -133,7 +133,7 @@ void TestObjCBoolLiteral() {
|
|||
// CHECK-NEXT: "begin": {
|
||||
// CHECK-NEXT: "offset": {{[0-9]+}},
|
||||
// CHECK-NEXT: "line": 54,
|
||||
// CHECK-NEXT: "col": 23,
|
||||
// CHECK-NEXT: "col": 27,
|
||||
// CHECK-NEXT: "tokLen": 1
|
||||
// CHECK-NEXT: },
|
||||
// CHECK-NEXT: "end": {
|
||||
|
@ -450,7 +450,7 @@ void TestObjCBoolLiteral() {
|
|||
// CHECK-NEXT: "name": "TestObjCBoxed",
|
||||
// CHECK-NEXT: "mangledName": "TestObjCBoxed",
|
||||
// CHECK-NEXT: "type": {
|
||||
// CHECK-NEXT: "qualType": "void ()"
|
||||
// CHECK-NEXT: "qualType": "void (void)"
|
||||
// CHECK-NEXT: },
|
||||
// CHECK-NEXT: "inner": [
|
||||
// CHECK-NEXT: {
|
||||
|
@ -460,7 +460,7 @@ void TestObjCBoolLiteral() {
|
|||
// CHECK-NEXT: "begin": {
|
||||
// CHECK-NEXT: "offset": {{[0-9]+}},
|
||||
// CHECK-NEXT: "line": 64,
|
||||
// CHECK-NEXT: "col": 22,
|
||||
// CHECK-NEXT: "col": 26,
|
||||
// CHECK-NEXT: "tokLen": 1
|
||||
// CHECK-NEXT: },
|
||||
// CHECK-NEXT: "end": {
|
||||
|
@ -613,7 +613,7 @@ void TestObjCBoolLiteral() {
|
|||
// CHECK-NEXT: "name": "TestObjCSelector",
|
||||
// CHECK-NEXT: "mangledName": "TestObjCSelector",
|
||||
// CHECK-NEXT: "type": {
|
||||
// CHECK-NEXT: "qualType": "void ()"
|
||||
// CHECK-NEXT: "qualType": "void (void)"
|
||||
// CHECK-NEXT: },
|
||||
// CHECK-NEXT: "inner": [
|
||||
// CHECK-NEXT: {
|
||||
|
@ -623,7 +623,7 @@ void TestObjCBoolLiteral() {
|
|||
// CHECK-NEXT: "begin": {
|
||||
// CHECK-NEXT: "offset": {{[0-9]+}},
|
||||
// CHECK-NEXT: "line": 68,
|
||||
// CHECK-NEXT: "col": 25,
|
||||
// CHECK-NEXT: "col": 29,
|
||||
// CHECK-NEXT: "tokLen": 1
|
||||
// CHECK-NEXT: },
|
||||
// CHECK-NEXT: "end": {
|
||||
|
@ -4997,7 +4997,7 @@ void TestObjCBoolLiteral() {
|
|||
// CHECK-NEXT: "name": "TestObjCBoolLiteral",
|
||||
// CHECK-NEXT: "mangledName": "TestObjCBoolLiteral",
|
||||
// CHECK-NEXT: "type": {
|
||||
// CHECK-NEXT: "qualType": "void ()"
|
||||
// CHECK-NEXT: "qualType": "void (void)"
|
||||
// CHECK-NEXT: },
|
||||
// CHECK-NEXT: "inner": [
|
||||
// CHECK-NEXT: {
|
||||
|
@ -5007,7 +5007,7 @@ void TestObjCBoolLiteral() {
|
|||
// CHECK-NEXT: "begin": {
|
||||
// CHECK-NEXT: "offset": {{[0-9]+}},
|
||||
// CHECK-NEXT: "line": 93,
|
||||
// CHECK-NEXT: "col": 28,
|
||||
// CHECK-NEXT: "col": 32,
|
||||
// CHECK-NEXT: "tokLen": 1
|
||||
// CHECK-NEXT: },
|
||||
// CHECK-NEXT: "end": {
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
int TestLocation = 0;
|
||||
int TestIndent = 1 + (1);
|
||||
|
||||
void TestDeclStmt() {
|
||||
void TestDeclStmt(void) {
|
||||
int x = 0;
|
||||
int y, z;
|
||||
}
|
||||
|
@ -332,7 +332,7 @@ void TestVLA(int n) {
|
|||
// CHECK-NEXT: "begin": {
|
||||
// CHECK-NEXT: "offset": {{[0-9]+}},
|
||||
// CHECK-NEXT: "line": 6,
|
||||
// CHECK-NEXT: "col": 21,
|
||||
// CHECK-NEXT: "col": 25,
|
||||
// CHECK-NEXT: "tokLen": 1
|
||||
// CHECK-NEXT: },
|
||||
// CHECK-NEXT: "end": {
|
||||
|
|
|
@ -11,7 +11,7 @@ void TestExprWithCleanup(int x) {
|
|||
@interface A
|
||||
@end
|
||||
|
||||
void TestObjCAtCatchStmt() {
|
||||
void TestObjCAtCatchStmt(void) {
|
||||
@try {
|
||||
} @catch(A *a) {
|
||||
} @catch(...) {
|
||||
|
@ -513,7 +513,7 @@ void TestObjCAtCatchStmt() {
|
|||
// CHECK-NEXT: "name": "TestObjCAtCatchStmt",
|
||||
// CHECK-NEXT: "mangledName": "TestObjCAtCatchStmt",
|
||||
// CHECK-NEXT: "type": {
|
||||
// CHECK-NEXT: "qualType": "void ()"
|
||||
// CHECK-NEXT: "qualType": "void (void)"
|
||||
// CHECK-NEXT: },
|
||||
// CHECK-NEXT: "inner": [
|
||||
// CHECK-NEXT: {
|
||||
|
@ -523,7 +523,7 @@ void TestObjCAtCatchStmt() {
|
|||
// CHECK-NEXT: "begin": {
|
||||
// CHECK-NEXT: "offset": {{[0-9]+}},
|
||||
// CHECK-NEXT: "line": 14,
|
||||
// CHECK-NEXT: "col": 28,
|
||||
// CHECK-NEXT: "col": 32,
|
||||
// CHECK-NEXT: "tokLen": 1
|
||||
// CHECK-NEXT: },
|
||||
// CHECK-NEXT: "end": {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
// RUN: %clang_analyze_cc1 -w -analyzer-checker=core,debug.ExprInspection \
|
||||
// RUN: -analyzer-output=text -verify %s
|
||||
|
||||
int OSAtomicCompareAndSwapPtrBarrier(*, *, **);
|
||||
int OSAtomicCompareAndSwapPtrBarrier() {
|
||||
int OSAtomicCompareAndSwapPtrBarrier(void *, void *, void **);
|
||||
int OSAtomicCompareAndSwapPtrBarrier(void *, void *, void **) {
|
||||
// There is some body in the actual header,
|
||||
// but we should trust our BodyFarm instead.
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
// The synthetic global made by the CFE for big initializer should be marked
|
||||
// constant.
|
||||
|
||||
void bar();
|
||||
void bar(char *);
|
||||
void foo(void) {
|
||||
// CHECK: private unnamed_addr constant
|
||||
char Blah[] = "asdlfkajsdlfkajsd;lfkajds;lfkjasd;flkajsd;lkfja;sdlkfjasd";
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// RUN: %clang_cc1 %s -emit-llvm -triple i386-apple-darwin -o - | FileCheck %s
|
||||
extern void abort();
|
||||
extern void abort(void);
|
||||
extern void exit(int);
|
||||
struct T
|
||||
{
|
||||
|
@ -12,7 +12,7 @@ struct T s[1];
|
|||
s[0]=t;
|
||||
return(char)s->c;
|
||||
}
|
||||
main()
|
||||
main(void)
|
||||
{
|
||||
// CHECK: getelementptr inbounds [1 x %struct.T], [1 x %struct.T]* %s, i32 0, i32 0
|
||||
// CHECK: getelementptr inbounds [1 x %struct.T], [1 x %struct.T]* %s, i32 0, i32 0
|
||||
|
|
|
@ -3,7 +3,7 @@ int foo(int x) {
|
|||
}
|
||||
|
||||
#line 100
|
||||
void test1() {}
|
||||
void test1(void) {}
|
||||
|
||||
#line 200
|
||||
void test2() {}
|
||||
void test2(void) {}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
#line 1 "F:\\svn\\clang\\test\\CodeGen\\Inputs\\debug-info-file-checksum.c"
|
||||
#line 1 "f:\\svn\\clang\\test\\codegen\\inputs\\code-coverage-filter1.h"
|
||||
void test1() {}
|
||||
void test1(void) {}
|
||||
#line 2 "F:\\svn\\clang\\test\\CodeGen\\Inputs\\debug-info-file-checksum.c"
|
||||
#line 1 "f:\\svn\\clang\\test\\codegen\\inputs\\code-coverage-filter2.h"
|
||||
void test2() {}
|
||||
void test2(void) {}
|
||||
#line 3 "F:\\svn\\clang\\test\\CodeGen\\Inputs\\debug-info-file-checksum.c"
|
||||
int foo(int x) {
|
||||
return x+1;
|
||||
|
|
|
@ -13,7 +13,7 @@ float f(float x, float y) {
|
|||
return 2.0f + x + y;
|
||||
}
|
||||
|
||||
int getEvalMethod() {
|
||||
int getEvalMethod(void) {
|
||||
// CHECK: ret i32 1
|
||||
// CHECK-EXT: ret i32 2
|
||||
return __FLT_EVAL_METHOD__;
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
|
||||
|
||||
void foo();
|
||||
void foo(float *);
|
||||
|
||||
float bar(void) {
|
||||
float lookupTable[] = {-1,-1,-1,0, -1,-1,0,-1, -1,-1,0,1, -1,-1,1,0,
|
||||
|
|
|
@ -3,12 +3,12 @@
|
|||
|
||||
void syslog(const char *, ...);
|
||||
|
||||
void handler( );
|
||||
void handler(void(^)(void));
|
||||
|
||||
__attribute__((used))
|
||||
static void (^spd)(void) = ^(void)
|
||||
{
|
||||
handler( ^(){ syslog("%s", __FUNCTION__); } );
|
||||
handler( ^(void){ syslog("%s", __FUNCTION__); } );
|
||||
};
|
||||
// CHECK: @__FUNCTION__.spd_block_invoke_2 = private unnamed_addr constant [19 x i8] c"spd_block_invoke_2\00"
|
||||
// CHECK: define internal void @spd_block_invoke_2
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// above)
|
||||
#line 1
|
||||
typedef struct { int array[12]; } BigStruct_t;
|
||||
BigStruct_t (^a)() = ^(int param) {
|
||||
BigStruct_t (^a)(int) = ^(int param) {
|
||||
BigStruct_t b;
|
||||
return b;
|
||||
};
|
||||
|
|
|
@ -15,4 +15,4 @@
|
|||
// Ensure #line directives without name do emit checksums
|
||||
// RUN: %clang -emit-llvm -S -g -gcodeview -x c %S/Inputs/debug-info-file-checksum-line.cpp -o - | FileCheck %s --check-prefix CHECKSUM
|
||||
|
||||
// CHECKSUM: !DIFile(filename: "{{.*}}debug-info-file-checksum-line.cpp", directory:{{.*}}, checksumkind: CSK_MD5, checksum: "7b568574d0e3c56c28e5e0234d1f4a06")
|
||||
// CHECKSUM: !DIFile(filename: "{{.*}}debug-info-file-checksum-line.cpp", directory:{{.*}}, checksumkind: CSK_MD5, checksum: "e13bca9b34ed822d596a519c9ce60995")
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
void *malloc(__SIZE_TYPE__ size) __attribute__ ((__nothrow__));
|
||||
|
||||
inline static void __zend_malloc() {
|
||||
inline static void __zend_malloc(int) {
|
||||
malloc(1);
|
||||
}
|
||||
|
||||
|
|
|
@ -8,4 +8,4 @@ struct abc {
|
|||
long e;
|
||||
};
|
||||
|
||||
struct abc foo2(){}
|
||||
struct abc foo2(void){}
|
||||
|
|
|
@ -58,6 +58,6 @@ typedef struct BOXABLE NSEdgeInsets NSEdgeInsets;
|
|||
|
||||
@end
|
||||
|
||||
NSRange getRange();
|
||||
NSRange getRange(void);
|
||||
|
||||
#endif // NSVALUE_BOXED_EXPRESSIONS_SUPPORT_H
|
||||
|
|
|
@ -727,7 +727,7 @@ void test19(void (^b)(void)) {
|
|||
// CHECK-UNOPT: store i8* [[RETAINED]], i8** [[BLOCKCAPTURED]]
|
||||
// CHECK-UNOPT: call void @llvm.objc.storeStrong(i8** [[BLOCKCAPTURED]], i8* null)
|
||||
|
||||
void test20_callee(void (^)());
|
||||
void test20_callee(void (^)(void));
|
||||
void test20(const id x) {
|
||||
test20_callee(^{ (void)x; });
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// RUN: %clang_cc1 -triple i386-apple-darwin9 -fobjc-runtime=macosx-fragile-10.5 -O3 -emit-llvm -o %t %s
|
||||
// RUN: grep 'ret i32 385' %t
|
||||
|
||||
void *alloca();
|
||||
void *alloca(unsigned);
|
||||
|
||||
@interface I0 {
|
||||
@public
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// CHECK: [[EDGE_STR:.*]] = {{.*}}NSEdgeInsets=dddd{{.*}}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doRange()
|
||||
void doRange() {
|
||||
void doRange(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct._NSRange{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct._NSRange{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -32,7 +32,7 @@ void doRange() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doPoint()
|
||||
void doPoint() {
|
||||
void doPoint(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct.CGPoint{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct.CGPoint{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -51,7 +51,7 @@ void doPoint() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doSize()
|
||||
void doSize() {
|
||||
void doSize(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct.CGSize{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct.CGSize{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -70,7 +70,7 @@ void doSize() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doRect()
|
||||
void doRect() {
|
||||
void doRect(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct.CGRect{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct.CGRect{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -91,7 +91,7 @@ void doRect() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doNSEdgeInsets()
|
||||
void doNSEdgeInsets() {
|
||||
void doNSEdgeInsets(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct.NSEdgeInsets{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct.NSEdgeInsets{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -110,10 +110,10 @@ void doNSEdgeInsets() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doRangeRValue()
|
||||
void doRangeRValue() {
|
||||
void doRangeRValue(void) {
|
||||
// CHECK: [[COERCE:%.*]] = alloca %struct._NSRange{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
// CHECK: call {{.*}} @getRange {{.*}} [[COERCE]]{{.*}}
|
||||
// CHECK: call {{.*}} @getRange({{.*}} [[COERCE]])
|
||||
// CHECK: [[COERCE_CAST:%.*]] = bitcast %struct._NSRange* [[COERCE]]{{.*}}
|
||||
// CHECK: [[RECV:%.*]] = bitcast %struct._class_t* [[RECV_PTR]] to i8*
|
||||
// CHECK: [[SEL:%.*]] = load i8*, i8** [[VALUE_SEL]]
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// CHECK: [[EDGE_STR:.*]] = {{.*}}NSEdgeInsets=dddd{{.*}}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doRange()
|
||||
void doRange() {
|
||||
void doRange(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct._NSRange{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct._NSRange{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -30,7 +30,7 @@ void doRange() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doPoint()
|
||||
void doPoint() {
|
||||
void doPoint(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct.CGPoint{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct.CGPoint{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -47,7 +47,7 @@ void doPoint() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doSize()
|
||||
void doSize() {
|
||||
void doSize(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct.CGSize{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct.CGSize{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -64,7 +64,7 @@ void doSize() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doRect()
|
||||
void doRect() {
|
||||
void doRect(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct.CGRect{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct.CGRect{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -83,7 +83,7 @@ void doRect() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doNSEdgeInsets()
|
||||
void doNSEdgeInsets() {
|
||||
void doNSEdgeInsets(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct.NSEdgeInsets{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct.NSEdgeInsets{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -100,10 +100,10 @@ void doNSEdgeInsets() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doRangeRValue()
|
||||
void doRangeRValue() {
|
||||
void doRangeRValue(void) {
|
||||
// CHECK: [[COERCE:%.*]] = alloca %struct._NSRange{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
// CHECK: call {{.*}} @getRange {{.*}} [[COERCE]]{{.*}}
|
||||
// CHECK: call {{.*}} @getRange({{.*}} [[COERCE]])
|
||||
// CHECK: [[COERCE_CAST:%.*]] = bitcast %struct._NSRange* [[COERCE]]{{.*}}
|
||||
// CHECK: [[RECV:%.*]] = bitcast %struct._class_t* [[RECV_PTR]] to i8*
|
||||
// CHECK: [[SEL:%.*]] = load i8*, i8** [[VALUE_SEL]]
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// CHECK: [[EDGE_STR:.*]] = {{.*}}NSEdgeInsets=dddd{{.*}}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doRange()
|
||||
void doRange() {
|
||||
void doRange(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct._NSRange{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct._NSRange{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -31,7 +31,7 @@ void doRange() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doPoint()
|
||||
void doPoint() {
|
||||
void doPoint(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct._NSPoint{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct._NSPoint{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -49,7 +49,7 @@ void doPoint() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doSize()
|
||||
void doSize() {
|
||||
void doSize(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct._NSSize{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct._NSSize{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -67,7 +67,7 @@ void doSize() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doRect()
|
||||
void doRect() {
|
||||
void doRect(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct._NSRect{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct._NSRect{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -87,7 +87,7 @@ void doRect() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doNSEdgeInsets()
|
||||
void doNSEdgeInsets() {
|
||||
void doNSEdgeInsets(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct.NSEdgeInsets{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct.NSEdgeInsets{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -105,7 +105,7 @@ void doNSEdgeInsets() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doRangeRValue()
|
||||
void doRangeRValue() {
|
||||
void doRangeRValue(void) {
|
||||
// CHECK: [[COERCE:%.*]] = alloca %struct._NSRange{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
// CHECK: [[RVAL:%.*]] = call {{.*}} @getRange()
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// CHECK: [[EDGE_STR:.*]] = {{.*}}NSEdgeInsets=dddd{{.*}}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doRange()
|
||||
void doRange() {
|
||||
void doRange(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct._NSRange{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct._NSRange{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -30,7 +30,7 @@ void doRange() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doPoint()
|
||||
void doPoint() {
|
||||
void doPoint(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct._NSPoint{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct._NSPoint{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -47,7 +47,7 @@ void doPoint() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doSize()
|
||||
void doSize() {
|
||||
void doSize(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct._NSSize{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct._NSSize{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -64,7 +64,7 @@ void doSize() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doRect()
|
||||
void doRect() {
|
||||
void doRect(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct._NSRect{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct._NSRect{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -83,7 +83,7 @@ void doRect() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doNSEdgeInsets()
|
||||
void doNSEdgeInsets() {
|
||||
void doNSEdgeInsets(void) {
|
||||
// CHECK: [[LOCAL_VAR:%.*]] = alloca %struct.NSEdgeInsets{{.*}}
|
||||
// CHECK: [[TEMP_VAR:%.*]] = alloca %struct.NSEdgeInsets{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
|
@ -100,7 +100,7 @@ void doNSEdgeInsets() {
|
|||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @doRangeRValue()
|
||||
void doRangeRValue() {
|
||||
void doRangeRValue(void) {
|
||||
// CHECK: [[COERCE:%.*]] = alloca %struct._NSRange{{.*}}
|
||||
// CHECK: [[RECV_PTR:%.*]] = load {{.*}} [[NSVALUE]]
|
||||
// CHECK: [[RVAL:%.*]] = call {{.*}} @getRange()
|
||||
|
|
|
@ -6,6 +6,6 @@ inline int system_header_func(int x)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void test_system_header() {
|
||||
void test_system_header(void) {
|
||||
system_header_func(0); // expected-warning {{system header warning}}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ struct S4 get_s(void);
|
|||
enum [[nodiscard]] E2 { Two };
|
||||
enum E2 get_e(void);
|
||||
|
||||
[[nodiscard]] int get_i();
|
||||
[[nodiscard]] int get_i(void);
|
||||
|
||||
void f2(void) {
|
||||
get_s(); // expected-warning {{ignoring return value of function declared with 'nodiscard' attribute}}
|
||||
|
|
|
@ -2,26 +2,26 @@
|
|||
|
||||
#define _diagnose_if(...) __attribute__((diagnose_if(__VA_ARGS__)))
|
||||
|
||||
void failure() _diagnose_if(); // expected-error{{exactly 3 arguments}}
|
||||
void failure() _diagnose_if(0); // expected-error{{exactly 3 arguments}}
|
||||
void failure() _diagnose_if(0, ""); // expected-error{{exactly 3 arguments}}
|
||||
void failure() _diagnose_if(0, "", "error", 1); // expected-error{{exactly 3 arguments}}
|
||||
void failure() _diagnose_if(0, 0, "error"); // expected-error{{requires a string}}
|
||||
void failure() _diagnose_if(0, "", "invalid"); // expected-error{{invalid diagnostic type for 'diagnose_if'; use "error" or "warning" instead}}
|
||||
void failure() _diagnose_if(0, "", "ERROR"); // expected-error{{invalid diagnostic type}}
|
||||
void failure(int a) _diagnose_if(a, "", ""); // expected-error{{invalid diagnostic type}}
|
||||
void failure() _diagnose_if(a, "", ""); // expected-error{{undeclared identifier 'a'}}
|
||||
void failure1(void) _diagnose_if(); // expected-error{{exactly 3 arguments}}
|
||||
void failure2(void) _diagnose_if(0); // expected-error{{exactly 3 arguments}}
|
||||
void failure3(void) _diagnose_if(0, ""); // expected-error{{exactly 3 arguments}}
|
||||
void failure4(void) _diagnose_if(0, "", "error", 1); // expected-error{{exactly 3 arguments}}
|
||||
void failure5(void) _diagnose_if(0, 0, "error"); // expected-error{{requires a string}}
|
||||
void failure6(void) _diagnose_if(0, "", "invalid"); // expected-error{{invalid diagnostic type for 'diagnose_if'; use "error" or "warning" instead}}
|
||||
void failure7(void) _diagnose_if(0, "", "ERROR"); // expected-error{{invalid diagnostic type}}
|
||||
void failure8(int a) _diagnose_if(a, "", ""); // expected-error{{invalid diagnostic type}}
|
||||
void failure9(void) _diagnose_if(a, "", ""); // expected-error{{undeclared identifier 'a'}}
|
||||
|
||||
int globalVar;
|
||||
void never_constant() _diagnose_if(globalVar, "", "error"); // expected-error{{'diagnose_if' attribute expression never produces a constant expression}} expected-note{{subexpression not valid}}
|
||||
void never_constant() _diagnose_if(globalVar, "", "warning"); // expected-error{{'diagnose_if' attribute expression never produces a constant expression}} expected-note{{subexpression not valid}}
|
||||
void never_constant(void) _diagnose_if(globalVar, "", "error"); // expected-error{{'diagnose_if' attribute expression never produces a constant expression}} expected-note{{subexpression not valid}}
|
||||
void never_constant(void) _diagnose_if(globalVar, "", "warning"); // expected-error{{'diagnose_if' attribute expression never produces a constant expression}} expected-note{{subexpression not valid}}
|
||||
|
||||
int alwaysok(int q) _diagnose_if(0, "", "error");
|
||||
int neverok(int q) _diagnose_if(1, "oh no", "error"); // expected-note 5{{from 'diagnose_if' attribute on 'neverok'}}
|
||||
int alwayswarn(int q) _diagnose_if(1, "oh no", "warning"); // expected-note 5{{from 'diagnose_if' attribute}}
|
||||
int neverwarn(int q) _diagnose_if(0, "", "warning");
|
||||
|
||||
void runConstant() {
|
||||
void runConstant(void) {
|
||||
int m;
|
||||
alwaysok(0);
|
||||
alwaysok(1);
|
||||
|
@ -58,7 +58,7 @@ void runConstant() {
|
|||
}
|
||||
|
||||
int abs(int q) _diagnose_if(q >= 0, "redundant abs call", "error"); //expected-note{{from 'diagnose_if'}}
|
||||
void runVariable() {
|
||||
void runVariable(void) {
|
||||
int m;
|
||||
abs(-1);
|
||||
abs(1); // expected-error{{redundant abs call}}
|
||||
|
@ -75,18 +75,18 @@ int ovl1(void *m) _overloadable;
|
|||
|
||||
int ovl2(const char *n) _overloadable _diagnose_if(n, "oh no", "error"); // expected-note{{candidate function}}
|
||||
int ovl2(char *m) _overloadable; // expected-note{{candidate function}}
|
||||
void overloadsYay() {
|
||||
void overloadsYay(void) {
|
||||
ovl1((void *)0);
|
||||
ovl1(""); // expected-error{{oh no}}
|
||||
|
||||
ovl2((void *)0); // expected-error{{ambiguous}}
|
||||
}
|
||||
|
||||
void errorWarnDiagnose1() _diagnose_if(1, "oh no", "error") // expected-note{{from 'diagnose_if'}}
|
||||
void errorWarnDiagnose1(void) _diagnose_if(1, "oh no", "error") // expected-note{{from 'diagnose_if'}}
|
||||
_diagnose_if(1, "nop", "warning");
|
||||
void errorWarnDiagnose2() _diagnose_if(1, "oh no", "error") // expected-note{{from 'diagnose_if'}}
|
||||
void errorWarnDiagnose2(void) _diagnose_if(1, "oh no", "error") // expected-note{{from 'diagnose_if'}}
|
||||
_diagnose_if(1, "nop", "error");
|
||||
void errorWarnDiagnose3() _diagnose_if(1, "nop", "warning")
|
||||
void errorWarnDiagnose3(void) _diagnose_if(1, "nop", "warning")
|
||||
_diagnose_if(1, "oh no", "error"); // expected-note{{from 'diagnose_if'}}
|
||||
|
||||
void errorWarnDiagnoseArg1(int a) _diagnose_if(a == 1, "oh no", "error") // expected-note{{from 'diagnose_if'}}
|
||||
|
@ -96,7 +96,7 @@ void errorWarnDiagnoseArg2(int a) _diagnose_if(a == 1, "oh no", "error") // expe
|
|||
void errorWarnDiagnoseArg3(int a) _diagnose_if(a == 1, "nop", "warning")
|
||||
_diagnose_if(a == 1, "oh no", "error"); // expected-note{{from 'diagnose_if'}}
|
||||
|
||||
void runErrorWarnDiagnose() {
|
||||
void runErrorWarnDiagnose(void) {
|
||||
errorWarnDiagnose1(); // expected-error{{oh no}}
|
||||
errorWarnDiagnose2(); // expected-error{{oh no}}
|
||||
errorWarnDiagnose3(); // expected-error{{oh no}}
|
||||
|
@ -106,18 +106,18 @@ void runErrorWarnDiagnose() {
|
|||
errorWarnDiagnoseArg3(1); // expected-error{{oh no}}
|
||||
}
|
||||
|
||||
void warnWarnDiagnose() _diagnose_if(1, "oh no!", "warning") _diagnose_if(1, "foo", "warning"); // expected-note 2{{from 'diagnose_if'}}
|
||||
void runWarnWarnDiagnose() {
|
||||
void warnWarnDiagnose(void) _diagnose_if(1, "oh no!", "warning") _diagnose_if(1, "foo", "warning"); // expected-note 2{{from 'diagnose_if'}}
|
||||
void runWarnWarnDiagnose(void) {
|
||||
warnWarnDiagnose(); // expected-warning{{oh no!}} expected-warning{{foo}}
|
||||
}
|
||||
|
||||
void declsStackErr1(int a) _diagnose_if(a & 1, "decl1", "error"); // expected-note 2{{from 'diagnose_if'}}
|
||||
void declsStackErr1(int a) _diagnose_if(a & 2, "decl2", "error"); // expected-note{{from 'diagnose_if'}}
|
||||
void declsStackErr2();
|
||||
void declsStackErr2() _diagnose_if(1, "complaint", "error"); // expected-note{{from 'diagnose_if'}}
|
||||
void declsStackErr3() _diagnose_if(1, "complaint", "error"); // expected-note{{from 'diagnose_if'}}
|
||||
void declsStackErr3();
|
||||
void runDeclsStackErr() {
|
||||
void declsStackErr2(void);
|
||||
void declsStackErr2(void) _diagnose_if(1, "complaint", "error"); // expected-note{{from 'diagnose_if'}}
|
||||
void declsStackErr3(void) _diagnose_if(1, "complaint", "error"); // expected-note{{from 'diagnose_if'}}
|
||||
void declsStackErr3(void);
|
||||
void runDeclsStackErr(void) {
|
||||
declsStackErr1(0);
|
||||
declsStackErr1(1); // expected-error{{decl1}}
|
||||
declsStackErr1(2); // expected-error{{decl2}}
|
||||
|
@ -128,11 +128,11 @@ void runDeclsStackErr() {
|
|||
|
||||
void declsStackWarn1(int a) _diagnose_if(a & 1, "decl1", "warning"); // expected-note 2{{from 'diagnose_if'}}
|
||||
void declsStackWarn1(int a) _diagnose_if(a & 2, "decl2", "warning"); // expected-note 2{{from 'diagnose_if'}}
|
||||
void declsStackWarn2();
|
||||
void declsStackWarn2() _diagnose_if(1, "complaint", "warning"); // expected-note{{from 'diagnose_if'}}
|
||||
void declsStackWarn3() _diagnose_if(1, "complaint", "warning"); // expected-note{{from 'diagnose_if'}}
|
||||
void declsStackWarn3();
|
||||
void runDeclsStackWarn() {
|
||||
void declsStackWarn2(void);
|
||||
void declsStackWarn2(void) _diagnose_if(1, "complaint", "warning"); // expected-note{{from 'diagnose_if'}}
|
||||
void declsStackWarn3(void) _diagnose_if(1, "complaint", "warning"); // expected-note{{from 'diagnose_if'}}
|
||||
void declsStackWarn3(void);
|
||||
void runDeclsStackWarn(void) {
|
||||
declsStackWarn1(0);
|
||||
declsStackWarn1(1); // expected-warning{{decl1}}
|
||||
declsStackWarn1(2); // expected-warning{{decl2}}
|
||||
|
@ -142,7 +142,7 @@ void runDeclsStackWarn() {
|
|||
}
|
||||
|
||||
void noMsg(int n) _diagnose_if(n, "", "warning"); // expected-note{{from 'diagnose_if'}}
|
||||
void runNoMsg() {
|
||||
void runNoMsg(void) {
|
||||
noMsg(1); // expected-warning{{<no message provided>}}
|
||||
}
|
||||
|
||||
|
@ -161,7 +161,7 @@ void underbarName(int a) __attribute__((__diagnose_if__(a, "", "warning")));
|
|||
// PR38095
|
||||
void constCharStar(const char *str) __attribute__((__diagnose_if__(!str[0], "empty string not allowed", "error"))); // expected-note {{from}}
|
||||
void charStar(char *str) __attribute__((__diagnose_if__(!str[0], "empty string not allowed", "error"))); // expected-note {{from}}
|
||||
void runConstCharStar() {
|
||||
void runConstCharStar(void) {
|
||||
constCharStar("foo");
|
||||
charStar("bar");
|
||||
constCharStar(""); // expected-error {{empty string not allowed}}
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
// RUN: %clang_cc1 %s -std=c90 -verify -fsyntax-only
|
||||
void t0(int x) {
|
||||
int explicit_decl();
|
||||
int (*p)();
|
||||
int explicit_decl(void);
|
||||
int (*p)(void);
|
||||
if(x > 0)
|
||||
x = g() + 1; // expected-note {{previous implicit declaration}}
|
||||
p = g;
|
||||
if(x < 0) {
|
||||
extern void u(int (*)[h()]);
|
||||
int (*q)() = h;
|
||||
int (*q)(void) = h;
|
||||
}
|
||||
p = h; /* expected-error {{use of undeclared identifier 'h'}} */
|
||||
}
|
||||
|
||||
void t1(int x) {
|
||||
int (*p)();
|
||||
int (*p)(void);
|
||||
switch (x) {
|
||||
g();
|
||||
case 0:
|
||||
|
@ -32,11 +32,11 @@ void t1(int x) {
|
|||
|
||||
int t2(int x) {
|
||||
int y = ({ if (x > 0) x = g() + 1; 2*x; });
|
||||
int (*p)() = g; /* expected-error {{use of undeclared identifier 'g'}} */
|
||||
int (*p)(void) = g; /* expected-error {{use of undeclared identifier 'g'}} */
|
||||
return y;
|
||||
}
|
||||
|
||||
int PR34822() {
|
||||
int PR34822(void) {
|
||||
{int i = sizeof(PR34822_foo());} /* expected-note {{previous definition is here}} */
|
||||
{extern int PR34822_foo;} /* expected-error {{redefinition of 'PR34822_foo' as different kind of symbol}} */
|
||||
|
||||
|
@ -44,7 +44,7 @@ int PR34822() {
|
|||
{int i = sizeof(PR34822_bar());} /* expected-warning {{use of out-of-scope declaration of 'PR34822_bar' whose type is not compatible with that of an implicit declaration}} expected-error {{called object type 'int' is not a function or function pointer}} */
|
||||
}
|
||||
|
||||
int (*p)() = g; /* expected-error {{use of undeclared identifier 'g'}} */
|
||||
int (*q)() = h; /* expected-error {{use of undeclared identifier 'h'}} */
|
||||
int (*p)(void) = g; /* expected-error {{use of undeclared identifier 'g'}} */
|
||||
int (*q)(void) = h; /* expected-error {{use of undeclared identifier 'h'}} */
|
||||
|
||||
float g(); /* expected-error {{conflicting types for 'g'}} */
|
||||
float g(void); /* expected-error {{conflicting types for 'g'}} */
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// RUN: %clang_cc1 -fsyntax-only -verify %s -triple x86_64-apple-darwin9
|
||||
|
||||
// rdar://6726818
|
||||
void f1() {
|
||||
void f1(void) {
|
||||
const __builtin_va_list args2;
|
||||
(void)__builtin_va_arg(args2, int); // expected-error {{first argument to 'va_arg' is of type 'const __builtin_va_list' and not 'va_list'}}
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ void __attribute__((ms_abi)) g3(float a, ...) { // expected-note 2{{parameter of
|
|||
__builtin_ms_va_start(ap, (a)); // expected-warning {{passing an object that undergoes default argument promotion to 'va_start' has undefined behavior}}
|
||||
}
|
||||
|
||||
void __attribute__((ms_abi)) g5() {
|
||||
void __attribute__((ms_abi)) g5(void) {
|
||||
__builtin_ms_va_list ap;
|
||||
__builtin_ms_va_start(ap, ap); // expected-error {{'va_start' used in function with fixed args}}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ void f4(const char *msg, ...) {
|
|||
__builtin_va_end (ap);
|
||||
}
|
||||
|
||||
void f5() {
|
||||
void f5(void) {
|
||||
__builtin_va_list ap;
|
||||
__builtin_va_start(ap,ap); // expected-error {{'va_start' used in function with fixed args}}
|
||||
}
|
||||
|
|
|
@ -2,17 +2,17 @@
|
|||
|
||||
#define _zero_call_used_regs(...) __attribute__((zero_call_used_regs(__VA_ARGS__)))
|
||||
|
||||
void failure() _zero_call_used_regs(); // expected-error {{takes one argument}}
|
||||
void failure() _zero_call_used_regs("used", "used-gpr"); // expected-error {{takes one argument}}
|
||||
void failure() _zero_call_used_regs(0); // expected-error {{requires a string}}
|
||||
void failure() _zero_call_used_regs("hello"); // expected-warning {{argument not supported: hello}}
|
||||
void failure1(void) _zero_call_used_regs(); // expected-error {{takes one argument}}
|
||||
void failure2(void) _zero_call_used_regs("used", "used-gpr"); // expected-error {{takes one argument}}
|
||||
void failure3(void) _zero_call_used_regs(0); // expected-error {{requires a string}}
|
||||
void failure4(void) _zero_call_used_regs("hello"); // expected-warning {{argument not supported: hello}}
|
||||
|
||||
void success() _zero_call_used_regs("skip");
|
||||
void success() _zero_call_used_regs("used-gpr-arg");
|
||||
void success() _zero_call_used_regs("used-gpr");
|
||||
void success() _zero_call_used_regs("used-arg");
|
||||
void success() _zero_call_used_regs("used");
|
||||
void success() _zero_call_used_regs("all-gpr-arg");
|
||||
void success() _zero_call_used_regs("all-gpr");
|
||||
void success() _zero_call_used_regs("all-arg");
|
||||
void success() _zero_call_used_regs("all");
|
||||
void success1(void) _zero_call_used_regs("skip");
|
||||
void success2(void) _zero_call_used_regs("used-gpr-arg");
|
||||
void success3(void) _zero_call_used_regs("used-gpr");
|
||||
void success4(void) _zero_call_used_regs("used-arg");
|
||||
void success5(void) _zero_call_used_regs("used");
|
||||
void success6(void) _zero_call_used_regs("all-gpr-arg");
|
||||
void success7(void) _zero_call_used_regs("all-gpr");
|
||||
void success8(void) _zero_call_used_regs("all-arg");
|
||||
void success9(void) _zero_call_used_regs("all");
|
||||
|
|
|
@ -5,16 +5,16 @@
|
|||
void test1(int x CALLED_ONCE); // expected-error{{'called_once' attribute only applies to function-like parameters}}
|
||||
void test2(double x CALLED_ONCE); // expected-error{{'called_once' attribute only applies to function-like parameters}}
|
||||
|
||||
void test3(void (*foo)() CALLED_ONCE); // no-error
|
||||
void test3(void (*foo)(void) CALLED_ONCE); // no-error
|
||||
void test4(int (^foo)(int) CALLED_ONCE); // no-error
|
||||
|
||||
void test5(void (*foo)() __attribute__((called_once(1))));
|
||||
void test5(void (*foo)(void) __attribute__((called_once(1))));
|
||||
// expected-error@-1{{'called_once' attribute takes no arguments}}
|
||||
void test6(void (*foo)() __attribute__((called_once("str1", "str2"))));
|
||||
void test6(void (*foo)(void) __attribute__((called_once("str1", "str2"))));
|
||||
// expected-error@-1{{'called_once' attribute takes no arguments}}
|
||||
|
||||
CALLED_ONCE void test7(); // expected-warning{{'called_once' attribute only applies to parameters}}
|
||||
void test8() {
|
||||
void (*foo)() CALLED_ONCE; // expected-warning{{'called_once' attribute only applies to parameters}}
|
||||
CALLED_ONCE void test7(void); // expected-warning{{'called_once' attribute only applies to parameters}}
|
||||
void test8(void) {
|
||||
void (*foo)(void) CALLED_ONCE; // expected-warning{{'called_once' attribute only applies to parameters}}
|
||||
foo();
|
||||
}
|
||||
|
|
|
@ -76,7 +76,7 @@ typedef signed char BOOL;
|
|||
#define PAIR(x) @#x, [NSNumber numberWithInt:(x)]
|
||||
#define TWO(x) ((x), (x))
|
||||
|
||||
void foo() {
|
||||
void foo(void) {
|
||||
NSString *str = M([NSString stringWithString:@"foo"]); // expected-warning {{redundant}}
|
||||
str = [[NSString alloc] initWithString:@"foo"]; // expected-warning {{redundant}}
|
||||
NSArray *arr = [NSArray arrayWithArray:@[str]]; // expected-warning {{redundant}}
|
||||
|
|
Loading…
Reference in New Issue