Skip to content

Commit

Permalink
Revert "[clang] Add experimental option to omit the RTTI component fr…
Browse files Browse the repository at this point in the history
…om the vtable when -fno-rtti is used"

This reverts commit 6385c1d.

Reverting since this broke a windows builder:
https://lab.llvm.org/buildbot/#/builders/216/builds/27252.
  • Loading branch information
PiJoules committed Sep 13, 2023
1 parent f82ee15 commit 87e11ec
Show file tree
Hide file tree
Showing 11 changed files with 2 additions and 153 deletions.
3 changes: 0 additions & 3 deletions clang/include/clang/Basic/DiagnosticDriverKinds.td
Original file line number Diff line number Diff line change
Expand Up @@ -674,9 +674,6 @@ def err_cc1_round_trip_mismatch : Error<
def err_cc1_unbounded_vscale_min : Error<
"minimum vscale must be an unsigned integer greater than 0">;

def err_drv_using_omit_rtti_component_without_no_rtti : Error<
"-fexperimental-omit-vtable-rtti call only be used with -fno-rtti">;

def err_drv_ssp_missing_offset_argument : Error<
"'%0' is used without '-mstack-protector-guard-offset', and there is no default">;

Expand Down
3 changes: 0 additions & 3 deletions clang/include/clang/Basic/LangOptions.def
Original file line number Diff line number Diff line change
Expand Up @@ -450,9 +450,6 @@ LANGOPT(SpeculativeLoadHardening, 1, 0, "Speculative load hardening enabled")
LANGOPT(RelativeCXXABIVTables, 1, 0,
"Use an ABI-incompatible v-table layout that uses relative references")

LANGOPT(OmitVTableRTTI, 1, 0,
"Use an ABI-incompatible v-table layout that omits the RTTI component")

LANGOPT(VScaleMin, 32, 0, "Minimum vscale value")
LANGOPT(VScaleMax, 32, 0, "Maximum vscale value")

Expand Down
6 changes: 0 additions & 6 deletions clang/include/clang/Driver/Options.td
Original file line number Diff line number Diff line change
Expand Up @@ -2671,12 +2671,6 @@ def fno_experimental_relative_cxx_abi_vtables :
Group<f_clang_Group>, Visibility<[ClangOption, CC1Option]>,
HelpText<"Do not use the experimental C++ class ABI for classes with virtual tables">;

defm experimental_omit_vtable_rtti : BoolFOption<"experimental-omit-vtable-rtti",
LangOpts<"OmitVTableRTTI">, DefaultFalse,
PosFlag<SetTrue, [], [CC1Option], "Omit">,
NegFlag<SetFalse, [], [CC1Option], "Do not omit">,
BothFlags<[], [CC1Option], " the RTTI component from virtual tables">>;

def fcxx_abi_EQ : Joined<["-"], "fc++-abi=">,
Group<f_clang_Group>, Visibility<[ClangOption, CC1Option]>,
HelpText<"C++ ABI to use. This will override the target C++ ABI.">;
Expand Down
9 changes: 2 additions & 7 deletions clang/lib/AST/VTableBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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();

Expand Down
6 changes: 0 additions & 6 deletions clang/lib/Driver/ToolChains/Clang.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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);

Expand Down
8 changes: 0 additions & 8 deletions clang/lib/Frontend/CompilerInvocation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down

This file was deleted.

51 changes: 0 additions & 51 deletions clang/test/CodeGenCXX/OmitRTTIComponentABI/vbase-offset.cpp

This file was deleted.

19 changes: 0 additions & 19 deletions clang/test/CodeGenCXX/OmitRTTIComponentABI/vtable-layout.cpp

This file was deleted.

5 changes: 0 additions & 5 deletions clang/test/Driver/omit-rtti-component-flag.cpp

This file was deleted.

13 changes: 0 additions & 13 deletions clang/test/Driver/omit-rtti-component-without-no-rtti.cpp

This file was deleted.

0 comments on commit 87e11ec

Please sign in to comment.