baloghadamsoftware marked 5 inline comments as done. baloghadamsoftware added inline comments.
================ Comment at: clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp:176-180 if (const auto *DeclReg = Reg->getAs<DeclRegion>()) { if (isa<ParmVarDecl>(DeclReg->getDecl())) Reg = C.getState()->getSVal(SV.castAs<Loc>()).getAsRegion(); + } else if (const auto *ParamReg = Reg->getAs<ParamRegion>()) { + Reg = C.getState()->getSVal(SV.castAs<Loc>()).getAsRegion(); ---------------- balazske wrote: > baloghadamsoftware wrote: > > Szelethus wrote: > > > This is interesting. I looked up `DeclRegion`, and it seems to be the > > > region that is tied to a `ValueDecl`. `VarDecl` is a subtype of > > > `ValueDecl`, and `ParmVarDecl` is a subtype of `VarDecl`, so wouldn't it > > > make sense for `ParamRegion` to be a subtype of `VarRegion`? > > `DeclRegion` stores the `Decl`, `ParamRegion` retrieves it based on the > > `Index` it stores. There is no is-a relation between them. > During the lifetime of a `ParamRegion` is it possible that it will return > different `Decl` objects? @NoQ? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D79704/new/ https://reviews.llvm.org/D79704 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits