From 2795260c9ea7176b33a947d3414d1b3fc771127a Mon Sep 17 00:00:00 2001 From: John Gilmore Date: Thu, 4 Jun 1992 05:23:08 +0000 Subject: [PATCH] * xcoffread.c (read_xcoff_symtab): Set c_sclass from n_sclass without masking, since it is signed and will later be compared against signed quantities. The right fix is probably to make it all unsigned, but this is a small, safe fix for this release. FIXME -- make the real change sometime soon. (Imported from progressive.) --- gdb/ChangeLog | 8 ++++++++ gdb/xcoffread.c | 8 +++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f299166e5aa..6d39a50e24d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +Wed Jun 3 17:48:04 1992 John Gilmore (gnu@pluto) + + * xcoffread.c (read_xcoff_symtab): Set c_sclass from n_sclass + without masking, since it is signed and will later be compared + against signed quantities. The right fix is probably to make + it all unsigned, but this is a small, safe fix for this release. + FIXME -- make the real change sometime soon. + Mon Jun 1 16:16:12 1992 Michael Tiemann (tiemann@cygnus.com) * remote-vx.c (vx_load_command,add_symbol_stub): Default READNOW diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c index addb5cf303c..3513fe15fc1 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -1092,7 +1092,13 @@ read_xcoff_symtab (objfile, nsyms) symname_alloced = 1; } cs->c_value = symbol->n_value; - cs->c_sclass = symbol->n_sclass & 0xff; + /* n_sclass is signed (FIXME), so we had better not mask off any + high bits it contains, since the values we will be comparing + it to are also signed (FIXME). Defined in . + At this point (3Jun92, gnu@cygnus.com) I think the fix is to + make the fields and values unsigned chars, but changing the next + line is a simple patch late in the release cycle, for now. */ + cs->c_sclass = symbol->n_sclass /* & 0xff */; cs->c_secnum = symbol->n_scnum; cs->c_type = (unsigned)symbol->n_type; -- 2.30.2