annotate clang/test/SemaCUDA/vla.cu @ 165:597b3f1c2c93

fix call createTailCallEliminationPass
author anatofuz
date Tue, 24 Mar 2020 15:30:52 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -triple nvptx64-nvidia-cuda -fcuda-is-device -verify %s
anatofuz
parents:
diff changeset
2 // RUN: %clang_cc1 -triple x86_64-unknown-linux -verify -DHOST %s
anatofuz
parents:
diff changeset
3
anatofuz
parents:
diff changeset
4 #ifndef __CUDA_ARCH__
anatofuz
parents:
diff changeset
5 // expected-no-diagnostics
anatofuz
parents:
diff changeset
6 #endif
anatofuz
parents:
diff changeset
7
anatofuz
parents:
diff changeset
8 #include "Inputs/cuda.h"
anatofuz
parents:
diff changeset
9
anatofuz
parents:
diff changeset
10 void host(int n) {
anatofuz
parents:
diff changeset
11 int x[n];
anatofuz
parents:
diff changeset
12 }
anatofuz
parents:
diff changeset
13
anatofuz
parents:
diff changeset
14 __device__ void device(int n) {
anatofuz
parents:
diff changeset
15 int x[n];
anatofuz
parents:
diff changeset
16 #ifdef __CUDA_ARCH__
anatofuz
parents:
diff changeset
17 // expected-error@-2 {{cannot use variable-length arrays in __device__ functions}}
anatofuz
parents:
diff changeset
18 #endif
anatofuz
parents:
diff changeset
19 }
anatofuz
parents:
diff changeset
20
anatofuz
parents:
diff changeset
21 __host__ __device__ void hd(int n) {
anatofuz
parents:
diff changeset
22 int x[n];
anatofuz
parents:
diff changeset
23 #ifdef __CUDA_ARCH__
anatofuz
parents:
diff changeset
24 // expected-error@-2 {{cannot use variable-length arrays in __host__ __device__ functions}}
anatofuz
parents:
diff changeset
25 #endif
anatofuz
parents:
diff changeset
26 }
anatofuz
parents:
diff changeset
27
anatofuz
parents:
diff changeset
28 // No error because never codegen'ed for device.
anatofuz
parents:
diff changeset
29 __host__ __device__ inline void hd_inline(int n) {
anatofuz
parents:
diff changeset
30 int x[n];
anatofuz
parents:
diff changeset
31 }
anatofuz
parents:
diff changeset
32 void call_hd_inline() { hd_inline(42); }