In c++11 and above, llvm supports many type traits like __is_empty, __is_abstract etc.
GCC throws an error if we pass an array of incomplete type with unknown bounds, saying incomplete type.
LLVM also throws an error for some particular type traits and not for others.
Of what I have read, the standard specifies to accept only complete type or void for is_empty.
But in the code, if we pass an array of unknown bounds, it still compiles.
int a = __is_empty(I)
This compiles in the current svn. Whereas isn’t it supposed to give incomplete type error, like GCC?
Thanks & Regards,