re PR target/89261 (ix86_data_alignment has wrong argument type)
authorUros Bizjak <ubizjak@gmail.com>
Sat, 27 Apr 2019 13:38:19 +0000 (15:38 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Sat, 27 Apr 2019 13:38:19 +0000 (15:38 +0200)
PR target/89261
* config/i386/i386-protos.h (ix86_data_alignment): Change
the second argument type to unsigned int.
* config/i386/i386.c (ix86_data_alignment): Change "align"
argument type to unsigned int.

testsuite/ChangeLog:

PR target/89261
* gcc.target/i386/pr89261.c: New test.

From-SVN: r270623

gcc/ChangeLog
gcc/config/i386/i386-protos.h
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr89261.c [new file with mode: 0644]

index 5d5f03cfcff9adfb8a6e7569fe207776c96e0dcc..c1adf69d5d7aaf02e70e0801a8c4cdef407058d8 100644 (file)
@@ -1,3 +1,11 @@
+2019-04-27  Uroš Bizjak  <ubizjak@gmail.com>
+
+       PR target/89261
+       * config/i386/i386-protos.h (ix86_data_alignment): Change
+       the second argument type to unsigned int.
+       * config/i386/i386.c (ix86_data_alignment): Change "align"
+       argument type to unsigned int.
+
 2019-04-27  Martin Liska  <mliska@suse.cz>
 
        PR middle-end/90258
index 83645e89a812155c2714a447c51dd6a4ae7c0cd7..f080ec35afe7896f1d01bab5e2e60d1fd394dfb0 100644 (file)
@@ -207,7 +207,7 @@ extern void init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree, int);
 #endif /* RTX_CODE  */
 
 #ifdef TREE_CODE
-extern int ix86_data_alignment (tree, int, bool);
+extern int ix86_data_alignment (tree, unsigned int, bool);
 extern unsigned int ix86_local_alignment (tree, machine_mode,
                                          unsigned int);
 extern unsigned int ix86_minimum_alignment (tree, machine_mode,
index 8a1ffd3769f57dd042c711cbef1ca18d68a26100..d191e8c7b5b6a7fea6a6be20d25f2ec423ddb224 100644 (file)
@@ -29802,7 +29802,7 @@ iamcu_alignment (tree type, int align)
    instead of that alignment to align the object.  */
 
 int
-ix86_data_alignment (tree type, int align, bool opt)
+ix86_data_alignment (tree type, unsigned int align, bool opt)
 {
   /* GCC 4.8 and earlier used to incorrectly assume this alignment even
      for symbols from other compilation units or symbols that don't need
@@ -29810,14 +29810,14 @@ ix86_data_alignment (tree type, int align, bool opt)
      those compilers, ensure we don't decrease alignment from what we
      used to assume.  */
 
-  int max_align_compat = MIN (256, MAX_OFILE_ALIGNMENT);
+  unsigned int max_align_compat = MIN (256, MAX_OFILE_ALIGNMENT);
 
   /* A data structure, equal or greater than the size of a cache line
      (64 bytes in the Pentium 4 and other recent Intel processors, including
      processors based on Intel Core microarchitecture) should be aligned
      so that its base address is a multiple of a cache line size.  */
 
-  int max_align
+  unsigned int max_align
     = MIN ((unsigned) ix86_tune_cost->prefetch_block * 8, MAX_OFILE_ALIGNMENT);
 
   if (max_align < BITS_PER_WORD)
index 6a52a9b1102b7b036ac121310f9c1c284300a6e0..15b3e13f2976339eae5a82ac7fd6bc4567a133e6 100644 (file)
@@ -1,3 +1,8 @@
+2019-04-27  Uroš Bizjak  <ubizjak@gmail.com>
+
+       PR target/89261
+       * gcc.target/i386/pr89261.c: New test.
+
 2019-04-27  Martin Liska  <mliska@suse.cz>
 
        PR middle-end/90258
diff --git a/gcc/testsuite/gcc.target/i386/pr89261.c b/gcc/testsuite/gcc.target/i386/pr89261.c
new file mode 100644 (file)
index 0000000..63882c0
--- /dev/null
@@ -0,0 +1,9 @@
+/* PR target/89261 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+typedef double __v2df __attribute__ ((vector_size (16), aligned (1 << 28)));
+
+__v2df foo = { 1.0, 2.0 };
+
+/* { dg-final { scan-assembler "\.align\[ \t]+268435456" } } */