aaron.ballman added a comment. In D147626#4316535 <https://reviews.llvm.org/D147626#4316535>, @efriedma wrote:
> In D147626#4316212 <https://reviews.llvm.org/D147626#4316212>, @aaron.ballman > wrote: > >> In D147626#4316190 <https://reviews.llvm.org/D147626#4316190>, @efriedma >> wrote: >> >>>> If there's not indications of this being disruptive on non-MSVC-compatible >>>> targets, then we may still be able to get away with rejecting the >>>> extension there. >>> >>> If we need to have the codepath anyway, there isn't much harm in allowing >>> it on all targets, I think. There's really only one possible >>> interpretation for the construct. >> >> You would think, except the GCC extension differs based on C vs C++: >> https://godbolt.org/z/E14Yz37To as does the extension in Clang, but >> differently than GCC: https://godbolt.org/z/zYznaYPf5 and so we'd also have >> to dig into solving that if we wanted to keep GCC compatibility behavior. > > I don't see any unions there? Declaring a flexible array is separate from > flexible array initialization. Sorry, that was a rather bad think-o -- those examples came from GCC's documentation of FAM extensions (https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html), but you're right, that example is not about declarations but initialization. @Fznamznon had an example: https://godbolt.org/z/jsWjv7svr > Actually, despite my saying the interpretation for unions is "obvious", it's > actually a little more weird than I thought: `union x { short x[]; }; > static_assert(sizeof(x)==2);` compiles with msvc. Well that's... a bit shorter... than I would have expected that union to be. (I'm not apologizing for the pun.) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D147626/new/ https://reviews.llvm.org/D147626 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits