[Bug c/87591] New: inconsistent spelling of attribute keyword and attribute names

msebor at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Oct 11 17:45:00 GMT 2018


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

            Bug ID: 87591
           Summary: inconsistent spelling of attribute keyword and
                    attribute names
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: msebor at gcc dot gnu.org
  Target Milestone: ---

GCC recognizes two spelling of the attribute keyword: 1) with two leading and
two trailing underscores, and 2) with just two leading underscores.  However,
it recognizes only form (1) of attribute names.  The test case below shows the
difference.

I could find only three references to form (2) in the GCC 8 manual.  Two under
the -Wabi option and one under -fvisibility.  None in the documentation of
attribute syntax.  There are plenty of tests that make use of this form but
none appears to be one dedicated to the spelling of the keyword which makes me
wonder if the difference between the support for no trailing underscores in
__attribute vs an attribute name is incidental.

Either way, since form (2) has been supported for eons, not just by GCC but by
other compilers it should be documented and its absence with attribute names
noted in the manual.

$ cat y.c && gcc -S -Wall y.c
__attribute__ ((aligned)) void f (void);     // ok
__attribute ((aligned)) void f (void);       // ok

__attribute ((__aligned__)) void f (void);   // ok
__attribute ((__aligned)) void f (void);     // not ok
y.c:5:1: warning: ‘__aligned’ attribute directive ignored [-Wattributes]
5 | __attribute ((__aligned)) void f (void);     // not ok
  | ^~~~~~~~~~~


More information about the Gcc-bugs mailing list