https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83236
Bug ID: 83236 Summary: "Did you mean" suggestions maybe shouldn't offer implementation-private names Product: gcc Version: 7.2.0 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: zackw at panix dot com Target Milestone: --- On Linux/glibc, $ cat > test.c <<EOF #include <sys/stat.h> ino_t inode; EOF $ gcc -std=c89 -fsyntax-only test.c test.c:2:1: error: unknown type name ‘ino_t’; did you mean ‘__ino_t’? ino_t inode; ^~~~~ __ino_t $ gcc --version gcc (Debian 7.2.0-16) 7.2.0 __ino_t is an implementation detail of glibc's headers, and application programmers shouldn't be encouraged to use it. To first order, I don't think any implementation-namespace names (/^_[_A-Z]/) should be offered as suggestions. To second order, they could be suggested when the unknown symbol is itself in the implementation namespace, or when the suggestion is a _documented_ impl-namespace symbol like __DATE__ or _IOFBF or _Bool.