diff options
Diffstat (limited to 'test/Modules/linkage-merge.m')
-rw-r--r-- | test/Modules/linkage-merge.m | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/Modules/linkage-merge.m b/test/Modules/linkage-merge.m new file mode 100644 index 0000000..16e2205 --- /dev/null +++ b/test/Modules/linkage-merge.m @@ -0,0 +1,27 @@ +// In module: expected-note{{previous declaration}} + + + + +// In module: expected-note{{previous definition is here}} + +// Test redeclarations of functions where the original declaration is +// still hidden. + +@import linkage_merge_left; // excludes "sub" + +extern int f0(float); // expected-error{{conflicting types for 'f0'}} +static int f1(float); // okay: considered distinct +static int f2(float); // okay: considered distinct +extern int f3(float); // okay: considered distinct + +extern float v0; // expected-error{{redefinition of 'v0' with a different type: 'float' vs 'int'}} +static float v1; +static float v2; +extern float v3; + +typedef float T0; + +// RUN: rm -rf %t +// RUN: %clang_cc1 -fmodules -x objective-c -fmodules-cache-path=%t -emit-module -fmodule-name=linkage_merge_left %S/Inputs/module.map +// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -w %s -verify |