From 59d63e610a3005a5f7a6a4a92abe0c76a2190d88 Mon Sep 17 00:00:00 2001 From: James Zern Date: Tue, 23 Dec 2014 11:44:11 -0500 Subject: [PATCH] vp9: fix -Wclobbered (longjmp + local variables) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Local variables used at the setjmp() site need to be marked volatile. Relevant excerpt from the 'man longjmp': =============== The values of automatic variables are unspecified after a call to longjmp() if they meet all the following criteria: · they are local to the function that made the corresponding setjmp(3) call; · their values are changed between the calls to setjmp(3) and longjmp(); and · they are not declared as volatile. =============== Change-Id: I093e6eeeedbf5f781d202248ca701ba2c29d3064 --- vp9/decoder/vp9_decoder.c | 6 +++--- vp9/encoder/vp9_encoder.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/vp9/decoder/vp9_decoder.c b/vp9/decoder/vp9_decoder.c index 1406b40..bb7bb56 100644 --- a/vp9/decoder/vp9_decoder.c +++ b/vp9/decoder/vp9_decoder.c @@ -63,8 +63,8 @@ static void vp9_dec_free_mi(VP9_COMMON *cm) { } VP9Decoder *vp9_decoder_create() { - VP9Decoder *const pbi = vpx_memalign(32, sizeof(*pbi)); - VP9_COMMON *const cm = pbi ? &pbi->common : NULL; + VP9Decoder *volatile const pbi = vpx_memalign(32, sizeof(*pbi)); + VP9_COMMON *volatile const cm = pbi ? &pbi->common : NULL; if (!cm) return NULL; @@ -243,7 +243,7 @@ static void swap_frame_buffers(VP9Decoder *pbi) { int vp9_receive_compressed_data(VP9Decoder *pbi, size_t size, const uint8_t **psource) { - VP9_COMMON *const cm = &pbi->common; + VP9_COMMON *volatile const cm = &pbi->common; const uint8_t *source = *psource; int retcode = 0; diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c index 430ad17..4fd34aa 100644 --- a/vp9/encoder/vp9_encoder.c +++ b/vp9/encoder/vp9_encoder.c @@ -1406,8 +1406,8 @@ static void cal_nmvsadcosts_hp(int *mvsadcost[2]) { VP9_COMP *vp9_create_compressor(VP9EncoderConfig *oxcf) { unsigned int i; - VP9_COMP *const cpi = vpx_memalign(32, sizeof(VP9_COMP)); - VP9_COMMON *const cm = cpi != NULL ? &cpi->common : NULL; + VP9_COMP *volatile const cpi = vpx_memalign(32, sizeof(VP9_COMP)); + VP9_COMMON *volatile const cm = cpi != NULL ? &cpi->common : NULL; if (!cm) return NULL; -- 2.7.4