1 | // Check UNIX conformance for cc/c89/c99 |
2 | // When c99 encounters a compilation error that causes an object file not to be |
3 | // created, it shall write a diagnostic to standard error and continue to |
4 | // compile other source code operands, but it shall not perform the link phase |
5 | // and it shall return a non-zero exit status. |
6 | |
7 | // When given multiple .c files to compile, clang compiles them in order until |
8 | // it hits an error, at which point it stops. |
9 | // |
10 | // RUN: rm -rf %t-dir |
11 | // RUN: mkdir -p %t-dir |
12 | // RUN: cd %t-dir |
13 | // |
14 | // RUN: touch %t-dir/1.c |
15 | // RUN: echo "invalid C code" > %t-dir/2.c |
16 | // RUN: touch %t-dir/3.c |
17 | // RUN: echo "invalid C code" > %t-dir/4.c |
18 | // RUN: touch %t-dir/5.c |
19 | // RUN: not %clang -S %t-dir/1.c %t-dir/2.c %t-dir/3.c %t-dir/4.c %t-dir/5.c |
20 | // RUN: test -f %t-dir/1.s |
21 | // RUN: test ! -f %t-dir/2.s |
22 | // RUN: test -f %t-dir/3.s |
23 | // RUN: test ! -f %t-dir/4.s |
24 | // RUN: test -f %t-dir/5.s |
25 | |