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/conditional-gnu-ext.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/conditional-gnu-ext.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/conditional-gnu-ext.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/clang/test/CodeGenCXX/conditional-gnu-ext.cpp b/clang/test/CodeGenCXX/conditional-gnu-ext.cpp index b073e0cc66a..6a87eb1f8c2 100644 --- a/clang/test/CodeGenCXX/conditional-gnu-ext.cpp +++ b/clang/test/CodeGenCXX/conditional-gnu-ext.cpp @@ -83,9 +83,9 @@ namespace test3 { // CHECK-NEXT: [[T0:%.*]] = load [[B]]*, [[B]]** [[X]] // CHECK-NEXT: [[BOOL:%.*]] = call zeroext i1 @_ZN5test31BcvbEv([[B]]* [[T0]]) // CHECK-NEXT: br i1 [[BOOL]] - // CHECK: call void @_ZN5test31BC1ERKS0_([[B]]* [[RESULT:%.*]], [[B]]* dereferenceable({{[0-9]+}}) [[T0]]) + // CHECK: call void @_ZN5test31BC1ERKS0_([[B]]* noalias [[RESULT:%.*]], [[B]]* dereferenceable({{[0-9]+}}) [[T0]]) // CHECK-NEXT: br label - // CHECK: call void @_ZN5test31BC1Ev([[B]]* [[RESULT]]) + // CHECK: call void @_ZN5test31BC1Ev([[B]]* noalias [[RESULT]]) // CHECK-NEXT: br label // CHECK: ret void return x ?: B(); @@ -97,9 +97,9 @@ namespace test3 { // CHECK-NEXT: call void @_ZN5test312test1_helperEv([[B]]* sret [[TEMP]]) // CHECK-NEXT: [[BOOL:%.*]] = call zeroext i1 @_ZN5test31BcvbEv([[B]]* [[TEMP]]) // CHECK-NEXT: br i1 [[BOOL]] - // CHECK: call void @_ZN5test31BC1ERKS0_([[B]]* [[RESULT:%.*]], [[B]]* dereferenceable({{[0-9]+}}) [[TEMP]]) + // CHECK: call void @_ZN5test31BC1ERKS0_([[B]]* noalias [[RESULT:%.*]], [[B]]* dereferenceable({{[0-9]+}}) [[TEMP]]) // CHECK-NEXT: br label - // CHECK: call void @_ZN5test31BC1Ev([[B]]* [[RESULT]]) + // CHECK: call void @_ZN5test31BC1Ev([[B]]* noalias [[RESULT]]) // CHECK-NEXT: br label // CHECK: call void @_ZN5test31BD1Ev([[B]]* [[TEMP]]) // CHECK-NEXT: ret void @@ -117,7 +117,7 @@ namespace test3 { // CHECK-NEXT: br i1 [[BOOL]] // CHECK: call void @_ZN5test31BcvNS_1AEEv([[A:%.*]]* sret [[RESULT:%.*]], [[B]]* [[T0]]) // CHECK-NEXT: br label - // CHECK: call void @_ZN5test31AC1Ev([[A]]* [[RESULT]]) + // CHECK: call void @_ZN5test31AC1Ev([[A]]* noalias [[RESULT]]) // CHECK-NEXT: br label // CHECK: ret void return x ?: A(); @@ -131,7 +131,7 @@ namespace test3 { // CHECK-NEXT: br i1 [[BOOL]] // CHECK: call void @_ZN5test31BcvNS_1AEEv([[A]]* sret [[RESULT:%.*]], [[B]]* [[TEMP]]) // CHECK-NEXT: br label - // CHECK: call void @_ZN5test31AC1Ev([[A]]* [[RESULT]]) + // CHECK: call void @_ZN5test31AC1Ev([[A]]* noalias [[RESULT]]) // CHECK-NEXT: br label // CHECK: call void @_ZN5test31BD1Ev([[B]]* [[TEMP]]) // CHECK-NEXT: ret void |