Szelethus marked 5 inline comments as done. Szelethus added inline comments.
================ Comment at: lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObject.h:259 + return T->isBuiltinType() || T->isEnumeralType() || + T->isMemberPointerType() || T->isBlockPointerType(); +} ---------------- I'm not sure this is correct -- do block pointers belong here? Since their region is not `TypedValueRegion`, I though they better fit here. ================ Comment at: lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObject.h:261-265 +inline bool isLocType(const QualType &T) { + return T->isAnyPointerType() || T->isReferenceType() || + T->isBlockPointerType(); +} + ---------------- NoQ wrote: > We have a fancy static `Loc::isLocType()`. Oh, good to know! However, it also returns true for `nullptr_t`, which also happens to be a `BuiltinType`. I'd like to keep `isPrimitiveType` and (the now renamed) `isDereferencableType` categories disjunctive. Primitive types require no further analysis other then checking whether they are initialized or not, which is true for `nullptr_t` objects. ================ Comment at: lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedPointee.cpp:240-244 + if (Tmp->getRegion()->getSymbolicBase()) return None; - } - V = State->getSVal(*Tmp, DynT); + DynT = DynT->getPointeeType(); + R = Tmp->getRegionAs<TypedValueRegion>(); ---------------- NoQ wrote: > This code seems to be duplicated with the "0th iteration" before the loop. I > guess you can put everything into the loop. I moved some code into the loop, but I think that I really need a 0th iteration to make the code readable. https://reviews.llvm.org/D51057 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits