1 // RUN: touch %t.s
2 // RUN: not %clang -S -DCRASH -o %t.s -MMD -MF %t.d %s
3 // RUN: test ! -f %t.s
4 // RUN: test ! -f %t.d
5 
6 // RUN: touch %t.s
7 // RUN: not %clang -S -DMISSING -o %t.s -MMD -MF %t.d %s
8 // RUN: test ! -f %t.s
9 // RUN: test ! -f %t.d
10 
11 // RUN: touch %t.s
12 // RUN: not %clang -S -o %t.s -MMD -MF %t.d %s
13 // RUN: test ! -f %t.s
14 // RUN: test -f %t.d
15 
16 // REQUIRES: shell
17 // REQUIRES: crash-recovery
18 
19 #ifdef CRASH
20 #pragma clang __debug crash
21 #elif defined(MISSING)
22 #include "nonexistent.h"
23 #else
24 invalid C code
25 #endif
26 
27 // RUN: touch %t1.c
28 // RUN: echo "invalid C code" > %t2.c
29 // RUN: cd %T && not %clang -S %t1.c %t2.c
30 // RUN: test -f %t1.s
31 // RUN: test ! -f %t2.s
32 
33 // RUN: touch %t1.c
34 // RUN: touch %t2.c
35 // RUN: chmod -r %t2.c
36 // RUN: cd %T && not %clang -S %t1.c %t2.c
37 // RUN: test -f %t1.s
38 // RUN: test ! -f %t2.s
39 
40 // RUN: touch %t1.c
41 // RUN: echo "invalid C code" > %t2.c
42 // RUN: touch %t3.c
43 // RUN: echo "invalid C code" > %t4.c
44 // RUN: touch %t5.c
45 // RUN: cd %T && not %clang -S %t1.c %t2.c %t3.c %t4.c %t5.c
46 // RUN: test -f %t1.s
47 // RUN: test ! -f %t2.s
48 // RUN: test -f %t3.s
49 // RUN: test ! -f %t4.s
50 // RUN: test -f %t5.s
51