[Bug middle-end/95021] New: [10/11 Regression] Bogus -Wclobbered warning

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Sat May 9 16:14:03 GMT 2020


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

            Bug ID: 95021
           Summary: [10/11 Regression] Bogus -Wclobbered warning
           Product: gcc
           Version: 10.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
  Target Milestone: ---

On Linux/x86-64, GCC 10 and 11 give

[hjl@gnu-skx-1 creduce-1]$ cat foo.i
typedef long long a;
struct __jmp_buf_tag   {
};
typedef struct __jmp_buf_tag sigjmp_buf[1];
sigjmp_buf jmp_buf;
int __sigsetjmp (sigjmp_buf, int);
typedef struct {
  a target;
} b;
extern a *target_p;
b *c;
extern void e (a);
void
d(void)
{
  if (__sigsetjmp(jmp_buf, 1)) {
    a target = *target_p;
    c->target = target;
    e(target);
  }
}
[hjl@gnu-skx-1 creduce-1]$ /usr/gcc-10.1.1-x32/bin/gcc -m32 -O2 -W foo.i -S
foo.i: In function ??d??:
foo.i:17:7: warning: variable ??target?? might be clobbered by ??longjmp?? or
??vfork?? [-Wclobbered]
   17 |     a target = *target_p;
      |       ^~~~~~
[hjl@gnu-skx-1 creduce-1]$ 

GCC 9.3 is OK.


More information about the Gcc-bugs mailing list