diff options
Diffstat (limited to 'clang/test/CodeGenCXX/cxx1y-variable-template-linkage.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/cxx1y-variable-template-linkage.cpp | 54 |
1 files changed, 7 insertions, 47 deletions
diff --git a/clang/test/CodeGenCXX/cxx1y-variable-template-linkage.cpp b/clang/test/CodeGenCXX/cxx1y-variable-template-linkage.cpp index c77841cabc4..bc775568aaf 100644 --- a/clang/test/CodeGenCXX/cxx1y-variable-template-linkage.cpp +++ b/clang/test/CodeGenCXX/cxx1y-variable-template-linkage.cpp @@ -6,61 +6,21 @@ // should be 'internal global' and not 'linkonce_odr global'. template <typename T> int x = 42; -// CHECK-DAG: @_Z1xIiE = linkonce_odr global -// CHECK-DAG: @_Z1xIZL3foovE3FooE = internal global - -// 'static' affects the linkage of the global -template <typename T> static int y = 42; -// CHECK-DAG: @_ZL1yIiE = internal global -// CHECK-DAG: @_ZL1yIZL3foovE3FooE = internal global - -// 'const' does not -template <typename T> const int z = 42; -// CHECK-DAG: @_Z1zIiE = linkonce_odr constant -// CHECK-DAG: @_Z1zIZL3foovE3FooE = internal constant -template <typename T> T t = 42; -// CHECK-DAG: @_Z1tIiE = linkonce_odr global -// CHECK-DAG: @_Z1tIKiE = linkonce_odr constant - -int mode; +// CHECK-DAG: @_Z1xIZL3foovE3FooE = internal global // CHECK-DAG: define internal dereferenceable(4) i32* @_ZL3foov( -static const int &foo() { +static int &foo() { struct Foo { }; - - switch (mode) { - case 0: - // CHECK-DAG: @_Z1xIiE - return x<int>; - case 1: - // CHECK-DAG: @_Z1xIZL3foovE3FooE - return x<Foo>; - case 2: - // CHECK-DAG: @_ZL1yIiE - return y<int>; - case 3: - // CHECK-DAG: @_ZL1yIZL3foovE3FooE - return y<Foo>; - case 4: - // CHECK-DAG: @_Z1zIiE - return z<int>; - case 5: - // CHECK-DAG: @_Z1zIZL3foovE3FooE - return z<Foo>; - case 6: - // CHECK-DAG: @_Z1tIiE - return t<int>; - case 7: - // CHECK-DAG: @_Z1tIKiE - return t<const int>; - } + + // CHECK-DAG: ret i32* @_Z1xIZL3foovE3FooE + return x<Foo>; } #if !__has_feature(cxx_exceptions) // File A // CHECKA-DAG: define dereferenceable(4) i32* @_Z3barv( -const int &bar() { +int &bar() { // CHECKA-DAG: call dereferenceable(4) i32* @_ZL3foov() return foo(); } @@ -68,7 +28,7 @@ const int &bar() { #else // File B // CHECKB-DAG: declare dereferenceable(4) i32* @_Z3barv( -const int &bar(); +int &bar(); int main() { // CHECKB-DAG: call dereferenceable(4) i32* @_Z3barv() |