aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/inline.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/inline.adb')
-rw-r--r--gcc/ada/inline.adb7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ada/inline.adb b/gcc/ada/inline.adb
index 44cdec4..b2ff243 100644
--- a/gcc/ada/inline.adb
+++ b/gcc/ada/inline.adb
@@ -833,6 +833,7 @@ package body Inline is
procedure Build_Body_To_Inline (N : Node_Id; Subp : Entity_Id) is
Decl : constant Node_Id := Unit_Declaration_Node (Subp);
+ Analysis_Status : constant Boolean := Full_Analysis;
Original_Body : Node_Id;
Body_To_Analyze : Node_Id;
Max_Size : constant := 10;
@@ -1388,7 +1389,12 @@ package body Inline is
Append (Body_To_Analyze, Declarations (N));
end if;
+ -- The body to inline is pre-analyzed. In GNATprove mode we must
+ -- disable full analysis as well so that light expansion does not
+ -- take place either, and name resolution is unaffected.
+
Expander_Mode_Save_And_Set (False);
+ Full_Analysis := False;
Remove_Pragmas;
Analyze (Body_To_Analyze);
@@ -1398,6 +1404,7 @@ package body Inline is
Remove (Body_To_Analyze);
Expander_Mode_Restore;
+ Full_Analysis := Analysis_Status;
-- Restore environment if previously saved