Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/g++.dg/torture/pr56694.C @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gcc/testsuite/g++.dg/torture/pr56694.C Fri Oct 27 22:46:09 2017 +0900 @@ -0,0 +1,31 @@ +// { dg-do compile } +// { dg-options "-fopenmp" } +// { dg-require-effective-target fopenmp } + +class GException { +public: + class vector_mismatch { + public: + vector_mismatch(int size1, int size2); + }; +}; +class GVector{ +public: + GVector& operator+=(const GVector& v); + int m_num; + double* m_data; +}; +inline GVector& GVector::operator+= (const GVector& v) +{ + if (m_num != v.m_num) + throw GException::vector_mismatch(m_num, v.m_num); + for (int i = 0; i < m_num; ++i) m_data[i] += v.m_data[i]; +}; +void eval(GVector* m_gradient, GVector* vect_cpy_grad, int n) +{ +#pragma omp sections + { + for (int i = 0; i < n; ++i) + *m_gradient += vect_cpy_grad[i]; + } +}