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

Reply via email to