From: Kristof Umann Date: Tue, 21 Aug 2018 10:47:19 +0000 (+0000) Subject: [analyzer][UninitializedObjectChecker] Added documentation to the checker list X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1bdc37d05e4168133ce7d9f6cacb3bda4503ea0f;p=clang [analyzer][UninitializedObjectChecker] Added documentation to the checker list Differential Revision: https://reviews.llvm.org/D50904 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@340266 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp b/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp index 5e39cc18f2..2281d66847 100644 --- a/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp @@ -286,18 +286,6 @@ bool FindUninitializedFields::isNonUnionUninit(const TypedValueRegion *R, } // Checking bases. - // FIXME: As of now, because of `willObjectBeAnalyzedLater`, objects whose - // type is a descendant of another type will emit warnings for uninitalized - // inherited members. - // This is not the only way to analyze bases of an object -- if we didn't - // filter them out, and didn't analyze the bases, this checker would run for - // each base of the object in order of base initailization and in theory would - // find every uninitalized field. This approach could also make handling - // diamond inheritances more easily. - // - // This rule (that a descendant type's cunstructor is responsible for - // initializing inherited data members) is not obvious, and should it should - // be. const auto *CXXRD = dyn_cast(RD); if (!CXXRD) return ContainsUninitField; diff --git a/www/analyzer/alpha_checks.html b/www/analyzer/alpha_checks.html index 4a250dcb31..837ccce624 100644 --- a/www/analyzer/alpha_checks.html +++ b/www/analyzer/alpha_checks.html @@ -323,6 +323,118 @@ public: }; + + +