From: Gary Dismukes Date: Fri, 5 Dec 2025 01:00:19 +0000 (+0000) Subject: ada: Compiler crash on ill-formed container indexing X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c2a14d071f1fd9a640e33e272f57a7425deec3a2;p=thirdparty%2Fgcc.git ada: Compiler crash on ill-formed container indexing The compiler blows up when analyzing an illegal indexing of a container object (such as a vector) when the indexing expression has the form of a named actual parameter and the name given for the parameter does not match the name of the index formal of the corresponding indexing function that the compiler identifies for doing the generalized indexing. gcc/ada/ChangeLog: * sem_ch4.adb (Try_Container_Indexing): Conditionalize last actual of call to Error_Msg_NE to avoid blowup on N_Parameter_Association actuals. --- diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb index ad560ee3979..38e013a9dc4 100644 --- a/gcc/ada/sem_ch4.adb +++ b/gcc/ada/sem_ch4.adb @@ -9564,7 +9564,12 @@ package body Sem_Ch4 is if Idx_Type = Any_Type then Error_Msg_NE - ("container cannot be indexed with&", N, Etype (First (Exprs))); + ("container cannot be indexed with&", N, + (if Nkind (First (Exprs)) = N_Parameter_Association + then + Etype (Explicit_Actual_Parameter (First (Exprs))) + else + Etype (First (Exprs)))); Rewrite (N, New_Occurrence_Of (Any_Id, Loc)); end if;