diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2012-02-16 22:45:48 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2012-02-16 22:45:48 +0000 |
commit | b971d497654c6b68bbed9b399771fd39a1cdfd2e (patch) | |
tree | 497403ce71fd30c4338eb1008fb721f7a3e921c5 /clang/test/CodeGenCXX/exceptions.cpp | |
parent | a0d3c7501565978eb6e8a42d0cd3146cd89e3a72 (diff) | |
download | bcm5719-llvm-b971d497654c6b68bbed9b399771fd39a1cdfd2e.tar.gz bcm5719-llvm-b971d497654c6b68bbed9b399771fd39a1cdfd2e.zip |
Elide copy construction in new expressions. PR11757.
llvm-svn: 150738
Diffstat (limited to 'clang/test/CodeGenCXX/exceptions.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/exceptions.cpp | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/clang/test/CodeGenCXX/exceptions.cpp b/clang/test/CodeGenCXX/exceptions.cpp index 2a5cbb49005..079c1e5e725 100644 --- a/clang/test/CodeGenCXX/exceptions.cpp +++ b/clang/test/CodeGenCXX/exceptions.cpp @@ -194,12 +194,9 @@ namespace test3 { // CHECK: [[SAVED0:%.*]] = alloca i8* // CHECK-NEXT: [[SAVED1:%.*]] = alloca i8* // CHECK-NEXT: [[CLEANUPACTIVE:%.*]] = alloca i1 - // CHECK-NEXT: [[TMP:%.*]] = alloca [[A]], align 8 - // CHECK: [[TMPACTIVE:%.*]] = alloca i1 // CHECK: [[COND:%.*]] = trunc i8 {{.*}} to i1 // CHECK-NEXT: store i1 false, i1* [[CLEANUPACTIVE]] - // CHECK-NEXT: store i1 false, i1* [[TMPACTIVE]] // CHECK-NEXT: br i1 [[COND]] return (cond ? @@ -209,24 +206,18 @@ namespace test3 { // CHECK-NEXT: store i8* [[FOO]], i8** [[SAVED1]] // CHECK-NEXT: store i1 true, i1* [[CLEANUPACTIVE]] // CHECK-NEXT: [[CAST:%.*]] = bitcast i8* [[NEW]] to [[A]]* - // CHECK-NEXT: invoke void @_ZN5test35makeAEv([[A]]* sret [[TMP]]) - // CHECK: store i1 true, i1* [[TMPACTIVE]] - // CHECK-NEXT: invoke void @_ZN5test31AC1ERKS0_([[A]]* [[CAST]], [[A]]* [[TMP]]) - // CHECK: store i1 false, i1* [[CLEANUPACTIVE]] - // CHECK-NEXT: br label + // CHECK-NEXT: invoke void @_ZN5test35makeAEv([[A]]* sret [[CAST]]) + // CHECK: br label // -> cond.end new(foo(),10.0) A(makeA()) : - // CHECK: [[MAKE:%.*]] = invoke [[A]]* @_ZN5test38makeAPtrEv() + // CHECK: [[MAKE:%.*]] = call [[A]]* @_ZN5test38makeAPtrEv() // CHECK: br label // -> cond.end makeAPtr()); // cond.end: // CHECK: [[RESULT:%.*]] = phi [[A]]* {{.*}}[[CAST]]{{.*}}[[MAKE]] - // CHECK-NEXT: [[ISACTIVE:%.*]] = load i1* [[TMPACTIVE]] - // CHECK-NEXT: br i1 [[ISACTIVE]] - // CHECK: invoke void @_ZN5test31AD1Ev // CHECK: ret [[A]]* [[RESULT]] // in the EH path: |