Segfault on compilation of following source: struct _matrix { double lineardata[4 * 4]; double & operator()(int row, int col = 0) { return lineardata[col * 4 + row]; } };
struct matrix : public _matrix { typedef _matrix parent; double & operator()(int row, int col = 0) { return parent::operator()(row,col); } }; void add(matrix & __restrict in1, matrix & __restrict in2, matrix & __restrict result) { for (int col=0; col<4; ++col) for (int row=0; row<4; ++row) result(row, col) = in1(row, col) + in2(row, col); } --- end of source --- Using built-in specs. Target: i686-pc-linux-gnu Configured with: /esat/alexandria1/sderoeck/src/gcc/main/configure --prefix=/esat/olympia/install --program-suffix=-cvs --enable-languages=c,c++ Thread model: posix gcc version 4.1.0 20050523 (experimental) /esat/olympia/install/libexec/gcc/i686-pc-linux-gnu/4.1.0/cc1plus -quiet -v -I/users/visics/sderoeck/projects/clean/CaveIn/Whistler -D_GNU_SOURCE test13.cpp -quiet -dumpbasetest13.cpp -march=pentium4 -auxbase-strip test13.S -O9 -version -fverbose-asm -fdump-tree-vect-stats -fdump-tree-vect-details -funroll-all-loops -ftree-vectorize -o test13.S ignoring nonexistent directory "/usr/local/include" ignoring nonexistent directory "/esat/olympia/install/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../i686-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /users/visics/sderoeck/projects/clean/CaveIn/Whistler /esat/olympia/install/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0 /esat/olympia/install/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/i686-pc-linux-gnu /esat/olympia/install/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/backward /esat/olympia/install/include /esat/olympia/install/lib/gcc/i686-pc-linux-gnu/4.1.0/include /usr/include End of search list. GNU C++ version 4.1.0 20050523 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 4.1.0 20050523 (experimental). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: 99f1919b6616caa4cacd62f3245b1e14 test13.cpp: In function 'void add(matrix&, matrix&, matrix&)': test13.cpp:14: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. -- Summary: ICE: -ftree-vectorize, segfault Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: stefaandr at hotmail dot com CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21734