[cfe-commits] [patch][3.2] Visibility cleanup and fixes

Rafael Espíndola rafael.espindola at gmail.com
Wed Apr 18 22:55:10 PDT 2012


>> But all of the attributes here have an effect.  If you instantiated
>> Rafael's template at a type with non-hidden visibility, e.g. int,
>> the member's attribute still takes precedence.  The attribute is
>> only "overridden" in the specific case of instantiating the
>> template at a hidden argument.  I'm not convinced this is
>> actually a problem that bears a warning, vs. something that
>> we should defer to some hypothetical "explain everything that's
>> happening with this symbol" IDE query.
>
>
> Yea, I was thinking more of the case without the template as deserving a
> warning.

Yes, this is hard case for a warning :-(
I find the case without a template intuitive, and the template case
only surprising with some attributes...

I removed the changes that were controversial, split the remaining
ones in as many independent changes as possible and committed.

With this our behavior is now almost identical to gcc 4.7. In the
tests CodeGenCXX/visibility*, the only difference is in the handling
of method declarations. GCC produces a default
_ZN6Test201BINS_1AILj2EEEE5test5Ev and we produce a hidden one.

Cheers,
Rafael




More information about the cfe-commits mailing list