[PATCH] D81678: Introduce frozen attribute at call sites for stricter poison analysis
Gui Andrade via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jun 19 16:52:01 PDT 2020
guiand updated this revision to Diff 272213.
guiand retitled this revision from "Introduce partialinit attribute at call sites for stricter poison analysis" to "Introduce frozen attribute at call sites for stricter poison analysis".
guiand edited the summary of this revision.
guiand added a comment.
Herald added subscribers: sstefan1, phosek, dmgreen, mstorsjo, arphaman, dylanmckay, dschuff, emaste.
Herald added a reviewer: jdoerfert.
Reversing the meaning of the attribute to `frozen` and having the code not apply it to records removed pretty much all the logical changes in the code.
I took Juneyoung's suggestion and added a new cc1 flag, -disable-frozen-args (doesn't apply to return position, only argument position `frozen` attributes), and applied that to some 150 particularly problematic tests. Thousands of other tests were programatically and manually changed to include the new attribute.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D81678/new/
https://reviews.llvm.org/D81678
Files:
clang/include/clang/AST/Type.h
clang/include/clang/Basic/CodeGenOptions.def
clang/include/clang/Driver/CC1Options.td
clang/lib/CodeGen/CGCall.cpp
clang/lib/Frontend/CompilerInvocation.cpp
clang/test/ARCMT/objcmt-instancetype.m
clang/test/ARCMT/objcmt-instancetype.m.result
clang/test/ARCMT/objcmt-numeric-literals.m
clang/test/ARCMT/objcmt-numeric-literals.m.result
clang/test/AST/ast-dump-openmp-begin-declare-variant_6.c
clang/test/ASTMerge/unnamed_fields/test.cpp
clang/test/Analysis/casts.c
clang/test/Analysis/inlining/DynDispatchBifurcate.m
clang/test/Analysis/inlining/InlineObjCClassMethod.m
clang/test/Analysis/misc-ps-region-store.m
clang/test/Analysis/missing-bind-temporary.cpp
clang/test/Analysis/silence-checkers-and-packages-core-all.cpp
clang/test/CXX/class/class.compare/class.compare.default/p4.cpp
clang/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p11.cpp
clang/test/CXX/dcl.dcl/dcl.spec/dcl.constexpr/dtor.cpp
clang/test/CXX/dcl.decl/dcl.init/dcl.init.ref/p5-var.cpp
clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct/p2-cxx0x.cpp
clang/test/CXX/drs/dr0xx.cpp
clang/test/CXX/except/except.spec/p14-ir.cpp
clang/test/CXX/expr/expr.prim/expr.prim.lambda/blocks-irgen.mm
clang/test/CXX/modules-ts/codegen-basics.cppm
clang/test/CXX/special/class.copy/p3.cpp
clang/test/CodeGen/2004-02-13-Memset.c
clang/test/CodeGen/2004-06-17-UnorderedCompares.c
clang/test/CodeGen/2006-05-19-SingleEltReturn.c
clang/test/CodeGen/2007-02-25-C-DotDotDot.c
clang/test/CodeGen/2007-06-18-SextAttrAggregate.c
clang/test/CodeGen/2008-03-05-syncPtr.c
clang/test/CodeGen/2008-07-29-override-alias-decl.c
clang/test/CodeGen/2008-07-30-implicit-initialization.c
clang/test/CodeGen/2008-07-31-promotion-of-compound-pointer-arithmetic.c
clang/test/CodeGen/2009-02-13-zerosize-union-field.c
clang/test/CodeGen/2009-05-04-EnumInreg.c
clang/test/CodeGen/2009-09-24-SqrtErrno.c
clang/test/CodeGen/3dnow-builtins.c
clang/test/CodeGen/64bit-swiftcall.c
clang/test/CodeGen/PR3589-freestanding-libcalls.c
clang/test/CodeGen/_Bool-conversion.c
clang/test/CodeGen/aapcs-align.cpp
clang/test/CodeGen/aapcs64-align.cpp
clang/test/CodeGen/aarch64-args.cpp
clang/test/CodeGen/aarch64-byval-temp.c
clang/test/CodeGen/aarch64-neon-3v.c
clang/test/CodeGen/aarch64-neon-across.c
clang/test/CodeGen/aarch64-neon-dot-product.c
clang/test/CodeGen/aarch64-neon-extract.c
clang/test/CodeGen/aarch64-neon-fcvt-intrinsics.c
clang/test/CodeGen/aarch64-neon-fma.c
clang/test/CodeGen/aarch64-neon-ldst-one.c
clang/test/CodeGen/aarch64-neon-scalar-copy.c
clang/test/CodeGen/aarch64-neon-scalar-x-indexed-elem.c
clang/test/CodeGen/aarch64-neon-tbl.c
clang/test/CodeGen/aarch64-neon-vcombine.c
clang/test/CodeGen/aarch64-neon-vget-hilo.c
clang/test/CodeGen/aarch64-neon-vget.c
clang/test/CodeGen/aarch64-poly128.c
clang/test/CodeGen/aarch64-poly64.c
clang/test/CodeGen/aarch64-varargs-ms.c
clang/test/CodeGen/aarch64-varargs.c
clang/test/CodeGen/address-space-avr.c
clang/test/CodeGen/address-space-field1.c
clang/test/CodeGen/address-space.c
clang/test/CodeGen/aggregate-assign-call.c
clang/test/CodeGen/aix-return.c
clang/test/CodeGen/aix-struct-arg.c
clang/test/CodeGen/aix-vaargs.c
clang/test/CodeGen/alias.c
clang/test/CodeGen/align-param.c
clang/test/CodeGen/align_value.cpp
clang/test/CodeGen/alloc-align-attr.c
clang/test/CodeGen/arc/arguments.c
clang/test/CodeGen/arc/struct-align.c
clang/test/CodeGen/arm-aapcs-vfp.c
clang/test/CodeGen/arm-abi-vector.c
clang/test/CodeGen/arm-arguments.c
clang/test/CodeGen/arm-bf16-params-returns.c
clang/test/CodeGen/arm-byval-align.c
clang/test/CodeGen/arm-cmse-attr.c
clang/test/CodeGen/arm-cmse-call.c
clang/test/CodeGen/arm-float-helpers.c
clang/test/CodeGen/arm-fp16-arguments.c
clang/test/CodeGen/arm-homogenous.c
clang/test/CodeGen/arm-mangle-bf16.cpp
clang/test/CodeGen/arm-neon-directed-rounding.c
clang/test/CodeGen/arm-neon-dot-product.c
clang/test/CodeGen/arm-neon-fma.c
clang/test/CodeGen/arm-neon-numeric-maxmin.c
clang/test/CodeGen/arm-neon-vcvtX.c
clang/test/CodeGen/arm-pcs.c
clang/test/CodeGen/arm-swiftcall.c
clang/test/CodeGen/arm-varargs.c
clang/test/CodeGen/arm-vector-arguments.c
clang/test/CodeGen/arm-vfp16-arguments.c
clang/test/CodeGen/arm-vfp16-arguments2.cpp
clang/test/CodeGen/arm64-aapcs-arguments.c
clang/test/CodeGen/arm64-abi-vector.c
clang/test/CodeGen/arm64-arguments.c
clang/test/CodeGen/arm64-microsoft-arguments.cpp
clang/test/CodeGen/arm64-microsoft-intrinsics.c
clang/test/CodeGen/arm64-mte.c
clang/test/CodeGen/arm64_32-vaarg.c
clang/test/CodeGen/arm64_32.c
clang/test/CodeGen/arm64_vcopy.c
clang/test/CodeGen/arm64_vdupq_n_f64.c
clang/test/CodeGen/arm_neon_intrinsics.c
clang/test/CodeGen/armv7k-abi.c
clang/test/CodeGen/asm-goto.c
clang/test/CodeGen/asm-inout.c
clang/test/CodeGen/asm-label.c
clang/test/CodeGen/asm-reg-var-local.c
clang/test/CodeGen/assume-aligned-and-alloc-align-attributes.c
clang/test/CodeGen/atomic-arm64.c
clang/test/CodeGen/atomic-ops-libcall.c
clang/test/CodeGen/atomic-ops.c
clang/test/CodeGen/atomic_ops.c
clang/test/CodeGen/atomics-inlining.c
clang/test/CodeGen/attr-cpuspecific.c
clang/test/CodeGen/attr-disable-tail-calls.c
clang/test/CodeGen/attr-func-def.c
clang/test/CodeGen/attr-naked.c
clang/test/CodeGen/attr-no-tail.c
clang/test/CodeGen/attr-nomerge.cpp
clang/test/CodeGen/attr-optnone.c
clang/test/CodeGen/attr-target-mv-func-ptrs.c
clang/test/CodeGen/attr-target-mv-va-args.c
clang/test/CodeGen/attr-target-mv.c
clang/test/CodeGen/attr-x86-interrupt.c
clang/test/CodeGen/attributes.c
clang/test/CodeGen/available-externally-hidden.cpp
clang/test/CodeGen/available-externally-suppress.c
clang/test/CodeGen/avr-builtins.c
clang/test/CodeGen/avx2-builtins.c
clang/test/CodeGen/avx512-reduceMinMaxIntrin.c
clang/test/CodeGen/big-atomic-ops.c
clang/test/CodeGen/bitfield-2.c
clang/test/CodeGen/bittest-intrin.c
clang/test/CodeGen/blocks-seq.c
clang/test/CodeGen/blocks.c
clang/test/CodeGen/bool-convert.c
clang/test/CodeGen/bpf-attr-preserve-access-index-4.c
clang/test/CodeGen/builtin-align-array.c
clang/test/CodeGen/builtin-align.c
clang/test/CodeGen/builtin-assume-aligned.c
clang/test/CodeGen/builtin-assume.c
clang/test/CodeGen/builtin-attributes.c
clang/test/CodeGen/builtin-bpf-btf-type-id.c
clang/test/CodeGen/builtin-constant-p.c
clang/test/CodeGen/builtin-expect.c
clang/test/CodeGen/builtin-memfns.c
clang/test/CodeGen/builtin-ms-noop.cpp
clang/test/CodeGen/builtin-preserve-access-index-array.c
clang/test/CodeGen/builtin-preserve-access-index-nonptr.c
clang/test/CodeGen/builtin-preserve-access-index-typedef.c
clang/test/CodeGen/builtin-preserve-access-index.c
clang/test/CodeGen/builtin-sponentry.c
clang/test/CodeGen/builtin-sqrt.c
clang/test/CodeGen/builtins-arm.c
clang/test/CodeGen/builtins-bpf-preserve-field-info-1.c
clang/test/CodeGen/builtins-bpf-preserve-field-info-2.c
clang/test/CodeGen/builtins-memcpy-inline.c
clang/test/CodeGen/builtins-ms.c
clang/test/CodeGen/builtins-multiprecision.c
clang/test/CodeGen/builtins-overflow.c
clang/test/CodeGen/builtins-ppc-crypto.c
clang/test/CodeGen/builtins-ppc-p7.c
clang/test/CodeGen/builtins-ppc.c
clang/test/CodeGen/builtins.c
clang/test/CodeGen/c-strings.c
clang/test/CodeGen/c11atomics-ios.c
clang/test/CodeGen/c11atomics.c
clang/test/CodeGen/callback_annotated.c
clang/test/CodeGen/callback_openmp.c
clang/test/CodeGen/callback_pthread_create.c
clang/test/CodeGen/calling-conv-ignored.c
clang/test/CodeGen/catch-alignment-assumption-attribute-align_value-on-lvalue.cpp
clang/test/CodeGen/catch-alignment-assumption-attribute-align_value-on-paramvar.cpp
clang/test/CodeGen/catch-alignment-assumption-attribute-alloc_align-on-function-variable.cpp
clang/test/CodeGen/catch-alignment-assumption-attribute-alloc_align-on-function.cpp
clang/test/CodeGen/catch-alignment-assumption-attribute-assume_aligned-on-function-two-params.cpp
clang/test/CodeGen/catch-alignment-assumption-attribute-assume_aligned-on-function.cpp
clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params-variable.cpp
clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params.cpp
clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-two-params.cpp
clang/test/CodeGen/catch-alignment-assumption-openmp.cpp
clang/test/CodeGen/catch-implicit-integer-sign-changes-incdec.c
clang/test/CodeGen/catch-implicit-integer-sign-changes.c
clang/test/CodeGen/catch-implicit-signed-integer-truncation-or-sign-change.c
clang/test/CodeGen/catch-nullptr-and-nonzero-offset-in-offsetof-idiom.c
clang/test/CodeGen/catch-nullptr-and-nonzero-offset-when-nullptr-is-defined.c
clang/test/CodeGen/catch-nullptr-and-nonzero-offset.c
clang/test/CodeGen/catch-pointer-overflow-volatile.c
clang/test/CodeGen/catch-pointer-overflow.c
clang/test/CodeGen/cfi-check-fail.c
clang/test/CodeGen/cfi-check-fail2.c
clang/test/CodeGen/cfi-icall-generalize.c
clang/test/CodeGen/cleanup-destslot-simple.c
clang/test/CodeGen/cmse-clear-arg.c
clang/test/CodeGen/cmse-clear-fp16.c
clang/test/CodeGen/complex-builtins.c
clang/test/CodeGen/complex-indirect.c
clang/test/CodeGen/complex-init-list.c
clang/test/CodeGen/complex-libcalls.c
clang/test/CodeGen/complex-math.c
clang/test/CodeGen/compound-literal.c
clang/test/CodeGen/constructor-attribute.c
clang/test/CodeGen/cxx-default-arg.cpp
clang/test/CodeGen/debug-info-block-vars.c
clang/test/CodeGen/debug-info-codeview-heapallocsite.c
clang/test/CodeGen/debug-info-no-inline-line-tables.c
clang/test/CodeGen/decl-in-prototype.c
clang/test/CodeGen/decl.c
clang/test/CodeGen/default-address-space.c
clang/test/CodeGen/disable-tail-calls.c
clang/test/CodeGen/dso-local-executable.c
clang/test/CodeGen/enable_if.c
clang/test/CodeGen/exceptions-seh-finally.c
clang/test/CodeGen/exceptions-seh-leave.c
clang/test/CodeGen/exceptions-seh-nested-finally.c
clang/test/CodeGen/exceptions-seh.c
clang/test/CodeGen/exceptions.c
clang/test/CodeGen/exprs.c
clang/test/CodeGen/ext-int-cc.c
clang/test/CodeGen/extern-inline.c
clang/test/CodeGen/fp-floatcontrol-pragma.cpp
clang/test/CodeGen/fp-function-attrs.cpp
clang/test/CodeGen/fp-options-to-fast-math-flags.c
clang/test/CodeGen/fp128_complex.c
clang/test/CodeGen/fpconstrained-cmp-double.c
clang/test/CodeGen/fpconstrained-cmp-float.c
clang/test/CodeGen/function-attributes.c
clang/test/CodeGen/functions.c
clang/test/CodeGen/global-decls.c
clang/test/CodeGen/hexagon-hvx-abi.c
clang/test/CodeGen/ifunc.c
clang/test/CodeGen/incomplete-function-type-2.c
clang/test/CodeGen/inline-optim.c
clang/test/CodeGen/inline.c
clang/test/CodeGen/inline2.c
clang/test/CodeGen/lanai-arguments.c
clang/test/CodeGen/lanai-regparm.c
clang/test/CodeGen/le32-arguments.c
clang/test/CodeGen/le32-libcall-pow.c
clang/test/CodeGen/le32-vaarg.c
clang/test/CodeGen/libcall-declarations.c
clang/test/CodeGen/libcalls-complex.c
(1081 more files...)
More information about the cfe-commits
mailing list