Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/gomp/declare-variant-7.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
// Test parsing of #pragma omp declare variant // { dg-do compile } // { dg-additional-options "-fdump-tree-gimple" } void f01 (); #pragma omp declare variant (f01) match (user={condition(1)},device={arch(x86_64)}) template <int N> void f02 (); void f03 (); #pragma omp declare variant (f03) match (user={condition(score(N+2):N)}) template <int N> void f04 (); template <int N> void f05 (); #pragma omp declare variant (f05<N>) match (user={condition((T)N)},implementation={vendor("gnu")}) template <int N, typename T> void f06 (); void f07 (); #pragma omp declare variant (f07) match (user={condition(score(N+2):N)}) template <int N> void f08 (); template <int N> void f09 (); #pragma omp declare variant (f09<N>) match (user={condition((T) N)}) template <int N, typename T> void f10 (); template <int N> struct S { template <typename T> void f11 (T) {} #pragma omp declare variant (f11<T>) match (user={condition(score(N):N)}) template <typename T> void f12 (T) {} template <typename T> void f13 (T); #pragma omp declare variant (f13<T>) match (user={condition(score(N):N)}) template <typename T> void f14 (T); int s; }; template <int N> struct T { template <typename T> void f15 (T) {} #pragma omp declare variant (f15<T>) match (user={condition(score(N):N)}) template <typename T> void f16 (T) {} template <typename T> void f17 (T); #pragma omp declare variant (f17<T>) match (user={condition(score(N):N)}) template <typename T> void f18 (T); int t; }; void test () { f02<1> (); // { dg-final { scan-tree-dump-times "f01 \\\(\\\);" 1 "gimple" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } // { dg-final { scan-tree-dump-times "f02<1> \\\(\\\);" 1 "gimple" { target { { i?86-*-* x86_64-*-* } && { ! lp64 } } } } } // { dg-final { scan-tree-dump-times "f02<1> \\\(\\\);" 1 "gimple" { target { ! { i?86-*-* x86_64-*-* } } } } } f04<1> (); // { dg-final { scan-tree-dump-times "f03 \\\(\\\);" 1 "gimple" } } f06<1, long> (); // { dg-final { scan-tree-dump-times "f05<1> \\\(\\\);" 1 "gimple" } } f08<0> (); // { dg-final { scan-tree-dump-times "f08<0> \\\(\\\);" 1 "gimple" } } f10<0, short int> (); // { dg-final { scan-tree-dump-times "f10<0, short int> \\\(\\\);" 1 "gimple" } } S<1> s; s.f12 (0); // { dg-final { scan-tree-dump-times "S<1>::f11<int> \\\(&s, 0\\\);" 1 "gimple" } } s.f12 (0.0); // { dg-final { scan-tree-dump-times "S<1>::f11<double> \\\(&s, 0.0\\\);" 1 "gimple" } } s.f14 (0LL); // { dg-final { scan-tree-dump-times "S<1>::f13<long long int> \\\(&s, 0\\\);" 1 "gimple" } } T<0> t; t.f16 (s); // { dg-final { scan-tree-dump-times "T<0>::f16<S<1> > \\\(&t, s\\\);" 1 "gimple" } } t.f18 (s); // { dg-final { scan-tree-dump-times "T<0>::f18<S<1> > \\\(&t, s\\\);" 1 "gimple" } } }