]> granicus.if.org Git - clang/commit
Fix parsing of variable declarations directly after a class / struct.
authorManuel Klimek <klimek@google.com>
Mon, 7 Jan 2013 18:10:23 +0000 (18:10 +0000)
committerManuel Klimek <klimek@google.com>
Mon, 7 Jan 2013 18:10:23 +0000 (18:10 +0000)
commitde7685487c5d628dd9fe64c4f861cd1888f50fc7
tree53a21aaf4c9eebde9af749c584608db3410c69d3
parentc3cd2b0d538e4db78f1bcbedd0085e2005ce5c51
Fix parsing of variable declarations directly after a class / struct.

Previous indent:
class A {
}
a;
void f() {
};

With this patch:
class A {
} a;
void f() {
}
;

The patch introduces a production for classes and structs, and parses
the rest of the line to the semicolon after the class scope.
This allowed us to remove a long-standing wart in the parser that would
just much the semicolon after any block.
Due to this suboptimal formating some tests were broken.

Some unrelated formatting tests broke; those hit a bug in the ast
printing, and need to be fixed separately.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171761 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Format/UnwrappedLineParser.cpp
lib/Format/UnwrappedLineParser.h
test/Index/comment-cplus-decls.cpp
test/Index/comment-to-html-xml-conversion.cpp
unittests/Format/FormatTest.cpp