aaron.ballman added a comment. In D140868#4024087 <https://reviews.llvm.org/D140868#4024087>, @rjmccall wrote:
> Isn't the C feature not technically part of the type? I thought Clang was > fairly unique in modeling `noreturn` the way we do. That's true, I just verified I didn't change that as part of https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2764.pdf when doing `[[noreturn]]`. That makes this more reasonable than I was originally thinking, but it still makes me a bit uneasy. We form a composite type in two situations: needing a common type for `?:` and when doing function redeclaration merging. It seems odd to me that we would treat those differently, but at the same time, the rationale for why `?:` should be conservative makes a lot of sense to me. What do GCC and ICC do in this case? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140868/new/ https://reviews.llvm.org/D140868 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits