Summary: | [4.0 Regression] Covariant returns are broken | ||
---|---|---|---|
Product: | gcc | Reporter: | benjamin.redelings |
Component: | c++ | Assignee: | Nathan Sidwell <nathan> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | gcc-bugs, nathan |
Priority: | P2 | Keywords: | wrong-code |
Version: | 4.0.0 | ||
Target Milestone: | 4.0.0 | ||
Host: | i686-pc-linux-gnu | Target: | i686-pc-linux-gnu |
Build: | i686-pc-linux-gnu | Known to work: | 3.4.0 |
Known to fail: | 4.0.0 3.3.3 | Last reconfirmed: | 2005-02-11 13:30:49 |
Description
benjamin.redelings
2005-02-11 01:45:14 UTC
Confirmed. Note covariant returns were not implemented for 3.3.3 so we just gave an error. Subject: Bug 19891 CVSROOT: /cvs/gcc Module name: gcc Changes by: nathan@gcc.gnu.org 2005-02-14 09:36:35 Modified files: gcc/cp : ChangeLog class.c search.c typeck.c gcc/testsuite : ChangeLog Added files: gcc/testsuite/g++.dg/abi: covariant4.C Log message: cp: PR c++/19891 * class.c (build_simple_base_path): Build the component_ref directly. (update_vtable_entry_for_fn): Walk the covariant's binfo chain rather than using lookup_base. * search.c (dfs_walk_once): Add non-recursive assert check. * typeck.c (build_class_member_access_expr): It is possible for the member type to be both const and volatile. testsuite: PR c++/19891 * g++.dg/abi/covariant4.C: New. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4625&r2=1.4626 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/class.c.diff?cvsroot=gcc&r1=1.703&r2=1.704 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/search.c.diff?cvsroot=gcc&r1=1.344&r2=1.345 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/typeck.c.diff?cvsroot=gcc&r1=1.613&r2=1.614 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5028&r2=1.5029 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/abi/covariant4.C.diff?cvsroot=gcc&r1=NONE&r2=1.1 2005-02-11 Nathan Sidwell <nathan@codesourcery.com> PR c++/19891 * class.c (build_simple_base_path): Build the component_ref directly. (update_vtable_entry_for_fn): Walk the covariant's binfo chain rather than using lookup_base. * search.c (dfs_walk_once): Add non-recursive assert check. * typeck.c (build_class_member_access_expr): It is possible for the member type to be both const and volatile. |