Build ASTs before relexing the file. This avoids having comment finding mutate the

preprocessor state, causing bogus diagnostics when the file is parsed for real.  This
implements Misc/diag-checker.c.  Thanks to Ted for noticing this.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41000 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2007-08-10 18:27:41 +00:00
Родитель 30bf7710b5
Коммит 009e9f7e45
2 изменённых файлов: 8 добавлений и 3 удалений

Просмотреть файл

@ -216,13 +216,13 @@ static bool CheckResults(Preprocessor &PP,
/// CheckDiagnostics - Implement the -parse-ast-check diagnostic verifier.
bool clang::CheckDiagnostics(Preprocessor &PP, unsigned MainFileID) {
// Parse the specified input file.
BuildASTs(PP, MainFileID, false);
// Gather the set of expected diagnostics.
DiagList ExpectedErrors, ExpectedWarnings;
FindExpectedDiags(PP, MainFileID, ExpectedErrors, ExpectedWarnings);
// Parse the specified input file.
BuildASTs(PP, MainFileID, false);
// Check that the expected diagnostics occurred.
return CheckResults(PP, ExpectedErrors, ExpectedWarnings);
}

5
test/Misc/diag-checker.c Normal file
Просмотреть файл

@ -0,0 +1,5 @@
// RUN: clang -parse-ast-check %s
#include <stdio.h>
void foo(FILE *FP) {}