summaryrefslogtreecommitdiffstats
path: root/gcc/ada/gcc-interface/utils.c
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2012-07-03 07:57:46 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2012-07-03 07:57:46 +0000
commit66f0b044319a0853c186863587fc99d5cd5037aa (patch)
treeaebce448073fa12709ee05c731d52ba40b06e344 /gcc/ada/gcc-interface/utils.c
parent44bfcc4f291ede957525da5b782f4829e2f691e1 (diff)
downloadppe42-gcc-66f0b044319a0853c186863587fc99d5cd5037aa.tar.gz
ppe42-gcc-66f0b044319a0853c186863587fc99d5cd5037aa.zip
* gcc-interface/utils.c (gnat_pushdecl): Set TYPE_CONTEXT for types
attached to a TYPE_DECL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189195 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/gcc-interface/utils.c')
-rw-r--r--gcc/ada/gcc-interface/utils.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c
index d2183bbe160..923fbd18bed 100644
--- a/gcc/ada/gcc-interface/utils.c
+++ b/gcc/ada/gcc-interface/utils.c
@@ -612,6 +612,7 @@ gnat_pushdecl (tree decl, Node_Id gnat_node)
if (TREE_CODE (t) == POINTER_TYPE)
TYPE_NEXT_PTR_TO (t) = tt;
TYPE_NAME (tt) = DECL_NAME (decl);
+ TYPE_CONTEXT (tt) = DECL_CONTEXT (decl);
TYPE_STUB_DECL (tt) = TYPE_STUB_DECL (t);
DECL_ORIGINAL_TYPE (decl) = tt;
}
@@ -621,6 +622,7 @@ gnat_pushdecl (tree decl, Node_Id gnat_node)
/* We need a variant for the placeholder machinery to work. */
tree tt = build_variant_type_copy (t);
TYPE_NAME (tt) = decl;
+ TYPE_CONTEXT (tt) = DECL_CONTEXT (decl);
TREE_USED (tt) = TREE_USED (t);
TREE_TYPE (decl) = tt;
if (DECL_ORIGINAL_TYPE (TYPE_NAME (t)))
@@ -640,7 +642,10 @@ gnat_pushdecl (tree decl, Node_Id gnat_node)
if (t)
for (t = TYPE_MAIN_VARIANT (t); t; t = TYPE_NEXT_VARIANT (t))
if (!(TYPE_NAME (t) && TREE_CODE (TYPE_NAME (t)) == TYPE_DECL))
- TYPE_NAME (t) = decl;
+ {
+ TYPE_NAME (t) = decl;
+ TYPE_CONTEXT (t) = DECL_CONTEXT (decl);
+ }
}
}
OpenPOWER on IntegriCloud