aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog7
-rw-r--r--gcc/ada/gcc-interface/trans.c9
2 files changed, 14 insertions, 2 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index e96313a3..508684e 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,6 +1,11 @@
+2008-09-15 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/trans.c (gigi): Declare the name of the compilation
+ unit as the first global name.
+
2008-09-14 Jan Hubicka <jh@suse.cz>
- * gcc-interface/Make-lang.in (gnac1): Add CFLAGS.
+ * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
2008-09-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index f8265cc..938408b 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -387,10 +387,17 @@ gigi (Node_Id gnat_root, int max_gnat_node, int number_name,
gnat_init_gcc_eh ();
gcc_assert (Nkind (gnat_root) == N_Compilation_Unit);
+
+ /* Declare the name of the compilation unit as the first global
+ name in order to make the middle-end fully deterministic. */
+ t = create_concat_name (Defining_Entity (Unit (gnat_root)), NULL);
+ first_global_object_name = ggc_strdup (IDENTIFIER_POINTER (t));
+
+ /* Now translate the compilation unit proper. */
start_stmt_group ();
Compilation_Unit_to_gnu (gnat_root);
- /* Now see if we have any elaboration procedures to deal with. */
+ /* Finally see if we have any elaboration procedures to deal with. */
for (info = elab_info_list; info; info = info->next)
{
tree gnu_body = DECL_SAVED_TREE (info->elab_proc);