* class.c (update_vtable_entry_for_fn): Do not go through
covariance machinery if the type returned by an overrider is the
same as the original.
PR debug/12103
* g++.dg/debug/crash1.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78680
138bc75d-0d04-0410-961f-
82ee72b054a4
+2004-02-29 Mark Mitchell <mark@codesourcery.com>
+
+ PR debug/12103
+ * class.c (update_vtable_entry_for_fn): Do not go through
+ covariance machinery if the type returned by an overrider is the
+ same as the original.
+
2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
* call.c: Fix a comment typo.
TREE_VALUE (purpose_member
(BINFO_TYPE (virtual_offset),
CLASSTYPE_VBASECLASSES (TREE_TYPE (over_return))));
- else
+ else if (!same_type_p (TREE_TYPE (over_return),
+ TREE_TYPE (base_return)))
{
/* There was no existing virtual thunk (which takes
precedence). */
+2004-02-29 Mark Mitchell <mark@codesourcery.com>
+
+ PR debug/12103
+ * g++.dg/debug/crash1.C: New test.
+
2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
* gcc.dg/sibcall-3.c (recurser_void1): Make it an extern
--- /dev/null
+template <typename T>
+class foo
+{
+ T t;
+};
+
+class bar;
+typedef foo<bar> foobar;
+
+class obj
+{
+ virtual foobar* yeah() = 0;
+};
+
+class bar : virtual public obj
+{
+};