Commit cd9909a0 by Arnaud Charlet

[multiple changes]

2010-09-10  Robert Dewar  <dewar@adacore.com>

	* frontend.adb: Minor reformatting.

2010-09-10  Robert Dewar  <dewar@adacore.com>

	* par-ch4.adb (P_Conditional_Expression): Use P_Condition for condition
	* par-ch5.adb (P_Condition): Move from body to spec
	* par.adb (Ch5.P_Condition): Move from body to spec

2010-09-10  Ed Schonberg  <schonberg@adacore.com>

	* exp_cg.adb (Write_Call_Info): If a type that has been registered in
	the call table is private, use its full view to generate information
	on its operations.

From-SVN: r164181
parent 2962b1bb
2010-09-10 Robert Dewar <dewar@adacore.com>
* frontend.adb: Minor reformatting.
2010-09-10 Robert Dewar <dewar@adacore.com>
* par-ch4.adb (P_Conditional_Expression): Use P_Condition for condition
* par-ch5.adb (P_Condition): Move from body to spec
* par.adb (Ch5.P_Condition): Move from body to spec
2010-09-10 Ed Schonberg <schonberg@adacore.com>
* exp_cg.adb (Write_Call_Info): If a type that has been registered in
the call table is private, use its full view to generate information
on its operations.
2010-09-10 Jose Ruiz <ruiz@adacore.com> 2010-09-10 Jose Ruiz <ruiz@adacore.com>
* exp_cg.adb (Is_Predefined_Dispatching_Operation): When trying the * exp_cg.adb (Is_Predefined_Dispatching_Operation): When trying the
......
...@@ -129,6 +129,14 @@ package body Exp_CG is ...@@ -129,6 +129,14 @@ package body Exp_CG is
Write_Call_Info (N); Write_Call_Info (N);
else pragma Assert (Nkind (N) = N_Defining_Identifier); else pragma Assert (Nkind (N) = N_Defining_Identifier);
-- The type may be a private untagged type whose completion is
-- tagged, in which case we must use the full tagged view.
if not Is_Tagged_Type (N) and then Is_Private_Type (N) then
N := Full_View (N);
end if;
pragma Assert (Is_Tagged_Type (N)); pragma Assert (Is_Tagged_Type (N));
Write_Type_Info (N); Write_Type_Info (N);
......
...@@ -161,7 +161,6 @@ begin ...@@ -161,7 +161,6 @@ begin
if Source_gnat_adc /= No_Source_File then if Source_gnat_adc /= No_Source_File then
Initialize_Scanner (No_Unit, Source_gnat_adc); Initialize_Scanner (No_Unit, Source_gnat_adc);
Config_Pragmas := Par (Configuration_Pragmas => True); Config_Pragmas := Par (Configuration_Pragmas => True);
else else
Config_Pragmas := Empty_List; Config_Pragmas := Empty_List;
end if; end if;
......
...@@ -2788,7 +2788,7 @@ package body Ch4 is ...@@ -2788,7 +2788,7 @@ package body Ch4 is
end if; end if;
Scan; -- past IF or ELSIF Scan; -- past IF or ELSIF
Append_To (Exprs, P_Expression_No_Right_Paren); Append_To (Exprs, P_Condition);
TF_Then; TF_Then;
Append_To (Exprs, P_Expression); Append_To (Exprs, P_Expression);
......
...@@ -34,7 +34,6 @@ package body Ch5 is ...@@ -34,7 +34,6 @@ package body Ch5 is
function P_Case_Statement return Node_Id; function P_Case_Statement return Node_Id;
function P_Case_Statement_Alternative return Node_Id; function P_Case_Statement_Alternative return Node_Id;
function P_Condition return Node_Id;
function P_Exit_Statement return Node_Id; function P_Exit_Statement return Node_Id;
function P_Goto_Statement return Node_Id; function P_Goto_Statement return Node_Id;
function P_If_Statement return Node_Id; function P_If_Statement return Node_Id;
......
...@@ -709,6 +709,9 @@ function Par (Configuration_Pragmas : Boolean) return List_Id is ...@@ -709,6 +709,9 @@ function Par (Configuration_Pragmas : Boolean) return List_Id is
------------- -------------
package Ch5 is package Ch5 is
function P_Condition return Node_Id;
-- Scan out and return a condition
function P_Statement_Name (Name_Node : Node_Id) return Node_Id; function P_Statement_Name (Name_Node : Node_Id) return Node_Id;
-- Given a node representing a name (which is a call), converts it -- Given a node representing a name (which is a call), converts it
-- to the syntactically corresponding procedure call statement. -- to the syntactically corresponding procedure call statement.
...@@ -1255,6 +1258,7 @@ function Par (Configuration_Pragmas : Boolean) return List_Id is ...@@ -1255,6 +1258,7 @@ function Par (Configuration_Pragmas : Boolean) return List_Id is
-- Start of processing for Par -- Start of processing for Par
begin begin
Compiler_State := Parsing;
-- Deal with configuration pragmas case first -- Deal with configuration pragmas case first
...@@ -1266,10 +1270,12 @@ begin ...@@ -1266,10 +1270,12 @@ begin
begin begin
loop loop
if Token = Tok_EOF then if Token = Tok_EOF then
Compiler_State := Analyzing;
return Pragmas; return Pragmas;
elsif Token /= Tok_Pragma then elsif Token /= Tok_Pragma then
Error_Msg_SC ("only pragmas allowed in configuration file"); Error_Msg_SC ("only pragmas allowed in configuration file");
Compiler_State := Analyzing;
return Error_List; return Error_List;
else else
...@@ -1479,6 +1485,7 @@ begin ...@@ -1479,6 +1485,7 @@ begin
Restore_Opt_Config_Switches (Save_Config_Switches); Restore_Opt_Config_Switches (Save_Config_Switches);
Set_Comes_From_Source_Default (False); Set_Comes_From_Source_Default (False);
Compiler_State := Analyzing;
return Empty_List; return Empty_List;
end if; end if;
end Par; end Par;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment