Commit fd378c9d by Jason Merrill Committed by Mike Stump

70th Cygnus<->FSF merge

From-SVN: r9624
parent 0982a4b8
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.
......
......@@ -10716,6 +10716,8 @@ start_function (declspecs, declarator, raises, pre_parsed_p)
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;
......
......@@ -3112,7 +3112,13 @@ finish_file ()
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
......@@ -3144,8 +3150,7 @@ finish_file ()
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))
......
......@@ -54,6 +54,7 @@ extern int errno;
extern int end_of_file;
extern int current_class_depth;
extern int flag_new_for_scope;
void yyerror ();
......@@ -3225,8 +3226,7 @@ simple_stmt:
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 */
......
......@@ -1363,7 +1363,7 @@ default_conversion (exp)
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);
......@@ -2373,6 +2373,13 @@ build_function_call_real (function, params, require_complete, flags)
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));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment