------- Comment #7 from gd at spherenet dot de 2007-10-01 14:42 ------- Just to be sure I understood everything correctly. Assume the following code: namespace foo __attribute__((__visibility__("default"))) { ... } namespace foo { ... } The same binding level is used for both namespace definitions, but visibility is pushed/popped only when entering/leaving the scope of the first definition. The only purpose of has_visibility is to indicate that visibility was pushed for the current namespace definition and needs to be popped when leaving. Yes? Then we have to reset the has_visibility flag (or drop the flag and find another way to signal that visibility needs to be popped).
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32470