ICE on the following code. When removing "default(shared)", it compiles fine.

void foo(bool b)
{
}

void tasked_foo(bool b)
{
  foo(b);
  #pragma omp task default(shared)
    b = false;
}

int main()
{
  tasked_foo(false);
  return 0;
}


g++ -fopenmp task_default_shared.cpp
task_default_shared.cpp: In function ‘void tasked_foo(bool)’:
task_default_shared.cpp:16: error: invalid operand to unary operator
b

task_default_shared.cpp:16: note: in statement
D.2064 = (int) b;

task_default_shared.cpp:16: internal compiler error: verify_stmts failed


BTW: What "component" should I select for this type of bug? "c++" or "libgomp"
or still something different?


-- 
           Summary: ICE on valid code: OpenMP task construct with
                    default(shared) clause
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: singler at gcc dot gnu dot org
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


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

Reply via email to