fwolff updated this revision to Diff 391163. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D114299/new/
https://reviews.llvm.org/D114299 Files: clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp clang-tools-extra/test/clang-tidy/checkers/readability-redundant-declaration.cpp Index: clang-tools-extra/test/clang-tidy/checkers/readability-redundant-declaration.cpp =================================================================== --- clang-tools-extra/test/clang-tidy/checkers/readability-redundant-declaration.cpp +++ clang-tools-extra/test/clang-tidy/checkers/readability-redundant-declaration.cpp @@ -70,6 +70,32 @@ void enemy(); +template <typename> +struct TemplateFriendly { + template <typename T> + friend void generic_friend(); +}; + +template <typename T> +void generic_friend() {} + +TemplateFriendly<int> template_friendly; + +template <typename> +struct TemplateFriendly2 { + template <typename T> + friend void generic_friend2() {} +}; + +template <typename T> +void generic_friend2(); + +void generic_friend_caller() { + TemplateFriendly2<int> f; + generic_friend2<int>(); +} + + namespace macros { #define DECLARE(x) extern int x #define DEFINE(x) extern int x; int x = 42 Index: clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp =================================================================== --- clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp +++ clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp @@ -37,7 +37,7 @@ functionDecl(unless(anyOf( isDefinition(), isDefaulted(), doesDeclarationForceExternallyVisibleDefinition(), - hasParent(friendDecl())))))) + hasAncestor(friendDecl())))))) .bind("Decl"), this); }
Index: clang-tools-extra/test/clang-tidy/checkers/readability-redundant-declaration.cpp =================================================================== --- clang-tools-extra/test/clang-tidy/checkers/readability-redundant-declaration.cpp +++ clang-tools-extra/test/clang-tidy/checkers/readability-redundant-declaration.cpp @@ -70,6 +70,32 @@ void enemy(); +template <typename> +struct TemplateFriendly { + template <typename T> + friend void generic_friend(); +}; + +template <typename T> +void generic_friend() {} + +TemplateFriendly<int> template_friendly; + +template <typename> +struct TemplateFriendly2 { + template <typename T> + friend void generic_friend2() {} +}; + +template <typename T> +void generic_friend2(); + +void generic_friend_caller() { + TemplateFriendly2<int> f; + generic_friend2<int>(); +} + + namespace macros { #define DECLARE(x) extern int x #define DEFINE(x) extern int x; int x = 42 Index: clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp =================================================================== --- clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp +++ clang-tools-extra/clang-tidy/readability/RedundantDeclarationCheck.cpp @@ -37,7 +37,7 @@ functionDecl(unless(anyOf( isDefinition(), isDefaulted(), doesDeclarationForceExternallyVisibleDefinition(), - hasParent(friendDecl())))))) + hasAncestor(friendDecl())))))) .bind("Decl"), this); }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits