diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-05-14 20:18:34 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-05-14 20:18:34 +0000 |
commit | b0834cc0b5779ff0b603165f0274f67e267e0348 (patch) | |
tree | 3987bfabfa6a62defbc460cffd508dc3fdc78201 /gcc/testsuite/gcc.c-torture | |
parent | f8b3db21c5103bc5202d4ec1b4a410dba84ba119 (diff) | |
download | gcc-b0834cc0b5779ff0b603165f0274f67e267e0348.tar.gz |
2010-05-14 Richard Guenther <rguenther@suse.de>
PR tree-optimization/44119
* tree-ssa-pre.c (eliminate): Properly mark replacement of
a PHI node necessary.
* gcc.c-torture/compile/pr44119.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159412 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.c-torture')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr44119.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr44119.c b/gcc/testsuite/gcc.c-torture/compile/pr44119.c new file mode 100644 index 00000000000..ef6ca4533fc --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr44119.c @@ -0,0 +1,46 @@ +typedef signed char int8_t; +typedef short int int16_t; +typedef int int32_t; +typedef unsigned int uint32_t; +static int8_t +safe_mul_func_int16_t_s_s (int16_t si1, int8_t si2) +{ + return si1 && si2 && si1 > +si2 || si1 && si2 && si2 < +si1 || si1 && si2 + && si1 < +si2 || si1 && si2 && si1 && si2 < +si1 ? : si1 * si2; +} + +struct S0 +{ +}; +int32_t g_72[7][4][1]; +int32_t *g_184 = &g_72[1][2][0]; +int32_t **g_224 = &g_184; +struct S0 g_244 = { +}; + +int8_t * +func_96 (int8_t p_97, uint32_t p_98, uint32_t p_99) +{ + struct S0 *l_243 = &g_244; + int i; + for (i = 0; i < 1; p_98 = 1) + { + int32_t *l_202[3]; + int i; + for (i = 0; i < 1; i++) + l_202[i] = &g_72[2][2][0]; + if (safe_mul_func_int16_t_s_s (0xCAF0, **g_224)) + { + if (p_98 && &l_243) + { + } + else + *g_224 = l_202[0]; + for (0;; 1) + { + } + } + } + return 0; +} + |