[PATCH] D98375: [clang][Driver] Expose -fexperimental-relative-c++-abi-vtables flag
Leonard Chan via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 10 15:53:45 PST 2021
leonardchan created this revision.
leonardchan added reviewers: phosek, mcgrathr.
leonardchan added a project: clang.
leonardchan requested review of this revision.
Initially, this flag was meant to only be used through cc1 and not directly through the clang driver. However, we accidentally ended up using this flag as a driver flag already for selecting multilibs within the fuchsia toolchain. We're currently in an awkward state where it's only accepted as a driver flag when targeting Fuchsia, and all other instances it can only be added via `-Xclang`. Since we're ready to use this in Fuchsia, we can just expose this to the driver for simplicity.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D98375
Files:
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/Driver/relative-vtables-flag.cpp
Index: clang/test/Driver/relative-vtables-flag.cpp
===================================================================
--- /dev/null
+++ clang/test/Driver/relative-vtables-flag.cpp
@@ -0,0 +1,7 @@
+// RUN: %clangxx --target=aarch64-unknown-fuchsia -fexperimental-relative-c++-abi-vtables -c %s -### 2>&1 | FileCheck %s --check-prefix=RV
+// 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
+
+// RV: "-fexperimental-relative-c++-abi-vtables"
+// NO-RV-NOT: "-fexperimental-relative-c++-abi-vtables"
Index: clang/lib/Driver/ToolChains/Clang.cpp
===================================================================
--- clang/lib/Driver/ToolChains/Clang.cpp
+++ clang/lib/Driver/ToolChains/Clang.cpp
@@ -4869,6 +4869,9 @@
Args.AddLastArg(CmdArgs, options::OPT_ffine_grained_bitfield_accesses,
options::OPT_fno_fine_grained_bitfield_accesses);
+ Args.AddLastArg(CmdArgs, options::OPT_fexperimental_relative_cxx_abi_vtables,
+ options::OPT_fno_experimental_relative_cxx_abi_vtables);
+
// Handle segmented stacks.
if (Args.hasArg(options::OPT_fsplit_stack))
CmdArgs.push_back("-split-stacks");
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D98375.329794.patch
Type: text/x-patch
Size: 1442 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210310/59cb7efd/attachment.bin>
More information about the cfe-commits
mailing list