[PATCH] D70172: [CUDA][HIP] Fix assertion due to dtor check on windows

Yaxun Liu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 9 11:20:24 PST 2020


yaxunl added a comment.

In D70172#1812631 <https://reviews.llvm.org/D70172#1812631>, @rjmccall wrote:

> Most uses of the destructor do not use the delete operator, though, and therefore should not trigger the diagnostics in `f` to be emitted.  And this really doesn't require a fully-realized use graph; you could very easily track the current use stack when making a later pass over the entities used.


The call graph is not for this specific situation. A call graph is needed because of the transitive nature of the deferred diagnostic message. That is, if any direct or indirect caller is emitted, the diagnostic msg needs to be emitted.

The deferred diagnostic msg is recorded when parsing a function body. At that time we do not know which function will directly or indirectly call it. How do we keep a use stack?

When we parsing other function bodies, we only know the direct callee. Since we do not know if this function indirectly calls the function with deferred diagnostics, we have to keep a record of all the caller/callee edges.


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

https://reviews.llvm.org/D70172





More information about the cfe-commits mailing list