================

----------------
NagyDonat wrote:

The first `if` condition (the early return) makes no sense :sweat_smile: it is 
unsound in several different ways that are summarized in [my recent discourse 
thread](https://discourse.llvm.org/t/simplifying-failure-modes-in-explodednode-creation/91542).

Gábor Tóthvári is working on removing this early return return completely. I 
think after the removal of this "try to transition from a sink" logic error 
(where the early return is always needed to "hide" the assertion failure) it 
will be straightforward to correct a few checkers (that don't check the nullity 
of the node, which can be null even with this early return) and remove this 
early return.

Note that there is no theoretical justification for having this sort of early 
return here – its is just a leaky bandage that covers up missing nullity checks 
– inaccurately. (A "try to create a new node, return the predecessor if we 
cached out" function could have been legitimate, but this early return tries to 
_predict_ caching out and can fail in both direction.)

https://github.com/llvm/llvm-project/pull/218970
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to