[PATCH] D73865: [CodeGenModule] Assume dso_local for -fpic -fno-semantic-interposition

Fangrui Song via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Feb 3 00:17:49 PST 2020


MaskRay created this revision.
MaskRay added reviewers: peter.smith, rnk, serge-sans-paille, sfertile.
Herald added subscribers: cfe-commits, luismarques, apazos, sameer.abuasal, pzheng, s.egerton, lenary, Jim, jsji, jocewei, PkmX, arphaman, the_o, brucehoult, MartinMosbeck, rogfer01, atanasyan, edward-jones, zzheng, jrtc27, niosHD, sabuasal, simoncook, johnrusso, rbar, asb, fedor.sergeev, kbarton, jvesely, nemanjai, dylanmckay, jyknight, dschuff.
Herald added a reviewer: jfb.
Herald added a reviewer: jdoerfert.
Herald added a project: clang.

Clang -fpic defaults to -fno-semantic-interposition (GCC -fpic defaults
to -fsemantic-interposition).
Users need to specify -fsemantic-interposition to get semantic
interposition behavior.

Semantic interposition is currently a best-effort feature. There may
still be some cases where it is not handled well.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D73865

Files:
  clang/lib/CodeGen/CodeGenModule.cpp
  clang/test/CXX/expr/p10-0x.cpp
  clang/test/CodeGen/2006-05-19-SingleEltReturn.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/3dnow-builtins.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-branch-protection-attr.c
  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-fp16fml.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-poly128.c
  clang/test/CodeGen/aarch64-poly64.c
  clang/test/CodeGen/aarch64-tme.cpp
  clang/test/CodeGen/aarch64-varargs.c
  clang/test/CodeGen/aarch64-vpcs.c
  clang/test/CodeGen/address-space.c
  clang/test/CodeGen/alias.c
  clang/test/CodeGen/align-systemz.c
  clang/test/CodeGen/align_value.cpp
  clang/test/CodeGen/alignment.c
  clang/test/CodeGen/alloc-align-attr.c
  clang/test/CodeGen/altivec.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-cc.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-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-varargs.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-mte.c
  clang/test/CodeGen/arm_function_epilog.cpp
  clang/test/CodeGen/asm-label.c
  clang/test/CodeGen/assign.c
  clang/test/CodeGen/atomics-inlining.c
  clang/test/CodeGen/attr-msp430.c
  clang/test/CodeGen/attr-target-mv.c
  clang/test/CodeGen/attr-weakref.c
  clang/test/CodeGen/attr-weakref2.c
  clang/test/CodeGen/attr-x86-interrupt.c
  clang/test/CodeGen/attributes.c
  clang/test/CodeGen/avr-builtins.c
  clang/test/CodeGen/avr/attributes/interrupt.c
  clang/test/CodeGen/avr/attributes/signal.c
  clang/test/CodeGen/bitfield-2.c
  clang/test/CodeGen/blocks.c
  clang/test/CodeGen/bool-convert.c
  clang/test/CodeGen/bool-init.c
  clang/test/CodeGen/bool_test.c
  clang/test/CodeGen/builtin-align.c
  clang/test/CodeGen/builtin-constant-p.c
  clang/test/CodeGen/builtin-expect.c
  clang/test/CodeGen/builtin-ms-noop.cpp
  clang/test/CodeGen/builtin-unpredictable.c
  clang/test/CodeGen/builtins-arm.c
  clang/test/CodeGen/builtins-ppc-altivec.c
  clang/test/CodeGen/builtins-ppc-crypto.c
  clang/test/CodeGen/builtins-ppc-htm.c
  clang/test/CodeGen/builtins-ppc-p7.c
  clang/test/CodeGen/builtins-ppc-p8vector.c
  clang/test/CodeGen/builtins-ppc-quadword.c
  clang/test/CodeGen/builtins-ppc-vsx.c
  clang/test/CodeGen/builtins-ppc.c
  clang/test/CodeGen/c11atomics.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-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-icall-canonical-jump-tables.c
  clang/test/CodeGen/cfi-icall-cross-dso2.c
  clang/test/CodeGen/cfi-icall-generalize.c
  clang/test/CodeGen/cfstring-elf-cfbuild-x86_64.c
  clang/test/CodeGen/clang-sections-attribute.c
  clang/test/CodeGen/cleanup-destslot-simple.c
  clang/test/CodeGen/const-arithmetic.c
  clang/test/CodeGen/const-init.c
  clang/test/CodeGen/decl-in-prototype.c
  clang/test/CodeGen/default-address-space.c
  clang/test/CodeGen/default-function-attr.c
  clang/test/CodeGen/designated-initializers.c
  clang/test/CodeGen/dllexport-1.c
  clang/test/CodeGen/dso-local-executable.c
  clang/test/CodeGen/enable_if.c
  clang/test/CodeGen/exceptions.c
  clang/test/CodeGen/exprs.c
  clang/test/CodeGen/flatten.c
  clang/test/CodeGen/flexible-array-init.c
  clang/test/CodeGen/fp16-ops.c
  clang/test/CodeGen/function-attributes.c
  clang/test/CodeGen/functions.c
  clang/test/CodeGen/global-decls.c
  clang/test/CodeGen/global-init.c
  clang/test/CodeGen/iamcu-abi.c
  clang/test/CodeGen/ifunc.c
  clang/test/CodeGen/init-memset.c
  clang/test/CodeGen/init.c
  clang/test/CodeGen/inline.c
  clang/test/CodeGen/lanai-arguments.c
  clang/test/CodeGen/le32-arguments.c
  clang/test/CodeGen/le32-libcall-pow.c
  clang/test/CodeGen/le32-vaarg.c
  clang/test/CodeGen/libcalls.c
  clang/test/CodeGen/lifetime-debuginfo-1.c
  clang/test/CodeGen/lifetime-debuginfo-2.c
  clang/test/CodeGen/link-bitcode-file.c
  clang/test/CodeGen/long-call-attr.c
  clang/test/CodeGen/long_double_fp128.cpp
  clang/test/CodeGen/malign-double-x86-nacl.c
  clang/test/CodeGen/malign-double.cpp
  clang/test/CodeGen/mangle-windows.c
  clang/test/CodeGen/mbackchain.c
  clang/test/CodeGen/mcu-struct-return.c
  clang/test/CodeGen/micromips-attr.c
  clang/test/CodeGen/microsoft-call-conv.c
  clang/test/CodeGen/mips-byval-arg.c
  clang/test/CodeGen/mips-interrupt-attr.c
  clang/test/CodeGen/mips-transparent-union.c
  clang/test/CodeGen/mips-varargs.c
  clang/test/CodeGen/mips-vector-arg.c
  clang/test/CodeGen/mips-vector-return.c
  clang/test/CodeGen/mips-zero-sized-struct.c
  clang/test/CodeGen/mips16-attr.c
  clang/test/CodeGen/mips64-class-return.cpp
  clang/test/CodeGen/mips64-padding-arg.c
  clang/test/CodeGen/mrtd.c
  clang/test/CodeGen/ms_abi.c
  clang/test/CodeGen/ms_abi_aarch64.c
  clang/test/CodeGen/no-builtin.cpp
  clang/test/CodeGen/noduplicate-cxx11-test.cpp
  clang/test/CodeGen/nvptx-abi.c
  clang/test/CodeGen/packed-arrays.c
  clang/test/CodeGen/packed-structure.c
  clang/test/CodeGen/partial-reinitialization1.c
  clang/test/CodeGen/patchable-function-entry.c
  clang/test/CodeGen/powerpc_types.c
  clang/test/CodeGen/ppc-signbit.c
  clang/test/CodeGen/ppc64-align-struct.c
  clang/test/CodeGen/ppc64-complex-parms.c
  clang/test/CodeGen/ppc64-complex-return.c
  clang/test/CodeGen/ppc64-dwarf.c
  clang/test/CodeGen/ppc64-elf-abi.c
  clang/test/CodeGen/ppc64-extend.c
  clang/test/CodeGen/ppc64-inline-asm.c
  clang/test/CodeGen/ppc64-long-double.cpp
  clang/test/CodeGen/ppc64-qpx-vector.c
  clang/test/CodeGen/ppc64-soft-float.c
  clang/test/CodeGen/ppc64-struct-onefloat.c
  clang/test/CodeGen/ppc64-struct-onevect.c
  clang/test/CodeGen/ppc64-vector.c
  clang/test/CodeGen/ppc64le-aggregates.c
  clang/test/CodeGen/ppc64le-f128Aggregates.c
  clang/test/CodeGen/pr25786.c
  clang/test/CodeGen/pr34021.c
  clang/test/CodeGen/pr9614.c
  clang/test/CodeGen/pragma-weak.c
  clang/test/CodeGen/prefetchw-builtins.c
  clang/test/CodeGen/redefine_extname.c
  clang/test/CodeGen/regcall.c
  clang/test/CodeGen/regparm.c
  clang/test/CodeGen/riscv-inline-asm.c
  clang/test/CodeGen/riscv32-ilp32-abi.c
  clang/test/CodeGen/riscv32-ilp32-ilp32f-abi.c
  clang/test/CodeGen/riscv32-ilp32-ilp32f-ilp32d-abi.c
  clang/test/CodeGen/riscv32-ilp32d-abi.c
  clang/test/CodeGen/riscv32-ilp32f-abi.c
  clang/test/CodeGen/riscv32-ilp32f-ilp32d-abi.c
  clang/test/CodeGen/riscv64-lp64-abi.c
  clang/test/CodeGen/riscv64-lp64-lp64f-abi.c
  clang/test/CodeGen/riscv64-lp64-lp64f-lp64d-abi.c
  clang/test/CodeGen/riscv64-lp64d-abi.c
  clang/test/CodeGen/riscv64-lp64f-lp64d-abi.c
  clang/test/CodeGen/sanitize-address-field-padding.cpp
  clang/test/CodeGen/sparc-arguments.c
  clang/test/CodeGen/sparc-vaarg.c
  clang/test/CodeGen/sparcv8-abi.c
  clang/test/CodeGen/sparcv8-inline-asm.c
  clang/test/CodeGen/sparcv9-abi.c
  clang/test/CodeGen/sparcv9-dwarf.c
  clang/test/CodeGen/spir-half-type.cpp
  clang/test/CodeGen/stackrealign-main.c
  clang/test/CodeGen/stdcall-fastcall.c
  clang/test/CodeGen/switch.c
  clang/test/CodeGen/systemz-abi-vector.c
  clang/test/CodeGen/systemz-abi.c
  clang/test/CodeGen/systemz-abi.cpp
  clang/test/CodeGen/systemz-inline-asm.c
  clang/test/CodeGen/thread-specifier.c
  clang/test/CodeGen/tls-model.c
  clang/test/CodeGen/transparent-union-redecl.c
  clang/test/CodeGen/transparent-union.c
  clang/test/CodeGen/ubsan-asan-noreturn.c
  clang/test/CodeGen/ubsan-function.cpp
  clang/test/CodeGen/unaligned-decl.c
  clang/test/CodeGen/union-tbaa1.c
  clang/test/CodeGen/unsigned-overflow-minimal.c
  clang/test/CodeGen/unwind-attr.c
  clang/test/CodeGen/variadic-null-win64.c
  clang/test/CodeGen/visibility.c
  clang/test/CodeGen/vla.c
  clang/test/CodeGen/volatile-complex.c
  clang/test/CodeGen/x86-inline-asm-min-vector-width.c
  clang/test/CodeGen/x86-long-double.cpp
  clang/test/CodeGen/x86-soft-float.c
  clang/test/CodeGen/x86-vec-i128.c
  clang/test/CodeGen/x86_32-arguments-iamcu.c
  clang/test/CodeGen/x86_32-arguments-linux.c
  clang/test/CodeGen/x86_32-arguments-nommx.c
  clang/test/CodeGen/x86_64-arguments-nacl.c
  clang/test/CodeGen/x86_64-arguments.c
  clang/test/CodeGen/x86_64-floatvectors.c
  clang/test/CodeGen/x86_64-longdouble.c
  clang/test/CodeGen/xcore-abi.c
  clang/test/CodeGen/xcore-abi.cpp
  clang/test/CodeGen/xray-always-instrument.cpp
  clang/test/CodeGen/xray-attr-list.cpp
  (209 more files...)





More information about the cfe-commits mailing list