coff and long long fields

Philippe De Muyter phdm@macqel.be
Mon Apr 6 04:36:00 GMT 1998


Here is a patch that workaround for structure members around the lack of
T_LONG_LONG type in coff files. (gcc already emits T_LONG for long long
variables).

Sat Apr  4 07:45:45 1998  Philippe De Muyter  <phdm@macqel.be>

	* coffread.c (decode_base_type): Treat a long field with size greater
	than TARGET_LONG_BIT as long long.
	* values.c (value_from_longest): Print code value in error message.

--- ./gdb/coffread.c	Fri Apr  3 11:24:22 1998
+++ ./gdb/coffread.c	Tue Mar 10 17:43:26 1998
@@ -1866,7 +1869,11 @@ decode_base_type (cs, c_type, aux)
 	return lookup_fundamental_type (current_objfile, FT_INTEGER);
 
       case T_LONG:
-	return lookup_fundamental_type (current_objfile, FT_LONG);
+	if (cs->c_sclass == C_FIELD
+	    && aux->x_sym.x_misc.x_lnsz.x_size > TARGET_LONG_BIT)
+	  return lookup_fundamental_type (current_objfile, FT_LONG_LONG);
+	else
+	  return lookup_fundamental_type (current_objfile, FT_LONG);
 
       case T_FLOAT:
 	return lookup_fundamental_type (current_objfile, FT_FLOAT);
@@ -1962,7 +1969,11 @@ decode_base_type (cs, c_type, aux)
 	return lookup_fundamental_type (current_objfile, FT_UNSIGNED_INTEGER);
 
       case T_ULONG:
-	return lookup_fundamental_type (current_objfile, FT_UNSIGNED_LONG);
+	if (cs->c_sclass == C_FIELD
+	    && aux->x_sym.x_misc.x_lnsz.x_size > TARGET_LONG_BIT)
+	  return lookup_fundamental_type (current_objfile, FT_UNSIGNED_LONG_LONG);
+	else
+	  return lookup_fundamental_type (current_objfile, FT_UNSIGNED_LONG);
     }
   complain (&unexpected_type_complaint, cs->c_name);
   return lookup_fundamental_type (current_objfile, FT_VOID);
--- ./gdb/values.c	Fri Apr  3 11:24:26 1998
+++ ./gdb/values.c	Tue Mar 10 17:33:27 1998
@@ -1291,7 +1291,7 @@ value_from_longest (type, num)
       break;
       
     default:
-      error ("Unexpected type encountered for integer constant.");
+      error ("Unexpected type (%d) encountered for integer constant.", code);
     }
   return val;
 }




More information about the Gdb-patches mailing list