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