aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Sema/AnalysisBasedWarnings.cpp4
-rw-r--r--test/Sema/uninit-variables.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/lib/Sema/AnalysisBasedWarnings.cpp b/lib/Sema/AnalysisBasedWarnings.cpp
index bcbf887916..75e2c5b8ac 100644
--- a/lib/Sema/AnalysisBasedWarnings.cpp
+++ b/lib/Sema/AnalysisBasedWarnings.cpp
@@ -453,6 +453,10 @@ public:
continue;
fixitIssued = true;
+
+ // Don't issue a fixit if there is already an initializer.
+ if (vd->getInit())
+ continue;
// Suggest possible initialization (if any).
const char *initialization = 0;
diff --git a/test/Sema/uninit-variables.c b/test/Sema/uninit-variables.c
index 17bd07f3e5..3ddd097c8f 100644
--- a/test/Sema/uninit-variables.c
+++ b/test/Sema/uninit-variables.c
@@ -92,7 +92,7 @@ void test14() {
}
void test15() {
- int x = x; // expected-warning{{variable 'x' is possibly uninitialized when used here}} expected-note{{variable 'x' is declared here}} expected-note{{add initialization to silence this warning}}
+ int x = x; // expected-warning{{variable 'x' is possibly uninitialized when used here}} expected-note{{variable 'x' is declared here}}
}
// Don't warn in the following example; shows dataflow confluence.