bjope added inline comments.

================
Comment at: lib/StaticAnalyzer/Checkers/IteratorChecker.cpp:825
+  // not then create a new symbol for the offset.
+  SymbolRef Sym;
+  if (!LPos || !RPos) {
----------------
This is an uninitialized version of `Sym` that will be used on line 835 and 
line 839.
The `Sym` variable assigned on line 828 is local to the scope starting at line 
826.

Not really sure, but was perhaps the idea to use the `Sym` value from line 828 
on line 835 and 839.
Then I guess the you can rewrite this as:


```
  // At least one of the iterators have recorded positions. If one of them has
  // not then create a new symbol for the offset.
  if (!LPos || !RPos) {
    auto &SymMgr = C.getSymbolManager();
    auto Sym = SymMgr.conjureSymbol(CE, C.getLocationContext(),
                                    C.getASTContext().LongTy, C.blockCount());
    State = assumeNoOverflow(State, Sym, 4);

    if (!LPos) {
      State = setIteratorPosition(State, LVal,
                                  IteratorPosition::getPosition(Cont, Sym));
      LPos = getIteratorPosition(State, LVal);
    } else if (!RPos) {
      State = setIteratorPosition(State, RVal,
                                  IteratorPosition::getPosition(Cont, Sym));
      RPos = getIteratorPosition(State, RVal);
    }
  }
```

As it is right now I get complaint about using an uninitialized value for `Sym` 
(so this patch still doesn't build with -Werror after the earlier fixup).


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D53701/new/

https://reviews.llvm.org/D53701



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

Reply via email to