diff options
author | David Cunado <david.cunado@arm.com> | 2017-01-19 10:26:16 +0000 |
---|---|---|
committer | David Cunado <david.cunado@arm.com> | 2017-01-26 13:47:37 +0000 |
commit | 9edac0479d562a5cb62b57961ad6288d0537e9f1 (patch) | |
tree | 22d7922f26fc9888d6dc6517edd4cbb22f585b12 /services | |
parent | d7aa7b44d6c73f84a8913b010e850e0322063d91 (diff) |
Resolve build errors flagged by GCC 6.2
With GCC 6.2 compiler, more C undefined behaviour is being flagged as
warnings, which result in build errors in ARM TF build.
The specific issue that this patch resolves is the use of (1 << 31),
which is predominantly used in case statements, where 1 is represented
as a signed int. When shifted to msb the behaviour is undefined.
The resolution is to specify 1 as an unsigned int using a convenience
macro ULL(). A duplicate macro MAKE_ULL() is replaced.
Fixes ARM-software/tf-issues#438
Change-Id: I08e3053bbcf4c022ee2be33a75bd0056da4073e1
Signed-off-by: David Cunado <david.cunado@arm.com>
Diffstat (limited to 'services')
-rw-r--r-- | services/spd/trusty/smcall.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/services/spd/trusty/smcall.h b/services/spd/trusty/smcall.h index 7e876c89..a1d91e5a 100644 --- a/services/spd/trusty/smcall.h +++ b/services/spd/trusty/smcall.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2016-2017, ARM Limited and Contributors. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -40,11 +40,12 @@ #define SMC_ENTITY(smc_nr) (((smc_nr) & 0x3F000000) >> 24) #define SMC_FUNCTION(smc_nr) ((smc_nr) & 0x0000FFFF) -#define SMC_NR(entity, fn, fastcall, smc64) ((((fastcall) & 0x1) << 31) | \ - (((smc64) & 0x1) << 30) | \ - (((entity) & 0x3F) << 24) | \ - ((fn) & 0xFFFF) \ - ) +#define SMC_NR(entity, fn, fastcall, smc64) \ + (((((unsigned int) (fastcall)) & 0x1) << 31) | \ + (((smc64) & 0x1) << 30) | \ + (((entity) & 0x3F) << 24) | \ + ((fn) & 0xFFFF) \ + ) #define SMC_FASTCALL_NR(entity, fn) SMC_NR((entity), (fn), 1, 0) #define SMC_STDCALL_NR(entity, fn) SMC_NR((entity), (fn), 0, 0) |