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