view gcc/testsuite/g++.dg/gomp/declare-variant-1.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
line wrap: on
line source

struct S
{
  void foo ();
  void bar (const S &x);
#if __cplusplus >= 201103L
  S &baz (const S &x);
  S &qux (S &&x);
#endif
  void quux (int x);
  #pragma omp declare variant (foo) match (user={condition(0)})	// { dg-error "'declare variant' on constructor" }
  S ();
  #pragma omp declare variant (foo) match (user={condition(0)})	// { dg-error "'declare variant' on destructor" }
  ~S ();
  #pragma omp declare variant (bar) match (user={condition(0)})	// { dg-error "'declare variant' on constructor" }
  S (const S &x);
  #pragma omp declare variant (quux) match (user={condition(0)})	// { dg-error "'declare variant' on constructor" }
  S (int x);
#if __cplusplus >= 201103L
  #pragma omp declare variant (baz) match (user={condition(0)})	// { dg-error "'declare variant' on defaulted" "" { target c++11 } }
  S &operator= (const S &x) = default;
  #pragma omp declare variant (qux) match (user={condition(0)})	// { dg-error "'declare variant' on deleted" "" { target c++11 } }
  S &operator= (S &&) = delete;
#endif
  int s;
};
void corge (int);
#pragma omp declare variant (corge) match (user={condition(0)})
void grault (int x);