summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>2006-03-28 14:36:56 +0000
committerdberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>2006-03-28 14:36:56 +0000
commitb587b8822220ef729dfc8e65e7453dcc7e99b156 (patch)
tree87dc369cc870f3e7587d5a12ffa63352467928cd
parentaaa85a7e31771f5fc55ef32e01d5909ada2e926e (diff)
downloadppe42-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/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr25737.c23
-rw-r--r--gcc/tree-ssa-alias.c1
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);
OpenPOWER on IntegriCloud