1 // This test checks if internal linkage symbols get unique names with 2 // -funique-internal-linkage-names option. 3 // RUN: %clang_cc1 -triple x86_64 -x c++ -S -emit-llvm -o - < %s | FileCheck %s --check-prefix=PLAIN 4 // RUN: %clang_cc1 -triple x86_64 -x c++ -S -emit-llvm -funique-internal-linkage-names -o - < %s | FileCheck %s --check-prefix=UNIQUE 5 6 static int glob; 7 static int foo() { 8 return 0; 9 } 10 11 int (*bar())() { 12 return foo; 13 } 14 15 int getGlob() { 16 return glob; 17 } 18 19 // Function local static variable and anonymous namespace namespace variable. 20 namespace { 21 int anon_m; 22 int getM() { 23 return anon_m; 24 } 25 } // namespace 26 27 int retAnonM() { 28 static int fGlob; 29 return getM() + fGlob; 30 } 31 32 // Multiversioning symbols 33 __attribute__((target("default"))) static int mver() { 34 return 0; 35 } 36 37 __attribute__((target("sse4.2"))) static int mver() { 38 return 1; 39 } 40 41 int mver_call() { 42 return mver(); 43 } 44 45 // PLAIN: @_ZL4glob = internal global 46 // PLAIN: @_ZZ8retAnonMvE5fGlob = internal global 47 // PLAIN: @_ZN12_GLOBAL__N_16anon_mE = internal global 48 // PLAIN: define internal i32 @_ZL3foov() 49 // PLAIN: define internal i32 @_ZN12_GLOBAL__N_14getMEv 50 // PLAIN: define weak_odr i32 ()* @_ZL4mverv.resolver() 51 // PLAIN: define internal i32 @_ZL4mverv() 52 // PLAIN: define internal i32 @_ZL4mverv.sse4.2() 53 // PLAIN-NOT: "sample-profile-suffix-elision-policy" 54 // UNIQUE: @_ZL4glob = internal global 55 // UNIQUE: @_ZZ8retAnonMvE5fGlob = internal global 56 // UNIQUE: @_ZN12_GLOBAL__N_16anon_mE = internal global 57 // UNIQUE: define internal i32 @_ZL3foov.[[MODHASH:__uniq.[0-9]+]]() #[[#ATTR:]] { 58 // UNIQUE: define internal i32 @_ZN12_GLOBAL__N_14getMEv.[[MODHASH]] 59 // UNIQUE: define weak_odr i32 ()* @_ZL4mverv.[[MODHASH]].resolver() 60 // UNIQUE: define internal i32 @_ZL4mverv.[[MODHASH]]() 61 // UNIQUE: define internal i32 @_ZL4mverv.[[MODHASH]].sse4.2 62 // UNIQUE: attributes #[[#ATTR]] = { {{.*}}"sample-profile-suffix-elision-policy"{{.*}} } 63