aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Lex/ModuleMap.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-05-19 18:12:07 +0000
committerZachary Turner <zturner@google.com>2017-05-19 18:12:07 +0000
commit090871f2061b5760e36133cae9687cc6526b927f (patch)
treea40a2a505cd1e9f395aaee5484590d55b57f92d9 /clang/lib/Lex/ModuleMap.cpp
parentae3f752f367969904f2b527325210c478278bcfb (diff)
downloadllvm-090871f2061b5760e36133cae9687cc6526b927f.zip
llvm-090871f2061b5760e36133cae9687cc6526b927f.tar.gz
llvm-090871f2061b5760e36133cae9687cc6526b927f.tar.bz2
[lit] Take the last error when executing pipelines.
This seems to have been present since the beginning of time, which is quite surprising. The symptom was this: Suppose you have a test with a run line that looks like this: RUN: foo | FileCheck %s foo prints some output and then due to a bug in the program it asserts. On Windows this results in the program returning a negative exit code. But if enough output had been printed already by the tool so that the FileCheck match would succeed then FileCheck would return 0, and because of bad logic in lit this 0 return value would overwrite the failed return value from previous items in the pipeline. This only happened with negative exit codes. The most sensible behavior is to just take whatever the first exit code is. There is no logical ordering defined on exit codes, so comparing with < and > does not make a lot of sense. Instead, as soon as we find the first non-successful return value, that should be the result of the entire expression. This fixes the issue, as now tests which fail on non-Windows platforms also fail for me on Windows as well. llvm-svn: 303440
Diffstat (limited to 'clang/lib/Lex/ModuleMap.cpp')
0 files changed, 0 insertions, 0 deletions