]> granicus.if.org Git - clang/commit
[CodeGenCXX] Treat 'this' as noalias in constructors
authorAnton Bikineev <ant.bikineev@gmail.com>
Wed, 10 Oct 2018 16:14:51 +0000 (16:14 +0000)
committerAnton Bikineev <ant.bikineev@gmail.com>
Wed, 10 Oct 2018 16:14:51 +0000 (16:14 +0000)
commit27fe8790f1e12d29a15188192f52f2ac3e4fd672
tree0ab833b28efa2086ef8e072cfe0ac34243645a31
parente0e7c043bbdb567c1434f252c44172945d604994
[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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@344150 91177308-0d34-0410-b5e6-96231b3b80d8
148 files changed:
lib/CodeGen/CGCall.cpp
test/CXX/except/except.spec/p14-ir.cpp
test/CodeGen/temporary-lifetime.cpp
test/CodeGenCUDA/device-var-init.cu
test/CodeGenCXX/2011-12-19-init-list-ctor.cpp
test/CodeGenCXX/amdgcn-automatic-variable.cpp
test/CodeGenCXX/amdgcn-func-arg.cpp
test/CodeGenCXX/apple-kext.cpp
test/CodeGenCXX/arm.cpp
test/CodeGenCXX/arm64-constructor-return.cpp
test/CodeGenCXX/array-default-argument.cpp
test/CodeGenCXX/atomicinit.cpp
test/CodeGenCXX/blocks-cxx11.cpp
test/CodeGenCXX/blocks.cpp
test/CodeGenCXX/conditional-gnu-ext.cpp
test/CodeGenCXX/constructor-destructor-return-this.cpp
test/CodeGenCXX/constructor-direct-call.cpp
test/CodeGenCXX/constructor-init.cpp
test/CodeGenCXX/constructors.cpp
test/CodeGenCXX/copy-constructor-elim-2.cpp
test/CodeGenCXX/copy-constructor-synthesis-2.cpp
test/CodeGenCXX/copy-constructor-synthesis.cpp
test/CodeGenCXX/cxx0x-delegating-ctors.cpp
test/CodeGenCXX/cxx0x-initializer-constructors.cpp
test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
test/CodeGenCXX/cxx11-initializer-array-new.cpp
test/CodeGenCXX/cxx11-thread-local.cpp
test/CodeGenCXX/cxx1z-decomposition.cpp
test/CodeGenCXX/cxx1z-initializer-aggregate.cpp
test/CodeGenCXX/default-arg-temps.cpp
test/CodeGenCXX/default-arguments.cpp
test/CodeGenCXX/derived-to-base-conv.cpp
test/CodeGenCXX/destructors.cpp
test/CodeGenCXX/dllexport-ctor-closure.cpp
test/CodeGenCXX/dllexport-members.cpp
test/CodeGenCXX/dllimport-members.cpp
test/CodeGenCXX/dllimport.cpp
test/CodeGenCXX/eh.cpp
test/CodeGenCXX/empty-nontrivially-copyable.cpp
test/CodeGenCXX/exceptions-seh.cpp
test/CodeGenCXX/exceptions.cpp
test/CodeGenCXX/float128-declarations.cpp
test/CodeGenCXX/float16-declarations.cpp
test/CodeGenCXX/for-range.cpp
test/CodeGenCXX/global-dtor-no-atexit.cpp
test/CodeGenCXX/global-init.cpp
test/CodeGenCXX/goto.cpp
test/CodeGenCXX/implicit-copy-constructor.cpp
test/CodeGenCXX/inheriting-constructor.cpp
test/CodeGenCXX/init-invariant.cpp
test/CodeGenCXX/mangle-subst-std.cpp
test/CodeGenCXX/member-expr-references-variable.cpp
test/CodeGenCXX/member-init-assignment.cpp
test/CodeGenCXX/member-templates.cpp
test/CodeGenCXX/microsoft-abi-arg-order.cpp
test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp
test/CodeGenCXX/microsoft-abi-extern-template.cpp
test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp
test/CodeGenCXX/microsoft-abi-static-initializers.cpp
test/CodeGenCXX/microsoft-abi-structors.cpp
test/CodeGenCXX/microsoft-abi-thread-safe-statics.cpp
test/CodeGenCXX/microsoft-abi-throw.cpp
test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp
test/CodeGenCXX/microsoft-interface.cpp
test/CodeGenCXX/ms_struct.cpp
test/CodeGenCXX/new.cpp
test/CodeGenCXX/nrvo.cpp
test/CodeGenCXX/partial-destruction.cpp
test/CodeGenCXX/pod-member-memcpys.cpp
test/CodeGenCXX/pointers-to-data-members.cpp
test/CodeGenCXX/pr13396.cpp
test/CodeGenCXX/references.cpp
test/CodeGenCXX/runtimecc.cpp
test/CodeGenCXX/stack-reuse-miscompile.cpp
test/CodeGenCXX/stack-reuse.cpp
test/CodeGenCXX/static-init-wasm.cpp
test/CodeGenCXX/static-initializer-branch-weights.cpp
test/CodeGenCXX/strict-vtable-pointers.cpp
test/CodeGenCXX/template-anonymous-types.cpp
test/CodeGenCXX/template-instantiation.cpp
test/CodeGenCXX/temporaries.cpp
test/CodeGenCXX/thiscall-struct-return.cpp
test/CodeGenCXX/trivial_abi.cpp
test/CodeGenCXX/value-init.cpp
test/CodeGenCXX/virtual-bases.cpp
test/CodeGenCXX/vla-consruct.cpp
test/CodeGenCXX/vtable-assume-load.cpp
test/CodeGenCXX/vtable-pointer-initialization.cpp
test/CodeGenCXX/wasm-args-returns.cpp
test/CodeGenCoroutines/coro-params.cpp
test/CodeGenCoroutines/coro-ret-void.cpp
test/CodeGenObjCXX/arc-blocks.mm
test/CodeGenObjCXX/implicit-copy-constructor.mm
test/CodeGenObjCXX/objc-struct-cxx-abi.mm
test/CodeGenObjCXX/property-dot-copy-elision.mm
test/CodeGenObjCXX/property-object-reference-2.mm
test/CodeGenObjCXX/property-objects.mm
test/OpenMP/atomic_codegen.cpp
test/OpenMP/declare_reduction_codegen.cpp
test/OpenMP/declare_target_codegen.cpp
test/OpenMP/distribute_firstprivate_codegen.cpp
test/OpenMP/distribute_lastprivate_codegen.cpp
test/OpenMP/distribute_parallel_for_firstprivate_codegen.cpp
test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpp
test/OpenMP/distribute_parallel_for_private_codegen.cpp
test/OpenMP/distribute_parallel_for_simd_firstprivate_codegen.cpp
test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpp
test/OpenMP/distribute_parallel_for_simd_private_codegen.cpp
test/OpenMP/distribute_private_codegen.cpp
test/OpenMP/distribute_simd_firstprivate_codegen.cpp
test/OpenMP/distribute_simd_lastprivate_codegen.cpp
test/OpenMP/distribute_simd_private_codegen.cpp
test/OpenMP/for_firstprivate_codegen.cpp
test/OpenMP/for_lastprivate_codegen.cpp
test/OpenMP/for_linear_codegen.cpp
test/OpenMP/for_private_codegen.cpp
test/OpenMP/for_reduction_codegen.cpp
test/OpenMP/for_reduction_codegen_UDR.cpp
test/OpenMP/parallel_firstprivate_codegen.cpp
test/OpenMP/parallel_for_linear_codegen.cpp
test/OpenMP/parallel_num_threads_codegen.cpp
test/OpenMP/parallel_private_codegen.cpp
test/OpenMP/parallel_reduction_codegen.cpp
test/OpenMP/sections_firstprivate_codegen.cpp
test/OpenMP/sections_lastprivate_codegen.cpp
test/OpenMP/sections_private_codegen.cpp
test/OpenMP/sections_reduction_codegen.cpp
test/OpenMP/single_firstprivate_codegen.cpp
test/OpenMP/single_private_codegen.cpp
test/OpenMP/target_teams_distribute_lastprivate_codegen.cpp
test/OpenMP/target_teams_distribute_parallel_for_lastprivate_codegen.cpp
test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
test/OpenMP/target_teams_distribute_simd_lastprivate_codegen.cpp
test/OpenMP/task_firstprivate_codegen.cpp
test/OpenMP/task_private_codegen.cpp
test/OpenMP/taskloop_firstprivate_codegen.cpp
test/OpenMP/taskloop_lastprivate_codegen.cpp
test/OpenMP/taskloop_private_codegen.cpp
test/OpenMP/taskloop_simd_firstprivate_codegen.cpp
test/OpenMP/taskloop_simd_lastprivate_codegen.cpp
test/OpenMP/taskloop_simd_private_codegen.cpp
test/OpenMP/teams_distribute_lastprivate_codegen.cpp
test/OpenMP/teams_distribute_parallel_for_lastprivate_codegen.cpp
test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
test/OpenMP/teams_distribute_simd_lastprivate_codegen.cpp
test/OpenMP/teams_firstprivate_codegen.cpp
test/OpenMP/teams_private_codegen.cpp
test/OpenMP/threadprivate_codegen.cpp