================
@@ -133,11 +140,17 @@ Error 
PointerAuthCFIAnalyzer::runOnFunctions(BinaryContext &BC) {
   ParallelUtilities::runOnEachFunction(
       BC, ParallelUtilities::SchedulingPolicy::SP_INST_LINEAR, WorkFun,
       SkipPredicate, "PointerAuthCFIAnalyzer");
+
+  float IgnoredPercent = (100.0 * FunctionsIgnored) / Total;
   BC.outs() << "BOLT-INFO: PointerAuthCFIAnalyzer ran on " << Total
             << " functions. Ignored " << FunctionsIgnored << " functions "
-            << format("(%.2lf%%)", (100.0 * FunctionsIgnored) / Total)
+            << format("(%.2lf%%)", IgnoredPercent)
             << " because of CFI inconsistencies\n";
 
+  if (IgnoredPercent >= 10.0)
+    BC.outs() << "BOLT-WARNING: PointerAuthCFIAnalyzer only supports "
+                 "asynchronous unwind tables.\n";
----------------
bgergely0 wrote:

I'm not a fan of adding exact flag names for two reasons:
- it's only valid for C/C++, whereas the ABI is "general" and other languages 
(Rust) also generate such unwind tables, but the flags are named differently
- `-fasync` is the default for clang, so if we have a sync unw table, it's 
because the `-fno-async` flag was passed. If the user then passes `-fasync` as 
well, the chosen option depends on the order of the two flags

WDYT?

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

Reply via email to