+Thu May 11 00:31:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
+
+ * typeck.c (default_conversion): Don't check for BLKmode before
+ pulling out the decl_constant_value.
+
+ * decl.c (start_function): Clear named_labels and shadowed_labels.
+
+ * typeck.c (build_function_call_real): Also synthesize methods here.
+
+Wed May 10 00:55:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
+
+ * decl2.c (finish_file): Synthesize exported methods before the
+ reconsider loop.
+
+ * parse.y: Move declaration of flag_new_for_scope to file scope.
+
Tue May 9 19:10:33 1995 Mike Stump <mrs@cygnus.com>
* decl2.c: Add flag_new_for_scope for new -ffor-scope flag.
current_function_returns_value = 0;
current_function_returns_null = 0;
warn_about_return_type = 0;
+ named_labels = 0;
+ shadowed_labels = 0;
current_function_assigns_this = 0;
current_function_just_assigned_this = 0;
current_function_parms_stored = 0;
walk_sigtables ((void (*)())0, finish_sigtable_vardecl);
for (fnname = saved_inlines; fnname; fnname = TREE_CHAIN (fnname))
- import_export_inline (TREE_VALUE (fnname));
+ {
+ tree decl = TREE_VALUE (fnname);
+ import_export_inline (decl);
+ if (DECL_ARTIFICIAL (decl) && ! DECL_INITIAL (decl)
+ && TREE_PUBLIC (decl) && DECL_NOT_REALLY_EXTERN (decl))
+ synthesize_method (decl);
+ }
/* Now write out inline functions which had their addresses taken and
which were not declared virtual and which were not declared `extern
if (DECL_ARTIFICIAL (decl) && ! DECL_INITIAL (decl))
{
- if (TREE_USED (decl)
- || (TREE_PUBLIC (decl) && DECL_NOT_REALLY_EXTERN (decl)))
+ if (TREE_USED (decl))
{
synthesize_method (decl);
if (TREE_ASM_WRITTEN (decl))
extern int end_of_file;
extern int current_class_depth;
+extern int flag_new_for_scope;
void yyerror ();
clear_momentary ();
finish_stmt (); }
| FOR
- { extern int flag_new_for_scope;
- emit_line_note (input_filename, lineno);
+ { emit_line_note (input_filename, lineno);
if (flag_new_for_scope)
{
/* Conditionalize .pushlevel */
if (TREE_CODE (exp) == CONST_DECL)
exp = DECL_INITIAL (exp);
/* Replace a nonvolatile const static variable with its value. */
- else if (TREE_READONLY_DECL_P (exp) && DECL_MODE (exp) != BLKmode)
+ else if (TREE_READONLY_DECL_P (exp))
{
exp = decl_constant_value (exp);
type = TREE_TYPE (exp);
if (DECL_INLINE (function))
{
+ /* Is it a synthesized method that needs to be synthesized? */
+ if (DECL_ARTIFICIAL (function) && ! flag_no_inline
+ && ! DECL_INITIAL (function)
+ /* Kludge: don't synthesize for default args. */
+ && current_function_decl)
+ synthesize_method (function);
+
fntype = build_type_variant (TREE_TYPE (function),
TREE_READONLY (function),
TREE_THIS_VOLATILE (function));