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++/32177] g++ crashes on some valid OpenMP code



------- Comment #2 from rguenth at gcc dot gnu dot org  2007-06-01 11:28 -------
We have a

 <with_cleanup_expr 0x2aadb4071380
    type <void_type 0x2aadb3ecf240 void VOID
        align 8 symtab 0 alias set -1 canonical type 0x2aadb3ecf240
        pointer_to_this <pointer_type 0x2aadb3ecf300>>
    side-effects
    arg 0 <call_expr 0x2aadb3eb0a50 type <void_type 0x2aadb3ecf240 void>
        side-effects nothrow
        fn <addr_expr 0x2aadb4071140 type <pointer_type 0x2aadb406a900>
            constant invariant arg 0 <function_decl 0x2aadb4069000 __comp_dtor
>>
        arg 0 <addr_expr 0x2aadb4071100 type <pointer_type 0x2aadb4061780>
            invariant arg 0 <var_decl 0x2aadb406f160 D.2557>>
        t.ii:8>>

that we don't handle in lower_stmt ().  The complete fn looks like

{
  try
    {
      __comp_ctor  (&D.2557);
      <<< Unknown tree: with_cleanup_expr
  __comp_dtor  (&D.2557) >>>
;
      D.2559 = s (&D.2557);
      D.2565 = D.2559;
      #pragma omp for nowait
      for (i = 1; i <= D.2565; i = i + 1)
      OMP_CONTINUE
    }
  catch
    {
      <<<eh_filter ()>>>
        {
          terminate ();
        }
    }
  OMP_RETURN [nowait]
}


-- 


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


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