summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra
diff options
context:
space:
mode:
authorAlexander Kornienko <alexfh@google.com>2014-11-17 17:32:32 +0000
committerAlexander Kornienko <alexfh@google.com>2014-11-17 17:32:32 +0000
commitb23eb5e3f7c43c40fe7e5ede5484285becd2f14e (patch)
tree72abbd32624e50c0d68c0ec76057beac646b5ca6 /clang-tools-extra
parent0837f63fd2f00ab32b98ec18ba6adf6be7fa003e (diff)
downloadbcm5719-llvm-b23eb5e3f7c43c40fe7e5ede5484285becd2f14e.tar.gz
bcm5719-llvm-b23eb5e3f7c43c40fe7e5ede5484285becd2f14e.zip
[clang-tidy] Move the missing namespace comment warnings to the closing brace
Summary: The google-readability-namespace-comments/llvm-namespace-comment warnings are quite confusing when they appear at the beginning of a long namespace and the closing brace is not in sight. For convenience added notes pointing to the start of the namespace. Reviewers: klimek Reviewed By: klimek Subscribers: curdeius, cfe-commits Differential Revision: http://reviews.llvm.org/D6251 llvm-svn: 222145
Diffstat (limited to 'clang-tools-extra')
-rw-r--r--clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.cpp10
-rw-r--r--clang-tools-extra/test/clang-tidy/basic.cpp2
-rw-r--r--clang-tools-extra/test/clang-tidy/google-readability-namespace-comments.cpp7
-rw-r--r--clang-tools-extra/test/clang-tidy/select-checks.cpp2
4 files changed, 15 insertions, 6 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.cpp b/clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.cpp
index b284150dc73..76856ee7aa0 100644
--- a/clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.cpp
@@ -117,10 +117,18 @@ void NamespaceCommentCheck::check(const MatchFinder::MatchResult &Result) {
NeedLineBreak = false;
}
- diag(ND->getLocation(), "namespace not terminated with a closing comment")
+ std::string NamespaceName =
+ ND->isAnonymousNamespace()
+ ? "anonymous namespace"
+ : ("namespace '" + ND->getNameAsString() + "'");
+
+ diag(AfterRBrace, "%0 not terminated with a closing comment")
+ << NamespaceName
<< FixItHint::CreateInsertion(AfterRBrace,
std::string(SpacesBeforeComments, ' ') +
getNamespaceComment(ND, NeedLineBreak));
+ diag(ND->getLocation(), "%0 starts here", DiagnosticIDs::Note)
+ << NamespaceName;
}
} // namespace readability
diff --git a/clang-tools-extra/test/clang-tidy/basic.cpp b/clang-tools-extra/test/clang-tidy/basic.cpp
index 7af14307def..e57350289c2 100644
--- a/clang-tools-extra/test/clang-tidy/basic.cpp
+++ b/clang-tools-extra/test/clang-tidy/basic.cpp
@@ -2,4 +2,4 @@
namespace i {
}
-// CHECK: warning: namespace not terminated with a closing comment [llvm-namespace-comment]
+// CHECK: warning: namespace 'i' not terminated with a closing comment [llvm-namespace-comment]
diff --git a/clang-tools-extra/test/clang-tidy/google-readability-namespace-comments.cpp b/clang-tools-extra/test/clang-tidy/google-readability-namespace-comments.cpp
index d92af942385..001e607bad2 100644
--- a/clang-tools-extra/test/clang-tidy/google-readability-namespace-comments.cpp
+++ b/clang-tools-extra/test/clang-tidy/google-readability-namespace-comments.cpp
@@ -1,11 +1,12 @@
// RUN: $(dirname %s)/check_clang_tidy.sh %s google-readability-namespace-comments %t
// REQUIRES: shell
-// CHECK-MESSAGES: :[[@LINE+2]]:11: warning: namespace not terminated with a closing comment [google-readability-namespace-comments]
-// CHECK-MESSAGES: :[[@LINE+2]]:11: warning: namespace not terminated with a closing comment [google-readability-namespace-comments]
namespace n1 {
namespace n2 {
-
+// CHECK-MESSAGES: :[[@LINE+4]]:2: warning: namespace 'n2' not terminated with a closing comment [google-readability-namespace-comments]
+// CHECK-MESSAGES: :[[@LINE-2]]:11: note: namespace 'n2' starts here
+// CHECK-MESSAGES: :[[@LINE+3]]:2: warning: namespace 'n1' not terminated with
+// CHECK-MESSAGES: :[[@LINE-5]]:11: note: namespace 'n1' starts here
}
}
// CHECK-FIXES: } // namespace n2
diff --git a/clang-tools-extra/test/clang-tidy/select-checks.cpp b/clang-tools-extra/test/clang-tidy/select-checks.cpp
index f2c2876127e..12d05b4a729 100644
--- a/clang-tools-extra/test/clang-tidy/select-checks.cpp
+++ b/clang-tools-extra/test/clang-tidy/select-checks.cpp
@@ -5,7 +5,7 @@
namespace i {
}
-// CHECK: :[[@LINE-2]]:11: warning: namespace not terminated with a closing comment [llvm-namespace-comment]
+// CHECK: :[[@LINE-1]]:2: warning: namespace 'i' not terminated with a closing comment [llvm-namespace-comment]
// Expect no warnings from the google-explicit-constructor check:
class A { A(int i); };
OpenPOWER on IntegriCloud