[Bug c++/33435] internal compiler error with templates and openmp
E dot Kuemmerle at fz-juelich dot de
gcc-bugzilla@gcc.gnu.org
Wed Sep 19 09:40:00 GMT 2007
------- 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
More information about the Gcc-bugs
mailing list