https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95714
Bug ID: 95714 Summary: Poor locations for errors in calls to __atomic built-ins Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- int main() { char c; int i; __atomic_load(&c, &i, __ATOMIC_SEQ_CST); } The C compiler says: ab.cc: In function 'main': ab.cc:5:3: error: size mismatch in argument 2 of '__atomic_load' 5 | __atomic_load(&c, &i, __ATOMIC_SEQ_CST); | ^~~~~~~~~~~~~ and the C++ compiler says: ab.cc: In function 'int main()': ab.cc:5:41: error: size mismatch in argument 2 of '__atomic_load' 5 | __atomic_load(&c, &i, __ATOMIC_SEQ_CST); | ^ Both are poor. Instead of saying "argument 2" and highlighting the function name or the end of the argument list, we should highlight the relevant argument: ab.cc: In function 'main': ab.cc:5:3: error: size mismatch in argument 2 of '__atomic_load' 5 | __atomic_load(&c, &i, __ATOMIC_SEQ_CST); | ^~ Even better would be: ab.cc: In function 'main': ab.cc:5:3: error: size mismatch in argument 2 of '__atomic_load' 5 | __atomic_load(&c, &i, __ATOMIC_SEQ_CST); | ^~ ^~ | | | | | int* | char*