diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-01-22 00:24:57 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-01-22 00:24:57 +0000 |
commit | e5df59ff78faebd897e81907606ce6074aac0df6 (patch) | |
tree | 7f1ba19983a42f716c7643dd07244aa4a9531790 /clang/test/CodeGenCXX/destructors.cpp | |
parent | 343e4964733d0063de2551a93d912b93880cada9 (diff) | |
download | bcm5719-llvm-e5df59ff78faebd897e81907606ce6074aac0df6.tar.gz bcm5719-llvm-e5df59ff78faebd897e81907606ce6074aac0df6.zip |
Emit DeferredDeclsToEmit in a DFS order.
Currently we emit DeferredDeclsToEmit in reverse order. This patch changes that.
The advantages of the change are that
* The output order is a bit closer to the source order. The change to
test/CodeGenCXX/pod-member-memcpys.cpp is a good example.
* If we decide to deffer more, it will not cause as large changes in the
estcases as it would without this patch.
llvm-svn: 226751
Diffstat (limited to 'clang/test/CodeGenCXX/destructors.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/destructors.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/clang/test/CodeGenCXX/destructors.cpp b/clang/test/CodeGenCXX/destructors.cpp index bc9a683be5d..1f05caee167 100644 --- a/clang/test/CodeGenCXX/destructors.cpp +++ b/clang/test/CodeGenCXX/destructors.cpp @@ -185,6 +185,11 @@ namespace test3 { new D; // Force emission of D's vtable } + // CHECK4-LABEL: define internal void @_ZN5test312_GLOBAL__N_11CD2Ev(%"struct.test3::(anonymous namespace)::C"* %this) unnamed_addr + // CHECK4: invoke void @_ZN5test31BD2Ev( + // CHECK4: call void @_ZN5test31AD2Ev( + // CHECK4: ret void + // CHECK4-LABEL: define internal void @_ZN5test312_GLOBAL__N_11DD0Ev(%"struct.test3::(anonymous namespace)::D"* %this) unnamed_addr // CHECK4: invoke void {{.*}} @_ZN5test312_GLOBAL__N_11CD2Ev // CHECK4: call void @_ZdlPv({{.*}}) [[NUW:#[0-9]+]] @@ -204,15 +209,6 @@ namespace test3 { // CHECK4: call void @_ZN5test312_GLOBAL__N_11DD0Ev( // CHECK4: ret void - // CHECK4-LABEL: declare void @_ZN5test31BD2Ev( - // CHECK4-LABEL: declare void @_ZN5test31AD2Ev( - - // CHECK4-LABEL: define internal void @_ZN5test312_GLOBAL__N_11CD2Ev(%"struct.test3::(anonymous namespace)::C"* %this) unnamed_addr - // CHECK4: invoke void @_ZN5test31BD2Ev( - // CHECK4: call void @_ZN5test31AD2Ev( - // CHECK4: ret void - - // CHECK4-LABEL: define internal void @_ZN5test312_GLOBAL__N_11CD0Ev(%"struct.test3::(anonymous namespace)::C"* %this) unnamed_addr // CHECK4: invoke void @_ZN5test312_GLOBAL__N_11CD2Ev( // CHECK4: call void @_ZdlPv({{.*}}) [[NUW]] @@ -232,6 +228,9 @@ namespace test3 { // CHECK4: call void @_ZN5test312_GLOBAL__N_11CD0Ev( // CHECK4: ret void + // CHECK4-LABEL: declare void @_ZN5test31BD2Ev( + // CHECK4-LABEL: declare void @_ZN5test31AD2Ev( + // CHECK4: attributes [[NUW]] = {{[{].*}} nounwind {{.*[}]}} } |