================
@@ -700,7 +700,12 @@ static void addSanitizers(const Triple &TargetTriple,
                           const CodeGenOptions &CodeGenOpts,
                           const LangOptions &LangOpts, PassBuilder &PB) {
   auto SanitizersCallback = [&](ModulePassManager &MPM, OptimizationLevel 
Level,
-                                ThinOrFullLTOPhase) {
+                                ThinOrFullLTOPhase phase) {
+    // FatLTO pipelines already added these to the prelink pipeline.
+    if (CodeGenOpts.FatLTO &&
+        (CodeGenOpts.PrepareForThinLTO || CodeGenOpts.PrepareForLTO) &&
+        ThinOrFullLTOPhase::None != phase)
----------------
nikic wrote:

Hm... I think this condition is too specific and fragile. Have you checked that 
this also works for the `-flto=thin` variant? Because I believe that one is 
going to use `ThinOrFullLTOPhase::ThinLTOPostLink` here.

I think the correct way to fix this is to just check for a non-post-link phase 
here (without any checks for other options) and to adjust 
https://github.com/llvm/llvm-project/blob/8c122e5d3bcbdd82c34a406c6d3029060306521a/llvm/lib/Passes/PassBuilderPipelines.cpp#L1727
 to pass one of the post-link phases.

https://github.com/llvm/llvm-project/pull/160213
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to