|Subject:||Re: [Qemu-trivial] [PATCH] cpu-exec: Fix compiler warning (-Werror=clobbered)|
|Date:||Tue, 17 Sep 2013 19:27:05 +0200|
|User-agent:||Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130803 Thunderbird/17.0.8|
Am 17.09.2013 19:17, schrieb Jan Kiszka:|
> On 2013-09-17 19:03, Stefan Weil wrote:
>> 'cpu' and 'env' are not modified after sigsetjmp. Therefore they will
>> still have their last value after longjmp restored the stack context.
>> The code which should "reload" both variables causes a compiler warning:
>> cpu-exec.c:204:15: error:
>> variable ‘cpu’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
>> cpu-exec.c:202:28: error:
>> argument ‘env’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Werror=clobbered]
>> Remove this unneeded code.
>> Signed-off-by: Stefan Weil <address@hidden>
>> could you please review this patch which removes code added by you earlier?
>> I have run tests with the old code and assertions to see whether the values
>> were really smashed. They never were, and from the documentation of setjmp
>> I'd not expect that they ever might be.
>> The patch is needed to fix a compiler warning with -Wextra.
> This used to fix a real, deadly crash. Therefore a reversion can't be
> trivial by definition. Unfortunately, I don't recall which compiler
> version and concrete scenario were involved back then.
> Anyway - did anything change in the code structure around since then?
> Does anything ensure that this "optimization" is not longer performed by
> the compiler?
> I'll try to understand the warnings meanwhile.
The code changed a lot since that time, e.g. setjmp was replaced by sigsetjmp.
Maybe you had a broken compiler which could be forced to do the right thing
by that code?
|[Prev in Thread]||Current Thread||[Next in Thread]|