Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP2:GA
gcc48
gcc48-bnc884738.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gcc48-bnc884738.patch of Package gcc48
2014-07-15 Michael Matz <matz@suse.de> PR rtl-optimization/61772 * ifcvt.c (dead_or_predicable): Check jump to be free of side effects. * gcc.dg/torture/pr61772.c: New test. Index: gcc/testsuite/gcc.dg/torture/pr61772.c =================================================================== --- gcc/testsuite/gcc.dg/torture/pr61772.c (revision 0) +++ gcc/testsuite/gcc.dg/torture/pr61772.c (revision 212563) @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { dg-final { scan-assembler-times "XXX" 2 } } */ + +static inline __attribute__((always_inline)) int dec_and_test (int *i) +{ + asm volatile goto ("XXX %0, %l[cc_label]" + : : "m" (*i) : "memory" : cc_label); + return 0; +cc_label: + return 1; +} +extern int getit (int *); +int f (int *i, int cond) +{ + if (cond) { + getit (0); + if (dec_and_test (i)) + getit (i); + return 42; + } + if (dec_and_test (i)) + (void)1; + return getit (i); +} Index: gcc/ifcvt.c =================================================================== --- gcc/ifcvt.c (revision 212562) +++ gcc/ifcvt.c (revision 212563) @@ -4138,6 +4138,8 @@ dead_or_predicable (basic_block test_bb, if (JUMP_P (end)) { + if (!onlyjump_p (end)) + return FALSE; if (head == end) { head = end = NULL_RTX;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor