Author: kadircet Date: Thu Sep 5 01:11:21 2019 New Revision: 371022 URL: http://llvm.org/viewvc/llvm-project?rev=371022&view=rev Log: [clang-tidy] Fix definitions in headers check to respect qualifiers
Summary: The check was generating a fix without taking qualifiers in return type into account. This patch changes the insertion location to be before qualifers. Reviewers: gribozavr Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D67213 Modified: clang-tools-extra/trunk/clang-tidy/misc/DefinitionsInHeadersCheck.cpp clang-tools-extra/trunk/test/clang-tidy/misc-definitions-in-headers.hpp Modified: clang-tools-extra/trunk/clang-tidy/misc/DefinitionsInHeadersCheck.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/misc/DefinitionsInHeadersCheck.cpp?rev=371022&r1=371021&r2=371022&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/misc/DefinitionsInHeadersCheck.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/misc/DefinitionsInHeadersCheck.cpp Thu Sep 5 01:11:21 2019 @@ -132,8 +132,7 @@ void DefinitionsInHeadersCheck::check(co << IsFullSpec << FD; diag(FD->getLocation(), /*FixDescription=*/"make as 'inline'", DiagnosticIDs::Note) - << FixItHint::CreateInsertion(FD->getReturnTypeSourceRange().getBegin(), - "inline "); + << FixItHint::CreateInsertion(FD->getInnerLocStart(), "inline "); } else if (const auto *VD = dyn_cast<VarDecl>(ND)) { // Static data members of a class template are allowed. if (VD->getDeclContext()->isDependentContext() && VD->isStaticDataMember()) Modified: clang-tools-extra/trunk/test/clang-tidy/misc-definitions-in-headers.hpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/misc-definitions-in-headers.hpp?rev=371022&r1=371021&r2=371022&view=diff ============================================================================== --- clang-tools-extra/trunk/test/clang-tidy/misc-definitions-in-headers.hpp (original) +++ clang-tools-extra/trunk/test/clang-tidy/misc-definitions-in-headers.hpp Thu Sep 5 01:11:21 2019 @@ -180,3 +180,15 @@ int CD<T, int>::f() { // OK: partial tem constexpr int k = 1; // OK: constexpr variable has internal linkage. constexpr int f10() { return 0; } // OK: constexpr function definition. + +const int f11() { return 0; } +// CHECK-MESSAGES: :[[@LINE-1]]:11: warning: function 'f11' defined in a header file; +// CHECK-FIXES: inline const int f11() { return 0; } + +template <typename T> +const T f12(); + +template <> +const int f12() { return 0; } +// CHECK-MESSAGES: :[[@LINE-1]]:11: warning: full function template specialization 'f12<int>' defined in a header file; +// CHECK-FIXES: inline const int f12() { return 0; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits