For ARM EHABI _Unwind_{G,S}setIP are macros rather than proper functions as they are extensions to the EHABI specification (though they are part of the Level 1 interface). Quote the macro parameters, as otherwise, a complex parameter may be ambiguously mis-expanded. --- libgcc/config/arm/unwind-arm.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libgcc/config/arm/unwind-arm.h b/libgcc/config/arm/unwind-arm.h index f1f789c..3821c08 100644 --- a/libgcc/config/arm/unwind-arm.h +++ b/libgcc/config/arm/unwind-arm.h @@ -74,10 +74,10 @@ extern "C" { } /* Return the address of the instruction, not the actual IP value. */ #define _Unwind_GetIP(context) \ - (_Unwind_GetGR (context, 15) & ~(_Unwind_Word)1) + (_Unwind_GetGR ((context), 15) & ~(_Unwind_Word)1) #define _Unwind_SetIP(context, val) \ - _Unwind_SetGR (context, 15, val | (_Unwind_GetGR (context, 15) & 1)) + _Unwind_SetGR ((context), 15, (val) | (_Unwind_GetGR ((context), 15) & 1)) #ifdef __cplusplus } /* extern "C" */ -- 2.5.3