https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86329
--- Comment #6 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Author: dmalcolm Date: Thu Feb 14 23:02:45 2019 New Revision: 268909 URL: https://gcc.gnu.org/viewcvs?rev=268909&root=gcc&view=rev Log: C++: don't offer bogus "._0" suggestions (PR c++/86329) PR c++/86329 reports that the C++ frontend can offer bogus suggestions like: #include <string> int compare() { return __n1 - __n2; } suggested.cc: In function 'int compare()': suggested.cc:5:10: error: '__n1' was not declared in this scope return __n1 - __n2; ^~~~ suggested.cc:5:10: note: suggested alternative: '._61' return __n1 - __n2; ^~~~ ._61 suggested.cc:5:17: error: '__n2' was not declared in this scope return __n1 - __n2; ^~~~ suggested.cc:5:17: note: suggested alternative: '._72' return __n1 - __n2; ^~~~ ._72 The dot-prefixed names are an implementation detail of how we implement anonymous enums found in the header files, generated via anon_aggrname_format in make_anon_name. This patch uses anon_aggrname_p to filter them out when considering which names to suggest. gcc/cp/ChangeLog: Backport of r262199 from trunk. 2018-06-27 David Malcolm <dmalc...@redhat.com> PR c++/86329 * name-lookup.c (consider_binding_level): Filter out names that match anon_aggrname_p. gcc/testsuite/ChangeLog: Backport of r262199 from trunk. 2018-06-27 David Malcolm <dmalc...@redhat.com> PR c++/86329 * g++.dg/lookup/pr86329.C: New test. Added: branches/gcc-8-branch/gcc/testsuite/g++.dg/lookup/pr86329.C Modified: branches/gcc-8-branch/gcc/cp/ChangeLog branches/gcc-8-branch/gcc/cp/name-lookup.c branches/gcc-8-branch/gcc/testsuite/ChangeLog