[Bug c++/51826] [4.6 Regression] internal compiler error: in convert_nontype_argument, at cp/pt.c:5408
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jan 12 09:17:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51826
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Known to work| |4.5.3, 4.7.0
Keywords| |ice-on-invalid-code
Last reconfirmed| |2012-01-12
Ever Confirmed|0 |1
Summary|internal compiler error: in |[4.6 Regression] internal
|convert_nontype_argument, |compiler error: in
|at cp/pt.c:5408 |convert_nontype_argument,
| |at cp/pt.c:5408
Target Milestone|--- |4.6.3
Known to fail| |4.6.2
--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-01-12 09:17:30 UTC ---
Confirmed.
> g++ -S t.C
t.C: In function 'int main(int, char**)':
t.C:8:26: error: cast from 'const char*' to 'int' loses precision
[-fpermissive]
t.C:8:31: error: '(int)((long int)"123")' is not a constant expression
t.C:8:31: note: in template argument for type 'int'
> g++ -S t.C -m32
t.C: In function 'int main(int, char**)':
t.C:8:31: internal compiler error: in convert_nontype_argument, at cp/pt.c:5408
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
On trunk:
> g++ -S t.C -m32 -B /abuild/rguenther/trunk-g/gcc
t.C: In function 'int main(int, char**)':
t.C:8:31: error: conversion from pointer type 'const char (*)[4]' to arithmetic
type 'int' in a constant-expression
t.C:8:31: note: in template argument for type 'int'
so it's invalid source, fixed on trunk. 4.5 says
g++ -S t.C -m32
t.C: In function 'int main(int, char**)':
t.C:8:31: error: '(int)"123"' is not a valid template argument for type 'int'
because it is a non-constant expression
More information about the Gcc-bugs
mailing list