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

Manuel López-Ibáñez <manu at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |diagnostic
         Depends on|                            |43486

--- Comment #5 from Manuel López-Ibáñez <manu at gcc dot gnu.org> ---
If we take gcc/testsuite/gcc.dg/pr40172-3.c (which is XFAIL)

extern int xxx;
#define XXX xxx
int test (void)
{
  if (!XXX && xxx)
    return 4;
  else
    return 0;
}


The big hurdle is that !XXX becomes XXX == 0, but it has the location of "!",
which is not virtual. If we look at the argument of the expression, then XXX is
actually a var_decl, whose location corresponds to the declaration and not the
use, and it is not virtual either. This is PR43486.

Reply via email to