This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/35078] New: ICE with reference in parallel for loop


The following invalid code snippet triggers an ICE since GCC 4.2.0
when compiled with -fopenmp:

===========================================================
template<int> void foo()
{
#pragma omp parallel for
  for (int& i = 0; i < 10; ++i)
    ;
}
===========================================================

bug.cc: In function 'void foo()':
bug.cc:5: internal compiler error: in build_modify_expr, at cp/typeck.c:5809
Please submit a full bug report, [etc.]

Without templates the situation is not much better:

===========================================================
void foo()
{
  int j = 0;

#pragma omp parallel for
  for (int& i = j; i < 10; ++i)
    ;
}
===========================================================

bug.cc: In function 'void foo()':
bug.cc:6: error: 'i' declared as reference but not initialized
bug.cc:7: internal compiler error: in build_modify_expr, at cp/typeck.c:5809
Please submit a full bug report, [etc.]

The compiler issues a bogus error message (the variable is initialized),
and crashes afterwards.


-- 
           Summary: ICE with reference in parallel for loop
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Keywords: ice-on-invalid-code, diagnostic, monitored, openmp
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: reichelt at gcc dot gnu dot org


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]