The head of the gomp branch reports an ICE when trying to compile the snippet below:
template<typename T> struct Healpix_Map { T *map; int npix_; void Import_nograde (const Healpix_Map<T> &orig) { #pragma omp parallel { int m; #pragma omp for schedule (dynamic) for (m=0; m<npix_; ++m) map[m] = orig.map[m]; } } }; void foo(Healpix_Map<int> &a, Healpix_Map<int> &b) { a.Import_nograde(b); } ~/tmp>g++ -v -c -fopenmp test.cc Using built-in specs. Target: i686-pc-linux-gnu Configured with: /scratch/gompcc/configure --quiet --prefix=/scratch/ugccgomp --enable-languages=c++,f ortran --with-gmp=/afs/mpa/data/martin/mygmp Thread model: posix gcc version 4.1.0-gomp-20050608-branch 20051109 (experimental) (merged 20051109) /scratch/ugccgomp/libexec/gcc/i686-pc-linux-gnu/4.1.0-gomp-20050608-branch/cc1plus -quiet -v -D_GNU_S OURCE test.cc -quiet -dumpbase test.cc -mtune=pentiumpro -auxbase test -version -fopenmp -o /tmp/ccCSV 0EZ.s ignoring nonexistent directory "/scratch/ugccgomp/lib/gcc/i686-pc-linux-gnu/4.1.0-gomp-20050608-branch /../../../../i686-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /scratch/ugccgomp/lib/gcc/i686-pc-linux-gnu/4.1.0-gomp-20050608-branch/../../../../include/c++/4.1.0- gomp-20050608-branch /scratch/ugccgomp/lib/gcc/i686-pc-linux-gnu/4.1.0-gomp-20050608-branch/../../../../include/c++/4.1.0- gomp-20050608-branch/i686-pc-linux-gnu /scratch/ugccgomp/lib/gcc/i686-pc-linux-gnu/4.1.0-gomp-20050608-branch/../../../../include/c++/4.1.0- gomp-20050608-branch/backward /usr/local/include /scratch/ugccgomp/include /scratch/ugccgomp/lib/gcc/i686-pc-linux-gnu/4.1.0-gomp-20050608-branch/include /usr/include End of search list. GNU C++ version 4.1.0-gomp-20050608-branch 20051109 (experimental) (merged 20051109) (i686-pc-linux-gn u) compiled by GNU C version 4.1.0-gomp-20050608-branch 20051109 (experimental) (merged 20051109) . GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: d8a8851eea700f35b0082059a490739d test.cc: In member function 'void Healpix_Map<T>::Import_nograde(const Healpix_Map<T>&) [with T = int] ': test.cc:9: internal compiler error: in expand_expr_real_1, at expr.c:6681 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. -- Summary: [gomp] ICE in expand_expr_real_1 Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: martin at mpa-garching dot mpg dot de GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24849