------- Additional Comments From pinskia at gcc dot gnu dot org 2005-04-22 14:24 ------- (In reply to comment #3) > I have taken the address of 'ptr' and despite that, it was not excluded from > the candidates > for register allocation - or the warning occurred despite of the variable > being stack allocated. > In either case, it's a GCC bug.
No you have not taken the address, as it will not escape or otherwise. volatile in a local function is the same as almost as a non register. Another way to "fix" this would be do the following: escape_function(&a); and mark escape_function as no inline, but this might not work in the furture as we might know that escape_function does not escape that address, the way to work around that would be make a static file scope variable which gets assigned that pointer but even that might cause the escapeness in the future so the only correct way is mark the variable as volatile. -- What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21160