Index: clang-tidy/readability/NamespaceCommentCheck.cpp =================================================================== --- clang-tidy/readability/NamespaceCommentCheck.cpp +++ clang-tidy/readability/NamespaceCommentCheck.cpp @@ -117,10 +117,18 @@ 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 Index: test/clang-tidy/basic.cpp =================================================================== --- test/clang-tidy/basic.cpp +++ 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] Index: test/clang-tidy/google-readability-namespace-comments.cpp =================================================================== --- test/clang-tidy/google-readability-namespace-comments.cpp +++ 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 Index: test/clang-tidy/select-checks.cpp =================================================================== --- test/clang-tidy/select-checks.cpp +++ 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); };