@@ -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}
0 commit comments