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