diff options
author | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2016-06-22 13:01:11 +0000 |
---|---|---|
committer | Bernd Edlinger <edlinger@gcc.gnu.org> | 2016-06-22 13:01:11 +0000 |
commit | b60fc3bdf81ecc19693a5e8bab1ab079fa8f085d (patch) | |
tree | 5c76af84de0c8a66f87b02adb894bc70c95c683e /gcc | |
parent | 9465f1d3fc512d6364e0fd3725b6e9c78840436b (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/asm-flag-7.c | 9 |
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" } */ +} |