From: Arnaud Charlet Date: Fri, 10 Sep 2010 14:34:26 +0000 (+0200) Subject: [multiple changes] X-Git-Tag: releases/gcc-4.6.0~4418 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cd9909a0c90962131d6b58d0af701f6333ecd244;p=thirdparty%2Fgcc.git [multiple changes] 2010-09-10 Robert Dewar * frontend.adb: Minor reformatting. 2010-09-10 Robert Dewar * 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 * 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 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 04c73a9fda2f..11ff5dcffa9c 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,19 @@ +2010-09-10 Robert Dewar + + * frontend.adb: Minor reformatting. + +2010-09-10 Robert Dewar + + * 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 + + * 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 * exp_cg.adb (Is_Predefined_Dispatching_Operation): When trying the diff --git a/gcc/ada/exp_cg.adb b/gcc/ada/exp_cg.adb index 376f9cadf609..425ae540526d 100644 --- a/gcc/ada/exp_cg.adb +++ b/gcc/ada/exp_cg.adb @@ -129,6 +129,14 @@ package body Exp_CG is 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); diff --git a/gcc/ada/frontend.adb b/gcc/ada/frontend.adb index bea0bdc396ef..54616feae744 100644 --- a/gcc/ada/frontend.adb +++ b/gcc/ada/frontend.adb @@ -161,7 +161,6 @@ begin 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; diff --git a/gcc/ada/par-ch4.adb b/gcc/ada/par-ch4.adb index 6de5e84aed93..2d388f67b5a0 100644 --- a/gcc/ada/par-ch4.adb +++ b/gcc/ada/par-ch4.adb @@ -2788,7 +2788,7 @@ package body Ch4 is 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); diff --git a/gcc/ada/par-ch5.adb b/gcc/ada/par-ch5.adb index bbac0327ebcd..30433ef208ef 100644 --- a/gcc/ada/par-ch5.adb +++ b/gcc/ada/par-ch5.adb @@ -34,7 +34,6 @@ package body Ch5 is 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; diff --git a/gcc/ada/par.adb b/gcc/ada/par.adb index bf3dc1e6b518..28c2ca789eee 100644 --- a/gcc/ada/par.adb +++ b/gcc/ada/par.adb @@ -709,6 +709,9 @@ function Par (Configuration_Pragmas : Boolean) return List_Id 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; -- Given a node representing a name (which is a call), converts it -- to the syntactically corresponding procedure call statement. @@ -1255,6 +1258,7 @@ function Par (Configuration_Pragmas : Boolean) return List_Id is -- Start of processing for Par begin + Compiler_State := Parsing; -- Deal with configuration pragmas case first @@ -1266,10 +1270,12 @@ begin 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 @@ -1479,6 +1485,7 @@ begin Restore_Opt_Config_Switches (Save_Config_Switches); Set_Comes_From_Source_Default (False); + Compiler_State := Analyzing; return Empty_List; end if; end Par;