summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Allow -verify directives to be filtered by preprocessing.Jordan Rose2012-07-111-28/+90
| | | | | | | | | | | | | | | | | | | | | This is accomplished by making VerifyDiagnosticsConsumer a CommentHandler, which then only reads the -verify directives that are actually in live blocks of code. It also makes it simpler to handle -verify directives that appear in header files, though we still have to manually reparse some files depending on how they are generated. This requires some test changes. In particular, all PCH tests now have their -verify directives outside the "header" portion of the file, using the @line syntax added in r159978. Other tests have been modified mostly to make it clear what is being tested, and to prevent polluting the expected output with the directives themselves. Patch by Andy Gibbs! (with slight modifications) The new Frontend/verify-* tests exercise the functionality of this commit, as well as r159978, r159979, and r160053 (Andy's other -verify enhancements). llvm-svn: 160068
* Emit -verify diagnostics even when we have a fatal error.Jordan Rose2012-07-111-2/+2
| | | | | | | | | | | | | | Previously we'd halt at the fatal error as expected, but not actually emit any -verify-related diagnostics. This lets us catch cases that emit a /different/ fatal error from the one we expected. This is implemented by adding a "force emit" mode to DiagnosticBuilder, which will cause diagnostics to immediately be emitted regardless of current suppression. Needless to say this should probably be used /very/ sparingly. Patch by Andy Gibbs! Tests for all of Andy's -verify patches coming soon. llvm-svn: 160053
* Clear diagnostic counts after processing the diagnostics.Axel Naumann2012-07-101-0/+3
| | | | | | The consumer might see multiple input files (e.g. for cling) and since r159977 the count is maintained across input files. llvm-svn: 159995
* Allow -verify directives to specify a min and max count, not just "+".Jordan Rose2012-07-101-21/+33
| | | | | | | | | | | void f(); // expected-note 0+ {{previous declaration is here}} void g(); // expected-note 0-1 {{previous declaration is here}} The old "+" syntax is still an alias for "1+", and single numbers still work. Patch by Andy Gibbs! llvm-svn: 159979
* Allow line numbers on -verify directives.Jordan Rose2012-07-101-55/+83
| | | | | | | | | | | // expected-warning@10 {{some text}} The line number may be absolute (as above), or relative to the current line by prefixing the number with either '+' or '-'. Patch by Andy Gibbs! llvm-svn: 159978
* Clean up VerifyDiagnosticsConsumer in preparation for upcoming enhancements.Jordan Rose2012-07-101-73/+22
| | | | | | Patch by Andy Gibbs! llvm-svn: 159977
* Unify naming of LangOptions variable/get function across the Clang stack ↵David Blaikie2012-03-111-1/+1
| | | | | | | | | | (Lex to AST). The member variable is always "LangOpts" and the member function is always "getLangOpts". Reviewed by Chris Lattner llvm-svn: 152536
* Basic: import SmallString<> into clang namespaceDylan Noblesmith2012-02-051-2/+2
| | | | | | | (I was going to fix the TODO about DenseMap too, but that would break self-host right now. See PR11922.) llvm-svn: 149799
* Extract the (InputKind, std::string) pair used to describe inputs toDouglas Gregor2012-01-201-1/+1
| | | | | | | the front end into its own class, FrontendInputFile, to make it easier to introduce new per-input data. No functionality change. llvm-svn: 148546
* Frontend/VerifyDiagnosticConsumer.cpp: Fix an expression that had side-effect.NAKAMURA Takumi2011-12-171-4/+4
| | | | | | | | | It had been causing test "Misc/diag-verify.cpp" failure on ms cl.exe. The emission was ordered unexpectedly as below; First) error: 'error' diagnostics seen but not expected: Second) error: 'error' diagnostics expected but not seen: llvm-svn: 146830
* Fixup to the relaxed diagnostic verification option r146633.Anna Zaks2011-12-161-2/+4
| | | | | | | We should exit when matching the '+' even if nothing was found to prevent searching for all UNIT_MAX items. llvm-svn: 146747
* <climits> has UINT_MAX, not <limits>.Eli Friedman2011-12-151-1/+1
| | | | llvm-svn: 146638
* Another fixit for r146633 (to make debian-fnt bot happy), try including ↵Anna Zaks2011-12-151-1/+1
| | | | | | limits instead. llvm-svn: 146637
* Fixit for r146633. Make sure UINT_MAX is defined on all platforms.Anna Zaks2011-12-151-0/+2
| | | | | | (Attempt to turn debian-fnt buildbot back to green.) llvm-svn: 146635
* Add support for matching one or more (aka regex +) diagnostic messages with ↵Anna Zaks2011-12-151-1/+14
| | | | | | | | | -verify. Ex: // expected-warning + {{tainted} llvm-svn: 146633
* Modify how the -verify flag works. Currently, the verification string andRichard Trieu2011-12-151-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | diagnostic message are compared. If either is a substring of the other, then no error is given. This gives rise to an unexpected case: // expect-error{{candidate function has different number of parameters}} will match the following error messages from Clang: candidate function has different number of parameters (expected 1 but has 2) candidate function has different number of parameters It will also match these other error messages: candidate function function has different number of parameters number of parameters This patch will change so that the verification string must be a substring of the diagnostic message before accepting. Also, all the failing tests from this change have been corrected. Some stats from this cleanup: 87 - removed extra spaces around verification strings 70 - wording updates to diagnostics 40 - extra leading or trailing characters (typos, unmatched parens or quotes) 35 - diagnostic level was included (error:, warning:, or note:) 18 - flag name put in the warning (-Wprotocol) llvm-svn: 146619
* Introduce a pure virtual clone() method to DiagnosticConsumer, so thatDouglas Gregor2011-09-291-0/+8
| | | | | | | | | we have the ability to create a new, distict diagnostic consumer when we go off and build a module. This avoids the currently horribleness where the same diagnostic consumer sees diagnostics for multiple translation units (and multiple SourceManagers!) causing all sorts of havok. llvm-svn: 140743
* Rename DiagnosticInfo to Diagnostic as per issue 5397David Blaikie2011-09-261-1/+1
| | | | llvm-svn: 140493
* Rename VerifyDiagnosticsClient to VerifyDiagnosticConsumer as per issue 5397David Blaikie2011-09-261-0/+533
llvm-svn: 140489
OpenPOWER on IntegriCloud