Overview ======== The following code fails to compile on ia64 platform with standard options. The problem is gone when: - removing the #pragma or - declaring a double instead of a vector or - not explicitly assigning a length to the vector - inlining foo()
Problematic code: ================= #include <vector> #include <omp.h> class A { void foo(); }; void A::foo() { #pragma omp parallel { std::vector<double> x(0); } } Steps to reproduce ==================== Compile using g++ -Wall -fopenmp -save-temps -o ice.o -c ice.h Build Date & Platform ===================== Linux 2.4.21-27.0.4.EL #1 SMP ia64 GNU/Linux GCC version: SVN revision 131821 (2008-01-25) (I don't know about earlier or later versions) GCC was configured with Configured with: ../gcc/configure --prefix=(...) --enable-languages=c++,fortran --with-gmp=(...) --with-mpfr=(...) CC=gcc CXX=g++ The bug does not show up on amd64 using the same revision. -- Summary: ICE on ia64 with vector declaration inside #pragma omp parallel Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libgomp AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: steigers at phys dot ethz dot ch http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35364