From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24866 invoked by alias); 4 Dec 2012 21:01:05 -0000 Received: (qmail 24805 invoked by uid 48); 4 Dec 2012 21:00:51 -0000 From: "niels at penneman dot org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/55311] Cannot specialize template parameter of type 'const char *const' in 'using' alias Date: Tue, 04 Dec 2012 21:01:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Keywords: rejects-valid X-Bugzilla-Severity: normal X-Bugzilla-Who: niels at penneman dot org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Keywords Known to fail Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2012-12/txt/msg00403.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D55311 Niels Penneman changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |rejects-valid Known to fail| |4.6.3, 4.7.2, 4.8.0 --- Comment #1 from Niels Penneman 2012-12-04 2= 1:00:50 UTC --- Exact same thing in a slightly different shape: with a derived struct inste= ad of a 'using' alias =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D $ g++ -### Using built-in specs. COLLECT_GCC=3D/usr/x86_64-pc-linux-gnu/gcc-bin/4.8.0-alpha20121202/g++ COLLECT_LTO_WRAPPER=3D/usr/libexec/gcc/x86_64-pc-linux-gnu/4.8.0-alpha20121= 202/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /var/tmp/portage/sys-devel/gcc-4.8.0_alpha20121202/work/gcc-4.8-20121202/co= nfigure --prefix=3D/usr --bindir=3D/usr/x86_64-pc-linux-gnu/gcc-bin/4.8.0-alpha2012= 1202 --includedir=3D/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0-alpha20121202/include --datadir=3D/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.0-alpha20121202 --mandir=3D/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.0-alpha20121202/man --infodir=3D/usr/share/gcc-data/x86_64-pc-linux-gnu/4.8.0-alpha20121202/info --with-gxx-include-dir=3D/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.0-alpha201212= 02/include/g++-v4 --host=3Dx86_64-pc-linux-gnu --build=3Dx86_64-pc-linux-gnu --disable-altivec --disable-fixed-point --with-ppl --with-cloog --disable-ppl-version-check --with-cloog-include=3D/usr/include/cloog-ppl --enable-lto --enable-nls --without-included-gettext --with-system-zlib --enable-obsolete --disable-werror --enable-secureplt --enable-multilib --with-multilib-list=3Dm32,m64 --enable-libmudflap --disable-libssp --enable-libgomp --with-python-dir=3D/share/gcc-data/x86_64-pc-linux-gnu/4.8.0-alpha20121202= /python --enable-checking=3Drelease --disable-libgcj --disable-libquadmath --enable-languages=3Dc,c++ --enable-shared --enable-threads=3Dposix --enable-__cxa_atexit --enable-clocale=3Dgnu --enable-targets=3Dall --with-bugurl=3Dhttp://bugs.gentoo.org/ --with-pkgversion=3D'Gentoo 4.8.0_alpha20121202' Thread model: posix gcc version 4.8.0-alpha20121202 20121202 (experimental) (Gentoo 4.8.0_alpha20121202)=20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D extern constexpr char STRING_PTR[] =3D "test"; template struct A {}; template struct B: A {}; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D $ g++ -fsyntax-only -std=3Dc++11 test2.cxx=20 test2.cxx:7:26: error: =E2=80=98"test"=E2=80=99 is not a valid template arg= ument of type =E2=80=98const char*=E2=80=99 because =E2=80=98"test"=E2=80=99 is not a variable struct B: A {}; ^ =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D