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.