From 8e4ca4fcffbe6d3855f67cd02e0bb2a40d62fa10 Mon Sep 17 00:00:00 2001 From: Ed Schonberg Date: Mon, 12 Aug 2019 09:01:43 +0000 Subject: [Ada] Crash on illegal left-hand side in assignment of renamed variable This patch fixes a crash on an assignment where the left-hand side is a renaming of a function call that does not involve ceiling priorities. This avoids a compiler crash in some cases, and prevents a useless retrieval and compilation of run-time packages. 2019-08-12 Ed Schonberg gcc/ada/ * sem_util.adb (Is_Expaned_Priority_Attribute): Check whether call comes from a rewritten attribute before comparing name with Get_Ceiling run-time subprogram. gcc/testsuite/ * gnat.dg/renaming15.adb: New testcase. From-SVN: r274305 --- gcc/ada/ChangeLog | 6 ++++++ gcc/ada/sem_util.adb | 1 + 2 files changed, 7 insertions(+) (limited to 'gcc/ada') diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 64f4c6b..74ceb50 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2019-08-12 Ed Schonberg + + * sem_util.adb (Is_Expaned_Priority_Attribute): Check whether + call comes from a rewritten attribute before comparing name with + Get_Ceiling run-time subprogram. + 2019-08-12 Eric Botcazou * exp_util.ads (Component_May_Be_Bit_Aligned): Small comment diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 42085c7..54ac0a4 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -14669,6 +14669,7 @@ package body Sem_Util is return Nkind (E) = N_Function_Call and then not Configurable_Run_Time_Mode + and then Nkind (Original_Node (E)) = N_Attribute_Reference and then (Entity (Name (E)) = RTE (RE_Get_Ceiling) or else Entity (Name (E)) = RTE (RO_PE_Get_Ceiling)); end Is_Expanded_Priority_Attribute; -- cgit v1.1