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...) _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits