Clang Project

clang_source_code/test/Driver/cuda-bail-out.cu
1// Test clang driver bails out after one error during CUDA compilation.
2
3// REQUIRES: clang-driver
4// REQUIRES: powerpc-registered-target
5// REQUIRES: nvptx-registered-target
6
7#ifdef FORCE_ERROR
8#error compilation failed
9#endif
10
11// RUN: not %clang -target powerpc64le-ibm-linux-gnu -fsyntax-only -nocudalib \
12// RUN:   -nocudainc -DFORCE_ERROR %s 2>&1 | FileCheck %s
13// RUN: not %clang -target powerpc64le-ibm-linux-gnu -fsyntax-only -nocudalib \
14// RUN:   -nocudainc -DFORCE_ERROR --cuda-gpu-arch=sm_35 --cuda-gpu-arch=sm_60 \
15// RUN:   %s 2>&1 | FileCheck %s
16// RUN: not %clang -target powerpc64le-ibm-linux-gnu -fsyntax-only -nocudalib \
17// RUN:   -nocudainc -DFORCE_ERROR --cuda-gpu-arch=sm_35 --cuda-gpu-arch=sm_60 \
18// RUN:   --cuda-device-only %s 2>&1 | FileCheck %s
19
20#if defined(ERROR_HOST) && !defined(__CUDA_ARCH__)
21#error compilation failed
22#endif
23
24#if defined(ERROR_SM35) && (__CUDA_ARCH__ == 350)
25#error compilation failed
26#endif
27
28#if defined(ERROR_SM60) && (__CUDA_ARCH__ == 600)
29#error compilation failed
30#endif
31
32// RUN: not %clang -target powerpc64le-ibm-linux-gnu -fsyntax-only -nocudalib \
33// RUN:   -nocudainc -DERROR_HOST --cuda-gpu-arch=sm_35 --cuda-gpu-arch=sm_60 \
34// RUN:   %s 2>&1 | FileCheck %s
35// RUN: not %clang -target powerpc64le-ibm-linux-gnu -fsyntax-only -nocudalib \
36// RUN:   -nocudainc -DERROR_SM35 --cuda-gpu-arch=sm_35 --cuda-gpu-arch=sm_60 \
37// RUN:   --cuda-device-only %s 2>&1 | FileCheck %s
38// RUN: not %clang -target powerpc64le-ibm-linux-gnu -fsyntax-only -nocudalib \
39// RUN:   -nocudainc -DERROR_SM60 --cuda-gpu-arch=sm_35 --cuda-gpu-arch=sm_60 \
40// RUN:   --cuda-device-only %s 2>&1 | FileCheck %s
41
42// RUN: not %clang -target powerpc64le-ibm-linux-gnu -fsyntax-only -nocudalib \
43// RUN:   -nocudainc -DERROR_HOST -DERROR_SM35 --cuda-gpu-arch=sm_35 \
44// RUN:   --cuda-gpu-arch=sm_60 %s 2>&1 | FileCheck %s
45// RUN: not %clang -target powerpc64le-ibm-linux-gnu -fsyntax-only -nocudalib \
46// RUN:   -nocudainc -DERROR_HOST -DERROR_SM60 --cuda-gpu-arch=sm_35 \
47// RUN:   --cuda-gpu-arch=sm_60 %s 2>&1 | FileCheck %s
48// RUN: not %clang -target powerpc64le-ibm-linux-gnu -fsyntax-only -nocudalib \
49// RUN:   -nocudainc -DERROR_SM35 -DERROR_SM60 --cuda-gpu-arch=sm_35 \
50// RUN:   --cuda-gpu-arch=sm_60 %s 2>&1 | FileCheck %s
51
52
53// CHECK: error: compilation failed
54// CHECK-NOT: error: compilation failed
55