This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/10646] [3.3/3.4 regression] non-const reference is incorrectly matched in a "const T" partial specialization
- From: "janis187 at us dot ibm dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 23 Jun 2003 15:55:06 -0000
- Subject: [Bug c++/10646] [3.3/3.4 regression] non-const reference is incorrectly matched in a "const T" partial specialization
- References: <20030506224600.10646.notbob@tessellation.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10646
------- Additional Comments From janis187 at us dot ibm dot com 2003-06-23 15:55 -------
The regression in 10646 was introduced or exposed by this patch:
--- gcc/gcc/cp/ChangeLog ---
> 2002-02-22 Nathan Sidwell <nathan@codesourcery.com>
>
> PR c++/2645, DR 295
> * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals,
> tf_keep_type_decl.
> (make_typename_type): Use tsubst_flags_t.
> * decl.c (make_typename_type): Adjust. Return non-artificial
> TYPE_DECLs, if required.
> (grokdeclarator): Simplify CVR qualification handling. Allow bad
> qualifiers on typedef types.
> * decl2.c (handle_class_head): Adjust make_typename_type call.
> * parse.y (nested_name_specifier): Likewise.
> (typename_sub0): Likewise.
> (typename_sub1): Likewise.
> * pt.c (convert_template_argument): Adjust make_typename_type
> return value.
> (tsubst): Adjust cp_build_qualified_type_real calls.
> (check_cv_quals_for_unify): Cope with alowing bad qualifications
> on template type parms.
> (instantiate_decl): Recheck substitutions to give warnings on bad
> qualifications.
> * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals.
The regression hunt used the smaller test case from comment #2.