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