https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26989

Iain Sandoe <iains at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #10 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Jonathan Wakely from comment #9)
> The G++ code now uses:
> 
>       if (is_attribute_p ("visibility", name))
> 
> and the test that was failing uses:
> 
> // { dg-require-visibility "" }
> 
> which also depends on whether the attribute is supported:
> 
> ###############################
> # proc check_visibility_available { what_kind }
> ###############################
> 
> # The visibility attribute is only support in some object formats
> # This proc returns 1 if it is supported, 0 if not.
> # The argument is the kind of visibility, default/protected/hidden/internal.
> 
> proc check_visibility_available { what_kind } {
>     if [string match "" $what_kind] { set what_kind "hidden" }
> 
>     return [check_no_compiler_messages visibility_available_$what_kind
> object "
>       void f() __attribute__((visibility(\"$what_kind\")));
>       void f() {}
>     "]
> }
> 
> So I think this is probably doing the right thing for all targets now.

Yeah, the attribute is supported on Darwin at least back to Darwin8, and as
noted, earlier systems won't bootstrap without a tools update (which would
include such support). So I think we can close this as 'fixed by the passage of
time'.

Reply via email to