diff options
author | Manuel Klimek <klimek@google.com> | 2013-04-12 14:13:36 +0000 |
---|---|---|
committer | Manuel Klimek <klimek@google.com> | 2013-04-12 14:13:36 +0000 |
commit | 67d080dafa74c7d126da522fec333a6e52a5ae35 (patch) | |
tree | 38ccb556d560e92047cf105088bdef83646b7f18 /lib/StaticAnalyzer/Checkers/MallocChecker.cpp | |
parent | 7a9ed44173f9291534d935c5e4b11ddd24c01f29 (diff) |
Revamps structural error detection / handling.
Previously we'd only detect structural errors on the very first level.
This leads to incorrectly balanced braces not being discovered, and thus
incorrect indentation.
This change fixes the problem by:
- changing the parser to use an error state that can be detected
anywhere inside the productions, for example if we get an eof on
SOME_MACRO({ some block <eof>
- previously we'd never break lines when we discovered a structural
error; now we break even in the case of a structural error if there
are two unwrapped lines within the same line; thus,
void f() { while (true) { g(); y(); } }
will still be re-formatted, even if there's missing braces somewhere
in the file
- still exclude macro definitions from generating structural error;
macro definitions are inbalanced snippets
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179379 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/StaticAnalyzer/Checkers/MallocChecker.cpp')
0 files changed, 0 insertions, 0 deletions