[PATCH] D44536: Avoid segfault when destructor is not yet known

John McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 15 13:53:57 PDT 2018

rjmccall added a comment.

In https://reviews.llvm.org/D44536#1039428, @rjmccall wrote:

> Hmm.  Sema is lazy about actually creating implicit destructor declarations, but it's supposed to only do it whenever the destructor is actually used for something.  I suspect that Sema just thinks that nothing is using c::~c, because the only thing that does use it is d::~d, which is inline and has no apparent users.  But from the stack trace, it seems that IRGen is in fact emitting d::~d.  So the question is, why is IRGen emitting d::~d?  Because AFAIK a non-array new-expression never requires the destructor to exist.

Oh, because it's used in d's v-table, of course, which is needed by the implicit constructor for d.

  rC Clang


More information about the cfe-commits mailing list