[clang] [clang] Remove the experimental prefix from -fexperimental-relative-c++-abi-vtables (PR #142845)

via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 4 13:29:52 PDT 2025


https://github.com/PiJoules updated https://github.com/llvm/llvm-project/pull/142845

>From 7cf215da28c51159ffef7b458bd38d4389b410b1 Mon Sep 17 00:00:00 2001
From: Leonard Chan <leonardchan at google.com>
Date: Wed, 4 Jun 2025 13:25:07 -0700
Subject: [PATCH] [clang] Remove the experimental prefix from
 -fexperimental-relative-c++-abi-vtables

This actually creates an alias to the original flag omitting the
experimental part. This has been in prod use for a while and isn't
necessary.
---
 clang/include/clang/Driver/Options.td       | 20 ++++++++++++--------
 clang/test/Driver/relative-vtables-flag.cpp |  2 ++
 2 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index 5ca31c253ed8f..fa444c8cc7e32 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -2996,14 +2996,18 @@ defm fine_grained_bitfield_accesses : BoolOption<"f", "fine-grained-bitfield-acc
   BothFlags<[], [ClangOption, CC1Option]>>,
   Group<f_clang_Group>;
 
-def fexperimental_relative_cxx_abi_vtables :
-  Flag<["-"], "fexperimental-relative-c++-abi-vtables">,
-  Group<f_clang_Group>, Visibility<[ClangOption, CC1Option]>,
-  HelpText<"Use the experimental C++ class ABI for classes with virtual tables">;
-def fno_experimental_relative_cxx_abi_vtables :
-  Flag<["-"], "fno-experimental-relative-c++-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_relative_cxx_abi_vtables
+    : BoolFOption<
+          "experimental-relative-c++-abi-vtables",
+          LangOpts<"RelativeCXXABIVTables">, DefaultFalse,
+          PosFlag<SetTrue, [], [ClangOption, CC1Option], "Use ">,
+          NegFlag<SetFalse, [], [ClangOption, CC1Option], "Do not use ">,
+          BothFlags<[], [ClangOption, CC1Option],
+                    " the C++ class ABI for classes with virtual tables">>;
+def : Flag<["-"], "frelative-c++-abi-vtables">,
+      Alias<fexperimental_relative_cxx_abi_vtables>;
+def : Flag<["-"], "fno-relative-c++-abi-vtables">,
+      Alias<fno_experimental_relative_cxx_abi_vtables>;
 
 defm experimental_omit_vtable_rtti : BoolFOption<"experimental-omit-vtable-rtti",
   LangOpts<"OmitVTableRTTI">, DefaultFalse,
diff --git a/clang/test/Driver/relative-vtables-flag.cpp b/clang/test/Driver/relative-vtables-flag.cpp
index 1253809e1d428..2a38679135459 100644
--- a/clang/test/Driver/relative-vtables-flag.cpp
+++ b/clang/test/Driver/relative-vtables-flag.cpp
@@ -2,6 +2,8 @@
 // RUN: %clangxx --target=aarch64-unknown-fuchsia -fno-experimental-relative-c++-abi-vtables -c %s -### 2>&1 | FileCheck %s --check-prefix=NO-RV
 // RUN: %clangxx --target=aarch64-unknown-fuchsia -c %s -### 2>&1 | FileCheck %s --check-prefix=NO-RV
 // RUN: %clangxx --target=aarch64-unknown-linux-gnu -c %s -### 2>&1 | FileCheck %s --check-prefix=NO-RV
+// RUN: %clangxx --target=aarch64-unknown-fuchsia -frelative-c++-abi-vtables -c %s -### 2>&1 | FileCheck %s --check-prefix=RV
+// RUN: %clangxx --target=aarch64-unknown-fuchsia -fno-relative-c++-abi-vtables -c %s -### 2>&1 | FileCheck %s --check-prefix=NO-RV
 
 // RV: "-fexperimental-relative-c++-abi-vtables"
 // NO-RV-NOT: "-fexperimental-relative-c++-abi-vtables"



More information about the cfe-commits mailing list