re PR target/67265 ([x86] 'asm' operand has impossible constraints with -fstack-check)
authorEric Botcazou <ebotcazou@adacore.com>
Thu, 12 Nov 2015 11:55:11 +0000 (11:55 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Thu, 12 Nov 2015 11:55:11 +0000 (11:55 +0000)
PR target/67265
* config/i386/i386.c (ix86_adjust_stack_and_probe): Remove obsolete
assertion on the CFA register.

From-SVN: r230245

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr67265-2.c [new file with mode: 0644]

index 0a2a9ae2126d71224572614e6cbe02c7fb5e71f4..ab7d52959f83c1103a1a318efe633a7c5561525e 100644 (file)
@@ -1,3 +1,9 @@
+2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/67265
+       * config/i386/i386.c (ix86_adjust_stack_and_probe): Remove obsolete
+       assertion on the CFA register.
+
 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
 
        * expr.c (do_store_flag): Expand vector comparison as
index d048b19f3855d9fae9eb02b063bc6c3429d60153..1a6b2fd760edfaee3e241b0269df0277f1201186 100644 (file)
@@ -12246,8 +12246,6 @@ ix86_adjust_stack_and_probe (const HOST_WIDE_INT size)
       release_scratch_register_on_entry (&sr);
     }
 
-  gcc_assert (cfun->machine->fs.cfa_reg != stack_pointer_rtx);
-
   /* Even if the stack pointer isn't the CFA register, we need to correctly
      describe the adjustments made to it, in particular differentiate the
      frame-related ones from the frame-unrelated ones.  */
index 20a7deb6017f22caf4f8bf87d311a97414e49638..d3259b6fa38b87e4c88b209026bf852bf720bac1 100644 (file)
@@ -1,3 +1,7 @@
+2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc.target/i386/pr67265-2.c: New test.
+
 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
 
        * gcc.dg/pr68286.c: New test.
diff --git a/gcc/testsuite/gcc.target/i386/pr67265-2.c b/gcc/testsuite/gcc.target/i386/pr67265-2.c
new file mode 100644 (file)
index 0000000..a9f2eb4
--- /dev/null
@@ -0,0 +1,9 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fstack-check" } */
+
+void foo (int n)
+{
+  volatile char arr[64 * 1024];
+
+  arr[n] = 1;
+}