diff options
author | dberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-28 14:36:56 +0000 |
---|---|---|
committer | dberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-28 14:36:56 +0000 |
commit | b587b8822220ef729dfc8e65e7453dcc7e99b156 (patch) | |
tree | 87dc369cc870f3e7587d5a12ffa63352467928cd | |
parent | aaa85a7e31771f5fc55ef32e01d5909ada2e926e (diff) | |
download | ppe42-gcc-b587b8822220ef729dfc8e65e7453dcc7e99b156.tar.gz ppe42-gcc-b587b8822220ef729dfc8e65e7453dcc7e99b156.zip |
2006-03-28 Daniel Berlin <dberlin@dberlin.org>
* tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
from parent_var.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112451 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/pr25737.c | 23 | ||||
-rw-r--r-- | gcc/tree-ssa-alias.c | 1 |
3 files changed, 29 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f57f710a61d..6a323d6c044 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-03-28 Daniel Berlin <dberlin@dberlin.org> + + * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE + from parent_var. + 2006-03-27 Roger Sayle <roger@eyesopen.com> PR middle-end/22524 diff --git a/gcc/testsuite/gcc.c-torture/execute/pr25737.c b/gcc/testsuite/gcc.c-torture/execute/pr25737.c new file mode 100644 index 00000000000..9da63adceab --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr25737.c @@ -0,0 +1,23 @@ +extern void abort (void); + +struct delay_block { + struct delay_block *succ; +}; + +static struct delay_block Timer_Queue; + +struct delay_block* time_enqueue (struct delay_block *d) +{ + struct delay_block *q = Timer_Queue.succ; + d->succ = (void *)0; + return Timer_Queue.succ; +} + +int main(void) +{ + Timer_Queue.succ = &Timer_Queue; + if (time_enqueue (&Timer_Queue) != (void*)0) + abort (); + return 0; +} + diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c index e1fcb0be831..f0d16d452a6 100644 --- a/gcc/tree-ssa-alias.c +++ b/gcc/tree-ssa-alias.c @@ -2853,6 +2853,7 @@ create_sft (tree var, tree field, unsigned HOST_WIDE_INT offset, TREE_PUBLIC (subvar) = TREE_PUBLIC (var); TREE_STATIC (subvar) = TREE_STATIC (var); TREE_READONLY (subvar) = TREE_READONLY (var); + TREE_ADDRESSABLE (subvar) = TREE_ADDRESSABLE (var); /* Add the new variable to REFERENCED_VARS. */ ann = get_var_ann (subvar); |