diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2011-01-31 10:45:20 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2011-01-31 10:45:20 +0000 |
commit | 171bbfd2ef5e0bc622476cb1e993a6106670dd83 (patch) | |
tree | c7b141e9f82040f5e8edf64fbc17c9864eafe064 /gcc | |
parent | ba4ec0e067f446969f7fdd7024c0e3ff48122994 (diff) | |
download | gcc-171bbfd2ef5e0bc622476cb1e993a6106670dd83.zip gcc-171bbfd2ef5e0bc622476cb1e993a6106670dd83.tar.gz gcc-171bbfd2ef5e0bc622476cb1e993a6106670dd83.tar.bz2 |
re PR rtl-optimization/44031 (ice in subst_reloads, at reload.c:6327)
PR rtl-optimization/44031
* gcc.c-torture/compile/20110131-1.c: New test.
From-SVN: r169433
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20110131-1.c | 38 |
2 files changed, 43 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c8de82a..bde5bc0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2011-01-31 Eric Botcazou <ebotcazou@adacore.com> + + PR rtl-optimization/44031 + * gcc.c-torture/compile/20110131-1.c: New test. + 2011-01-31 Tobias Burnus <burnus@net-b.de> PR fortran/47042 diff --git a/gcc/testsuite/gcc.c-torture/compile/20110131-1.c b/gcc/testsuite/gcc.c-torture/compile/20110131-1.c new file mode 100644 index 0000000..8ce68de --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/20110131-1.c @@ -0,0 +1,38 @@ +/* PR rtl-optimization/44031 */ +/* Testcase by John Regehr <regehr@cs.utah.edu> */ + +typedef unsigned char uint8_t; +typedef unsigned int uint32_t; +typedef unsigned long int uint64_t; + +static uint32_t +safe_add_func_uint32_t_u_u (uint32_t ui1, uint32_t ui2) +{ + return ui1 + ui2; +} + +static uint64_t +safe_div_func_uint64_t_u_u (uint64_t ui1, uint32_t ui2) +{ + return ui2 ? : (ui1 / ui2); +} + +uint8_t g_55; +uint8_t *g_73 = &g_55; +uint8_t **g_332 = &g_73; + +int func_38(uint8_t *,int); +int func_8(int); + +int int321 (void) +{ + uint8_t l_26[4]; + uint8_t *l_238 = &l_26[2]; + uint8_t l_400; + l_400 &= + func_38 (&l_26[3], + safe_add_func_uint32_t_u_u (safe_div_func_uint64_t_u_u + (1, **g_332), + *l_238) >= *l_238 < func_8 (0)), 1; + return 0; +} |