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