[Bug tree-optimization/21734] New: ICE: -ftree-vectorize, segfault
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 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
[Bug tree-optimization/21734] [4.1 regression] ICE: -ftree-vectorize, segfault
--- Additional Comments From stefaandr at hotmail dot com 2005-05-30 19:21 --- confirmed, I cannot reproduce with the given testcase either. But my original source code still triggers a (possibly the same) bug. I've extracted a new testcase: struct M { double data[16]; double* operator[](int row){ return &data[row*4]; }; void set() { for (int i=0;i<16;++i) data[i]=0.0; } }; struct A { M m1; void test(); }; void A::test() { M m2; m2[2][2]=0.; m1.set(); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21734
[Bug tree-optimization/21734] [4.1 regression] ICE: -ftree-vectorize, segfault
--- Additional Comments From stefaandr at hotmail dot com 2005-05-31 10:13 --- For the sake of completeness. the error produced with the new testcase: 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 20050530 (experimental) /esat/olympia/install/libexec/gcc/i686-pc-linux-gnu/4.1.0/cc1plus -quiet -v -D_GNU_SOURCE sweepobject.cpp -quiet -dumpbase sweepobject.cpp -march=pentium4 -auxbase-strip sweepx.o -O2 -version -ftree-vectorize -o /tmp/ccKIKNVA.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: /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 20050530 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 4.1.0 20050530 (experimental). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: a2126b7dadcd5b4079972b9e8125263a sweepobject.cpp: In member function 'void A::test()': sweepobject.cpp:15: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html> for instructions. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21734
[Bug c++/19320] New: static const float initialization ignored
lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../i686-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0 /esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/i686-pc-linux-gnu /esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/../../../../include/c++/4.0.0/backward /esat/olympia/opt/gcc-4.0/include /esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/include /usr/include End of search list. GNU C++ version 4.0.0 20050107 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 3.4.3 20041125 (Gentoo Linux 3.4.3-r1, ssp-3.4.3-0, pie-8.7.7). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 as -V -Qy -o /tmp/cc0M4nYl.o /tmp/ccCQipqK.s GNU assembler version 2.15 (i686-pc-linux-gnu) using BFD version 2.15 /esat/olympia/opt/gcc-4.0/libexec/gcc/i686-pc-linux-gnu/4.0.0/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o testi /usr/lib/crt1.o /usr/lib/crti.o /esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/crtbegin.o -L/esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0 -L/esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/../../.. /tmp/cc0M4nYl.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /esat/olympia/opt/gcc-4.0/lib/gcc/i686-pc-linux-gnu/4.0.0/crtend.o /usr/lib/crtn.o /tmp/cc0M4nYl.o(.text+0x7): In function `silhwrap::purge_points()': : undefined reference to `silhwrap::TOLERANCE' collect2: ld returned 1 exit status -- Summary: static const float initialization ignored Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: stefaandr at hotmail dot com CC: gcc-bugs at gcc dot gnu dot org GCC host triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19320
[Bug c++/19320] static const float initialization ignored
--- Additional Comments From stefaandr at hotmail dot com 2005-01-07 23:31 --- If accepting floats just as integers is an extension, then why does the same code compile without problems when using integers? (Static integer constants also need a memory location right? Or don't they?) btw: is there a document that describes this kind of obvious changes, just like http://gcc.gnu.org/gcc-3.4/changes.html does for 3.4? I swear I searched the bug database, but I don't follow the mailing list day by day -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19320