r189494 - PR16995: Failing to associate static members with their enclosing class

Eric Christopher echristo at gmail.com
Wed Aug 28 13:32:45 PDT 2013


>> That's... tricky. Could you add this in a comment?
>
> It's partially commented already ("Reuse the existing member function
> declaration if it exists" - I could clarify how it could already
> exist). Added some other comments in r189504.
>

Thanks. Otherwise I could easily see us hoisting the check outside of
the loop one day. I.e. comments as to why this has to be _right there_
are useful :)

>> Also trying to figure out how we're emitting the implicit member without emitting the
>> rest of the type.
>
> Vtables man, vtables.
>
> If we have a dynamic type, say, with a key function - then we try not
> to emit the debug info definition of the type in any TU except the one
> that emits the vtable. But if that type has implicit members (implicit
> 5 (default ctor, copy ctor, move ctor, copy assign, move assign,
> dtor)) we can't be guaranteed they'll be used/declared/defined in the
> TU that defines the vtable - so we attach those members to the
> declaration. GCC does the same thing. Yeah, it's weird.
>

Gah.

-eric



More information about the cfe-commits mailing list