aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@adacore.com>2020-05-23 20:50:10 +0200
committerPierre-Marie de Rodat <derodat@adacore.com>2020-07-10 05:16:15 -0400
commit5f74065e26a7a795d480884f352d0aeb69b8f436 (patch)
tree04bb6d6cd0bda455b932f7720bfdf360cbf91d93 /gcc/ada/sem.adb
parent6e41c27bf549d957eb399d39d7d0c213f8733351 (diff)
downloadgcc-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.adb6
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)));