[Bug c++/20746] [4.0 only] Incorrect return value for covariant return function returning null ptr
--- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-07-12 11:29 --- Subject: Bug 20746 CVSROOT:/cvs/gcc Module name:gcc Branch: gcc-4_0-branch Changes by: [EMAIL PROTECTED] 2005-07-12 11:28:03 Modified files: gcc/cp : ChangeLog class.c cp-tree.def cp-tree.h decl.c decl2.c error.c method.c parser.c pt.c semantics.c gcc/testsuite : ChangeLog gcc/testsuite/g++.dg/overload: error1.C gcc/testsuite/g++.dg/parse: crash11.C gcc/testsuite/g++.old-deja/g++.benjamin: warn02.C gcc/testsuite/g++.old-deja/g++.brendan: arm2.C gcc/testsuite/g++.old-deja/g++.other: redecl2.C redecl4.C gcc/testsuite/g++.old-deja/g++.pt: memtemp78.C Added files: gcc/testsuite/g++.dg/abi: covariant5.C gcc/testsuite/g++.dg/init: member1.C gcc/testsuite/g++.dg/other: crash-4.C gcc/testsuite/g++.dg/parse: crash26.C defarg9.C Log message: cp: PR c++/20678 * error.c (dump_expr) COMPONENT_REF case: Check DECL_NAME is not null. PR 21903 * cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use. * parser.c (cp_parser_late_parsing_default_args): Propagate parsed argument to any early instantiations. * pt.c (tsubst_arg_types): Chain early instantiation of default arg. PR c++/20789 * decl.c (cp_finish_decl): Clear runtime runtime initialization if in-class decl's initializer is bad. PR c++/21929 * parser.c (struct cp_parser): Document that scope could be error_mark. (cp_parser_diagnose_invalid_type_name): Cope with error_mark for scope. (cp_parser_nested_name_specifier): Return NULL_TREE on error. (cp_parser_postfix_expression): Deal with null or error_mark scope. (cp_parser_elaborated_type_specifier): Adjust cp_parser_nested_name_specifier call. PR c++/20746 * method.c (use_thunk): Protect covariant pointer return adjustments from NULL pointers. testsuite: PR c++/20678 * g++.dg/other/crash-4.C: New. PR 21903 * g++.dg/parse/defarg9.C: New. PR c++/21929 * g++.dg/parse/crash26.C: New. PR c++/20789 * g++.dg/init/member1.C: New. PR c++/20746 * g++.dg/abi/covariant5.C: New. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.4648.2.63r2=1.4648.2.64 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/class.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.707.2.3r2=1.707.2.4 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/cp-tree.def.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.94.4.2r2=1.94.4.3 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/cp-tree.h.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.1106.2.8r2=1.1106.2.9 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/decl.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.1371.2.14r2=1.1371.2.15 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/decl2.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.770.2.2r2=1.770.2.3 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/error.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.279.2.1r2=1.279.2.2 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/method.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.322.4.4r2=1.322.4.5 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/parser.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.319.2.10r2=1.319.2.11 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/pt.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.978.2.12r2=1.978.2.13 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/semantics.c.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.463.2.4r2=1.463.2.5 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.5084.2.268r2=1.5084.2.269 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/abi/covariant5.C.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=NONEr2=1.1.10.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/init/member1.C.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=NONEr2=1.1.10.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/other/crash-4.C.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=NONEr2=1.1.8.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/overload/error1.C.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=1.2r2=1.2.112.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/crash26.C.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=NONEr2=1.1.8.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/parse/defarg9.C.diff?cvsroot=gcconly_with_tag=gcc-4_0-branchr1=NONEr2=1.1.10.1
[Bug c++/20746] [4.0 only] Incorrect return value for covariant return function returning null ptr
--- Additional Comments From nathan at gcc dot gnu dot org 2005-07-12 11:29 --- fixed on 4.0 branch -- What|Removed |Added Status|REOPENED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20746
[Bug c++/20746] [4.0 only] Incorrect return value for covariant return function returning null ptr
--- Additional Comments From giovannibajo at libero dot it 2005-07-06 22:35 --- I reopen the bug so we don't forget about this for 4.0.2. Stephen, to clarify: we know that this is indeed a bug, and this is why it *was* fixed for 4.1. The fact is that the 4.0 serie is already out so we usually just consider regression fixes for it (that is, patches which fix problems appeared in 4.0 which were not present before). Since the code you provided never worked on any version of GCC, we assume it could wait another iteration up to 4.1. Anyway, Mark already approved it for 4.0.2 as an exception to the rule, so the fix will be present in that version. -- What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED | Summary|Incorrect return value for |[4.0 only] Incorrect return |covariant return function |value for covariant return |returning null ptr |function returning null ptr Target Milestone|4.1.0 |4.0.2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20746