From: charlet Date: Fri, 30 Mar 2012 09:13:48 +0000 (+0000) Subject: 2012-03-30 Yannick Moy X-Git-Tag: upstream/4.9.2~13505 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=00a8e50ea8a7c85fc14d1c4ea277123e963d2dca;p=platform%2Fupstream%2Flinaro-gcc.git 2012-03-30 Yannick Moy * lib-xref-alfa.adb (Add_Alfa_File): Take into account possible absence of compilation unit for unit in Sdep_Table. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185997 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index baeff68..2a09d66 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2012-03-30 Yannick Moy + + * lib-xref-alfa.adb (Add_Alfa_File): Take into account possible absence + of compilation unit for unit in Sdep_Table. + 2012-03-30 Thomas Quinot * freeze.adb (Freeze_Record_Type): For a type with reversed bit diff --git a/gcc/ada/lib-xref-alfa.adb b/gcc/ada/lib-xref-alfa.adb index 4961fed..588213c 100644 --- a/gcc/ada/lib-xref-alfa.adb +++ b/gcc/ada/lib-xref-alfa.adb @@ -226,8 +226,14 @@ package body Alfa is From := Alfa_Scope_Table.Last + 1; - Traverse_Compilation_Unit (Cunit (U), Detect_And_Add_Alfa_Scope'Access, - Inside_Stubs => False); + -- Unit U might not have an associated compilation unit, as seen in code + -- filling Sdep_Table in Write_ALI. + + if Present (Cunit (U)) then + Traverse_Compilation_Unit (Cunit (U), + Detect_And_Add_Alfa_Scope'Access, + Inside_Stubs => False); + end if; -- Update scope numbers @@ -279,9 +285,11 @@ package body Alfa is Get_Name_String (Reference_Name (S)); File_Name := new String'(Name_Buffer (1 .. Name_Len)); - -- For subunits, also retrieve the file name of the unit + -- For subunits, also retrieve the file name of the unit. Only do so if + -- unit U has an associated compilation unit. - if Present (Cunit (Unit (S))) + if Present (Cunit (U)) + and then Present (Cunit (Unit (S))) and then Nkind (Unit (Cunit (Unit (S)))) = N_Subunit then Get_Name_String (Reference_Name (Main_Source_File));