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
24invalid 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