[2/2] Fix invalid left shift of negative value.
Commit Message
On Tue, Nov 10, 2015 at 12:16:38PM +0100, Dominik Vogt wrote:
> The following series of patches fixes all occurences of
> left-shifting negative constants in C code which is undefined by
> the C standard. The patches have been tested on s390x, covering
> only a small subset of the changes.
Changes in gdb/testsuite/. Not sure whether they are good.
Ciao
Dominik ^_^ ^_^
From d1cbc6f371e2720fe4bf4975d8ad9c81a9f01351 Mon Sep 17 00:00:00 2001
From: Dominik Vogt <vogt@linux.vnet.ibm.com>
Date: Fri, 30 Oct 2015 15:18:06 +0100
Subject: [PATCH 2/2] gdb/testsuite: Fix left shift of negative value.
This patch fixes all occurences of left-shifting negative constants in C cod
which is undefined by the C standard.
gdb/testsuite/ChangeLog:
* lib/dwarf.exp (_note): Fix left shift of negative value.
* gdb.trace/trace-condition.exp: Likewise.
---
gdb/testsuite/gdb.trace/trace-condition.exp | 2 +-
gdb/testsuite/lib/dwarf.exp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
@@ -152,7 +152,7 @@ foreach trace_command { "trace" "ftrace" } {
test_tracepoints $trace_command "21 * 2 == 42" 10
test_tracepoints $trace_command "21 << 1 == 42" 10
test_tracepoints $trace_command "42 >> 1 == 21" 10
- test_tracepoints $trace_command "-21 << 1 == -42" 10
+ test_tracepoints $trace_command "-(21 << 1) == -42" 10
test_tracepoints $trace_command "-42 >> 1 == -21" 10
test_tracepoints $trace_command "(0xabababab & 0x0000ffff) == 0xabab" 10
test_tracepoints $trace_command "(0xabababab | 0x0000ffff) == 0xababffff" 10
@@ -1289,7 +1289,7 @@ namespace eval Dwarf {
_op .ascii [_quote $name]
# Alignment.
set align 2
- set total [expr {($namelen + (1 << $align) - 1) & (-1 << $align)}]
+ set total [expr {($namelen + (1 << $align) - 1) & -(1 << $align)}]
for {set i $namelen} {$i < $total} {incr i} {
_op .byte 0
}
--
2.3.0