mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-21 08:03:41 +08:00
* pt.c (instantiate_decl): Defer all templates but inline functions.
From-SVN: r17039
This commit is contained in:
parent
f40421ce8c
commit
c4ae3f91a2
@ -1,3 +1,7 @@
|
||||
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.
|
||||
|
17
gcc/cp/pt.c
17
gcc/cp/pt.c
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user