diff options
Diffstat (limited to 'test/Modules/decldef.m')
-rw-r--r-- | test/Modules/decldef.m | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/Modules/decldef.m b/test/Modules/decldef.m new file mode 100644 index 0000000..7fb8a61 --- /dev/null +++ b/test/Modules/decldef.m @@ -0,0 +1,28 @@ +// RUN: rm -rf %t +// RUN: %clang_cc1 -fmodules -fobjc-arc -I %S/Inputs -fmodules-cache-path=%t %s -verify + + +// In other file: expected-note {{previous definition is here}} + +@class Def; +Def *def; + +@import decldef; +A *a1; // expected-error{{unknown type name 'A'}} +B *b1; // expected-error{{must use 'struct' tag to refer to type 'B'}} +@import decldef.Decl; + +A *a2; +struct B *b; + +void testA(A *a) { + a->ivar = 17; // expected-error{{definition of 'A' must be imported from module 'decldef.Def' before it is required}} +} + +void testB() { + B b; // Note: redundant error silenced +} + +void testDef() { + [def defMethod]; +} |