g++ version 3.4.4 leads to an internal compiler error/segmentation violation on cygwin/vista with -O option, on the C++ template test program testBug2.cpp (to be attached to be message).
Output of g++ -v -save-temps -O testBug2.cpp is shown below: Reading specs from /usr/lib/gcc/i686-pc-cygwin/3.4.4/specs Configured with: /usr/build/package/orig/test.respin/gcc-3.4.4-3/configure --verbose --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --enable-languages=c,ada,c++,d,f77,pascal,java,objc --enable-nls --without-included-gettext --enable-version-specific-runtime-libs --without-x --enable-libgcj --disable-java-awt --with-system-zlib --enable-interpreter --disable-libgcj-debug --enable-threads=posix --enable-java-gc=boehm --disable-win32-registry --enable-sjlj-exceptions --enable-hash-synchronization --enable-libstdcxx-debug Thread model: posix gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) /usr/lib/gcc/i686-pc-cygwin/3.4.4/cc1plus.exe -E -quiet -v -D__CYGWIN32__ -D__CYGWIN__ -Dunix -D__unix__ -D__unix -idirafter /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api -idirafter /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/lib/../../include/w32api testBug2.cpp -mtune=pentiumpro -O -o testBug2.ii ignoring nonexistent directory "/usr/local/include" ignoring nonexistent directory "/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/include" ignoring duplicate directory "/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/lib/../../include/w32api" #include "..." search starts here: #include <...> search starts here: /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++ /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/i686-pc-cygwin /usr/lib/gcc/i686-pc-cygwin/3.4.4/include/c++/backward /usr/lib/gcc/i686-pc-cygwin/3.4.4/include /usr/include /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../include/w32api End of search list. /usr/lib/gcc/i686-pc-cygwin/3.4.4/cc1plus.exe -fpreprocessed testBug2.ii -quiet -dumpbase testBug2.cpp -mtune=pentiumpro -auxbase testBug2 -O -version -o testBug2.s GNU C++ version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125) (i686-pc-cygwin) compiled by GNU C version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125). GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 testBug2.cpp: In member function `Iter<S, T, advnc, retrv> Iter<S, T, advnc, retrv>::operator++() [with S = Test, T = char, int (*advnc)(int, S*) = Test::advance, T (*retrv)(int, S*) = Test::retrieve]': testBug2.cpp:144: instantiated from here testBug2.cpp:56: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://cygwin.com/problems.html> for instructions. By the way, g++ testBug2.cpp works. The error apparently only occurs with the -O option. The attached program testBug2.cpp is self-contained and does not need include files. -- Summary: g++ causes segmentation violation on template test program Product: gcc Version: 3.4.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: kemal dot ebcioglu at acm dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36414