re PR ada/83091 (ICE with -g in arm-eabi compilation)
authorEric Botcazou <ebotcazou@adacore.com>
Thu, 23 Nov 2017 22:55:05 +0000 (22:55 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Thu, 23 Nov 2017 22:55:05 +0000 (22:55 +0000)
PR ada/83091
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not build a variant
type for the implementation type of a packed array.

From-SVN: r255125

gcc/ada/ChangeLog
gcc/ada/gcc-interface/decl.c

index 5a40cc14e5a028746b995b7c75c4176821a4c205..bf899e2311970f687c3d57cbd428a95970ed29fa 100644 (file)
@@ -1,3 +1,9 @@
+2017-11-23  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR ada/83091
+       * gcc-interface/decl.c (gnat_to_gnu_entity): Do not build a variant
+       type for the implementation type of a packed array.
+
 2017-11-23  Mike Stump  <mikestump@comcast.net>
             Eric Botcazou  <ebotcazou@adacore.com>
 
index e0d7a5f55685a15101bae4586944a75a9be2e631..77515c0bcd2f3be48779a920fb946f7f748061c8 100644 (file)
@@ -4568,7 +4568,11 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, bool definition)
                             ? ALIAS_SET_COPY : ALIAS_SET_SUPERSET);
        }
 
-      if (Treat_As_Volatile (gnat_entity))
+      /* Finally get to the appropriate variant, except for the implementation
+        type of a packed array because the GNU type might be further adjusted
+        when the original array type is itself processed.  */
+      if (Treat_As_Volatile (gnat_entity)
+         && !Is_Packed_Array_Impl_Type (gnat_entity))
        {
          const int quals
            = TYPE_QUAL_VOLATILE