[Bug c++/24663] Template instantiation generating a zero-sized array doesn't fail
ppalka at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jan 19 00:19:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24663
--- Comment #3 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Author: ppalka
Date: Tue Jan 19 00:19:16 2016
New Revision: 232547
URL: https://gcc.gnu.org/viewcvs?rev=232547&root=gcc&view=rev
Log:
Fix the remaining PR c++/24666 blockers (arrays decay to pointers too early)
gcc/cp/ChangeLog:
PR c++/11858
PR c++/24663
PR c++/24664
* decl.c (grokdeclarator): Don't decay array parameter type to
a pointer type if it's dependent.
(grokparms): Invoke strip_top_quals instead of directly invoking
cp_build_qualified_type.
* pt.c (decay_dependent_array_parm_type): New static function.
(type_unification_real): Call decay_dependent_array_parm_type
to decay a dependent array parameter type to its corresponding
pointer type before unification.
(more_specialized_fn): Likewise.
(get_bindings): Likewise.
* tree.c (cp_build_qualified_type): Trivial typofix in
documentation.
gcc/testsuite/ChangeLog:
PR c++/11858
PR c++/24663
PR c++/24664
* g++.dg/template/pr11858.C: New test.
* g++.dg/template/pr24663.C: New test.
* g++.dg/template/unify12.C: New test.
* g++.dg/template/unify13.C: New test.
* g++.dg/template/unify14.C: New test.
* g++.dg/template/unify15.C: New test.
* g++.dg/template/unify16.C: New test.
* g++.dg/template/unify17.C: New test.
Added:
trunk/gcc/testsuite/g++.dg/template/pr11858.C
trunk/gcc/testsuite/g++.dg/template/pr24663.C
trunk/gcc/testsuite/g++.dg/template/unify12.C
trunk/gcc/testsuite/g++.dg/template/unify13.C
trunk/gcc/testsuite/g++.dg/template/unify14.C
trunk/gcc/testsuite/g++.dg/template/unify15.C
trunk/gcc/testsuite/g++.dg/template/unify16.C
trunk/gcc/testsuite/g++.dg/template/unify17.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/tree.c
trunk/gcc/testsuite/ChangeLog
More information about the Gcc-bugs
mailing list