llvm-project/clang/test/SemaObjC/objc-independent-class-attribute.m
Aaron Ballman 7deaeb2a05 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 fourth batch of tests being updated (there are a significant
number of other tests left to be updated).
2022-02-07 15:29:36 -05:00

37 lines
1.4 KiB
Objective-C

// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
// rdar://20255473
@interface NSObject @end
typedef NSObject * __attribute__((objc_independent_class))dispatch_queue_t;
typedef struct S {int ii; } * __attribute__((objc_independent_class))dispatch_queue_t_2; // expected-warning {{Objective-C object}}
typedef struct { // expected-warning {{'objc_independent_class' attribute may be put on a typedef only; attribute is ignored}}
NSObject *__attribute__((objc_independent_class)) ns; // expected-warning {{'objc_independent_class' attribute may be put on a typedef only; attribute is ignored}}
} __attribute__((objc_independent_class)) T;
dispatch_queue_t dispatch_queue_create(void);
@interface DispatchQPointerCastIssue : NSObject {
NSObject *__attribute__((objc_independent_class)) Ivar; // expected-warning {{'objc_independent_class' attribute may be put on a typedef only; attribute is ignored}}
}
@property (copy) NSObject *__attribute__((objc_independent_class)) Prop; // expected-warning {{'objc_independent_class' attribute may be put on a typedef only; attribute is ignored}}
typedef NSObject * __attribute__((objc_independent_class))dispatch_queue_t_1;
@end
@implementation DispatchQPointerCastIssue
+ (dispatch_queue_t) newDispatchQueue {
return dispatch_queue_create();
}
@end
NSObject *get_nsobject(void) {
typedef NSObject * __attribute__((objc_independent_class))dispatch_queue_t;
dispatch_queue_t dt;
return dt;
}