+2004-11-12 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/18416
+ * passes.c (rest_of_decl_compilation): Do not look at DECL_RTL
+ when deciding whether to pass a variable to
+ cgraph_varpool_finalize_decl or assemble_variable.
+ * toplev.c (check_global_declarations): Do not clear DECL_RTL.
+
2004-11-12 Kazu Hirata <kazu@cs.umass.edu>
* tree-vectorizer.c: Fix a comment typo.
&& !DECL_EXTERNAL (decl))
{
if (flag_unit_at_a_time && !cgraph_global_info_ready
- && TREE_CODE (decl) != FUNCTION_DECL && top_level
- /* If we defer processing of decls that have had their
- DECL_RTL set above (say, in make_decl_rtl),
- check_global_declarations() will clear it before
- assemble_variable has a chance to act on it. This
- would remove all traces of the register name in a
- global register variable, for example. */
- && !DECL_RTL_SET_P (decl))
+ && TREE_CODE (decl) != FUNCTION_DECL && top_level)
cgraph_varpool_finalize_decl (decl);
else
assemble_variable (decl, top_level, at_end, 0);
+2004-11-12 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/18416
+ * g++.dg/init/global1.C: New test.
+
2004-11-12 Eric Botcazou <ebotcazou@act-europe.fr>
* gcc.c-torture/execute/20041112-1.c: New test.
--- /dev/null
+// PR c++/18416
+
+class errarg {
+ enum { EMPTY } type;
+public:
+ errarg();
+};
+extern errarg empty_errarg;
+extern void errprint(const char *,
+ const errarg &arg1 = empty_errarg,
+ const errarg &arg2 = empty_errarg,
+ const errarg &arg3 = empty_errarg);
+errarg::errarg() : type(EMPTY)
+{
+}
+errarg empty_errarg;
{
decl = vec[i];
- if (TREE_CODE (decl) == VAR_DECL && TREE_STATIC (decl)
- && ! TREE_ASM_WRITTEN (decl))
- /* Cancel the RTL for this decl so that, if debugging info
- output for global variables is still to come,
- this one will be omitted. */
- SET_DECL_RTL (decl, NULL_RTX);
-
/* Warn about any function
declared static but not defined.
We don't warn about variables,