diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ipa-struct-reorg.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/struct/wo_prof_double_malloc.c | 30 |
4 files changed, 44 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a133534..0b6653d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2008-03-13 Alon Dayan <alond@il.ibm.com> + Olga Golovanevsky <olga@il.ibm.com> + + PR tree-optimization/35041 + * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option + to locate the right position in a statement. + 2008-03-13 Uros Bizjak <ubizjak@gmail.com> PR target/34000 diff --git a/gcc/ipa-struct-reorg.c b/gcc/ipa-struct-reorg.c index 514b9a2..515dba6 100644 --- a/gcc/ipa-struct-reorg.c +++ b/gcc/ipa-struct-reorg.c @@ -887,7 +887,7 @@ find_pos_in_stmt_1 (tree *tp, int *walk_subtrees, void * data) tree ref = r_pos->ref; tree t = *tp; - if (t == ref) + if (t == ref || (TREE_CODE (t) == SSA_NAME && SSA_NAME_VAR (t) == ref)) { r_pos->pos = tp; return t; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index dbd8e8b..b77a93c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2008-02-19 Alon Dayan <alond@il.ibm.com> + Olga Golovanevsky <olga@il.ibm.com> + + PR tree-optimization/35041 + * gcc.dg/struct/wo_prof_double_malloc.c: New test. + 2008-03-13 Uros Bizjak <ubizjak@gmail.com> PR target/34000 diff --git a/gcc/testsuite/gcc.dg/struct/wo_prof_double_malloc.c b/gcc/testsuite/gcc.dg/struct/wo_prof_double_malloc.c new file mode 100644 index 0000000..27503f8 --- /dev/null +++ b/gcc/testsuite/gcc.dg/struct/wo_prof_double_malloc.c @@ -0,0 +1,30 @@ +/* { dg-do compile } */ +/* { dg-do run } */ + +#include <stdlib.h> + +typedef struct test_struct +{ + int a; + int b; +} type_struct; + +typedef type_struct **struct_pointer2; + +struct_pointer2 str1; + +int main() +{ + int i, j; + + str1 = malloc (2 * sizeof (type_struct *)); + + for (i = 0; i <= 1; i++) + str1[i] = malloc (2 * sizeof (type_struct)); + + return 0; +} + +/*--------------------------------------------------------------------------*/ +/* { dg-final { scan-ipa-dump "Number of structures to transform is 1" "ipa_struct_reorg" } } */ +/* { dg-final { cleanup-ipa-dump "*" } } */ |