https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70186
Bug ID: 70186
Summary: RFE: better handling of misspelled attributes
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Keywords: diagnostic
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: dmalcolm at gcc dot gnu.org
Target Milestone: ---
From a discussion on IRC:
t.c:3:8: warning: ‘visbility’ attribute directive ignored [-Wattributes]
struct S *foo __attribute__ ((visbility("hidden")));
^
Note the misspelling of the attribute name:
"visbility"
should have read:
"visibility"
The reported location of the diagnostic is also suboptimal; it should underline
the attribute, either:
struct S *foo __attribute__ ((visbility("hidden")));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
or:
struct S *foo __attribute__ ((visbility("hidden")));
^~~~~~~~~~~~~~~~~~~
Ideally we should use Levenshtein and emit a hint and a fixit:
t.c:3:8: warning: ‘visbility’ attribute directive ignored; did you mean
'visibility'? [-Wattributes]
struct S *foo __attribute__ ((visbility("hidden")));
^~~~~~~~~~~~~~~~~~~
---------
visibility
or somesuch.