aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Edlinger <bernd.edlinger@hotmail.de>2016-06-22 13:01:11 +0000
committerBernd Edlinger <edlinger@gcc.gnu.org>2016-06-22 13:01:11 +0000
commitb60fc3bdf81ecc19693a5e8bab1ab079fa8f085d (patch)
tree5c76af84de0c8a66f87b02adb894bc70c95c683e /gcc
parent9465f1d3fc512d6364e0fd3725b6e9c78840436b (diff)
downloadgcc-b60fc3bdf81ecc19693a5e8bab1ab079fa8f085d.zip
gcc-b60fc3bdf81ecc19693a5e8bab1ab079fa8f085d.tar.gz
gcc-b60fc3bdf81ecc19693a5e8bab1ab079fa8f085d.tar.bz2
i386.c (print_reg): Emit an error message on attempt to print FLAGS_REG.
gcc: 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de> * config/i386/i386.c (print_reg): Emit an error message on attempt to print FLAGS_REG. testsuite: 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de> * gcc.target/i386/asm-flag-7.c: New test. From-SVN: r237702
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/i386.c7
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.target/i386/asm-flag-7.c9
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b779396..909a742 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ * config/i386/i386.c (print_reg): Emit an error message on attempt to
+ print FLAGS_REG.
+
2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm.c (arm_cortex_a73_tune): New struct.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 9d36106..1e87286 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -17246,10 +17246,15 @@ print_reg (rtx x, int code, FILE *file)
gcc_assert (regno != ARG_POINTER_REGNUM
&& regno != FRAME_POINTER_REGNUM
- && regno != FLAGS_REG
&& regno != FPSR_REG
&& regno != FPCR_REG);
+ if (regno == FLAGS_REG)
+ {
+ output_operand_lossage ("invalid use of asm flag output");
+ return;
+ }
+
duplicated = code == 'd' && TARGET_AVX;
switch (msize)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 31300ec1..b8546af 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ * gcc.target/i386/asm-flag-7.c: New test.
+
2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* gcc.dg/tree-ssa/forwprop-28.c: Remove mep-* support.
diff --git a/gcc/testsuite/gcc.target/i386/asm-flag-7.c b/gcc/testsuite/gcc.target/i386/asm-flag-7.c
new file mode 100644
index 0000000..1130997
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/asm-flag-7.c
@@ -0,0 +1,9 @@
+/* Test error conditions of asm flag outputs. */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+void test(void)
+{
+ char x;
+ asm("# %0" : "=@ccz"(x)); /* { dg-error "invalid use of asm flag output" } */
+}