Backport from mainline:
2015-07-10 Uros Bizjak <ubizjak@gmail.com>
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
+2015-06-17 Uros Bizjak <ubizjak@gmail.com>
+
+ Backport from mainline:
+ 2015-07-10 Uros Bizjak <ubizjak@gmail.com>
+
+ 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 <ubizjak@gmail.com>
Backport from mainline:
--- /dev/null
+/* { dg-do run { target { ia32 } } } */
+/* { dg-options "-O0 -mtune=pentium" } */
+
+#include "readeflags-1.c"
#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 ();
}