]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR tree-optimization/43528 (ICE: in tree_low_cst, at tree.c:6198 with...
authorUros Bizjak <ubizjak@gmail.com>
Wed, 31 Mar 2010 20:14:10 +0000 (22:14 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 31 Mar 2010 20:14:10 +0000 (22:14 +0200)
Backport from mainline:
2010-03-27  Uros Bizjak  <ubizjak@gmail.com>

PR tree-optimization/43528
* stor-layout.c (place_field): Check that constant fits into
unsigned HWI when skipping calculation of MS bitfield layout.

2010-03-26  Uros Bizjak  <ubizjak@gmail.com>

PR target/43524
* config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
Remove invalid assert and wrong comment.

testsuite/ChangeLog:

Backport from mainline:
2010-03-27  Uros Bizjak  <ubizjak@gmail.com>

PR tree-optimization/43528
* gcc.target/i386/pr43528.c: New test.

2010-03-26  Uros Bizjak  <ubizjak@gmail.com>

PR target/43524
* gcc.target/i386/pr43524.c: New test.

From-SVN: r157894

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/stor-layout.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr43524.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/pr43528.c [new file with mode: 0644]

index c68f8bf1983a5d9a3c0937b17ff8fc99de7a5420..b23577921bf9b49dc1c423bb6746404a225bf079 100644 (file)
@@ -1,3 +1,18 @@
+2010-03-31  Uros Bizjak  <ubizjak@gmail.com>
+
+       Backport from mainline:
+       2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR tree-optimization/43528
+       * stor-layout.c (place_field): Check that constant fits into
+       unsigned HWI when skipping calculation of MS bitfield layout.
+
+       2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/43524
+       * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
+       Remove invalid assert and wrong comment.
+
 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
        * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
index 25336d95c90100dc1616e28319649075fa5ff9c1..fdabc1e9d5040d71b0d9c980ef937a02b9d171ff 100644 (file)
@@ -6393,13 +6393,10 @@ ix86_expand_prologue (void)
                               GEN_INT (-allocate), -1);
   else
     {
-      /* Only valid for Win32.  */
       rtx eax = gen_rtx_REG (Pmode, AX_REG);
       bool eax_live;
       rtx t;
 
-      gcc_assert (!TARGET_64BIT || TARGET_64BIT_MS_ABI);
-
       if (TARGET_64BIT_MS_ABI)
        eax_live = false;
       else
index 1ae2db5ca002730d3f12c0bd64d8aba5fc65f974..8e988f6e18460b8eb3b45ef4052a1048a711dba2 100644 (file)
@@ -1117,11 +1117,12 @@ place_field (record_layout_info rli, tree field)
             until we see a bitfield (and come by here again) we just skip
             calculating it.  */
          if (DECL_SIZE (field) != NULL
-             && host_integerp (TYPE_SIZE (TREE_TYPE (field)), 0)
-             && host_integerp (DECL_SIZE (field), 0))
+             && host_integerp (TYPE_SIZE (TREE_TYPE (field)), 1)
+             && host_integerp (DECL_SIZE (field), 1))
            {
-             HOST_WIDE_INT bitsize = tree_low_cst (DECL_SIZE (field), 1);
-             HOST_WIDE_INT typesize
+             unsigned HOST_WIDE_INT bitsize
+               = tree_low_cst (DECL_SIZE (field), 1);
+             unsigned HOST_WIDE_INT typesize
                = tree_low_cst (TYPE_SIZE (TREE_TYPE (field)), 1);
 
              if (typesize < bitsize)
index 124ff83675777314381ae0e8e9c85775a393e69f..38a3234ebf34869e87383e6fcb04bb4e1b310359 100644 (file)
@@ -1,3 +1,16 @@
+2010-03-31  Uros Bizjak  <ubizjak@gmail.com>
+
+       Backport from mainline:
+       2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR tree-optimization/43528
+       * gcc.target/i386/pr43528.c: New test.
+
+       2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/43524
+       * gcc.target/i386/pr43524.c: New test.
+
 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
        * gcc.target/s390/stackcheck1.c: New testcase.
@@ -41,7 +54,7 @@
        Backport:
        2009-10-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
        * lib/target-supports.exp (add_options_for_bind_pic_locally): New.
-       
+
        2009-10-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
        * g++.dg/other/first-global.C: Use dg-add-options bind_pic_locally.
        * g++.dg/parse/attr-externally-visible-1.C: Likewise.
@@ -64,7 +77,7 @@
        * gfortran.dg/namelist_59.f90: New test.
        * gcc/testsuite/gfortran.dg/namelist_47.f90: Update test.
        * gcc/testsuite/gfortran.dg/namelist_40.f90: Update test.
-       
+
 2010-02-04  Richard Guenther  <rguenther@suse.de>
 
        PR rtl-optimization/42952
diff --git a/gcc/testsuite/gcc.target/i386/pr43524.c b/gcc/testsuite/gcc.target/i386/pr43524.c
new file mode 100644 (file)
index 0000000..b266270
--- /dev/null
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-mstack-arg-probe" } */
+
+extern void bar (void);
+
+void foo (int i)
+{
+  bar ();
+}
diff --git a/gcc/testsuite/gcc.target/i386/pr43528.c b/gcc/testsuite/gcc.target/i386/pr43528.c
new file mode 100644 (file)
index 0000000..f33d96b
--- /dev/null
@@ -0,0 +1,5 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-options "-mms-bitfields" } */
+
+struct S { int i[(1LL << 60) - 1]; };