[hjl@gnu-27 g++]$ /export/build/gnu/gcc/build-x86_64-linux/gcc/testsuite/g++/../../g++ -B/export/build/gnu/gcc/build-x86_64-linux/gcc/testsuite/g++/../../ /net/gnu-13/export/gnu/src/gcc/gcc/gcc/testsuite/g++.dg/ext/vector13.C -nostdinc++ -I/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu -I/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/libstdc++-v3/include -I/net/gnu-13/export/gnu/src/gcc/gcc/libstdc++-v3/libsupc++ -I/net/gnu-13/export/gnu/src/gcc/gcc/libstdc++-v3/include/backward -I/net/gnu-13/export/gnu/src/gcc/gcc/libstdc++-v3/testsuite/util -fmessage-length=0 -ansi -pedantic-errors -Wno-long-long -fno-show-column -S -o vector13.s /net/gnu-13/export/gnu/src/gcc/gcc/gcc/testsuite/g++.dg/ext/vector13.C:6: error: zero-size array ‘x’ [hjl@gnu-27 g++]$
Confirmed on i686-apple-darwin9: [ibook-dhum] /Users/dominiq% /opt/gcc/gcc4.3w/bin/g++ /opt/gcc/_gcc_clean/gcc/testsuite/g++.dg/ext/vector13.C /opt/gcc/_gcc_clean/gcc/testsuite/g++.dg/ext/vector13.C:6: internal compiler error: canonical types differ for identical types const int __vector__ [] and const int __vector__ []
Confirmed. We're back to an ICE.
I can also confirm that http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00212.html does _not_ fix the problem. We still ICE with /space/rguenther/src/svn/trunk/gcc/testsuite/g++.dg/ext/vector13.C:6: internal compiler error: canonical types differ for identical types const int __vector__ [] and const int __vector__ []^M Please submit a full bug report,^M with preprocessed source if appropriate.^M See <http://gcc.gnu.org/bugs.html> for instructions.^M FAIL: g++.dg/ext/vector13.C (internal compiler error) FAIL: g++.dg/ext/vector13.C (test for excess errors)
Indeed. I developed my 35049 patch in an old check-out (to avoid conflicts with Doug's patch), but after updating the tree it fails for me too.
This is definitely a canonical-types bug.
Subject: Bug 35113 Author: dgregor Date: Mon Feb 11 18:58:16 2008 New Revision: 132242 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=132242 Log: 2008-02-11 Douglas Gregor <doug.gregor@gmail.com> PR c++/35113 * tree.c (cp_build_qualified_type_real): When building a cv-qualified array type, build it as a unique type with build_cplus_array_type_1 and then adopt the unqualified type's main variant. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/tree.c
Fixed on mainline