Skip to content

Commit c99acf2

Browse files
committed
Address review comments
1 parent b6a1366 commit c99acf2

File tree

6 files changed

+37
-53
lines changed

6 files changed

+37
-53
lines changed

clang/include/clang/Driver/ToolChain.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,6 @@ class ToolChain {
219219
FileType Type,
220220
bool AddArch) const;
221221

222-
virtual void addPointerAuthFlags(const llvm::opt::ArgList &DriverArgs,
223-
llvm::opt::ArgStringList &CC1Args) const;
224-
225222
/// Find the target-specific subdirectory for the current target triple under
226223
/// \p BaseDir, doing fallback triple searches as necessary.
227224
/// \return The subdirectory path if it exists.

clang/lib/Driver/ToolChain.cpp

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -751,32 +751,6 @@ std::string ToolChain::buildCompilerRTBasename(const llvm::opt::ArgList &Args,
751751
return (Prefix + Twine("clang_rt.") + Component + ArchAndEnv + Suffix).str();
752752
}
753753

754-
void ToolChain::addPointerAuthFlags(const llvm::opt::ArgList &DriverArgs,
755-
llvm::opt::ArgStringList &CC1Args) const {
756-
DriverArgs.addOptInFlag(CC1Args, options::OPT_fptrauth_intrinsics,
757-
options::OPT_fno_ptrauth_intrinsics);
758-
DriverArgs.addOptInFlag(CC1Args, options::OPT_fptrauth_calls,
759-
options::OPT_fno_ptrauth_calls);
760-
DriverArgs.addOptInFlag(CC1Args, options::OPT_fptrauth_returns,
761-
options::OPT_fno_ptrauth_returns);
762-
DriverArgs.addOptInFlag(CC1Args, options::OPT_fptrauth_auth_traps,
763-
options::OPT_fno_ptrauth_auth_traps);
764-
DriverArgs.addOptInFlag(
765-
CC1Args, options::OPT_fptrauth_vtable_pointer_address_discrimination,
766-
options::OPT_fno_ptrauth_vtable_pointer_address_discrimination);
767-
DriverArgs.addOptInFlag(
768-
CC1Args, options::OPT_fptrauth_vtable_pointer_type_discrimination,
769-
options::OPT_fno_ptrauth_vtable_pointer_type_discrimination);
770-
DriverArgs.addOptInFlag(
771-
CC1Args, options::OPT_fptrauth_type_info_vtable_pointer_discrimination,
772-
options::OPT_fno_ptrauth_type_info_vtable_pointer_discrimination);
773-
DriverArgs.addOptInFlag(
774-
CC1Args, options::OPT_fptrauth_function_pointer_type_discrimination,
775-
options::OPT_fno_ptrauth_function_pointer_type_discrimination);
776-
DriverArgs.addOptInFlag(CC1Args, options::OPT_fptrauth_indirect_gotos,
777-
options::OPT_fno_ptrauth_indirect_gotos);
778-
}
779-
780754
std::string ToolChain::getCompilerRT(const ArgList &Args, StringRef Component,
781755
FileType Type) const {
782756
// Check for runtime files in the new layout without the architecture first.

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1808,6 +1808,42 @@ void Clang::AddAArch64TargetArgs(const ArgList &Args,
18081808

18091809
AddUnalignedAccessWarning(CmdArgs);
18101810

1811+
if (Triple.isOSDarwin() ||
1812+
(Triple.isOSLinux() &&
1813+
Triple.getEnvironment() == llvm::Triple::PAuthTest)) {
1814+
Args.addOptInFlag(CmdArgs, options::OPT_fptrauth_intrinsics,
1815+
options::OPT_fno_ptrauth_intrinsics);
1816+
Args.addOptInFlag(CmdArgs, options::OPT_fptrauth_calls,
1817+
options::OPT_fno_ptrauth_calls);
1818+
Args.addOptInFlag(CmdArgs, options::OPT_fptrauth_returns,
1819+
options::OPT_fno_ptrauth_returns);
1820+
Args.addOptInFlag(CmdArgs, options::OPT_fptrauth_auth_traps,
1821+
options::OPT_fno_ptrauth_auth_traps);
1822+
Args.addOptInFlag(
1823+
CmdArgs, options::OPT_fptrauth_vtable_pointer_address_discrimination,
1824+
options::OPT_fno_ptrauth_vtable_pointer_address_discrimination);
1825+
Args.addOptInFlag(
1826+
CmdArgs, options::OPT_fptrauth_vtable_pointer_type_discrimination,
1827+
options::OPT_fno_ptrauth_vtable_pointer_type_discrimination);
1828+
Args.addOptInFlag(
1829+
CmdArgs, options::OPT_fptrauth_type_info_vtable_pointer_discrimination,
1830+
options::OPT_fno_ptrauth_type_info_vtable_pointer_discrimination);
1831+
Args.addOptInFlag(
1832+
CmdArgs, options::OPT_fptrauth_function_pointer_type_discrimination,
1833+
options::OPT_fno_ptrauth_function_pointer_type_discrimination);
1834+
Args.addOptInFlag(CmdArgs, options::OPT_fptrauth_indirect_gotos,
1835+
options::OPT_fno_ptrauth_indirect_gotos);
1836+
}
1837+
if (Triple.isOSLinux() &&
1838+
Triple.getEnvironment() == llvm::Triple::PAuthTest) {
1839+
Args.addOptInFlag(CmdArgs, options::OPT_fptrauth_init_fini,
1840+
options::OPT_fno_ptrauth_init_fini);
1841+
Args.addOptInFlag(
1842+
CmdArgs, options::OPT_fptrauth_init_fini_address_discrimination,
1843+
options::OPT_fno_ptrauth_init_fini_address_discrimination);
1844+
Args.addOptInFlag(CmdArgs, options::OPT_fptrauth_elf_got,
1845+
options::OPT_fno_ptrauth_elf_got);
1846+
}
18111847
Args.addOptInFlag(CmdArgs, options::OPT_faarch64_jump_table_hardening,
18121848
options::OPT_fno_aarch64_jump_table_hardening);
18131849
}

clang/lib/Driver/ToolChains/Darwin.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3143,9 +3143,6 @@ void Darwin::addClangTargetOptions(
31433143
if (!RequiresSubdirectorySearch)
31443144
CC1Args.push_back("-fno-modulemap-allow-subdirectory-search");
31453145
}
3146-
3147-
if (getTriple().isAArch64())
3148-
addPointerAuthFlags(DriverArgs, CC1Args);
31493146
}
31503147

31513148
void Darwin::addClangCC1ASTargetOptions(

clang/lib/Driver/ToolChains/Linux.cpp

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -543,30 +543,12 @@ static void handlePAuthABI(const Driver &D, const ArgList &DriverArgs,
543543
CC1Args.push_back("-faarch64-jump-table-hardening");
544544
}
545545

546-
void Linux::addPointerAuthFlags(const llvm::opt::ArgList &DriverArgs,
547-
llvm::opt::ArgStringList &CC1Args) const {
548-
ToolChain::addPointerAuthFlags(DriverArgs, CC1Args);
549-
550-
DriverArgs.addOptInFlag(CC1Args, options::OPT_fptrauth_init_fini,
551-
options::OPT_fno_ptrauth_init_fini);
552-
553-
DriverArgs.addOptInFlag(
554-
CC1Args, options::OPT_fptrauth_init_fini_address_discrimination,
555-
options::OPT_fno_ptrauth_init_fini_address_discrimination);
556-
557-
DriverArgs.addOptInFlag(CC1Args, options::OPT_fptrauth_elf_got,
558-
options::OPT_fno_ptrauth_elf_got);
559-
}
560-
561546
void Linux::addClangTargetOptions(const llvm::opt::ArgList &DriverArgs,
562547
llvm::opt::ArgStringList &CC1Args,
563548
Action::OffloadKind DeviceOffloadKind) const {
564549
llvm::Triple Triple(ComputeEffectiveClangTriple(DriverArgs));
565-
if (Triple.isAArch64() &&
566-
Triple.getEnvironment() == llvm::Triple::PAuthTest) {
567-
addPointerAuthFlags(DriverArgs, CC1Args);
550+
if (Triple.isAArch64() && Triple.getEnvironment() == llvm::Triple::PAuthTest)
568551
handlePAuthABI(getDriver(), DriverArgs, CC1Args);
569-
}
570552
Generic_ELF::addClangTargetOptions(DriverArgs, CC1Args, DeviceOffloadKind);
571553
}
572554

clang/lib/Driver/ToolChains/Linux.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,6 @@ class LLVM_LIBRARY_VISIBILITY Linux : public Generic_ELF {
7272
Tool *buildAssembler() const override;
7373
Tool *buildLinker() const override;
7474
Tool *buildStaticLibTool() const override;
75-
void addPointerAuthFlags(const llvm::opt::ArgList &DriverArgs,
76-
llvm::opt::ArgStringList &CC1Args) const override;
7775
};
7876

7977
} // end namespace toolchains

0 commit comments

Comments
 (0)