llvm-project/clang/lib/Driver
Peter Collingbourne a8b2f7c0d7 Rework interface for bitset-using features to use a notion of LTO visibility.
Bitsets, and the compiler features they rely on (vtable opt, CFI),
only have visibility within the LTO'd part of the linkage unit. Therefore,
only enable these features for classes with hidden LTO visibility. This
notion is based on object file visibility or (on Windows)
dllimport/dllexport attributes.

We provide the [[clang::lto_visibility_public]] attribute to override the
compiler's LTO visibility inference in cases where the class is defined
in the non-LTO'd part of the linkage unit, or where the ABI supports
calling classes derived from abstract base classes with hidden visibility
in other linkage units (e.g. COM on Windows).

If the cross-DSO CFI mode is enabled, bitset checks are emitted even for
classes with public LTO visibility, as that mode uses a separate mechanism
to cause bitsets to be exported.

This mechanism replaces the whole-program-vtables blacklist, so remove the
-fwhole-program-vtables-blacklist flag.

Because __declspec(uuid()) now implies [[clang::lto_visibility_public]], the
support for the special attr:uuid blacklist entry is removed.

Differential Revision: http://reviews.llvm.org/D18635

llvm-svn: 267784
2016-04-27 20:39:53 +00:00
..
Action.cpp [CUDA] Invoke ptxas and fatbinary during compilation. 2016-01-14 21:41:27 +00:00
CMakeLists.txt Support mingw-w64 and mingw.org toolchains at any install location. 2015-07-02 04:45:27 +00:00
Compilation.cpp Bail on compilation as soon as a job fails. 2016-02-24 21:49:28 +00:00
CrossWindowsToolChain.cpp Driver: tweak CrossWindows sanitizer support 2015-10-29 03:36:38 +00:00
Driver.cpp driver: Add a `--rsp-quoting` flag to pick response file quoting. 2016-04-25 21:15:49 +00:00
DriverOptions.cpp Update clang to match llvm r250901. OptTable constructor now takes an ArrayRef. NFC 2015-10-21 16:31:33 +00:00
InputInfo.h Add an Action* member to InputInfo. 2016-01-11 23:15:21 +00:00
Job.cpp [CrashReproducer] Pass -I, -F and -resource-dir to the reproducer script when using modules/vfs 2016-04-04 20:26:57 +00:00
MSVCToolChain.cpp clang-cl: Remove -isystem, add -imsvc. 2016-04-12 19:04:37 +00:00
MinGWToolChain.cpp Revert r253898 and r253899, this breaks mingw compilation on openSUSE. 2016-01-12 10:41:20 +00:00
Multilib.cpp [Driver] Remove `else` after `return` 2015-10-12 14:32:57 +00:00
Phases.cpp Reapply "Change -save-temps to emit unoptimized bitcode files." 2014-12-21 07:00:00 +00:00
SanitizerArgs.cpp Rework interface for bitset-using features to use a notion of LTO visibility. 2016-04-27 20:39:53 +00:00
Tool.cpp Roll-back r250822. 2015-10-20 13:23:58 +00:00
ToolChain.cpp Make FreeBSD and NetBSD use CLANG_DEFAULT_CXX_STDLIB 2016-03-14 14:34:04 +00:00
ToolChains.cpp [esan] EfficiencySanitizer driver flags 2016-04-21 21:32:04 +00:00
ToolChains.h Enable PIE for CloudABI. 2016-04-06 15:37:06 +00:00
Tools.cpp Rework interface for bitset-using features to use a notion of LTO visibility. 2016-04-27 20:39:53 +00:00
Tools.h [AMDGPU] Switch linker to amdphdrs + update test 2016-03-29 15:54:09 +00:00
Types.cpp Fix remaining Clang-tidy readability-redundant-control-flow warnings; other minor fixes. 2016-02-12 22:53:10 +00:00