https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111524

            Bug ID: 111524
           Summary: Missing support for inline namespace in spellcheck
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: fdumont at gcc dot gnu.org
  Target Milestone: ---

When spellcheck is trying to find out what mistake the dev made inline
namespace are not considered.

To reproduce you just need to build g++/libstdc++ with:
--enable-languages=c++ --enable-symvers=gnu-versioned-namespace

so that you have the std::__8:: inline namespace for mostly all libstdc++
symbols.

Then running 'make check-c++' several spellcheck tests will start to fail like:

/home/fdumont/dev/gcc/git/gcc/testsuite/g++.dg/spellcheck-pr78656.C: In
function 'void* allocate(std::size_t)':
/home/fdumont/dev/gcc/git/gcc/testsuite/g++.dg/spellcheck-pr78656.C:7:15:
error: 'allocate' is not a member of 'std'; did you mean 'allocate'?
   return std::allocate<char>().allocate(n); // { dg-error ".allocate. is not a
member of .std.; did you mean 'allocator'\\?" }
               ^~~~~~~~
/home/fdumont/dev/gcc/git/gcc/testsuite/g++.dg/spellcheck-pr78656.C:5:7: note:
'allocate' declared here
 void* allocate(std::size_t n)
       ^~~~~~~~

It's not proposing std::allocator anymore as it is in fact std::__8::allocator.

Reply via email to