decl.c (maybe_pad_type): Only generate the XVS parallel type if the padded type has...
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 18 Apr 2008 18:33:14 +0000 (18:33 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 18 Apr 2008 18:33:14 +0000 (18:33 +0000)
* decl.c (maybe_pad_type): Only generate the XVS parallel type if
the padded type has a variable size.

From-SVN: r134443

gcc/ada/ChangeLog
gcc/ada/decl.c

index 3f23e2f5d8d407d0cc83b3f857759a18327da117..2242667c1a1a27e3120758bc1414f5e722ef0aad 100644 (file)
@@ -1,3 +1,8 @@
+2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * decl.c (maybe_pad_type): Only generate the XVS parallel type if
+       the padded type has a variable size.
+
 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
 
        * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
index 254b70a272227974e9732460a52705966b3efd0e..525dad807fa7a7fa88c74a4f8430e20470ed381d 100644 (file)
@@ -5683,11 +5683,12 @@ maybe_pad_type (tree type, tree size, unsigned int align,
 
   /* Unless debugging information isn't being written for the input type,
      write a record that shows what we are a subtype of and also make a
-     variable that indicates our size, if variable. */
+     variable that indicates our size, if still variable. */
   if (TYPE_NAME (record)
       && AGGREGATE_TYPE_P (type)
-      && (TREE_CODE (TYPE_NAME (type)) != TYPE_DECL
-         || !DECL_IGNORED_P (TYPE_NAME (type))))
+      && TREE_CODE (orig_size) != INTEGER_CST
+      && !(TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
+          && DECL_IGNORED_P (TYPE_NAME (type))))
     {
       tree marker = make_node (RECORD_TYPE);
       tree name = TYPE_NAME (record);