[all-commits] [llvm/llvm-project] 69cd77: [CodeGen] Apply 'nonnull' and 'dereferenceable(N)'...

CJ Johnson via All-commits all-commits at lists.llvm.org
Mon Nov 16 17:39:46 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 69cd776e1ee79e72ccbdad30749eac04579715ee
      https://github.com/llvm/llvm-project/commit/69cd776e1ee79e72ccbdad30749eac04579715ee
  Author: CJ Johnson <johnsoncj at google.com>
  Date:   2020-11-16 (Mon, 16 Nov 2020)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/CodeGen/CGCall.cpp
    M clang/test/CXX/except/except.spec/p14-ir.cpp
    M clang/test/CodeGen/aix-ignore-xcoff-visibility.cpp
    M clang/test/CodeGen/arm64-microsoft-arguments.cpp
    M clang/test/CodeGen/attr-nomerge.cpp
    M clang/test/CodeGen/no-builtin.cpp
    M clang/test/CodeGen/temporary-lifetime.cpp
    M clang/test/CodeGenCUDA/device-var-init.cu
    M clang/test/CodeGenCXX/2011-12-19-init-list-ctor.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/child-inheritted-from-parent-in-comdat.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/child-vtable-in-comdat.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/cross-translation-unit-1.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/cross-translation-unit-2.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/diamond-virtual-inheritance.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/member-function-pointer.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/multiple-inheritance.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/parent-and-child-in-comdats.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/parent-vtable-in-comdat.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/pass-byval-attributes.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/simple-vtable-definition.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/vbase-offset.cpp
    M clang/test/CodeGenCXX/RelativeVTablesABI/virtual-function-call.cpp
    M clang/test/CodeGenCXX/aix-static-init-debug-info.cpp
    M clang/test/CodeGenCXX/aix-static-init-temp-spec-and-inline-var.cpp
    M clang/test/CodeGenCXX/aix-static-init.cpp
    M clang/test/CodeGenCXX/amdgcn-automatic-variable.cpp
    M clang/test/CodeGenCXX/amdgcn-func-arg.cpp
    M clang/test/CodeGenCXX/apple-kext-indirect-call.cpp
    M clang/test/CodeGenCXX/apple-kext-indirect-virtual-dtor-call.cpp
    M clang/test/CodeGenCXX/apple-kext.cpp
    M clang/test/CodeGenCXX/arm.cpp
    M clang/test/CodeGenCXX/arm64-constructor-return.cpp
    M clang/test/CodeGenCXX/array-default-argument.cpp
    M clang/test/CodeGenCXX/atomicinit.cpp
    M clang/test/CodeGenCXX/attr-disable-tail-calls.cpp
    M clang/test/CodeGenCXX/attr-target-mv-member-funcs.cpp
    M clang/test/CodeGenCXX/attr-target-mv-out-of-line-defs.cpp
    M clang/test/CodeGenCXX/attr.cpp
    M clang/test/CodeGenCXX/auto-variable-template.cpp
    M clang/test/CodeGenCXX/blocks-cxx11.cpp
    M clang/test/CodeGenCXX/blocks.cpp
    M clang/test/CodeGenCXX/builtin-source-location.cpp
    M clang/test/CodeGenCXX/builtin_LINE.cpp
    M clang/test/CodeGenCXX/catch-undef-behavior.cpp
    M clang/test/CodeGenCXX/cfi-cross-dso.cpp
    M clang/test/CodeGenCXX/conditional-gnu-ext.cpp
    M clang/test/CodeGenCXX/const-init-cxx11.cpp
    M clang/test/CodeGenCXX/constructor-destructor-return-this.cpp
    M clang/test/CodeGenCXX/constructor-direct-call.cpp
    M clang/test/CodeGenCXX/constructor-init.cpp
    M clang/test/CodeGenCXX/constructors.cpp
    M clang/test/CodeGenCXX/copy-constructor-elim-2.cpp
    M clang/test/CodeGenCXX/copy-constructor-synthesis.cpp
    M clang/test/CodeGenCXX/cxx0x-delegating-ctors.cpp
    M clang/test/CodeGenCXX/cxx0x-initializer-constructors.cpp
    M clang/test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
    M clang/test/CodeGenCXX/cxx11-initializer-aggregate.cpp
    M clang/test/CodeGenCXX/cxx11-initializer-array-new.cpp
    M clang/test/CodeGenCXX/cxx11-thread-local.cpp
    M clang/test/CodeGenCXX/cxx1y-init-captures.cpp
    M clang/test/CodeGenCXX/cxx1y-sized-deallocation.cpp
    M clang/test/CodeGenCXX/cxx1z-copy-omission.cpp
    M clang/test/CodeGenCXX/cxx1z-decomposition.cpp
    M clang/test/CodeGenCXX/cxx1z-initializer-aggregate.cpp
    M clang/test/CodeGenCXX/cxx1z-lambda-star-this.cpp
    M clang/test/CodeGenCXX/cxx2a-destroying-delete.cpp
    M clang/test/CodeGenCXX/debug-info-class.cpp
    M clang/test/CodeGenCXX/debug-info-destroy-helper.cpp
    M clang/test/CodeGenCXX/debug-info-ms-dtor-thunks.cpp
    M clang/test/CodeGenCXX/default-arg-temps.cpp
    M clang/test/CodeGenCXX/default-arguments.cpp
    M clang/test/CodeGenCXX/delete.cpp
    M clang/test/CodeGenCXX/derived-to-base-conv.cpp
    M clang/test/CodeGenCXX/destructors.cpp
    M clang/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp
    M clang/test/CodeGenCXX/devirtualize-virtual-function-calls.cpp
    M clang/test/CodeGenCXX/dllexport-ctor-closure.cpp
    M clang/test/CodeGenCXX/dllexport-members.cpp
    M clang/test/CodeGenCXX/dllexport.cpp
    M clang/test/CodeGenCXX/dllimport-dtor-thunks.cpp
    M clang/test/CodeGenCXX/dllimport-members.cpp
    M clang/test/CodeGenCXX/dllimport.cpp
    M clang/test/CodeGenCXX/duplicate-mangled-name.cpp
    M clang/test/CodeGenCXX/eh.cpp
    M clang/test/CodeGenCXX/empty-nontrivially-copyable.cpp
    M clang/test/CodeGenCXX/exceptions-seh-filter-captures.cpp
    M clang/test/CodeGenCXX/exceptions-seh.cpp
    M clang/test/CodeGenCXX/exceptions.cpp
    M clang/test/CodeGenCXX/ext-int.cpp
    M clang/test/CodeGenCXX/float128-declarations.cpp
    M clang/test/CodeGenCXX/float16-declarations.cpp
    M clang/test/CodeGenCXX/global-dtor-no-atexit.cpp
    M clang/test/CodeGenCXX/global-init.cpp
    M clang/test/CodeGenCXX/goto.cpp
    M clang/test/CodeGenCXX/hidden-dllimport.cpp
    M clang/test/CodeGenCXX/implicit-copy-constructor.cpp
    M clang/test/CodeGenCXX/inalloca-overaligned.cpp
    M clang/test/CodeGenCXX/inalloca-vector.cpp
    M clang/test/CodeGenCXX/inheriting-constructor-cleanup.cpp
    M clang/test/CodeGenCXX/inheriting-constructor.cpp
    M clang/test/CodeGenCXX/init-invariant.cpp
    M clang/test/CodeGenCXX/lambda-expressions.cpp
    M clang/test/CodeGenCXX/mangle-subst-std.cpp
    M clang/test/CodeGenCXX/mangle.cpp
    M clang/test/CodeGenCXX/matrix-type-builtins.cpp
    M clang/test/CodeGenCXX/matrix-type-operators.cpp
    M clang/test/CodeGenCXX/member-expr-references-variable.cpp
    M clang/test/CodeGenCXX/member-init-assignment.cpp
    M clang/test/CodeGenCXX/member-templates.cpp
    M clang/test/CodeGenCXX/microsoft-abi-arg-order.cpp
    M clang/test/CodeGenCXX/microsoft-abi-byval-thunks.cpp
    M clang/test/CodeGenCXX/microsoft-abi-cdecl-method-sret.cpp
    M clang/test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp
    M clang/test/CodeGenCXX/microsoft-abi-extern-template.cpp
    M clang/test/CodeGenCXX/microsoft-abi-multiple-nonvirtual-inheritance.cpp
    M clang/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp
    M clang/test/CodeGenCXX/microsoft-abi-static-initializers.cpp
    M clang/test/CodeGenCXX/microsoft-abi-structors.cpp
    A clang/test/CodeGenCXX/microsoft-abi-this-nullable.cpp
    M clang/test/CodeGenCXX/microsoft-abi-thread-safe-statics.cpp
    M clang/test/CodeGenCXX/microsoft-abi-throw.cpp
    M clang/test/CodeGenCXX/microsoft-abi-thunks.cpp
    M clang/test/CodeGenCXX/microsoft-abi-unknown-arch.cpp
    M clang/test/CodeGenCXX/microsoft-abi-vbase-dtor.cpp
    M clang/test/CodeGenCXX/microsoft-abi-virtual-inheritance.cpp
    M clang/test/CodeGenCXX/microsoft-abi-vmemptr-conflicts.cpp
    M clang/test/CodeGenCXX/microsoft-interface.cpp
    M clang/test/CodeGenCXX/ms-property.cpp
    M clang/test/CodeGenCXX/ms_struct.cpp
    M clang/test/CodeGenCXX/msabi-ctor-abstract-vbase.cpp
    M clang/test/CodeGenCXX/new.cpp
    M clang/test/CodeGenCXX/noinline-template.cpp
    M clang/test/CodeGenCXX/nrvo.cpp
    M clang/test/CodeGenCXX/partial-destruction.cpp
    M clang/test/CodeGenCXX/pod-member-memcpys.cpp
    M clang/test/CodeGenCXX/pointers-to-data-members.cpp
    M clang/test/CodeGenCXX/pr40771-ctad-with-lambda-copy-capture.cpp
    M clang/test/CodeGenCXX/references.cpp
    M clang/test/CodeGenCXX/runtimecc.cpp
    M clang/test/CodeGenCXX/stack-reuse-miscompile.cpp
    M clang/test/CodeGenCXX/stack-reuse.cpp
    M clang/test/CodeGenCXX/static-destructor.cpp
    M clang/test/CodeGenCXX/static-init-wasm.cpp
    M clang/test/CodeGenCXX/static-initializer-branch-weights.cpp
    M clang/test/CodeGenCXX/static-local-in-local-class.cpp
    M clang/test/CodeGenCXX/strict-vtable-pointers.cpp
    M clang/test/CodeGenCXX/template-anonymous-types.cpp
    M clang/test/CodeGenCXX/template-instantiation.cpp
    M clang/test/CodeGenCXX/template-linkage.cpp
    M clang/test/CodeGenCXX/temporaries.cpp
    A clang/test/CodeGenCXX/this-nonnull.cpp
    M clang/test/CodeGenCXX/thiscall-struct-return.cpp
    M clang/test/CodeGenCXX/thunk-returning-memptr.cpp
    M clang/test/CodeGenCXX/thunks-ehspec.cpp
    M clang/test/CodeGenCXX/thunks.cpp
    M clang/test/CodeGenCXX/trivial_abi.cpp
    M clang/test/CodeGenCXX/value-init.cpp
    M clang/test/CodeGenCXX/virt-dtor-gen.cpp
    M clang/test/CodeGenCXX/virtual-bases.cpp
    M clang/test/CodeGenCXX/virtual-destructor-calls.cpp
    M clang/test/CodeGenCXX/virtual-functions-incomplete-types.cpp
    M clang/test/CodeGenCXX/virtual-operator-call.cpp
    M clang/test/CodeGenCXX/vla-consruct.cpp
    M clang/test/CodeGenCXX/vla-lambda-capturing.cpp
    M clang/test/CodeGenCXX/volatile.cpp
    M clang/test/CodeGenCXX/vtable-assume-load.cpp
    M clang/test/CodeGenCXX/vtable-pointer-initialization.cpp
    M clang/test/CodeGenCXX/wasm-args-returns.cpp
    M clang/test/CodeGenCXX/wasm-eh.cpp
    M clang/test/CodeGenCoroutines/coro-await.cpp
    M clang/test/CodeGenCoroutines/coro-params.cpp
    M clang/test/CodeGenCoroutines/coro-ret-void.cpp
    M clang/test/CodeGenCoroutines/coro-return-voidtype-initlist.cpp
    M clang/test/CodeGenCoroutines/coro-return.cpp
    M clang/test/CodeGenCoroutines/coro-symmetric-transfer-01.cpp
    M clang/test/CodeGenCoroutines/coro-unhandled-exception.cpp
    M clang/test/CodeGenObjCXX/arc-blocks.mm
    M clang/test/CodeGenObjCXX/arc-list-init-destruct.mm
    M clang/test/CodeGenObjCXX/block-nested-in-lambda.mm
    M clang/test/CodeGenObjCXX/implicit-copy-constructor.mm
    M clang/test/CodeGenObjCXX/lambda-expressions.mm
    M clang/test/CodeGenObjCXX/lvalue-reference-getter.mm
    M clang/test/CodeGenObjCXX/microsoft-abi-arc-param-order.mm
    M clang/test/CodeGenObjCXX/objc-struct-cxx-abi.mm
    M clang/test/CodeGenObjCXX/property-dot-copy-elision.mm
    M clang/test/CodeGenObjCXX/property-dot-reference.mm
    M clang/test/CodeGenObjCXX/property-object-reference-2.mm
    M clang/test/CodeGenObjCXX/property-objects.mm
    M clang/test/CodeGenObjCXX/synthesized-property-cleanup.mm
    M clang/test/CodeGenOpenCLCXX/addrspace-derived-base.cl
    M clang/test/CodeGenOpenCLCXX/addrspace-of-this.cl
    M clang/test/CodeGenOpenCLCXX/addrspace-operators.cl
    M clang/test/CodeGenOpenCLCXX/addrspace-with-class.cl
    M clang/test/CodeGenOpenCLCXX/method-overload-address-space.cl
    M clang/test/CodeGenOpenCLCXX/template-address-spaces.cl
    M clang/test/OpenMP/atomic_codegen.cpp
    M clang/test/OpenMP/declare_reduction_codegen.cpp
    M clang/test/OpenMP/declare_target_codegen.cpp
    M clang/test/OpenMP/distribute_firstprivate_codegen.cpp
    M clang/test/OpenMP/distribute_lastprivate_codegen.cpp
    M clang/test/OpenMP/distribute_parallel_for_firstprivate_codegen.cpp
    M clang/test/OpenMP/distribute_parallel_for_lastprivate_codegen.cpp
    M clang/test/OpenMP/distribute_parallel_for_private_codegen.cpp
    M clang/test/OpenMP/distribute_parallel_for_simd_firstprivate_codegen.cpp
    M clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpp
    M clang/test/OpenMP/distribute_parallel_for_simd_private_codegen.cpp
    M clang/test/OpenMP/distribute_private_codegen.cpp
    M clang/test/OpenMP/distribute_simd_firstprivate_codegen.cpp
    M clang/test/OpenMP/distribute_simd_lastprivate_codegen.cpp
    M clang/test/OpenMP/distribute_simd_private_codegen.cpp
    M clang/test/OpenMP/distribute_simd_reduction_codegen.cpp
    M clang/test/OpenMP/for_firstprivate_codegen.cpp
    M clang/test/OpenMP/for_lastprivate_codegen.cpp
    M clang/test/OpenMP/for_linear_codegen.cpp
    M clang/test/OpenMP/for_private_codegen.cpp
    M clang/test/OpenMP/for_reduction_codegen.cpp
    M clang/test/OpenMP/for_reduction_codegen_UDR.cpp
    M clang/test/OpenMP/master_taskloop_firstprivate_codegen.cpp
    M clang/test/OpenMP/master_taskloop_lastprivate_codegen.cpp
    M clang/test/OpenMP/master_taskloop_private_codegen.cpp
    M clang/test/OpenMP/master_taskloop_simd_firstprivate_codegen.cpp
    M clang/test/OpenMP/master_taskloop_simd_lastprivate_codegen.cpp
    M clang/test/OpenMP/master_taskloop_simd_private_codegen.cpp
    M clang/test/OpenMP/nvptx_lambda_capturing.cpp
    M clang/test/OpenMP/parallel_copyin_codegen.cpp
    M clang/test/OpenMP/parallel_firstprivate_codegen.cpp
    M clang/test/OpenMP/parallel_for_linear_codegen.cpp
    M clang/test/OpenMP/parallel_master_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_firstprivate_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_lastprivate_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_private_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_simd_firstprivate_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_simd_lastprivate_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_simd_private_codegen.cpp
    M clang/test/OpenMP/parallel_num_threads_codegen.cpp
    M clang/test/OpenMP/parallel_private_codegen.cpp
    M clang/test/OpenMP/parallel_reduction_codegen.cpp
    M clang/test/OpenMP/scan_codegen.cpp
    M clang/test/OpenMP/sections_firstprivate_codegen.cpp
    M clang/test/OpenMP/sections_lastprivate_codegen.cpp
    M clang/test/OpenMP/sections_private_codegen.cpp
    M clang/test/OpenMP/sections_reduction_codegen.cpp
    M clang/test/OpenMP/single_codegen.cpp
    M clang/test/OpenMP/single_firstprivate_codegen.cpp
    M clang/test/OpenMP/single_private_codegen.cpp
    M clang/test/OpenMP/target_map_codegen_24.cpp
    M clang/test/OpenMP/target_parallel_if_codegen.cpp
    M clang/test/OpenMP/target_parallel_num_threads_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_firstprivate_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_lastprivate_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_parallel_for_firstprivate_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_parallel_for_lastprivate_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_parallel_for_private_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_parallel_for_reduction_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_private_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_reduction_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_private_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_reduction_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_simd_firstprivate_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_simd_lastprivate_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_simd_private_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_simd_reduction_codegen.cpp
    M clang/test/OpenMP/target_teams_num_teams_codegen.cpp
    M clang/test/OpenMP/target_teams_thread_limit_codegen.cpp
    M clang/test/OpenMP/task_codegen.cpp
    M clang/test/OpenMP/task_firstprivate_codegen.cpp
    M clang/test/OpenMP/task_private_codegen.cpp
    M clang/test/OpenMP/taskloop_firstprivate_codegen.cpp
    M clang/test/OpenMP/taskloop_lastprivate_codegen.cpp
    M clang/test/OpenMP/taskloop_private_codegen.cpp
    M clang/test/OpenMP/taskloop_simd_firstprivate_codegen.cpp
    M clang/test/OpenMP/taskloop_simd_lastprivate_codegen.cpp
    M clang/test/OpenMP/taskloop_simd_private_codegen.cpp
    M clang/test/OpenMP/teams_distribute_firstprivate_codegen.cpp
    M clang/test/OpenMP/teams_distribute_lastprivate_codegen.cpp
    M clang/test/OpenMP/teams_distribute_parallel_for_copyin_codegen.cpp
    M clang/test/OpenMP/teams_distribute_parallel_for_firstprivate_codegen.cpp
    M clang/test/OpenMP/teams_distribute_parallel_for_lastprivate_codegen.cpp
    M clang/test/OpenMP/teams_distribute_parallel_for_private_codegen.cpp
    M clang/test/OpenMP/teams_distribute_parallel_for_reduction_codegen.cpp
    M clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_codegen.cpp
    M clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_codegen.cpp
    M clang/test/OpenMP/teams_distribute_parallel_for_simd_private_codegen.cpp
    M clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_codegen.cpp
    M clang/test/OpenMP/teams_distribute_private_codegen.cpp
    M clang/test/OpenMP/teams_distribute_reduction_codegen.cpp
    M clang/test/OpenMP/teams_distribute_simd_firstprivate_codegen.cpp
    M clang/test/OpenMP/teams_distribute_simd_lastprivate_codegen.cpp
    M clang/test/OpenMP/teams_distribute_simd_private_codegen.cpp
    M clang/test/OpenMP/teams_distribute_simd_reduction_codegen.cpp
    M clang/test/OpenMP/teams_firstprivate_codegen.cpp
    M clang/test/OpenMP/teams_private_codegen.cpp
    M clang/test/OpenMP/threadprivate_codegen.cpp
    M clang/test/Profile/cxx-abc-deleting-dtor.cpp
    M clang/test/utils/update_cc_test_checks/Inputs/basic-cplusplus.cpp.expected

  Log Message:
  -----------
  [CodeGen] Apply 'nonnull' and 'dereferenceable(N)' to 'this' pointer
arguments.

* Adds 'nonnull' and 'dereferenceable(N)' to 'this' pointer arguments
* Gates 'nonnull' on -f(no-)delete-null-pointer-checks
* Introduces this-nonnull.cpp and microsoft-abi-this-nullable.cpp tests to
  explicitly test the behavior of this change
* Refactors hundreds of over-constrained clang tests to permit these
  attributes, where needed
* Updates Clang12 patch notes mentioning this change

Reviewed-by: rsmith, jdoerfert

Differential Revision: https://reviews.llvm.org/D17993




More information about the All-commits mailing list