From 2df36481b6e20664b6a0206165e71cffda0569ba Mon Sep 17 00:00:00 2001 From: Angel Garcia Gomez Date: Wed, 14 Oct 2015 09:29:55 +0000 Subject: [PATCH] Prevent modernize-use-auto from emitting a warning when 'auto' was already being used. Summary: This fixes https://llvm.org/bugs/show_bug.cgi?id=25082 . Reviewers: bkramer, klimek Subscribers: cfe-commits, alexfh Differential Revision: http://reviews.llvm.org/D13504 llvm-svn: 250284 --- clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp | 3 +++ clang-tools-extra/test/clang-tidy/modernize-use-auto-new.cpp | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp index a9405471d290..1469909a85c3 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp @@ -222,6 +222,9 @@ StatementMatcher makeDeclWithNewMatcher() { has(varDecl()), unless(has(varDecl(anyOf( unless(hasInitializer(ignoringParenImpCasts(cxxNewExpr()))), + // Skip declarations that are already using auto. + anyOf(hasType(autoType()), + hasType(pointerType(pointee(autoType())))), // FIXME: TypeLoc information is not reliable where CV // qualifiers are concerned so these types can't be // handled for now. diff --git a/clang-tools-extra/test/clang-tidy/modernize-use-auto-new.cpp b/clang-tools-extra/test/clang-tidy/modernize-use-auto-new.cpp index 6468b20820e1..f934c0de275e 100644 --- a/clang-tools-extra/test/clang-tidy/modernize-use-auto-new.cpp +++ b/clang-tools-extra/test/clang-tidy/modernize-use-auto-new.cpp @@ -95,4 +95,9 @@ void auto_new() { // CHECK-MESSAGES: :[[@LINE-1]]:5: warning: use auto when initializing with new // CHECK-FIXES: auto g = new int*, h = new int_p; } + + // Don't warn when 'auto' is already being used. + auto aut = new MyType(); + auto *paut = new MyType(); + const auto *pcaut = new MyType(); }