http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52660

             Bug #: 52660
           Summary: internal compiler error: in cxx_expand_expr, at
                    cp/expr.c:114
    Classification: Unclassified
           Product: gcc
           Version: 3.4.5
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: shang_tao_...@163.com


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>.

Reply via email to