------- Comment #2 from E dot Kuemmerle at fz-juelich dot de  2007-09-19 09:40 
-------
Here is a self-contained example:

template<class T, int Sz>
class Vector {
public:
  explicit Vector() {}
  ~Vector() {}
private:
  T                                             m_data[Sz];
};

int main() {
  Vector<int,3> a[10];
  int i;
#pragma omp parallel
  {
#pragma omp for schedule(dynamic)
    for (i=0; i<10; ++i) {
      // do something
    }
#pragma omp master
    {
        a[0] = a[1];
    }
#pragma omp for schedule(dynamic)
    for (i=0; i<10; ++i) {
      // do something
    }
  }
}

I can avoid the internal compiler error by:
 1) removing the '-fopenmp' option
 2) changing the '#pragma omp' statements as shown in the original example
 3) removing the destructor '~Vector() {}' from 'class Vector' in the new
example!


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33435

Reply via email to