rnkovacs added a comment.

> Return value of `dyn_cast_or_null` should be checked before use. Otherwise we 
> may put a null pointer into the map as a key and eventually crash in 
> `checkDeadSymbols`.

Hm, so with the last `CallDescription` patch we removed some code here that 
essentially checked if the same region was null before this cast, which means 
two things: a) in the previous version it probably should have been a 
`dyn_cast` instead of `dyn_cast_or_null`, but now that makes it accidentally 
fine, and b) I should have thought about this when that code was removed.

> Reka: Why did we restrict ourselves to `TypedValueRegions` here? While we are 
> mostly interested in local string variables and temporaries, which would of 
> course be typed, i guess there's nothing that prevents us from checking that 
> we don't `delete` or mutate a string in a `SymbolicRegion` somewhere between 
> obtaining and using its inner pointer.

I think the reason is that previously `CallDescription`s didn't match fully 
qualified function names and the type was needed to see if the object was a 
`string`.


Repository:
  rC Clang

https://reviews.llvm.org/D51385



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

Reply via email to