From: Mark Mitchell Date: Tue, 10 Mar 1998 07:32:11 +0000 (+0000) Subject: decl2.c (import_export_decl): Mark tinfo functions for cv-qualified versions of class... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=af9c2d8a254bb4859ea64382d97935a96248b37f;p=gcc.git decl2.c (import_export_decl): Mark tinfo functions for cv-qualified versions of class types as... Tue Mar 10 07:32:36 1998 Mark Mitchell * decl2.c (import_export_decl): Mark tinfo functions for cv-qualified versions of class types as DECL_NOT_REALLY_EXTERN. From-SVN: r18456 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index d8951911d64..c2a62c9be37 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +Tue Mar 10 07:32:36 1998 Mark Mitchell + + * decl2.c (import_export_decl): Mark tinfo functions for + cv-qualified versions of class types as DECL_NOT_REALLY_EXTERN. + Fri Mar 6 23:27:35 1998 Jeffrey A Law (law@cygnus.com) * method.c: Fix typo. diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index e337b18d01f..2d8ecb96469 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -2702,9 +2702,16 @@ import_export_decl (decl) if (IS_AGGR_TYPE (ctype) && CLASSTYPE_INTERFACE_KNOWN (ctype) && TYPE_VIRTUAL_P (ctype)) { + /* If the type is a cv-qualified variant of a type, then we + must emit the tinfo function in this translation unit + since it will not be emitted when the vtable for the type + is output (which is when the unqualified version is + generated). */ DECL_NOT_REALLY_EXTERN (decl) - = ! (CLASSTYPE_INTERFACE_ONLY (ctype) - || (DECL_THIS_INLINE (decl) && ! flag_implement_inlines)); + = TYPE_READONLY (ctype) + || TYPE_VOLATILE (ctype) + || ! (CLASSTYPE_INTERFACE_ONLY (ctype) + || (DECL_THIS_INLINE (decl) && ! flag_implement_inlines)); /* For WIN32 we also want to put explicit instantiations in linkonce sections. */