diff options
author | Leonard Chan <leonardchan@google.com> | 2023-09-13 23:59:12 +0000 |
---|---|---|
committer | Leonard Chan <leonardchan@google.com> | 2023-09-14 00:00:50 +0000 |
commit | e16474ba2cba8fa69b413a83852d06c93155f8c9 (patch) | |
tree | dda18a7f5b770c31448ed484e2e656d7d06e6792 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 87e11ecbaec95d8411d1b332d6d88d458b408739 (diff) | |
download | llvm-e16474ba2cba8fa69b413a83852d06c93155f8c9.zip llvm-e16474ba2cba8fa69b413a83852d06c93155f8c9.tar.gz llvm-e16474ba2cba8fa69b413a83852d06c93155f8c9.tar.bz2 |
Revert "Revert "[clang] Add experimental option to omit the RTTI component from the vtable when -fno-rtti is used""
This attempts to reland 6385c1df919f237d4149fabf542a158f61010bf8 but
with a fix for the test failure.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 730db8e..2dd299b 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -4109,6 +4109,14 @@ bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args, options::OPT_fno_experimental_relative_cxx_abi_vtables, TargetCXXABI::usesRelativeVTables(T)); + // RTTI is on by default. + bool HasRTTI = Args.hasFlag(options::OPT_frtti, options::OPT_fno_rtti, true); + Opts.OmitVTableRTTI = + Args.hasFlag(options::OPT_fexperimental_omit_vtable_rtti, + options::OPT_fno_experimental_omit_vtable_rtti, false); + if (Opts.OmitVTableRTTI && HasRTTI) + Diags.Report(diag::err_drv_using_omit_rtti_component_without_no_rtti); + for (const auto &A : Args.getAllArgValues(OPT_fmacro_prefix_map_EQ)) { auto Split = StringRef(A).split('='); Opts.MacroPrefixMap.insert( |