diff options
author | Marek Kurdej <marek.kurdej@gmail.com> | 2017-09-27 07:51:51 +0000 |
---|---|---|
committer | Marek Kurdej <marek.kurdej@gmail.com> | 2017-09-27 07:51:51 +0000 |
commit | caf6fd51eee1eb2103b25ad006dc12af8606eb70 (patch) | |
tree | 013d6c4650325a4b6db6bdfdb6cc578ba6daeadb /clang/lib/Format | |
parent | de4806d321d0c1e075277656586d540c0476b4fe (diff) | |
download | bcm5719-llvm-caf6fd51eee1eb2103b25ad006dc12af8606eb70.tar.gz bcm5719-llvm-caf6fd51eee1eb2103b25ad006dc12af8606eb70.zip |
[clang-format] Fix FixNamespaceComments when BraceWrapping AfterNamespace is true.
Summary:
NamespaceEndCommentsFixer did not fix namespace comments when the brace opening the namespace was not on the same line as the "namespace" keyword.
It occurs in Allman, GNU and Linux styles and whenever BraceWrapping.AfterNamespace is true.
Before:
```lang=cpp
namespace a
{
void f();
void g();
}
```
After:
```lang=cpp
namespace a
{
void f();
void g();
} // namespace a
```
Reviewers: krasimir
Reviewed By: krasimir
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D37904
llvm-svn: 314279
Diffstat (limited to 'clang/lib/Format')
-rw-r--r-- | clang/lib/Format/NamespaceEndCommentsFixer.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Format/NamespaceEndCommentsFixer.cpp b/clang/lib/Format/NamespaceEndCommentsFixer.cpp index 85b70b8c0a7..c660843dca8 100644 --- a/clang/lib/Format/NamespaceEndCommentsFixer.cpp +++ b/clang/lib/Format/NamespaceEndCommentsFixer.cpp @@ -118,6 +118,12 @@ getNamespaceToken(const AnnotatedLine *line, return nullptr; assert(StartLineIndex < AnnotatedLines.size()); const FormatToken *NamespaceTok = AnnotatedLines[StartLineIndex]->First; + if (NamespaceTok->is(tok::l_brace)) { + // "namespace" keyword can be on the line preceding '{', e.g. in styles + // where BraceWrapping.AfterNamespace is true. + if (StartLineIndex > 0) + NamespaceTok = AnnotatedLines[StartLineIndex - 1]->First; + } // Detect "(inline)? namespace" in the beginning of a line. if (NamespaceTok->is(tok::kw_inline)) NamespaceTok = NamespaceTok->getNextNonComment(); |