diff options
author | Arnaud Charlet <charlet@adacore.com> | 2020-05-23 20:50:10 +0200 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2020-07-10 05:16:15 -0400 |
commit | 5f74065e26a7a795d480884f352d0aeb69b8f436 (patch) | |
tree | 04bb6d6cd0bda455b932f7720bfdf360cbf91d93 /gcc/ada/sem.adb | |
parent | 6e41c27bf549d957eb399d39d7d0c213f8733351 (diff) | |
download | gcc-5f74065e26a7a795d480884f352d0aeb69b8f436.zip gcc-5f74065e26a7a795d480884f352d0aeb69b8f436.tar.gz gcc-5f74065e26a7a795d480884f352d0aeb69b8f436.tar.bz2 |
[Ada] Crash in Walk_Library_Items on ghost units
gcc/ada/
* sem.adb (Walk_Library_Items): Fix handling of Ghost units.
Diffstat (limited to 'gcc/ada/sem.adb')
-rw-r--r-- | gcc/ada/sem.adb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ada/sem.adb b/gcc/ada/sem.adb index b84df65..425dafa 100644 --- a/gcc/ada/sem.adb +++ b/gcc/ada/sem.adb @@ -1848,12 +1848,16 @@ package body Sem is if Withed_Unit /= Main_CU and then not Done (Get_Cunit_Unit_Number (Withed_Unit)) then + -- N_Null_Statement will happen in case of a ghost unit + -- which gets rewritten. + if not Nkind_In (Unit (Withed_Unit), N_Generic_Package_Declaration, N_Package_Body, N_Package_Renaming_Declaration, - N_Subprogram_Body) + N_Subprogram_Body, + N_Null_Statement) then Write_Unit_Name (Unit_Name (Get_Cunit_Unit_Number (Withed_Unit))); |