Author: Haojian Wu
Date: 2021-07-20T14:24:38+02:00
New Revision: eb03fa1d2c05bad5a5f75a89d47b4b31d84bb90b

URL: 
https://github.com/llvm/llvm-project/commit/eb03fa1d2c05bad5a5f75a89d47b4b31d84bb90b
DIFF: 
https://github.com/llvm/llvm-project/commit/eb03fa1d2c05bad5a5f75a89d47b4b31d84bb90b.diff

LOG: [clang-tidy] Don't suggest "inline" fix for main function in
definitions-in-headers check.

Added: 
    

Modified: 
    clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp
    clang-tools-extra/test/clang-tidy/checkers/misc-definitions-in-headers.hpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp 
b/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp
index 820bb3bebd913..882d254c6d9ea 100644
--- a/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp
@@ -127,6 +127,9 @@ void DefinitionsInHeadersCheck::check(const 
MatchFinder::MatchResult &Result) {
          "in a header file; function definitions in header files can lead to "
          "ODR violations")
         << IsFullSpec << FD;
+    // inline is not allowed for main function.
+    if (FD->isMain())
+      return;
     diag(FD->getLocation(), /*FixDescription=*/"make as 'inline'",
          DiagnosticIDs::Note)
         << FixItHint::CreateInsertion(FD->getInnerLocStart(), "inline ");

diff  --git 
a/clang-tools-extra/test/clang-tidy/checkers/misc-definitions-in-headers.hpp 
b/clang-tools-extra/test/clang-tidy/checkers/misc-definitions-in-headers.hpp
index 7b017391d5acb..c2a4a81ae3e16 100644
--- a/clang-tools-extra/test/clang-tidy/checkers/misc-definitions-in-headers.hpp
+++ b/clang-tools-extra/test/clang-tidy/checkers/misc-definitions-in-headers.hpp
@@ -192,3 +192,7 @@ 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; }
+
+int main() {}
+// CHECK-MESSAGES: :[[@LINE-1]]:5: warning: function 'main' defined in a 
header file;
+// CHECK-FIXES: {{^}}int main() {


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to