Hi,

Some system headers apply visibility attributes to Objective-C
@interface declarations.  Those are “default”, but still need to be
accepted.

tested across the Darwin patch and on x86_64-linux-gnu,
pushed to master,
thanks
Iain

-----

This passes visibility through without warning (so that, for example,
__attribute__((__visibility("default"))) does not result in any
diagnostic).

gcc/objc/ChangeLog:

        * objc-act.c (start_class): Accept visibility attributes
        without warning.
---
 gcc/objc/objc-act.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index 26cdeddfc5a..68d829fd773 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -7013,12 +7013,14 @@ start_class (enum tree_code code, tree class_name, tree 
super_name,
              tree name = TREE_PURPOSE (attribute);
 
              /* TODO: Document what the objc_exception attribute is/does.  */
-             /* We handle the 'deprecated' and (undocumented) 'objc_exception'
-                attributes.  */
+             /* We handle the 'deprecated', 'visibility' and (undocumented)
+                'objc_exception' attributes.  */
              if (is_attribute_p  ("deprecated", name))
                TREE_DEPRECATED (klass) = 1;
              else if (is_attribute_p  ("objc_exception", name))
                CLASS_HAS_EXCEPTION_ATTR (klass) = 1;
+             else if (is_attribute_p  ("visibility", name))
+               ;
              else
                /* Warn about and ignore all others for now, but store them.  */
                warning (OPT_Wattributes, "%qE attribute directive ignored", 
name);
-- 
2.24.1


Reply via email to