mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-24 22:08:57 -04:00

Summary: This is basically reverting r261774 with a tweak for clang-cl. UNIX standard states: When c99 encounters a compilation error that causes an object file not to be created, it shall write a diagnostic to standard error and continue to compile other source code operands, but it shall not perform the link phase and it shall return a non-zero exit status The same goes for c89 or cc. And they are all alias or shims pointing to clang on Darwin. The original commit was intended for CUDA so the error message doesn't get emit twice for both host and device. It seems that the clang driver has been changed to model the CUDA dependency differently. Now the driver behaves the same without this commit. rdar://problem/32223263 Reviewers: thakis, dexonsmith, tra Reviewed By: tra Subscribers: jlebar, cfe-commits Differential Revision: https://reviews.llvm.org/D39502 llvm-svn: 317860
25 lines
894 B
C
25 lines
894 B
C
// Check UNIX conformance for cc/c89/c99
|
|
// When c99 encounters a compilation error that causes an object file not to be
|
|
// created, it shall write a diagnostic to standard error and continue to
|
|
// compile other source code operands, but it shall not perform the link phase
|
|
// and it shall return a non-zero exit status.
|
|
|
|
// When given multiple .c files to compile, clang compiles them in order until
|
|
// it hits an error, at which point it stops.
|
|
//
|
|
// RUN: rm -rf %t-dir
|
|
// RUN: mkdir -p %t-dir
|
|
// RUN: cd %t-dir
|
|
//
|
|
// RUN: touch %t-dir/1.c
|
|
// RUN: echo "invalid C code" > %t-dir/2.c
|
|
// RUN: touch %t-dir/3.c
|
|
// RUN: echo "invalid C code" > %t-dir/4.c
|
|
// RUN: touch %t-dir/5.c
|
|
// RUN: not %clang -S %t-dir/1.c %t-dir/2.c %t-dir/3.c %t-dir/4.c %t-dir/5.c
|
|
// RUN: test -f %t-dir/1.s
|
|
// RUN: test ! -f %t-dir/2.s
|
|
// RUN: test -f %t-dir/3.s
|
|
// RUN: test ! -f %t-dir/4.s
|
|
// RUN: test -f %t-dir/5.s
|