]> granicus.if.org Git - strace/commitdiff
arm: fix compilation warnings
authorDmitry V. Levin <ldv@altlinux.org>
Thu, 15 Mar 2012 20:42:46 +0000 (20:42 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Thu, 15 Mar 2012 20:42:46 +0000 (20:42 +0000)
* configure.ac: Define SIZEOF_LONG.
* signal.c (sys_rt_sigaction) [SUPPORTED_PERSONALITIES > 1]: Help
compiler to optimize out unreachable code that is not expected to work
on platforms where sizeof(long) <= 4.

configure.ac
signal.c

index ee9b8e824432d838b47577f0019fc77d6bf779f3..f5118cad22fd2e2ac24ce4dc5f391ef2222a7dde 100644 (file)
@@ -251,6 +251,8 @@ AC_CACHE_CHECK([for BLKGETSIZE64], [ac_cv_have_blkgetsize64],
                AC_DEFINE([HAVE_BLKGETSIZE64], [1], [Define to 1 if you have BLKGETSIZE64.])
        fi)
 
+AC_CHECK_SIZEOF([long])
+
 AC_PATH_PROG([PERL], [perl])
 
 AC_CONFIG_FILES([Makefile tests/Makefile])
index 5ff89e43bb26a8310957e6d3b32bb46196a38ded..8bff1465a6ee3e29e8d671341c50683032838aa8 100644 (file)
--- a/signal.c
+++ b/signal.c
@@ -1339,9 +1339,9 @@ sys_rt_sigaction(struct tcb *tcp)
                goto after_sa;
        }
 #if SUPPORTED_PERSONALITIES > 1
+#if SIZEOF_LONG > 4
        if (personality_wordsize[current_personality] != sizeof(sa.sa_flags)
-        && personality_wordsize[current_personality] == 4
-       ) {
+           && personality_wordsize[current_personality] == 4) {
                struct new_sigaction32 sa32;
                r = umove(tcp, addr, &sa32);
                if (r >= 0) {
@@ -1360,6 +1360,7 @@ sys_rt_sigaction(struct tcb *tcp)
                        sa.sa_mask[0] = sa32.sa_mask[0] + ((long)(sa32.sa_mask[1]) << 32);
                }
        } else
+#endif
 #endif
        {
                r = umove(tcp, addr, &sa);