summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2004-11-24 16:37:02 +0000
committeraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2004-11-24 16:37:02 +0000
commit98bc0e78a8d3f85b3eefb92cb370912eea662d90 (patch)
tree6fe3199ef3320bb14c0b7aecd17114216aefd972
parent90cea4648281e1b90ae4c6009e67257be4f099b8 (diff)
downloadppe42-gcc-98bc0e78a8d3f85b3eefb92cb370912eea662d90.tar.gz
ppe42-gcc-98bc0e78a8d3f85b3eefb92cb370912eea662d90.zip
* tree.c (recompute_tree_invarant_for_addr_expr): The address of a
thread-local variable is invariant. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91174 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9d9423452f0..7d5bae227f3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-11-24 Aldy Hernandez <aldyh@redhat.com>
+
+ * tree.c (recompute_tree_invarant_for_addr_expr): The address of a
+ thread-local variable is invariant.
+
2004-11-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* tree-pretty-print.c (dump_generic_node, case POINTER_TYPE):
diff --git a/gcc/tree.c b/gcc/tree.c
index 643f1def6e4..9fb3628261d 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -2421,7 +2421,9 @@ do { tree _node = (NODE); \
{
if (staticp (node))
;
- else if (decl_function_context (node) == current_function_decl)
+ else if (decl_function_context (node) == current_function_decl
+ /* Addresses of thread-local variables are invariant. */
+ || (TREE_CODE (node) == VAR_DECL && DECL_THREAD_LOCAL (node)))
tc = false;
else
ti = tc = false;
OpenPOWER on IntegriCloud