[Bug c/87153] New: Confusing / Incorrect clobber warning with ISRA / -Wclobber

chris at bubblescope dot net gcc-bugzilla@gcc.gnu.org
Thu Aug 30 10:07:00 GMT 2018


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

            Bug ID: 87153
           Summary: Confusing / Incorrect clobber warning with ISRA /
                    -Wclobber
           Product: gcc
           Version: 8.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: chris at bubblescope dot net
  Target Milestone: ---

Created attachment 44628
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44628&action=edit
Preprocessed file which produces clobbering warning

I am getting the following warning from code, compiling with -Os -Wclobbered

src/read.c: In function ‘EvalRef.isra.25’:
cc1: warning: argument ‘ISRA.312’ might be clobbered by ‘longjmp’ or ‘vfork’
[-Wclobbered]

EvalRef is defined as:

static UInt EvalRef(const LHSRef ref, Int needExpr)

Which fdump-tree-all, preprocess.c.225t.switchlower shows as:

EvalRef.isra.25 (const REFTYPE ISRA.310, const UInt ISRA.311, const UInt
ISRA.312, Int needExpr)

So, there are (I feel) two issues. Firstly, the warning isn't helpful as it
references a gcc-introduced function. Also I still don't see how ISRA.312 could
get clobbered, as it is const.

Unfortunately I have tried and failed to produce a small reproducable case of
this. I attach a preprocessed source file, made with gcc 8.0.1 on Ubuntu 18.04,
from the current master branch of https://www.github.com/gap-system/gap


More information about the Gcc-bugs mailing list