aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorebotcazou <>2012-02-29 11:41:07 +0000
committerebotcazou <>2012-02-29 11:41:07 +0000
commit1e5796c1e8c085ab0ed4861c5ecfbe7077183b6e (patch)
tree9b35df5ef45d5017c10909a673da1312537ecd35 /gcc
parent5494cec995389b442e88721ac553298ed05fb661 (diff)
* gcc-interface/utils.c (gnat_write_global_declarations): Make sure the
dummy global built for global types is preserved.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/gcc-interface/utils.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index b0b51ee4f47..6303fb8e05f 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2012-02-29 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/utils.c (gnat_write_global_declarations): Make sure the
+ dummy global built for global types is preserved.
+
2012-02-27 Tristan Gingold <gingold@adacore.com>
* gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type,
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c
index 33d11ef3fe2..ab405db814e 100644
--- a/gcc/ada/gcc-interface/utils.c
+++ b/gcc/ada/gcc-interface/utils.c
@@ -4892,11 +4892,14 @@ gnat_write_global_declarations (void)
the global hash table. We use a dummy variable for this purpose. */
if (!VEC_empty (tree, types_used_by_cur_var_decl))
{
+ struct varpool_node *node;
dummy_global
= build_decl (BUILTINS_LOCATION, VAR_DECL, NULL_TREE, void_type_node);
TREE_STATIC (dummy_global) = 1;
TREE_ASM_WRITTEN (dummy_global) = 1;
- varpool_mark_needed_node (varpool_node (dummy_global));
+ node = varpool_node (dummy_global);
+ node->force_output = 1;
+ varpool_mark_needed_node (node);
while (!VEC_empty (tree, types_used_by_cur_var_decl))
{