annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // { dg-do compile }
kono
parents:
diff changeset
2 // { dg-options "-fopenmp" }
kono
parents:
diff changeset
3 // { dg-require-effective-target fopenmp }
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 class GException {
kono
parents:
diff changeset
6 public:
kono
parents:
diff changeset
7 class vector_mismatch {
kono
parents:
diff changeset
8 public:
kono
parents:
diff changeset
9 vector_mismatch(int size1, int size2);
kono
parents:
diff changeset
10 };
kono
parents:
diff changeset
11 };
kono
parents:
diff changeset
12 class GVector{
kono
parents:
diff changeset
13 public:
kono
parents:
diff changeset
14 GVector& operator+=(const GVector& v);
kono
parents:
diff changeset
15 int m_num;
kono
parents:
diff changeset
16 double* m_data;
kono
parents:
diff changeset
17 };
kono
parents:
diff changeset
18 inline GVector& GVector::operator+= (const GVector& v)
kono
parents:
diff changeset
19 {
kono
parents:
diff changeset
20 if (m_num != v.m_num)
kono
parents:
diff changeset
21 throw GException::vector_mismatch(m_num, v.m_num);
kono
parents:
diff changeset
22 for (int i = 0; i < m_num; ++i) m_data[i] += v.m_data[i];
kono
parents:
diff changeset
23 };
kono
parents:
diff changeset
24 void eval(GVector* m_gradient, GVector* vect_cpy_grad, int n)
kono
parents:
diff changeset
25 {
kono
parents:
diff changeset
26 #pragma omp sections
kono
parents:
diff changeset
27 {
kono
parents:
diff changeset
28 for (int i = 0; i < n; ++i)
kono
parents:
diff changeset
29 *m_gradient += vect_cpy_grad[i];
kono
parents:
diff changeset
30 }
kono
parents:
diff changeset
31 }