Hi all, Jason,

On 24/04/2018 01:00, Paolo Carlini wrote:
On 23/04/2018 23:43, Jason Merrill wrote:
On Mon, Apr 23, 2018 at 5:17 PM, Paolo Carlini <paolo.carl...@oracle.com> wrote:
Hi,

this issue is by and large fixed in trunk, thus I wanted to resolve it as
such, marking it as fixed for 8.1.0. However the text of the warning is
misleading / wrong:

     declaration of ‘mVar’ shadows a previous local

where in fact the shadowed declaration isn't local, is a static data member of the class. It seems to me that we should simply not handle such static old decls in the conditional block handling locals shadowing other locals, thus handle those below, together with other non-static member declarations.
Tested x86-64-linux.
!TREE_STATIC seems like the wrong test here; that's also true for
static local variables.

Maybe check DECL_FUNCTION_SCOPE_P instead?
Indeed. I don't know how I mis-analyzed that block to conclude that previous static locals weren't handled at all there.

Anyway, I added a testcase for that and I'm running again the full testsuite (g++.dg is Ok). Ok if it passes?
Is the amended patch Ok for trunk, now? To be clear: fully tested on x86_64-linux.

    https://gcc.gnu.org/ml/gcc-patches/2018-04/msg01071.html

Thanks!
Paolo.

Reply via email to