Enable GCC options to detect undefined behaviour

GCC has an Undefined Behavior Sanitizer (ubsan), which enables run-time
checks of undefined behaviour. It has been enabled for the `develop`
build target.

A small bug detected with it has been fixed.

Signed-off-by: Antonio Niño Díaz <antonio_nd@outlook.com>
This commit is contained in:
Antonio Niño Díaz
2018-04-28 00:57:20 +01:00
parent 24d7cfe0f9
commit 6fe2741f2d
2 changed files with 12 additions and 7 deletions

View File

@@ -36,14 +36,14 @@ uint8_t oReadLib;
*/
static int32_t readlong(FILE *f)
{
int32_t r;
uint32_t r;
r = fgetc(f);
r |= fgetc(f) << 8;
r |= fgetc(f) << 16;
r |= fgetc(f) << 24;
r = ((uint32_t)(uint8_t)fgetc(f));
r |= ((uint32_t)(uint8_t)fgetc(f)) << 8;
r |= ((uint32_t)(uint8_t)fgetc(f)) << 16;
r |= ((uint32_t)(uint8_t)fgetc(f)) << 24;
return r;
return (int32_t)r;
}
/*