aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@gcc.gnu.org>2006-11-01 05:16:14 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2006-11-01 05:16:14 +0000
commite430546039493165bb72d050645f70e87a2f7ffd (patch)
tree699c87f45ac8d8f3301362648096b1084d3f9031
parent167fa32c09eb5d93d23c74365a4ce818762de826 (diff)
downloadgcc-e430546039493165bb72d050645f70e87a2f7ffd.zip
gcc-e430546039493165bb72d050645f70e87a2f7ffd.tar.gz
gcc-e430546039493165bb72d050645f70e87a2f7ffd.tar.bz2
In gcc/:
* toplev.c (compile_file): Call final_write_globals even if there have been errors. In gcc/cp/: * decl2.c (cp_write_global_declarations): Rename from cp_finish_file. * cp-lang.c (finish_file): Don't call cp_finish_file. * cp-tree.h (cp_write_global_declarations): Rename from cp_finish_file. * cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to cp_write_global_declarations. From-SVN: r118362
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cp/ChangeLog10
-rw-r--r--gcc/cp/cp-lang.c1
-rw-r--r--gcc/cp/cp-objcp-common.h2
-rw-r--r--gcc/cp/cp-tree.h2
-rw-r--r--gcc/cp/decl2.c4
-rw-r--r--gcc/toplev.c6
7 files changed, 25 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e60fc54..9c6a836 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,9 @@
-2006-09-07 Eric Christopher <echristo@apple.com>
+2006-10-31 Geoffrey Keating <geoffk@apple.com>
+
+ * toplev.c (compile_file): Call final_write_globals
+ even if there have been errors.
+
+2006-10-31 Eric Christopher <echristo@apple.com>
Falk Hueffner <falk@debian.org>
* doc/extend.texi (__builtin_bswap32): Document.
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 27d86cd..add6b2c 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,13 @@
+2006-09-25 Geoffrey Keating <geoffk@apple.com>
+
+ * decl2.c (cp_write_global_declarations): Rename from
+ cp_finish_file.
+ * cp-lang.c (finish_file): Don't call cp_finish_file.
+ * cp-tree.h (cp_write_global_declarations): Rename from
+ cp_finish_file.
+ * cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to
+ cp_write_global_declarations.
+
2006-10-31 Geoffrey Keating <geoffk@apple.com>
* name-lookup.c (get_anonymous_namespace_name): New.
diff --git a/gcc/cp/cp-lang.c b/gcc/cp/cp-lang.c
index 6050327..793046b 100644
--- a/gcc/cp/cp-lang.c
+++ b/gcc/cp/cp-lang.c
@@ -141,7 +141,6 @@ cp_init_ts (void)
void
finish_file (void)
{
- cp_finish_file ();
}
#include "gtype-cp.h"
diff --git a/gcc/cp/cp-objcp-common.h b/gcc/cp/cp-objcp-common.h
index 5424d77..23e1f0f 100644
--- a/gcc/cp/cp-objcp-common.h
+++ b/gcc/cp/cp-objcp-common.h
@@ -84,7 +84,7 @@ extern tree objcp_tsubst_copy_and_build (tree, tree, tsubst_flags_t,
#undef LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL
#define LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL cxx_warn_unused_global_decl
#undef LANG_HOOKS_WRITE_GLOBALS
-#define LANG_HOOKS_WRITE_GLOBALS lhd_do_nothing
+#define LANG_HOOKS_WRITE_GLOBALS cp_write_global_declarations
#undef LANG_HOOKS_COMDAT_GROUP
#define LANG_HOOKS_COMDAT_GROUP cxx_comdat_group
#undef LANG_HOOKS_BUILTIN_FUNCTION
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index a8fa8a7..0fdbf82 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -3968,7 +3968,7 @@ extern tree grokbitfield (const cp_declarator *, cp_decl_specifier_seq *,
tree);
extern void cplus_decl_attributes (tree *, tree, int);
extern void finish_anon_union (tree);
-extern void cp_finish_file (void);
+extern void cp_write_global_declarations (void);
extern tree coerce_new_type (tree);
extern tree coerce_delete_type (tree);
extern void comdat_linkage (tree);
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index e4b5c00..4388918 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -3027,13 +3027,13 @@ build_java_method_aliases (void)
}
}
-/* This routine is called from the last rule in yyparse ().
+/* This routine is called at the end of compilation.
Its job is to create all the code needed to initialize and
destroy the global aggregates. We do the destruction
first, since that way we only need to reverse the decls once. */
void
-cp_finish_file (void)
+cp_write_global_declarations (void)
{
tree vars;
bool reconsider;
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 53fcdfe..0f24ce3 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1040,10 +1040,14 @@ compile_file (void)
what's left of the symbol table output. */
timevar_pop (TV_PARSE);
- if (flag_syntax_only || errorcount || sorrycount)
+ if (flag_syntax_only)
return;
lang_hooks.decls.final_write_globals ();
+
+ if (errorcount || sorrycount)
+ return;
+
cgraph_varpool_assemble_pending_decls ();
finish_aliases_2 ();