gcc 4.1.2 (x86_64-redhat-linux mind you) and gcc 4.4.0 (mainline) with (or
without) any/all of -Wall -Wextra -pendantic compiles the following code
without error/warning.
const float* foo()
{
static const float p[] = {
-0.02435L
}
return p;
}
However, add in -std=c++0x/gnu++0x and the following error is issued:
error: narrowing conversion of
-2.43499999999999999996828708645479899530528200557455420494e-2l to const float
inside { }
Now change the testcase to:
const float* foo()
{
static const float p[] = {
-0.25L
}
return p;
}
and it compiles w/o error/warning with -std=c++/gnu++0x
--
Summary: [4.4 Regression] Bogus narrowing conversion error in
initializer list.
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: chris dot fairles at gmail dot com
GCC build triplet: x86_64-unknown-linux-gnu
GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36963