------- Comment #1 from pinskia at gcc dot gnu dot org 2006-03-15 12:58 ------- Hmm, the IR looks fine in .gimple: struct A a;
__comp_ctor (&a, 3); #pragma omp parallel private(a) { { int D.2487; D.2487 = a.n; printf (&"%d\n"[0], D.2487); } } D.2488 = 0; return D.2488; But broken in omplower: __comp_ctor (&a, 3); { #pragma omp parallel private(a) [child fn: main.omp_fn.0 (???)] { __comp_ctor (&a); D.2495 = a.n; D.2487 = D.2495; printf (&"%d\n"[0], D.2487); OMP_RETURN } } D.2488 = 0; return D.2488; Looks like we don't create the correct ctor for a, the one with the 3 as an agrument. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Component|c++ |middle-end Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2006-03-15 12:58:26 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26691