Using gcc 6.1 for alpha-linux-user target we see the following build
error:

/mnt/devops/code/qemu/target-alpha/translate.c: In function ‘in_superpage’:
/mnt/devops/code/qemu/target-alpha/translate.c:454:52: error: self-comparison 
always evaluates to true [-Werror=tautological-compare]
             && addr >> TARGET_VIRT_ADDR_SPACE_BITS == addr >> 63);

Fix it by replacing (addr >> 63) by '1' which is what it evaluates to
since addr is negative.

Signed-off-by: Pranith Kumar <bobby.pr...@gmail.com>
---
 target-alpha/translate.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target-alpha/translate.c b/target-alpha/translate.c
index f9b2426..31da6ea 100644
--- a/target-alpha/translate.c
+++ b/target-alpha/translate.c
@@ -451,7 +451,7 @@ static bool in_superpage(DisasContext *ctx, int64_t addr)
     return ((ctx->tb->flags & TB_FLAGS_USER_MODE) == 0
             && addr < 0
             && ((addr >> 41) & 3) == 2
-            && addr >> TARGET_VIRT_ADDR_SPACE_BITS == addr >> 63);
+            && addr >> TARGET_VIRT_ADDR_SPACE_BITS == 1);
 }
 
 static bool use_goto_tb(DisasContext *ctx, uint64_t dest)
-- 
2.9.0


Reply via email to