Commit c4ae3f91 by Jason Merrill Committed by Jason Merrill

* pt.c (instantiate_decl): Defer all templates but inline functions.

From-SVN: r17039
parent f40421ce
Wed Dec 10 11:04:45 1997 Jason Merrill <jason@yorick.cygnus.com>
* pt.c (instantiate_decl): Defer all templates but inline functions.
Mon Dec 8 23:17:13 1997 Jason Merrill <jason@yorick.cygnus.com>
* init.c (expand_vec_init): Don't fold a list of parameters.
......
......@@ -4553,15 +4553,16 @@ instantiate_decl (d)
import_export_decl (d);
}
/* Reject all external templates except inline functions. */
if (DECL_INTERFACE_KNOWN (d)
&& ! DECL_NOT_REALLY_EXTERN (d)
&& ! (TREE_CODE (d) == FUNCTION_DECL && DECL_INLINE (d)))
goto out;
/* Defer all templates except inline functions used in another function. */
if (! pattern_defined
|| (TREE_CODE (d) == FUNCTION_DECL && ! DECL_INLINE (d)
&& (! DECL_INTERFACE_KNOWN (d)
|| ! DECL_NOT_REALLY_EXTERN (d)))
/* Kludge: if we compile a constructor in the middle of processing a
toplevel declaration, we blow away the declspecs in
temp_decl_obstack when we call permanent_allocation in
finish_function. So don't compile it yet. */
|| (TREE_CODE (d) == FUNCTION_DECL && ! nested && ! at_eof))
|| (! (TREE_CODE (d) == FUNCTION_DECL && DECL_INLINE (d) && nested)
&& ! at_eof))
{
add_pending_template (d);
goto out;
......
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