1 | // RUN: %clang_cc1 -std=c++11 -fsyntax-only -fno-cuda-host-device-constexpr -verify %s |
2 | // RUN: %clang_cc1 -std=c++11 -fsyntax-only -fno-cuda-host-device-constexpr -fcuda-is-device -verify %s |
3 | |
4 | #include "Inputs/cuda.h" |
5 | |
6 | // Check that, with -fno-cuda-host-device-constexpr, constexpr functions are |
7 | // host-only, and __device__ constexpr functions are still device-only. |
8 | |
9 | constexpr int f() { return 0; } // expected-note {{not viable}} |
10 | __device__ constexpr int g() { return 0; } // expected-note {{not viable}} |
11 | |
12 | void __device__ foo() { |
13 | f(); // expected-error {{no matching function}} |
14 | g(); |
15 | } |
16 | |
17 | void __host__ foo() { |
18 | f(); |
19 | g(); // expected-error {{no matching function}} |
20 | } |
21 | |