Skip to content

Commit

Permalink
[clang-tidy] Make google-objc-function-naming ignore implicit functio…
Browse files Browse the repository at this point in the history
…ns 🙈

Summary:
Implicit functions are outside the control of source authors and should
be exempt from style restrictions.

Tested via running clang tools tests.

Reviewers: aaron.ballman

Reviewed By: aaron.ballman

Subscribers: xazax.hun, cfe-commits

Differential Revision: https://reviews.llvm.org/D57207

llvm-svn: 352968
  • Loading branch information
stephanemoore committed Feb 2, 2019
1 parent cf07b09 commit b08a2d4
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
10 changes: 7 additions & 3 deletions clang-tools-extra/clang-tidy/google/FunctionNamingCheck.cpp
Expand Up @@ -93,12 +93,16 @@ void FunctionNamingCheck::registerMatchers(MatchFinder *Finder) {
if (!getLangOpts().ObjC)
return;

// Match function declarations that are not in system headers and are not
// main.
// Enforce Objective-C function naming conventions on all functions except:
// • Functions defined in system headers.
// • C++ member functions.
// • Namespaced functions.
// • Implicitly defined functions.
// • The main function.
Finder->addMatcher(
functionDecl(
unless(anyOf(isExpansionInSystemHeader(), cxxMethodDecl(),
hasAncestor(namespaceDecl()), isMain(),
hasAncestor(namespaceDecl()), isMain(), isImplicit(),
matchesName(validFunctionNameRegex(true)),
allOf(isStaticStorageClass(),
matchesName(validFunctionNameRegex(false))))))
Expand Down
@@ -1,5 +1,13 @@
// RUN: %check_clang_tidy %s google-objc-function-naming %t

#import <stdio.h>

static void TestImplicitFunctionDeclaration(int a) {
// Call a builtin function so that the compiler generates an implicit
// function declaration.
printf("%d", a);
}

typedef _Bool bool;

static bool ispositive(int a) { return a > 0; }
Expand Down

0 comments on commit b08a2d4

Please sign in to comment.