https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92392
Bug ID: 92392 Summary: -Wignored-qualifiers points to diff location Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: tangyixuan at mail dot dlut.edu.cn Target Milestone: --- The column of -Wignored-qualifiers warnings are different and not precise for the two similar codes: $: cat s.c typedef int int32_t; static int32_t * const f1(void); $: gcc-trunk -c -Wignored-qualifiers s.c s.c:2:8: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] 2 | static int32_t * const f1(void); | ^~~~~~~ $: cat s1.c static int * const f1(void); $: gcc-trunk -c -Wignored-qualifiers s1.c s1.c:1:20: warning: type qualifiers ignored on function return type [-Wignored-qualifiers] 1 | static int * const f1(void); | ^~ [-Wignored-qualifiers] warns if the return type of a function has a type qualifier such as const. So, the warning that points out the 'const' type qualifier would be better. clang can point out the correct column of const: $: clang -c -Wignored-qualifiers s.c s.c:2:18: warning: 'const' type qualifier on return type has no effect [-Wignored-qualifiers] static int32_t * const f1(void); ^~~~~~