diff options
author | Mark Mitchell <mmitchell@usa.net> | 1998-03-10 07:32:11 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchell@gcc.gnu.org> | 1998-03-10 07:32:11 +0000 |
commit | af9c2d8a254bb4859ea64382d97935a96248b37f (patch) | |
tree | e1f20ae56c09c412b991c58c3b106e0ab9f65262 | |
parent | a438d567a561730b1c3645e2469e5478569cc32d (diff) | |
download | gcc-af9c2d8a254bb4859ea64382d97935a96248b37f.zip gcc-af9c2d8a254bb4859ea64382d97935a96248b37f.tar.gz gcc-af9c2d8a254bb4859ea64382d97935a96248b37f.tar.bz2 |
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 <mmitchell@usa.net>
* decl2.c (import_export_decl): Mark tinfo functions for
cv-qualified versions of class types as DECL_NOT_REALLY_EXTERN.
From-SVN: r18456
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl2.c | 11 |
2 files changed, 14 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index d895191..c2a62c9 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +Tue Mar 10 07:32:36 1998 Mark Mitchell <mmitchell@usa.net> + + * 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 e337b18..2d8ecb9 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. */ |