Sockke updated this revision to Diff 477861.
Sockke added a comment.
Added test.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D138655/new/
https://reviews.llvm.org/D138655
Files:
clang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp
clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/init-variables-clang-diagnostic-error.cpp
Index:
clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/init-variables-clang-diagnostic-error.cpp
===================================================================
--- /dev/null
+++
clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/init-variables-clang-diagnostic-error.cpp
@@ -0,0 +1,17 @@
+// RUN: %check_clang_tidy %s cppcoreguidelines-init-variables %t -fix-errors --
+
+#include "unknown.h"
+// CHECK-MESSAGES: :[[@LINE-1]]:10: error: 'unknown.h' file not found
[clang-diagnostic-error]
+
+namespace std {
+template <typename T>
+struct vector {
+ vector();
+};
+
+void test() {
+ int a;
+ // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: variable 'a' is not initialized
[cppcoreguidelines-init-variables]
+ // CHECK-FIXES: {{^}} int a = 0;{{$}}
+ std::vector<int> arr;
+}
Index: clang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp
===================================================================
--- clang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp
+++ clang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp
@@ -60,6 +60,8 @@
const ASTContext &Context = *Result.Context;
const SourceManager &Source = Context.getSourceManager();
+ if (MatchedDecl->isInvalidDecl())
+ return;
// We want to warn about cases where the type name
// comes from a macro like this:
//
Index: clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/init-variables-clang-diagnostic-error.cpp
===================================================================
--- /dev/null
+++ clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/init-variables-clang-diagnostic-error.cpp
@@ -0,0 +1,17 @@
+// RUN: %check_clang_tidy %s cppcoreguidelines-init-variables %t -fix-errors --
+
+#include "unknown.h"
+// CHECK-MESSAGES: :[[@LINE-1]]:10: error: 'unknown.h' file not found [clang-diagnostic-error]
+
+namespace std {
+template <typename T>
+struct vector {
+ vector();
+};
+
+void test() {
+ int a;
+ // CHECK-MESSAGES: :[[@LINE-1]]:7: warning: variable 'a' is not initialized [cppcoreguidelines-init-variables]
+ // CHECK-FIXES: {{^}} int a = 0;{{$}}
+ std::vector<int> arr;
+}
Index: clang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp
===================================================================
--- clang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp
+++ clang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp
@@ -60,6 +60,8 @@
const ASTContext &Context = *Result.Context;
const SourceManager &Source = Context.getSourceManager();
+ if (MatchedDecl->isInvalidDecl())
+ return;
// We want to warn about cases where the type name
// comes from a macro like this:
//
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits