[PATCH 5/7] Fix invalid left shift of negative value.

Dominik Vogt vogt@linux.vnet.ibm.com
Mon Nov 9 15:33:00 GMT 2015


On Fri, Oct 30, 2015 at 03:43:36PM +0100, Dominik Vogt wrote:
> On Fri, Oct 30, 2015 at 03:38:15PM +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 these are good.

Any opinions on this patch?

> gdb/testsuite/ChangeLog
> 
> 	* lib/dwarf.exp (_note): Fix left shift of negative value.
> 	* gdb.trace/trace-condition.exp: Likewise.

> >From 515f6c944a85f78c17c89dd1ce79a283e764b7bd 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 5/7] gdb/testsuite: Fix left shift of negative value.
> 
> ---
>  gdb/testsuite/gdb.trace/trace-condition.exp | 2 +-
>  gdb/testsuite/lib/dwarf.exp                 | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/gdb/testsuite/gdb.trace/trace-condition.exp b/gdb/testsuite/gdb.trace/trace-condition.exp
> index aec0401..46fa5ed 100644
> --- a/gdb/testsuite/gdb.trace/trace-condition.exp
> +++ b/gdb/testsuite/gdb.trace/trace-condition.exp
> @@ -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
> diff --git a/gdb/testsuite/lib/dwarf.exp b/gdb/testsuite/lib/dwarf.exp
> index 5dc7ea8..3dd61c8 100644
> --- a/gdb/testsuite/lib/dwarf.exp
> +++ b/gdb/testsuite/lib/dwarf.exp
> @@ -1278,7 +1278,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
> 



Ciao

Dominik ^_^  ^_^

-- 

Dominik Vogt
IBM Germany



More information about the Binutils mailing list