Tested on x86_64-pc-linux-gnu, committed on trunk 2011-08-31 Yannick Moy <m...@adacore.com>
* exp_alfa.adb (Expand_Alfa_N_Package_Declaration, Expand_Alfa_N_Subprogram_Body): Remove useless procedures which simply call Qualify_Entity_Names. (Expand_Alfa): call Qualify_Entity_Names in more cases * lib-xref-alfa.adb: Take into account system package. * sem_prag.adb Take into account restrictions in Alfa mode, contrary to CodePeer mode in which we are interested in finding bugs even if compiler cannot compile source. * sem_util.adb, sem_util.ads (Unique_Entity): Take into account case of deferred constant.
Index: exp_alfa.adb =================================================================== --- exp_alfa.adb (revision 178360) +++ exp_alfa.adb (working copy) @@ -51,15 +51,9 @@ procedure Expand_Alfa_N_Attribute_Reference (N : Node_Id); -- Expand attributes 'Old and 'Result only - procedure Expand_Alfa_N_Package_Declaration (N : Node_Id); - -- Fully qualify names of enclosed entities - procedure Expand_Alfa_N_Simple_Return_Statement (N : Node_Id); -- Insert conversion on function return if necessary - procedure Expand_Alfa_N_Subprogram_Body (N : Node_Id); - -- Fully qualify names of enclosed entities - procedure Expand_Alfa_Simple_Function_Return (N : Node_Id); -- Expand simple return from function @@ -71,15 +65,15 @@ begin case Nkind (N) is - when N_Package_Declaration => - Expand_Alfa_N_Package_Declaration (N); + when N_Package_Body | + N_Package_Declaration | + N_Subprogram_Body | + N_Block_Statement => + Qualify_Entity_Names (N); when N_Simple_Return_Statement => Expand_Alfa_N_Simple_Return_Statement (N); - when N_Subprogram_Body => - Expand_Alfa_N_Subprogram_Body (N); - when N_Function_Call | N_Procedure_Call_Statement => Expand_Alfa_Call (N); @@ -173,15 +167,6 @@ end case; end Expand_Alfa_N_Attribute_Reference; - --------------------------------------- - -- Expand_Alfa_N_Package_Declaration -- - --------------------------------------- - - procedure Expand_Alfa_N_Package_Declaration (N : Node_Id) is - begin - Qualify_Entity_Names (N); - end Expand_Alfa_N_Package_Declaration; - ------------------------------------------- -- Expand_Alfa_N_Simple_Return_Statement -- ------------------------------------------- @@ -222,15 +207,6 @@ return; end Expand_Alfa_N_Simple_Return_Statement; - ----------------------------------- - -- Expand_Alfa_N_Subprogram_Body -- - ----------------------------------- - - procedure Expand_Alfa_N_Subprogram_Body (N : Node_Id) is - begin - Qualify_Entity_Names (N); - end Expand_Alfa_N_Subprogram_Body; - ---------------------------------------- -- Expand_Alfa_Simple_Function_Return -- ---------------------------------------- Index: sem_prag.adb =================================================================== --- sem_prag.adb (revision 178358) +++ sem_prag.adb (working copy) @@ -5090,9 +5090,9 @@ -- Start of processing for Process_Restrictions_Or_Restriction_Warnings begin - -- Ignore all Restrictions pragma in CodePeer and Alfa modes + -- Ignore all Restrictions pragma in CodePeer mode - if CodePeer_Mode or Alfa_Mode then + if CodePeer_Mode then return; end if; Index: sem_util.adb =================================================================== --- sem_util.adb (revision 178358) +++ sem_util.adb (working copy) @@ -12656,6 +12656,11 @@ begin case Ekind (E) is + when E_Constant => + if Present (Full_View (E)) then + U := Full_View (E); + end if; + when Type_Kind => if Present (Full_View (E)) then U := Full_View (E); Index: sem_util.ads =================================================================== --- sem_util.ads (revision 178358) +++ sem_util.ads (working copy) @@ -1448,7 +1448,8 @@ -- views of the same entity have the same unique defining entity: -- * package spec and body; -- * subprogram declaration, subprogram stub and subprogram body; - -- * private view and full view of a type. + -- * private view and full view of a type; + -- * private view and full view of a deferred constant. -- In other cases, return the defining entity for N. function Unique_Entity (E : Entity_Id) return Entity_Id; Index: lib-xref-alfa.adb =================================================================== --- lib-xref-alfa.adb (revision 178363) +++ lib-xref-alfa.adb (working copy) @@ -886,14 +886,7 @@ -- Generate file and scope Alfa information for D in 1 .. Num_Sdep loop - - -- Ignore file for System - - if Units.Table (Sdep_Table (D)).Source_Index /= - System_Source_File_Index - then - Add_Alfa_File (U => Sdep_Table (D), D => D); - end if; + Add_Alfa_File (U => Sdep_Table (D), D => D); end loop; -- Fill in the spec information when relevant