diff options
author | Steven Wu <stevenwu@apple.com> | 2015-08-28 07:14:10 +0000 |
---|---|---|
committer | Steven Wu <stevenwu@apple.com> | 2015-08-28 07:14:10 +0000 |
commit | 5528da76ef8419ea509cccc87b35e035ef65f9fb (patch) | |
tree | 96b30f952de4c73cfb049428b70538c4f682cdc3 /clang/test/CodeGenCXX/vtable-available-externally.cpp | |
parent | 1e5a8c1a5ce3d82b40c324ee55271b9e405aec5c (diff) | |
download | bcm5719-llvm-5528da76ef8419ea509cccc87b35e035ef65f9fb.tar.gz bcm5719-llvm-5528da76ef8419ea509cccc87b35e035ef65f9fb.zip |
Revert r246214 and r246213
These two commits causes llvm LTO bootstrap to hang in ScalarEvolution.
llvm-svn: 246282
Diffstat (limited to 'clang/test/CodeGenCXX/vtable-available-externally.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/vtable-available-externally.cpp | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/clang/test/CodeGenCXX/vtable-available-externally.cpp b/clang/test/CodeGenCXX/vtable-available-externally.cpp index ba56499f674..4527efca96f 100644 --- a/clang/test/CodeGenCXX/vtable-available-externally.cpp +++ b/clang/test/CodeGenCXX/vtable-available-externally.cpp @@ -184,10 +184,10 @@ void f() { } // Test8 namespace Test9 { -// All virtual functions are outline, so we can assume that it will -// be generated in translation unit where foo is defined. -// CHECK-TEST9-DAG: @_ZTVN5Test91AE = available_externally unnamed_addr constant -// CHECK-TEST9-DAG: @_ZTVN5Test91BE = available_externally unnamed_addr constant +// all virtual functions are outline, so we can assume that it will +// be generated in translation unit where foo is defined +// CHECK-TEST9: @_ZTVN5Test91AE = available_externally unnamed_addr constant +// CHECK-TEST9: @_ZTVN5Test91BE = available_externally unnamed_addr constant struct A { virtual void foo(); virtual void bar(); @@ -210,22 +210,22 @@ void g() { namespace Test10 { // because A's key function is defined here, vtable is generated in this TU -// CHECK-TEST10-DAG: @_ZTVN6Test101AE = unnamed_addr constant +// CHECK-TEST10: @_ZTVN6Test101AE = unnamed_addr constant struct A { virtual void foo(); virtual void bar(); }; void A::foo() {} -// Because key function is inline we will generate vtable as linkonce_odr. -// CHECK-TEST10-DAG: @_ZTVN6Test101DE = linkonce_odr unnamed_addr constant +// Because key function is inline we will generate vtable as linkonce_odr +// CHECK-TEST10: @_ZTVN6Test101DE = linkonce_odr unnamed_addr constant struct D : A { void bar(); }; inline void D::bar() {} -// Because B has outline all virtual functions, we can refer to them. -// CHECK-TEST10-DAG: @_ZTVN6Test101BE = available_externally unnamed_addr constant +// because B has outline key function then we can refer to +// CHECK-TEST10: @_ZTVN6Test101BE = available_externally unnamed_addr constant struct B : A { void foo(); void bar(); @@ -233,8 +233,8 @@ struct B : A { // C's key function (car) is outline, but C has inline virtual function so we // can't guarantee that we will be able to refer to bar from name -// so (at the moment) we can't emit vtable available_externally. -// CHECK-TEST10-DAG: @_ZTVN6Test101CE = external unnamed_addr constant +// so (at the moment) we can't emit vtable available_externally +// CHECK-TEST10: @_ZTVN6Test101CE = external unnamed_addr constant struct C : A { void bar() {} // defined in body - not key function virtual inline void gar(); // inline in body - not key function @@ -242,7 +242,7 @@ struct C : A { }; // no key function, vtable will be generated everywhere it will be used -// CHECK-TEST10-DAG: @_ZTVN6Test101EE = linkonce_odr unnamed_addr constant +// CHECK-TEST10: @_ZTVN6Test101EE = linkonce_odr unnamed_addr constant struct E : A {}; void g(A& a) { @@ -365,3 +365,4 @@ void test() { } } + |