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

Reply via email to