diff options
author | Hans Wennborg <hans@hanshq.net> | 2015-03-07 00:46:19 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2015-03-07 00:46:19 +0000 |
commit | d09bc938a119b1dee248bc480978658ed81afc13 (patch) | |
tree | ef1db9eb866f35cde644e894f4155e256f4a6367 /test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp | |
parent | 8fe0b8fe52531ce305f0d62e495a00fbf28191ac (diff) |
Revert r231508 "CodeGen: Emit constant temporaries into read-only globals."
This broke the Chromium build. Links were failing with messages like:
obj/dbus/libdbus_test_support.a(obj/dbus/dbus_test_support.mock_object_proxy.o):../../dbus/mock_object_proxy.cc:function dbus::MockObjectProxy::Detach(): warning: relocation refers to discarded section
/usr/local/google/work/chromium/src/third_party/binutils/Linux_x64/Release/bin/ld.gold: error: treating warnings as errors
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231541 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp')
-rw-r--r-- | test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp | 39 |
1 files changed, 11 insertions, 28 deletions
diff --git a/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp b/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp index f079311e7e..d68ba7c753 100644 --- a/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp +++ b/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp @@ -72,9 +72,6 @@ namespace thread_local_global_array { // CHECK: @[[PARTLY_CONSTANT_SECOND:_ZGRN15partly_constant2ilE.*]] = internal global [2 x i32] zeroinitializer, align 4 // CHECK: @[[PARTLY_CONSTANT_THIRD:_ZGRN15partly_constant2ilE.*]] = internal constant [4 x i32] [i32 5, i32 6, i32 7, i32 8], align 4 -// CHECK: @[[REFTMP1:.*]] = private constant [2 x i32] [i32 42, i32 43], comdat($_ZN7PR204451fILi0EEEvv), align 4 -// CHECK: @[[REFTMP2:.*]] = private constant [3 x %{{.*}}] [%{{.*}} { i32 1 }, %{{.*}} { i32 2 }, %{{.*}} { i32 3 }], align 4 - // CHECK: appending global @@ -218,16 +215,17 @@ void fn9() { struct haslist1 { std::initializer_list<int> il; - haslist1(int i); + haslist1(); }; -// CHECK-LABEL: define void @_ZN8haslist1C2Ei -haslist1::haslist1(int i) +// CHECK-LABEL: define void @_ZN8haslist1C2Ev +haslist1::haslist1() // CHECK: alloca [3 x i32] -// CHECK: store i32 % +// CHECK: store i32 1 // CHECK: store i32 2 // CHECK: store i32 3 - : il{i, 2, 3} +// CHECK: store i{{32|64}} 3 + : il{1, 2, 3} { destroyme2 dm2; } @@ -246,15 +244,16 @@ haslist2::haslist2() // CHECK: call void @_ZN10destroyme1D1Ev } -void fn10(int i) { - // CHECK-LABEL: define void @_Z4fn10i +void fn10() { + // CHECK-LABEL: define void @_Z4fn10v // CHECK: alloca [3 x i32] // CHECK: call noalias i8* @_Znw{{[jm]}} - // CHECK: store i32 % + // CHECK: store i32 1 // CHECK: store i32 2 // CHECK: store i32 3 // CHECK: store i32* - (void) new std::initializer_list<int> {i, 2, 3}; + // CHECK: store i{{32|64}} 3 + (void) new std::initializer_list<int> {1, 2, 3}; } void fn11() { @@ -463,22 +462,6 @@ namespace PR20445 { template<int x> void f() { new MyClass({42, 43}); } template void f<0>(); // CHECK-LABEL: define {{.*}} @_ZN7PR204451fILi0EEEvv( - // CHECK: store i32* getelementptr inbounds ([2 x i32]* @[[REFTMP1]], i64 0, i64 0) // CHECK: call void @_ZN7PR204456vectorC1ESt16initializer_listIiE( // CHECK: call void @_ZN7PR204457MyClassC1ERKNS_6vectorE( } - -namespace ConstExpr { - class C { - int x; - public: - constexpr C(int x) : x(x) {} - }; - void f(std::initializer_list<C>); - void g() { -// CHECK-LABEL: _ZN9ConstExpr1gEv -// CHECK: store %"class.ConstExpr::C"* getelementptr inbounds ([3 x %"class.ConstExpr::C"]* @[[REFTMP2]], i64 0, i64 0) -// CHECK: call void @_ZN9ConstExpr1fESt16initializer_listINS_1CEE - f({C(1), C(2), C(3)}); - } -} |