From: Ted Kremenek Date: Sat, 5 Feb 2011 01:18:18 +0000 (+0000) Subject: Don't suggest -Wuninitialized fixits for uninitialized enum types. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=09f57b966c2a6c0a1c8d2e0be9862f6b2c89f9f4;p=clang Don't suggest -Wuninitialized fixits for uninitialized enum types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124924 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Sema/AnalysisBasedWarnings.cpp b/lib/Sema/AnalysisBasedWarnings.cpp index 0e7846f021..63f561d6ab 100644 --- a/lib/Sema/AnalysisBasedWarnings.cpp +++ b/lib/Sema/AnalysisBasedWarnings.cpp @@ -430,7 +430,7 @@ public: // Suggest possible initialization (if any). const char *initialization = 0; QualType vdTy = vd->getType().getCanonicalType(); - + if (vdTy->getAs()) { // Check if 'nil' is defined. if (S.PP.getMacroInfo(&S.getASTContext().Idents.get("nil"))) @@ -442,6 +442,8 @@ public: initialization = " = 0.0"; else if (vdTy->isBooleanType() && S.Context.getLangOptions().CPlusPlus) initialization = " = false"; + else if (vdTy->isEnumeralType()) + continue; else if (vdTy->isScalarType()) initialization = " = 0"; diff --git a/test/SemaCXX/uninit-variables.cpp b/test/SemaCXX/uninit-variables.cpp index cc5018a5e8..a016937925 100644 --- a/test/SemaCXX/uninit-variables.cpp +++ b/test/SemaCXX/uninit-variables.cpp @@ -41,3 +41,11 @@ unsigned test3_c() { return x; // expected-warning{{variable 'x' is possibly uninitialized when used here}} } +enum test4_A { + test4_A_a, test_4_A_b +}; +test4_A test4() { + test4_A a; // expected-note{{variable 'a' is declared here}} + return a; // expected-warning{{variable 'a' is possibly uninitialized when used here}} +} +