* decl.c (maybe_pad_type): Add ??? comment.
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 5 May 2008 19:44:55 +0000 (19:44 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 5 May 2008 19:44:55 +0000 (19:44 +0000)
From-SVN: r134953

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

index 28cf5dc87d3a2cae0b36929700ee08827641833d..ae31fb49963287479bbe74bb4847eefcd60a52b4 100644 (file)
@@ -1,3 +1,7 @@
+2008-05-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * decl.c (maybe_pad_type): Add ??? comment.
+
 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
 
        * decl.c (components_to_record): Zero the alignment of the qualified
index 68ea42b53e49f54ead433fbd35c70f3826d2ed3d..6e144927ef8bbfc71ac4c93c0d01546ac7f8c3f7 100644 (file)
@@ -5671,7 +5671,13 @@ maybe_pad_type (tree type, tree size, unsigned int align,
      integral mode, which will be much more efficient.  There is no point
      in doing so if a size is specified unless it is also a small constant
      size and it is incorrect to do so if we cannot guarantee that the mode
-     will be naturally aligned since the field must always be addressable.  */
+     will be naturally aligned since the field must always be addressable.
+
+     ??? This might not always be a win when done for a stand-alone object:
+     since the nominal and the effective type of the object will now have
+     different modes, a VIEW_CONVERT_EXPR will be required for converting
+     between them and it might be hard to overcome afterwards, including
+     at the RTL level when the stand-alone object is accessed as a whole.  */
   if (align != 0
       && TREE_CODE (type) == RECORD_TYPE
       && TYPE_MODE (type) == BLKmode