This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Cast char constant to int in sizeof.exp


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5aec60eb2f6f0905bfc76f5949fd5d55c6a10f10

commit 5aec60eb2f6f0905bfc76f5949fd5d55c6a10f10
Author: Tom Tromey <tom@tromey.com>
Date:   Wed Aug 30 16:12:56 2017 -0600

    Cast char constant to int in sizeof.exp
    
    PR gdb/22010 concerns a regression I introduced with the scalar
    printing changes.  The bug is that this code in sizeof.exp:
    
        set signof_byte [get_integer_valueof "'\\377'" -1]
    
    can incorrectly compute sizeof_byte.  One underlying problem here is
    that gdb's C parser doesn't treat a char constant as an int (this is
    PR 19973).
    
    However, it seems good to have an immediate fix for the regression.
    The simplest is to cast to an int here.
    
    testsuite/ChangeLog
    2017-09-05  Tom Tromey  <tom@tromey.com>
    
    	PR gdb/22010:
    	* gdb.base/sizeof.exp (check_valueof): Cast char constant to int.

Diff:
---
 gdb/testsuite/ChangeLog           | 5 +++++
 gdb/testsuite/gdb.base/sizeof.exp | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index a4f2a14..62d929c 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2017-09-05  Tom Tromey  <tom@tromey.com>
+
+	PR gdb/22010:
+	* gdb.base/sizeof.exp (check_valueof): Cast char constant to int.
+
 2017-09-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
 
 	* gdb.arch/thumb2-it.exp: Cast call to assembly defined function.
diff --git a/gdb/testsuite/gdb.base/sizeof.exp b/gdb/testsuite/gdb.base/sizeof.exp
index 5d89407..13d36f8 100644
--- a/gdb/testsuite/gdb.base/sizeof.exp
+++ b/gdb/testsuite/gdb.base/sizeof.exp
@@ -86,7 +86,7 @@ proc check_valueof { exp val } {
 
 # Check that GDB and the target agree over the sign of a character.
 
-set signof_byte [get_integer_valueof "'\\377'" -1]
+set signof_byte [get_integer_valueof "(int) '\\377'" -1]
 set signof_char [get_integer_valueof "(int) (char) -1" -1]
 set signof_signed_char [get_integer_valueof "(int) (signed char) -1" -1]
 set signof_unsigned_char [get_integer_valueof "(int) (unsigned char) -1" -1]


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]