decl2.c (import_export_decl): Don't call import_export_class when processing an inline member function.

* decl2.c (import_export_decl): Don't call import_export_class
	when processing an inline member function.
	* semantics.c (expand_body): Call import_export_decl before
	emitting inline functions.

From-SVN: r41066
This commit is contained in:
Mark Mitchell 2001-04-03 23:37:53 +00:00 committed by Mark Mitchell
parent cf54a76769
commit 92788413ad
3 changed files with 27 additions and 13 deletions

View File

@ -1,3 +1,10 @@
2001-04-03 Mark Mitchell <mark@codesourcery.com>
* decl2.c (import_export_decl): Don't call import_export_class
when processing an inline member function.
* semantics.c (expand_body): Call import_export_decl before
emitting inline functions.
2001-03-28 Richard Henderson <rth@redhat.com>
IA-64 ABI Exception Handling:

View File

@ -2672,21 +2672,23 @@ import_export_decl (decl)
}
else if (DECL_FUNCTION_MEMBER_P (decl))
{
tree ctype = DECL_CONTEXT (decl);
import_export_class (ctype);
if (CLASSTYPE_INTERFACE_KNOWN (ctype)
&& ! DECL_THIS_INLINE (decl))
if (!DECL_THIS_INLINE (decl))
{
DECL_NOT_REALLY_EXTERN (decl)
= ! (CLASSTYPE_INTERFACE_ONLY (ctype)
|| (DECL_THIS_INLINE (decl) && ! flag_implement_inlines
&& !DECL_VINDEX (decl)));
tree ctype = DECL_CONTEXT (decl);
import_export_class (ctype);
if (CLASSTYPE_INTERFACE_KNOWN (ctype))
{
DECL_NOT_REALLY_EXTERN (decl)
= ! (CLASSTYPE_INTERFACE_ONLY (ctype)
|| (DECL_THIS_INLINE (decl) && ! flag_implement_inlines
&& !DECL_VINDEX (decl)));
/* Always make artificials weak. */
if (DECL_ARTIFICIAL (decl) && flag_weak)
comdat_linkage (decl);
else
maybe_make_one_only (decl);
/* Always make artificials weak. */
if (DECL_ARTIFICIAL (decl) && flag_weak)
comdat_linkage (decl);
else
maybe_make_one_only (decl);
}
}
else
comdat_linkage (decl);

View File

@ -2448,6 +2448,11 @@ expand_body (fn)
return;
}
/* Compute the appropriate object-file linkage for inline
functions. */
if (DECL_INLINE (fn))
import_export_decl (fn);
/* Emit any thunks that should be emitted at the same time as FN. */
emit_associated_thunks (fn);