/* Following code give ICE with -O2 or -O3
ice.c: In function main:
ice.c:46: internal compiler error: in expand_expr_real_1, at expr.c:9314
works OK with -O1 and no warnings given
*/
extern char *strcpy(char *s1, const char *s2);
/* #include */
typedef struct _ccy_nameCCY_NAME;
#define CURRENCY_NAME_LENGTH3
struct _ccy_name {
char CcyName[CURRENCY_NAME_LENGTH + 1];
};
int main(int argc, char *argv[])
{
char const *ccy1;
char const *ccy2;
CCY_NAME ccy_list[9];
long i;
if (argc > 1)
{
ccy1 = argv[1];
}
else
{
ccy1 = "EUR";
}
if (argc > 2)
{
ccy2 = argv[2];
}
else
{
ccy2 = "USD";
}
strcpy(ccy_list[0].CcyName, ccy1);
strcpy(ccy_list[1].CcyName, ccy2);
for(i = 2; i < argc - 2 && i < 8; i++)
{
strcpy(ccy_list[i].CcyName, argv[i + 1]);
}
ccy_list[i].CcyName[0] = '\0';
return 0;
}
/*
$ gcc-4.4 -v
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.1-4'
--with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared
--enable-multiarch --enable-linker-build-id --with-system-zlib
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls
--enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --enable-objc-gc
--with-arch-32=i486 --with-tune=generic --enable-checking=release
--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.4.1 (Debian 4.4.1-4)
*/
--
Summary: ICE with -O2 - internal compiler error: in
expand_expr_real_1, at expr.c:9314
Product: gcc
Version: 4.4.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: richardn26 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42049