forked from OSchip/llvm-project
[OpaquePtr][Clang] Add CLANG_ENABLE_OPAQUE_POINTERS cmake option
This option controls whether -opaque-pointers or -no-opaque-pointers is the default. Once opaque pointers are enabled by default, this will provide a simple way to temporarily opt-out of the change. Differential Revision: https://reviews.llvm.org/D123122
This commit is contained in:
parent
02da964350
commit
5390606aa9
|
@ -247,6 +247,17 @@ set(CLANG_SPAWN_CC1 OFF CACHE BOOL
|
|||
|
||||
option(CLANG_DEFAULT_PIE_ON_LINUX "Default to -fPIE and -pie on linux-gnu" ON)
|
||||
|
||||
# Manually handle default so we can change the meaning of a cached default.
|
||||
set(CLANG_ENABLE_OPAQUE_POINTERS "DEFAULT" CACHE STRING
|
||||
"Enable opaque pointers by default")
|
||||
if(CLANG_ENABLE_OPAQUE_POINTERS STREQUAL "DEFAULT")
|
||||
set(CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL OFF)
|
||||
elseif(CLANG_ENABLE_OPAQUE_POINTERS)
|
||||
set(CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL ON)
|
||||
else()
|
||||
set(CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL OFF)
|
||||
endif()
|
||||
|
||||
# TODO: verify the values against LangStandards.def?
|
||||
set(CLANG_DEFAULT_STD_C "" CACHE STRING
|
||||
"Default standard to use for C/ObjC code (IDENT from LangStandards.def, empty for platform default)")
|
||||
|
|
|
@ -89,4 +89,7 @@
|
|||
/* Spawn a new process clang.exe for the CC1 tool invocation, when necessary */
|
||||
#cmakedefine01 CLANG_SPAWN_CC1
|
||||
|
||||
/* Whether to enable opaque pointers by default */
|
||||
#cmakedefine01 CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL
|
||||
|
||||
#endif
|
||||
|
|
|
@ -5507,7 +5507,7 @@ defm enable_noundef_analysis : BoolOption<"",
|
|||
defm opaque_pointers : BoolOption<"",
|
||||
"opaque-pointers",
|
||||
CodeGenOpts<"OpaquePointers">,
|
||||
DefaultFalse,
|
||||
Default<"CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL">,
|
||||
PosFlag<SetTrue, [], "Enable">,
|
||||
NegFlag<SetFalse, [], "Disable">,
|
||||
BothFlags<[], " opaque pointers">>;
|
||||
|
|
Loading…
Reference in New Issue