From: Bob Duff Date: Tue, 18 Jun 2024 16:53:46 +0000 (-0400) Subject: ada: Bug box for expression function with list comprehension X-Git-Tag: basepoints/gcc-16~7777 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d33104429a6662f33e05b9fcae65c87a87005749;p=thirdparty%2Fgcc.git ada: Bug box for expression function with list comprehension GNAT crashes on an iterator with a filter inside an expression function that is the completion of an earlier spec. gcc/ada/ * freeze.adb (Freeze_Type_Refs): If Node is in N_Has_Etype, check that it has had its Etype set, because this can be called early for expression functions that are completions. --- diff --git a/gcc/ada/freeze.adb b/gcc/ada/freeze.adb index 757c16e6839..7cf7e847677 100644 --- a/gcc/ada/freeze.adb +++ b/gcc/ada/freeze.adb @@ -9137,6 +9137,7 @@ package body Freeze is -- that type is not attached to an entity in the construct. elsif Nkind (Node) in N_Has_Etype + and then Present (Etype (Node)) and then Nkind (Parent (Node)) = N_Iterator_Specification and then Node = Name (Parent (Node)) then