https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102608
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Version|11.0 |12.0 Last reconfirmed| |2021-10-06 Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Status|UNCONFIRMED |ASSIGNED Ever confirmed|0 |1 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #1) > old32_34 = .DEFERRED_INIT (4, 2, 0); > > ... > > - _24 = .DEFERRED_INIT (4, 2, 0); > - __res ={v} _24; > + __res ={v} old32_34; > > > # 68 "../arch/mips/include/asm/cmpxchg.h" > This is due to __typeof(*((volatile u32 *)ptr)) __ret > > > > The warning is kinda of correct but wrong as it uses the wrong decl :). > > Fre maybe should be disabled for DEFERRED_INIT .... Hmm, I did consider that but then I thought it wouldn't matter (there were no testsuite FAILs). But sure, I can easily make .DEFERRED_INIT always produce a VARYING value.