utils.c (maybe_pad_type): Do not apply adjustment to original size for elementary...
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 25 May 2015 21:30:39 +0000 (21:30 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 25 May 2015 21:30:39 +0000 (21:30 +0000)
* gcc-interface/utils.c (maybe_pad_type): Do not apply adjustment to
original size for elementary types before issuing the size warning.

From-SVN: r223657

gcc/ada/ChangeLog
gcc/ada/gcc-interface/utils.c
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/specs/alignment2.ads
gcc/testsuite/gnat.dg/warn11.adb [new file with mode: 0644]

index 05b1edf..f75ecf0 100644 (file)
@@ -1,5 +1,15 @@
 2015-05-25  Eric Botcazou  <ebotcazou@adacore.com>
 
+       * gcc-interface/utils.c (maybe_pad_type): Do not apply adjustment to
+       original size for elementary types before issuing the size warning.
+
+2015-05-25  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * get_targ.adb (C_Get_Float_Words_BE): Adjust import name.
+       (C_Get_Words_BE): Likewise.
+       (C_Get_Bytes_BE): Likewise.
+       (C_Get_Bits_BE): Likewise.
+       (Width_From_Size): Remove superfluous space.
        * gcc-interface/targtyps.c (get_float_words_be): Rename into...
        (get_target_float_words_be): ...this.
        (get_words_be): Rename into...
index c20378a..291e824 100644 (file)
@@ -1426,7 +1426,7 @@ built:
   if (CONTAINS_PLACEHOLDER_P (orig_size))
     orig_size = max_size (orig_size, true);
 
-  if (align)
+  if (align && AGGREGATE_TYPE_P (type))
     orig_size = round_up (orig_size, align);
 
   if (!operand_equal_p (size, orig_size, 0)
index 3be8bfc..aeb7308 100644 (file)
@@ -1,5 +1,10 @@
 2015-05-25  Eric Botcazou  <ebotcazou@adacore.com>
 
+       * gnat.dg/warn11.adb: New test.
+       * gnat.dg/specs/alignment2.ads: Add dg-warning directive.
+
+2015-05-25  Eric Botcazou  <ebotcazou@adacore.com>
+
        * gnat.dg/vfa1_1.adb: New test.
        * gnat.dg/vfa1_2.adb: Likewise.
        * gnat.dg/vfa1_3.adb: Likewise.
index 4adffc6..0b6c14f 100644 (file)
@@ -43,7 +43,7 @@ package Alignment2 is
 
   -- OK, big size
   type I3 is new Integer_32;
-  for I3'Size use 32 * 8;
+  for I3'Size use 32 * 8; -- { dg-warning "unused" }
   for I3'Alignment use 32;
 
 end Alignment2;
diff --git a/gcc/testsuite/gnat.dg/warn11.adb b/gcc/testsuite/gnat.dg/warn11.adb
new file mode 100644 (file)
index 0000000..ff24d7c
--- /dev/null
@@ -0,0 +1,14 @@
+with Ada.Text_IO; use Ada.Text_IO;
+
+procedure Warn11 is
+
+   type My_Integer is new Integer range 1 .. 10;
+   for My_Integer'Size use 65;  -- { dg-warning "unused" }
+
+   type My_Integer2 is new Integer range 1 .. 10;
+   for My_Integer2'Size use 129;  -- { dg-warning "unused" }
+
+begin
+   Put_Line ("MB'Size is " & Natural'Image (My_Integer'Size));
+   Put_Line ("MB'Size is " & Natural'Image (My_Integer2'Size));
+end;