[Ada] Mark parameters as coming from source for GNATprove
authorYannick Moy <moy@adacore.com>
Mon, 11 Jun 2018 09:19:07 +0000 (09:19 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Mon, 11 Jun 2018 09:19:07 +0000 (09:19 +0000)
When building a separate subprogram declaration for possible inlining of
local subprograms in GNATprove mode, correctly mark subprogram parameters
as coming from source.

This has no impact on compilation.

2018-06-11  Yannick Moy  <moy@adacore.com>

gcc/ada/

* sem_ch6.adb (Build_Subprogram_Declaration): Mark parameters as coming
from source.

From-SVN: r261423

gcc/ada/ChangeLog
gcc/ada/sem_ch6.adb

index 2393bfaa0c601d714b9cf4ef12b5d0924eccb390..84dd18b7767a61382a5ecbaecd07d129ebf353f3 100644 (file)
@@ -1,3 +1,8 @@
+2018-06-11  Yannick Moy  <moy@adacore.com>
+
+       * sem_ch6.adb (Build_Subprogram_Declaration): Mark parameters as coming
+       from source.
+
 2018-06-11  Ed Schonberg  <schonberg@adacore.com>
 
        * sem_ch13.adb (Build_Predicate_Functions): For a derived type, ensure
index 3413e2185b57d7b5618105fc84c0abfa68b22f40..304e35c18c59bffeb251b22412e3dd1992177261 100644 (file)
@@ -2712,6 +2712,22 @@ package body Sem_Ch6 is
              Specification => Copy_Subprogram_Spec (Body_Spec));
          Set_Comes_From_Source (Subp_Decl, True);
 
+         --  Also mark parameters as coming from source
+
+         if Present (Parameter_Specifications (Specification (Subp_Decl))) then
+            declare
+               Form : Entity_Id;
+            begin
+               Form :=
+                 First (Parameter_Specifications (Specification (Subp_Decl)));
+
+               while Present (Form) loop
+                  Set_Comes_From_Source (Defining_Identifier (Form), True);
+                  Next (Form);
+               end loop;
+            end;
+         end if;
+
          --  Relocate the aspects and relevant pragmas from the subprogram body
          --  to the generated spec because it acts as the initial declaration.