From a7972e3b48029b3445e874d52a18a6d04aaca2ba Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Fri, 17 Jul 2015 20:45:50 +0200 Subject: [PATCH] backport: re PR target/66703 ([4.9/5/6] gcc.target/i386/readeflags-1.c aborts on -march=i586 or on -miamcu) Backport from mainline: 2015-07-10 Uros Bizjak PR target/66703 * gcc.target/i386/readeflags-1.c (readeflags_test): Declare with __attribute__((noinline, noclone)). Change "x" to "volatile char" type to prevent possible flag-clobbering zero-extensions. * gcc.target/i386/pr66703.c: New test. From-SVN: r225962 --- gcc/testsuite/ChangeLog | 11 +++++++++++ gcc/testsuite/gcc.target/i386/pr66703.c | 4 ++++ gcc/testsuite/gcc.target/i386/readeflags-1.c | 5 +++-- 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/pr66703.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index cbb60c390714..2ff28ecfd72f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2015-06-17 Uros Bizjak + + Backport from mainline: + 2015-07-10 Uros Bizjak + + PR target/66703 + * gcc.target/i386/readeflags-1.c (readeflags_test): Declare with + __attribute__((noinline, noclone)). Change "x" to "volatile char" + type to prevent possible flag-clobbering zero-extensions. + * gcc.target/i386/pr66703.c: New test. + 2015-06-17 Uros Bizjak Backport from mainline: diff --git a/gcc/testsuite/gcc.target/i386/pr66703.c b/gcc/testsuite/gcc.target/i386/pr66703.c new file mode 100644 index 000000000000..0fb05829deb6 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr66703.c @@ -0,0 +1,4 @@ +/* { dg-do run { target { ia32 } } } */ +/* { dg-options "-O0 -mtune=pentium" } */ + +#include "readeflags-1.c" diff --git a/gcc/testsuite/gcc.target/i386/readeflags-1.c b/gcc/testsuite/gcc.target/i386/readeflags-1.c index 6b2fa7e8d146..8b00d7d5d110 100644 --- a/gcc/testsuite/gcc.target/i386/readeflags-1.c +++ b/gcc/testsuite/gcc.target/i386/readeflags-1.c @@ -9,10 +9,11 @@ #define EFLAGS_TYPE unsigned int #endif -static EFLAGS_TYPE +__attribute__((noinline, noclone)) +EFLAGS_TYPE readeflags_test (unsigned int a, unsigned int b) { - unsigned x = (a == b); + volatile char x = (a == b); return __readeflags (); } -- 2.47.2