This adds an obvious assertion in the N_Indexed_Component case of gnat_to_gnu
so as to avoid the associated crash a few lines below.
Tested on x86_64-suse-linux, applied on the mainline.
2012-12-08 Eric Botcazou <ebotca...@adacore.com>
* gcc-interface/trans.c (gnat_to_gnu) <N_Indexed_Component>: Assert
that the type of the prefix is ultimately an array.
--
Eric Botcazou
Index: gcc-interface/trans.c
===================================================================
--- gcc-interface/trans.c (revision 194321)
+++ gcc-interface/trans.c (working copy)
@@ -5410,6 +5410,10 @@ gnat_to_gnu (Node_Id gnat_node)
gnu_result = gnu_array_object;
+ /* The failure of this assertion will very likely come from a missing
+ expansion for a packed array access. */
+ gcc_assert (TREE_CODE (TREE_TYPE (gnu_array_object)) == ARRAY_TYPE);
+
/* First compute the number of dimensions of the array, then
fill the expression array, the order depending on whether
this is a Convention_Fortran array or not. */