a.sidorin added a comment.

Personally, I like this change because it makes our assumptions clearer. My 
comments are below.



================
Comment at: 
include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h:54
+      : store(st), region(r) {
+    assert(r->getValueType()->isRecordType() ||
+           r->getValueType()->isArrayType() ||
----------------
Could you extract `r->getValueType()` to a separate variable?


================
Comment at: include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:319
 public:
-  SymbolVal(SymbolRef sym) : NonLoc(SymbolValKind, sym) {}
+  SymbolVal() = delete;
+  SymbolVal(SymbolRef sym) : NonLoc(SymbolValKind, sym) { assert(sym); }
----------------
I cannot completely agree with this change. For example, some STL container 
methods require their type to be default constructible. Yes, it is a very 
limited usage case but  I don't see strong reason to do it because there also 
may be some another usage scenarios.


================
Comment at: include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h:478
 public:
-  explicit GotoLabel(LabelDecl *Label) : Loc(GotoLabelKind, Label) {}
+  explicit GotoLabel(LabelDecl *Label) : Loc(GotoLabelKind, Label) {
+    assert(Label);
----------------
By the way, why does this ctor accept a non-constant pointer?


================
Comment at: include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h:46
+  static bool isValidTypeForSymbol(QualType T) {
+    // FIXME: Depending on wether we choose to deprecate structural symbols,
+    // this may become much stricter.
----------------
s/wether/whether


https://reviews.llvm.org/D26837



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to