no-host-device-constexpr.cu
673 Bytes
// RUN: %clang_cc1 -std=c++11 -fsyntax-only -fno-cuda-host-device-constexpr -verify %s
// RUN: %clang_cc1 -std=c++11 -fsyntax-only -fno-cuda-host-device-constexpr -fcuda-is-device -verify %s
#include "Inputs/cuda.h"
// Check that, with -fno-cuda-host-device-constexpr, constexpr functions are
// host-only, and __device__ constexpr functions are still device-only.
constexpr int f() { return 0; } // expected-note {{not viable}}
__device__ constexpr int g() { return 0; } // expected-note {{not viable}}
void __device__ foo() {
f(); // expected-error {{no matching function}}
g();
}
void __host__ foo() {
f();
g(); // expected-error {{no matching function}}
}