tree 95e8cc110e74bd49ea3afcb4b17969480fdedefa
parent 948b609a846b2b622eb8bcac8850054781683b52
author dmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4> 1550185365 +0000
committer dmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4> 1550185365 +0000

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  <dmalcolm@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  <dmalcolm@redhat.com>

	PR c++/86329
	* g++.dg/lookup/pr86329.C: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-8-branch@268909 138bc75d-0d04-0410-961f-82ee72b054a4
