Mercurial > hg > CbC > CbC_gcc
view libgomp/testsuite/libgomp.c++/ctor-12.C @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | a06113de4d67 |
children |
line wrap: on
line source
// PR c++/36308 // { dg-do run } extern "C" void abort (); static int n; struct A { A () { l = 0; #pragma omp atomic ctors++; } A (const A &x) { l = x.l; #pragma omp atomic copyctors++; } virtual A& operator= (const A &x) { l = x.l; #pragma omp atomic assignops++; return *this; } virtual ~A () { #pragma omp atomic dtors++; } int l; static int ctors, dtors, copyctors, assignops; }; int A::ctors; int A::dtors; int A::copyctors; int A::assignops; int main () { A a; #pragma omp parallel private (a) { a.l = 6; #pragma omp single copyprivate (a) { a.l = 3; } if (a.l != 3) abort (); #pragma omp atomic n++; } if (A::ctors != n + 1 || A::copyctors != 0 || A::dtors != n || A::assignops != n - 1) abort (); return 0; }