diff options
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/AST/VTableBuilder.cpp | 9 | ||||
-rw-r--r-- | clang/lib/Driver/ToolChains/Clang.cpp | 6 | ||||
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 8 |
3 files changed, 2 insertions, 21 deletions
diff --git a/clang/lib/AST/VTableBuilder.cpp b/clang/lib/AST/VTableBuilder.cpp index cce0a50..a587f9b 100644 --- a/clang/lib/AST/VTableBuilder.cpp +++ b/clang/lib/AST/VTableBuilder.cpp @@ -665,11 +665,7 @@ CharUnits VCallAndVBaseOffsetBuilder::getCurrentOffsetOffset() const { // vtable address point. (We subtract 3 to account for the information just // above the address point, the RTTI info, the offset to top, and the // vcall offset itself). - size_t NumComponentsAboveAddrPoint = 3; - if (Context.getLangOpts().OmitVTableRTTI) - NumComponentsAboveAddrPoint--; - int64_t OffsetIndex = - -(int64_t)(NumComponentsAboveAddrPoint + Components.size()); + int64_t OffsetIndex = -(int64_t)(3 + Components.size()); // Under the relative ABI, the offset widths are 32-bit ints instead of // pointer widths. @@ -1673,8 +1669,7 @@ void ItaniumVTableBuilder::LayoutPrimaryAndSecondaryVTables( Components.push_back(VTableComponent::MakeOffsetToTop(OffsetToTop)); // Next, add the RTTI. - if (!Context.getLangOpts().OmitVTableRTTI) - Components.push_back(VTableComponent::MakeRTTI(MostDerivedClass)); + Components.push_back(VTableComponent::MakeRTTI(MostDerivedClass)); uint64_t AddressPoint = Components.size(); diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 40e6058..531677e 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -5526,9 +5526,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, Args.AddLastArg(CmdArgs, options::OPT_fexperimental_relative_cxx_abi_vtables, options::OPT_fno_experimental_relative_cxx_abi_vtables); - Args.AddLastArg(CmdArgs, options::OPT_fexperimental_omit_vtable_rtti, - options::OPT_fno_experimental_omit_vtable_rtti); - // Handle segmented stacks. Args.addOptInFlag(CmdArgs, options::OPT_fsplit_stack, options::OPT_fno_split_stack); @@ -6010,9 +6007,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, Args.AddLastArg(CmdArgs, options::OPT_fexperimental_relative_cxx_abi_vtables, options::OPT_fno_experimental_relative_cxx_abi_vtables); - Args.AddLastArg(CmdArgs, options::OPT_fexperimental_omit_vtable_rtti, - options::OPT_fno_experimental_omit_vtable_rtti); - if (Arg *A = Args.getLastArg(options::OPT_ffuchsia_api_level_EQ)) A->render(Args, CmdArgs); diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 2dd299b..730db8e 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -4109,14 +4109,6 @@ 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( |