http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50956
Paolo Carlini <paolo.carlini at oracle dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org --- Comment #1 from Paolo Carlini <paolo.carlini at oracle dot com> 2011-11-02 11:26:37 UTC --- Well, "broken" seems in any case an exaggeration to me. In this case triggers as expected, for example: char* p = (char*)"txt"; because it looks like a pure const_cast, from the C++ point of view. If it doesn't and we proceed checking whether it's a static_cast, reinterpret_cast, etc, we have this kind of comment (before build_static_cast_1): /* Perform a static_cast from EXPR to TYPE. When C_CAST_P is true, this static_cast is being attempted as one of the possible casts allowed by a C-style cast. (In that case, accessibility of base classes is not considered, and it is OK to cast away constness.) ... thus, the behavior seems *definitely* intended. Maybe Jason can help finishing the triage of this.