+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>
* exp_cg.adb (Is_Predefined_Dispatching_Operation): When trying the
Write_Call_Info (N);
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));
Write_Type_Info (N);
if Source_gnat_adc /= No_Source_File then
Initialize_Scanner (No_Unit, Source_gnat_adc);
Config_Pragmas := Par (Configuration_Pragmas => True);
-
else
Config_Pragmas := Empty_List;
end if;
end if;
Scan; -- past IF or ELSIF
- Append_To (Exprs, P_Expression_No_Right_Paren);
+ Append_To (Exprs, P_Condition);
TF_Then;
Append_To (Exprs, P_Expression);
function P_Case_Statement 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_Goto_Statement return Node_Id;
function P_If_Statement return Node_Id;
-------------
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;
-- Given a node representing a name (which is a call), converts it
-- to the syntactically corresponding procedure call statement.
-- Start of processing for Par
begin
+ Compiler_State := Parsing;
-- Deal with configuration pragmas case first
begin
loop
if Token = Tok_EOF then
+ Compiler_State := Analyzing;
return Pragmas;
elsif Token /= Tok_Pragma then
Error_Msg_SC ("only pragmas allowed in configuration file");
+ Compiler_State := Analyzing;
return Error_List;
else
Restore_Opt_Config_Switches (Save_Config_Switches);
Set_Comes_From_Source_Default (False);
+ Compiler_State := Analyzing;
return Empty_List;
end if;
end Par;