@@ -68,8 +68,12 @@ struct fdesc
long code;
long is_thumb;
};
-# define get_fdesc(fdesc,func) ({(fdesc).code = (long) &(func) & ~0x1; \
- (fdesc).is_thumb = (long) &(func) & 0x1;})
+/* Workaround GCC bug: https://bugs.launchpad.net/gcc-linaro/+bug/721531 */
+# define get_fdesc(fdesc,func) ({long tmp = (long) &(func); \
+ (fdesc).code = (long) &(func) & ~0x1; \
+ (fdesc).is_thumb = tmp & 0x1;})
+/*# define get_fdesc(fdesc,func) ({(fdesc).code = (long) &(func) & ~0x1; \
+ (fdesc).is_thumb = (long) &(func) & 0x1;})*/
# define get_funcp(fdesc) ((template_t) ((fdesc).code | (fdesc).is_thumb))
# define get_gp(fdesc) (0)
#else
Temporarily workaround for a GCC bug that prevents code from obtaining the thumb marker: https://bugs.launchpad.net/gcc-linaro/+bug/721531. Signed-off-by: Ken Werner <ken.werner@linaro.org> --- tests/Gtest-dyn1.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)