An aggregate may have been rewritten before being seen by the procedure.
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* exp_util.adb (Expand_Subtype_From_Expr): Be prepared for
rewritten aggregates as expressions.
diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb
--- a/gcc/ada/exp_util.adb
+++ b/gcc/ada/exp_util.adb
@@ -5741,7 +5741,7 @@ package body Exp_Util is
-- non-statically-matching subtypes on 'Access of this object.
and then (Nkind (N) /= N_Object_Declaration
- or else Nkind (Exp) = N_Aggregate
+ or else Nkind (Original_Node (Exp)) = N_Aggregate
or else Is_Constr_Subt_For_U_Nominal (Exp_Typ))
then
-- Within an initialization procedure, a selected component