On Fri, 2 Oct 2020 at 20:23, Nathan Sidwell <nat...@acm.org> wrote:
>
>
> For 'no such binding' errors, we iterate over binding levels to find a
> close match.  At the namespace level we were using DECL_ANTICIPATED to
> skip undeclared builtins.  But (a) there are other unnameable things
> there and (b) decl-anticipated is about to go away.  This changes the
> namespace scanning to iterate over the hash table, and look at
> non-hidden bindings.  This does mean we look at fewer strings
> (hurrarh), but the order we meet them is somewhat 'random'.  Our
> distance measure is not very fine grained, and a couple of testcases
> change their suggestion.  I notice for the c/c++ common one, we now
> match the output of the C compiler.  For the other one we think 'int'
> and 'int64_t' have the same distance from 'int64', and now meet the
> former first.  That's a little unfortunate.  If it's too problematic I
> suppose we could sort the strings via an intermediate array before
> measuring distance.
>
>          gcc/cp/
>          * name-lookup.c (consider_decl): New, broken out of ...
>          (consider_binding_level): ... here.  Iterate the hash table for
>          namespace bindings.
>          gcc/testsuite/
>          * c-c++-common/spellcheck-reserved.c: Adjust diagnostic.
>          * g++.dg/spellcheck-typenames.C: Adjust diagnostic.
>
> pushing to trunk
>

Hi Nathan,

This is causing regressions on aarch64 and arm when using
-mfloat-abi=hard (or configuring for arm-linux-gnueabihf).
The logs says:
FAIL: c-c++-common/spellcheck-reserved.c  -std=gnu++98 (test for excess errors)
Excess errors:
/gcc/testsuite/c-c++-common/spellcheck-reserved.c:31:3: error:
'__builtin_strtchr' was not declared in this scope; did you mean
'__builtin_strrchr'?

The test still passes on arm with -mfloat=abi=soft

Christophe

> nathan
>
> --
> Nathan Sidwell

Reply via email to