blob: 9dae1efdcd2a88ea5ae03b8081633599fd5b8437 [file] [log] [blame]
Fariborz Jahanianc8d2e772009-04-15 21:54:48 +00001// RUN: clang-cc -triple i386-apple-darwin9 -fobjc-gc -fsyntax-only -verify %s
Fariborz Jahanianc8d2e772009-04-15 21:54:48 +00002@interface INTF @end
3
4extern INTF* p2;
5extern __strong INTF* p2;
6
7extern __strong id p1;
8extern id p1;
9
10extern id CFRunLoopGetMain();
11extern __strong id CFRunLoopGetMain();
12
Fariborz Jahanian8df7a282009-06-02 18:32:00 +000013extern __weak id WLoopGetMain(); // expected-note {{previous declaration is here}}
14extern id WLoopGetMain(); // expected-error {{conflicting types for 'WLoopGetMain'}}
15
16extern id p3; // expected-note {{previous definition is here}}
17extern __weak id p3; // expected-error {{redefinition of 'p3' with a different type}}
18
Fariborz Jahanian86f43852009-06-02 20:58:58 +000019extern void *p4; // expected-note {{previous definition is here}}
20extern void * __strong p4; // expected-error {{redefinition of 'p4' with a different type}}
21
22extern id p5;
23extern __strong id p5;
24
25extern char* __strong p6; // expected-note {{previous definition is here}}
26extern char* p6; // expected-error {{redefinition of 'p6' with a different type}}
27
28// FIXME. We do not issue error here because we don't put the attribute on the pointer type.
29extern __strong char* p7;
30extern char* p7;