[COMMITTED] ada: Fix crash on selected component lookup in generic instance
Checks
Commit Message
From: Bob Duff <duff@adacore.com>
This patch fixes a compiler crash on selected component lookup in an instance
of a generic unit when the relevant type is an itype.
gcc/ada/
* sem_ch4.adb (Find_Component_In_Instance): Check that
Declaration_Node (Par) is not Empty, as it is for itypes.
Tested on x86_64-pc-linux-gnu, committed on master.
---
gcc/ada/sem_ch4.adb | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
@@ -5212,10 +5212,14 @@ package body Sem_Ch4 is
end if;
end loop;
- if Present (Par) and then Is_Generic_Actual_Type (Par) then
-
- -- Now look for component in ancestor types
+ -- If Par is a generic actual, look for component in ancestor types.
+ -- Skip this if we have no Declaration_Node, as is the case for
+ -- itypes.
+ if Present (Par)
+ and then Is_Generic_Actual_Type (Par)
+ and then Present (Declaration_Node (Par))
+ then
Par := Generic_Parent_Type (Declaration_Node (Par));
loop
Find_Component_In_Instance (Par);