Bug 52660 - internal compiler error: in cxx_expand_expr, at cp/expr.c:114
Summary: internal compiler error: in cxx_expand_expr, at cp/expr.c:114
Status: RESOLVED INVALID
Alias: None
Product: gcc
Classification: Unclassified
Component: c++ (show other bugs)
Version: 3.4.5
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-22 01:53 UTC by TaoShang
Modified: 2012-03-22 02:08 UTC (History)
0 users

See Also:
Host:
Target: ae32000-elf
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments
preprocessed source file (41.32 KB, text/plain)
2012-03-22 02:08 UTC, TaoShang
Details

Note You need to log in before you can comment on or make changes to this bug.
Description TaoShang 2012-03-22 01:53:17 UTC
The output of gcc -v -save-temps options source-file is:

Reading specs from /usr/local-ae32000/bin/../lib/gcc/ae32000-elf/3.4.5/specs
Configured with: ../EISC_gcc-3.4.5/configure --target=ae32000-elf --prefix=/usr/local --enable-languages=c,c++ --with-gnu-as --with-gnu-ld --with-headers=/home/kkh/src/ae32000_v265/newlib-1.14.0/newlib/libc/include --with-newlib --enable-shared
Thread model: single
gcc version 3.4.5 (AE32000 Compiler v2.6.5 | binutils-2.14 | gdb_insight-6.8)
(LDI Code motion / Seperated GCCLIB / mulsi3 / Mem index
/ Floating-point optimized again / Double precision BUG Fixed)
 /usr/local-ae32000/bin/../libexec/gcc/ae32000-elf/3.4.5/cc1plus.exe -E -quiet -v -I../../header/include -iprefix /usr/local-ae32000/bin/../lib/gcc/ae32000-elf/3.4.5/ -MMD obj/rwflash.d -MFobj/rwflash.d -MP -MTobj/rwflash.d -MQ obj/rwflash.o rwflash.cpp -Wextra -Wall -fmessage-length=0 -o rwflash.ii
ignoring nonexistent directory "/usr/local/include/c++/3.4.5"
ignoring nonexistent directory "/usr/local/include/c++/3.4.5/ae32000-elf"
ignoring nonexistent directory "/usr/local/include/c++/3.4.5/backward"
ignoring nonexistent directory "/usr/local/lib/gcc/ae32000-elf/3.4.5/include"
ignoring nonexistent directory "/usr/local/ae32000-elf/sys-include"
ignoring nonexistent directory "/usr/local/ae32000-elf/include"
#include "..." search starts here:
#include <...> search starts here:
 ../../header/include
 /usr/local-ae32000/bin/../lib/gcc/ae32000-elf/3.4.5/../../../../include/c++/3.4.5
 /usr/local-ae32000/bin/../lib/gcc/ae32000-elf/3.4.5/../../../../include/c++/3.4.5/ae32000-elf
 /usr/local-ae32000/bin/../lib/gcc/ae32000-elf/3.4.5/../../../../include/c++/3.4.5/backward
 /usr/local-ae32000/bin/../lib/gcc/ae32000-elf/3.4.5/include
 /usr/local-ae32000/bin/../lib/gcc/ae32000-elf/3.4.5/../../../../ae32000-elf/sys-include
 /usr/local-ae32000/bin/../lib/gcc/ae32000-elf/3.4.5/../../../../ae32000-elf/include
End of search list.
 /usr/local-ae32000/bin/../libexec/gcc/ae32000-elf/3.4.5/cc1plus.exe -fpreprocessed rwflash.ii -quiet -dumpbase rwflash.cpp -auxbase-strip obj/rwflash.o -Wextra -Wall -version -fmessage-length=0 -o rwflash.s
GNU C++ version 3.4.5 (ae32000-elf)
	compiled by GNU C version 4.3.4 20090804 (release) 1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
rwflash.cpp: In member function `void C_FLASH::dosort()':
rwflash.cpp:206: internal compiler error: in cxx_expand_expr, at cp/expr.c:114

I think these statement cause this ICE:
typedef bool (C_FLASH::*PMF)(PLO,PLO);
if(mPLO.empty()) return;
PMF pmf = &C_FLASH::ComparePLO;
sort(mPLO.begin(),mPLO.end(),this->*pmf);//this is line 206 of rwflash.cpp

PLO is a struct,mPLO is std::vector<PLO>.
Comment 1 Andrew Pinski 2012-03-22 02:04:13 UTC
Two things:
1) 3.4.5 is no longer supported, try a newer version of GCC.
2) ae32000-elf was never supported in any released version of GCC.
So please report this bug to where you received GCC from since we don't support it.
Comment 2 TaoShang 2012-03-22 02:08:03 UTC
Created attachment 26947 [details]
preprocessed source file