diff mbox

[4/5] ARM: tests/Gtest-dyn1.c workaround for GCC bug.

Message ID 1303401162-14277-5-git-send-email-ken.werner@linaro.org
State Accepted
Commit 288f18f7ae30fffa3254e19d769cbe3e8e8ca741
Headers show

Commit Message

Ken Werner April 21, 2011, 3:52 p.m. UTC
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(-)
diff mbox

Patch

diff --git a/tests/Gtest-dyn1.c b/tests/Gtest-dyn1.c
index b7b788f..fcb773d 100644
--- a/tests/Gtest-dyn1.c
+++ b/tests/Gtest-dyn1.c
@@ -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