akhuang added a comment.

In D90719#2377485 <https://reviews.llvm.org/D90719#2377485>, @dblaikie wrote:

> In D90719#2377324 <https://reviews.llvm.org/D90719#2377324>, @rnk wrote:
>
>> I had another thought, which is that even if it is UB, perhaps we really 
>> shouldn't be using UB as the basis for debug info emission. All programs 
>> have bugs, and most bugs invoke some form of UB. If we don't provide 
>> sufficient info when UB is involved, it can become harder to find the UB. 
>> The vtable type homing heuristic works because violating the heuristic 
>> assumptions typically results in a link error. Creating an object without 
>> calling the class's constructor is the kind of UB that is likely to manifest 
>> as runtime errors.
>>
>> Which is to say, I'm in favor of Amy's change as written.
>
> The same would be true for the ctor homing generally though, I think? If 
> there was a user-defined ctor and someone chose not to call it, that'd be UB 
> too. I'm not sure there's especially more cases of not calling implicit 
> non-trivial ctors versus non-trivial explicit non-trivial ctors to diverge on 
> this criteria?

That's true. I was kind of thinking of this as a workaround for this particular 
libcxx issue, and if it becomes no longer an issue in libcxx, we could revert 
it.

Anyway, guess it would be good to know why libcxx does things this way and 
whether it could be changed.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D90719

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

Reply via email to