From: Ronan Desplanques <desplanq...@adacore.com>

Before this patch, we instrumented code that's only used during the
build process to generate more code. This patch marks the
code-generating code so it's not instrumented for coverage.

gcc/ada/ChangeLog:

        * gnat2.gpr: Add library units to coverage exclusion list.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/gnat2.gpr | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/gcc/ada/gnat2.gpr b/gcc/ada/gnat2.gpr
index df648465812..9d9f3b55057 100644
--- a/gcc/ada/gnat2.gpr
+++ b/gcc/ada/gnat2.gpr
@@ -49,6 +49,23 @@ project Gnat2 is
       --  of fresh source files from the run-time library. We need gnatcov to 
not instrument
       --  those files, so we add the clause below. It's unknown why only 
putting "GNAT" is sufficient???
       --  We also pull in GNAT.Lists for example, but specifying it here 
triggers a warning.
-      for Excluded_Units use ("Gnat");
+      Overridden_Runtime_Units := ("GNAT");
+
+      --  We don't want to instrument code generation tools
+      Codegen_Units :=
+        ("Gen_IL",
+         "Gen_IL.Gen",
+         "Gen_IL.Fields",
+         "Gen_IL.Gen.Gen_Entities",
+         "Gen_IL.Gen.Gen_Nodes",
+         "Gen_IL.Internals",
+         "Gen_IL.Main",
+         "Gen_IL.Types",
+         "XSnamesT",
+         "XUtil",
+         "XOSCons",
+         "XLeaps");
+
+      for Excluded_Units use Overridden_Runtime_Units & Codegen_Units;
    end Coverage;
 end Gnat2;
-- 
2.43.0

Reply via email to