[cfe-dev] GCC-specific, Clang-specific and ObjC-specific casts in C++

Eli Friedman eli.friedman at gmail.com
Sat Jul 25 11:20:50 PDT 2009


On Sat, Jul 25, 2009 at 9:04 AM, Sebastian
Redl<sebastian.redl at getdesigned.at> wrote:
> 1) Do we want to support GCC's cast-to-union in C++? I think not.

No; I think it's okay to leave that as a C-only hack.  It would
actually be difficult because it might affect SFINAE.

> 2) Should casts to ExtVector types be implicit, static_castable, or only
> reinterpret_castable? Are there formalized semantics, or should I just
> go by the CheckExtVectorCast code?

Scalar->vector splats should be implicitly legal.  static_cast should
probably work the same way for scalar->vector.  reinterpret_cast
should probably act like a bitcast.  For vector->vector, there
shouldn't be any implicit casts or static_cast; reinterpret_cast
should probably bitcast the vector.  These are all guesses, though;
note that the ExtVector semantics are supposed to be based off of
OpenCL.

> 3) Same for Vector types.

No implicit or static casts, reinterpret_cast == bitcast, I think.
You could compare with g++, though.

-Eli



More information about the cfe-dev mailing list