[Clang] ensure mangled names are valid identifiers before being suggested in ifunc...
[llvm-project.git] / clang / test / Modules / linkage-merge.m
blobc38524fa577beb4238af924138bbf950f7637b47
1 // RUN: rm -rf %t
2 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -x objective-c -fmodules-cache-path=%t -emit-module -fmodule-name=linkage_merge_left %S/Inputs/module.modulemap
3 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -w %s -verify
5 // Test redeclarations of functions where the original declaration is
6 // still hidden.
8 @import linkage_merge_left; // excludes "sub"
10 extern int f0(float);
11 // expected-error@-1{{conflicting types for 'f0'}}
12 // expected-note@Inputs/linkage-merge-sub.h:1{{previous declaration}}
14 static int f1(float); // okay: considered distinct
15 static int f2(float); // okay: considered distinct
16 extern int f3(float); // okay: considered distinct
18 extern float v0;
19 // expected-error@-1{{redeclaration of 'v0' with a different type: 'float' vs 'int'}}
20 // expected-note@Inputs/linkage-merge-sub.h:6{{previous declaration is here}}
22 static float v1;
23 static float v2;
24 extern float v3;
26 typedef float T0;