diff options
author | Anton Bikineev <ant.bikineev@gmail.com> | 2018-10-10 16:14:51 +0000 |
---|---|---|
committer | Anton Bikineev <ant.bikineev@gmail.com> | 2018-10-10 16:14:51 +0000 |
commit | cc7e74753ae2243f00971e3cfed7d7ee7a0136ed (patch) | |
tree | cd349f61ae9f7e9d429b3b4cfcf246e454a48b05 /clang/test/CodeGenCXX/value-init.cpp | |
parent | 9efbfa88c3f68e12507b1c7658d4812759f4e68a (diff) | |
download | bcm5719-llvm-cc7e74753ae2243f00971e3cfed7d7ee7a0136ed.tar.gz bcm5719-llvm-cc7e74753ae2243f00971e3cfed7d7ee7a0136ed.zip |
[CodeGenCXX] Treat 'this' as noalias in constructors
This is currently a clang extension and a resolution
of the defect report in the C++ Standard.
Differential Revision: https://reviews.llvm.org/D46441
llvm-svn: 344150
Diffstat (limited to 'clang/test/CodeGenCXX/value-init.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/value-init.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/clang/test/CodeGenCXX/value-init.cpp b/clang/test/CodeGenCXX/value-init.cpp index 8d76fc53461..d0e1930b145 100644 --- a/clang/test/CodeGenCXX/value-init.cpp +++ b/clang/test/CodeGenCXX/value-init.cpp @@ -209,12 +209,12 @@ namespace test6 { // CHECK-NEXT: [[INNER:%.*]] = getelementptr inbounds [10 x [20 x [[A]]]], [10 x [20 x [[A]]]]* [[ARR]], i64 0, i64 0 // CHECK-NEXT: [[T0:%.*]] = getelementptr inbounds [20 x [[A]]], [20 x [[A]]]* [[INNER]], i64 0, i64 0 - // CHECK-NEXT: call void @_ZN5test61AC1Ei([[A]]* [[T0]], i32 5) + // CHECK-NEXT: call void @_ZN5test61AC1Ei([[A]]* noalias [[T0]], i32 5) // CHECK-NEXT: [[BEGIN:%.*]] = getelementptr inbounds [[A]], [[A]]* [[T0]], i64 1 // CHECK-NEXT: [[END:%.*]] = getelementptr inbounds [[A]], [[A]]* [[T0]], i64 20 // CHECK-NEXT: br label // CHECK: [[CUR:%.*]] = phi [[A]]* [ [[BEGIN]], {{%.*}} ], [ [[NEXT:%.*]], {{%.*}} ] - // CHECK-NEXT: call void @_ZN5test61AC1Ev([[A]]* [[CUR]]) + // CHECK-NEXT: call void @_ZN5test61AC1Ev([[A]]* noalias [[CUR]]) // CHECK-NEXT: [[NEXT]] = getelementptr inbounds [[A]], [[A]]* [[CUR]], i64 1 // CHECK-NEXT: [[T0:%.*]] = icmp eq [[A]]* [[NEXT]], [[END]] // CHECK-NEXT: br i1 @@ -229,7 +229,7 @@ namespace test6 { // CHECK-NEXT: [[IEND:%.*]] = getelementptr inbounds [[A]], [[A]]* [[IBEGIN]], i64 20 // CHECK-NEXT: br label // CHECK: [[ICUR:%.*]] = phi [[A]]* [ [[IBEGIN]], {{%.*}} ], [ [[INEXT:%.*]], {{%.*}} ] - // CHECK-NEXT: call void @_ZN5test61AC1Ev([[A]]* [[ICUR]]) + // CHECK-NEXT: call void @_ZN5test61AC1Ev([[A]]* noalias [[ICUR]]) // CHECK-NEXT: [[INEXT:%.*]] = getelementptr inbounds [[A]], [[A]]* [[ICUR]], i64 1 // CHECK-NEXT: [[T0:%.*]] = icmp eq [[A]]* [[INEXT]], [[IEND]] // CHECK-NEXT: br i1 [[T0]], @@ -326,7 +326,7 @@ int explicitly_defaulted() { return a.n; } // CHECK-LABEL: } -// CHECK-LABEL: define linkonce_odr void @_ZN8zeroinit2X3IiEC2Ev(%"struct.zeroinit::X3"* %this) unnamed_addr +// CHECK-LABEL: define linkonce_odr void @_ZN8zeroinit2X3IiEC2Ev(%"struct.zeroinit::X3"* noalias %this) unnamed_addr // CHECK: call void @llvm.memset.p0i8.i64 // CHECK-NEXT: call void @_ZN8zeroinit2X2IiEC2Ev // CHECK-NEXT: ret void |