akhuang added a subscriber: ldionne.
akhuang added a comment.

+ @ldionne for libc++ input?

To summarize, this constructor homing debug info optimization makes the 
assumption that if a class is being used then its constructor must have been 
called at some point. We noticed that some libc++ types (such as __hash_node) 
are nontrivial but the constructor is never called (instead there's some 
allocation and then the members are constructed separately).

Basically we're not sure if this can be fixed from the libc++ side but it would 
be nice to have some more input about this. For example would it be possible to 
call the constructor when __hash_node is created?

> My guess would be that this doesn't come up often enough to merit an 
> attribute, etc, and that libc++ is fixable. (if the code really wants to do 
> no work when constructing, changing the type to have a trivial ctor and the 
> places that want non-trivial construction can initialize the members as 
> needed seems like it'd be viable)

I looked at the code again and `__hash_node` also has nontrivial members, so 
maybe it's not as feasible to make it a nontrivial constructor.


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