Fixes indent in linkage specification blocks.

We now indent:
extern "C" {
int a;
}

without additional indent inside the extern "C" block.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173045 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Manuel Klimek 2013-01-21 14:32:05 +00:00
Родитель 9c8c40e733
Коммит d19dc2ddf3
2 изменённых файлов: 16 добавлений и 0 удалений

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

@ -311,6 +311,18 @@ void UnwrappedLineParser::parseStructuralElement() {
case tok::kw_return:
parseReturn();
return;
case tok::kw_extern:
nextToken();
if (FormatTok.Tok.is(tok::string_literal)) {
nextToken();
if (FormatTok.Tok.is(tok::l_brace)) {
parseBlock(0);
addUnwrappedLine();
return;
}
}
// In all other cases, parse the declaration.
break;
default:
break;
}

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

@ -526,6 +526,10 @@ TEST_F(FormatTest, FormatsNamespaces) {
"void f() { f(); }");
}
TEST_F(FormatTest, FormatsExternC) {
verifyFormat("extern \"C\" {\nint a;");
}
TEST_F(FormatTest, FormatTryCatch) {
// FIXME: Handle try-catch explicitly in the UnwrappedLineParser, then we'll
// also not create single-line-blocks.