================
@@ -7756,6 +7756,10 @@ void Clang::ConstructJob(Compilation &C, const JobAction 
&JA,
   Args.addOptInFlag(CmdArgs, options::OPT_funique_source_file_names,
                     options::OPT_fno_unique_source_file_names);
 
+  if (!IsCudaDevice)
----------------
pcc wrote:

With CUDA the driver creates two compilation jobs, one for the host and one for 
the device. Since it is an ABI requirement that all C++ translation units are 
built with the same `-fexperimental-pointer-field-protection` flags, the flag 
must be passed when compiling the CUDA translation units as well, so that the 
host side is built correctly. And since GPUs don't support PFP, we need to 
exclude the flag from the CUDA device job. It looks like the same ends up 
happening for PAuth ABI because the flags are copied in 
`Clang::AddAArch64TargetArgs`, which means that they are ignored for the CUDA 
device which will have a different architecture.

If someone did end up implementing PFP for GPUs, I think we would create a 
separate flag to enable PFP for the device.

https://github.com/llvm/llvm-project/pull/133538
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to