# HG changeset patch # User edouard # Date 1368862541 -32400 # Node ID 5aef7d20b0fcb995d853f210aa15f4e27e2f7d9a # Parent 2a3f34967cae6abd86b5c744a25ff90e77734c94 Missing braces arround extern declarartions in __SET_EXTERNAL define was making problem with GCC in switch case statements diff -r 2a3f34967cae -r 5aef7d20b0fc lib/accessor.h --- a/lib/accessor.h Thu May 16 14:37:33 2013 +0900 +++ b/lib/accessor.h Sat May 18 16:35:41 2013 +0900 @@ -105,9 +105,9 @@ #define __SET_VAR(prefix, name, new_value, ...)\ if (!(prefix name.flags & __IEC_FORCE_FLAG)) prefix name.value __VA_ARGS__ = new_value #define __SET_EXTERNAL(prefix, name, new_value, ...)\ - extern IEC_BYTE __IS_GLOBAL_##name##_FORCED();\ + {extern IEC_BYTE __IS_GLOBAL_##name##_FORCED();\ if (!(prefix name.flags & __IEC_FORCE_FLAG || __IS_GLOBAL_##name##_FORCED()))\ - (*(prefix name.value)) __VA_ARGS__ = new_value + (*(prefix name.value)) __VA_ARGS__ = new_value;} #define __SET_EXTERNAL_FB(prefix, name, new_value, ...)\ __SET_VAR((*(prefix name)), __VA_ARGS__, new_value) #define __SET_LOCATED(prefix, name, new_value, ...)\