diff options
author | Kyle Manna <kyle@kylemanna.com> | 2015-09-21 11:03:12 -0700 |
---|---|---|
committer | Kyle Manna <kyle@kylemanna.com> | 2015-09-21 11:03:12 -0700 |
commit | e3283e77b825ae9c0c468762fce9b5797b70cba4 (patch) | |
tree | 8a8bcb948d8770eef512abfcb2f6f1666874847b | |
parent | 6e72df4808aa138f1396ad098ce2d06a6feba882 (diff) |
decode: Fix compiler issue with gcc-5
* gcc 5.0 and 5.1 appear to take issue with this line and generates the
following error:
/home/nitro/tmp/nanopb/pb_decode.c: In function ‘pb_decode_noinit’:
/home/nitro/tmp/nanopb/pb_decode.c:889:60: error: conversion to ‘uint8_t {aka unsigned char}’ from ‘int’ may alter its value [-Werror=conversion]
fields_seen[iter.required_field_index >> 3] |= (uint8_t)(1 << (iter.required_field_index & 7));
^
* This seems like a compiler bug, but this workaround is harmless.
-rw-r--r-- | pb_decode.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/pb_decode.c b/pb_decode.c index b21bfe37..5cdcbcfb 100644 --- a/pb_decode.c +++ b/pb_decode.c @@ -886,7 +886,8 @@ bool checkreturn pb_decode_noinit(pb_istream_t *stream, const pb_field_t fields[ if (PB_HTYPE(iter.pos->type) == PB_HTYPE_REQUIRED && iter.required_field_index < PB_MAX_REQUIRED_FIELDS) { - fields_seen[iter.required_field_index >> 3] |= (uint8_t)(1 << (iter.required_field_index & 7)); + uint8_t tmp = (uint8_t)(1 << (iter.required_field_index & 7)); + fields_seen[iter.required_field_index >> 3] |= tmp; } if (!decode_field(stream, wire_type, &iter)) |