Emit correct debug info for 64-bit signed enums on 64-bit host.
authorJames E. Wilson <wilson@bletchleypark.cygnus.com>
Thu, 8 Jun 2000 22:33:18 +0000 (22:33 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Thu, 8 Jun 2000 22:33:18 +0000 (15:33 -0700)
* dwarf2out.c (size_of_die, case dw_val_class_const): Use
size_of_sleb128.
(value_format, case dw_val_class_const): Use sdata format.
(output_die): Call output_sleb128.

From-SVN: r34462

gcc/ChangeLog
gcc/dwarf2out.c

index c3fb268a20c34be0502a2b135d370f663d867415..1971ecbedb2b53d2f731f25be154083d062855b5 100644 (file)
@@ -1,3 +1,10 @@
+2000-06-08  James E. Wilson  <wilson@bletchleypark.cygnus.com>
+
+       * dwarf2out.c (size_of_die, case dw_val_class_const): Use
+       size_of_sleb128.
+       (value_format, case dw_val_class_const): Use sdata format.
+       (output_die): Call output_sleb128.
+
 2000-06-08  Mark Mitchell  <mark@codesourcery.com>
 
        * invoke.texi: Remove documentation for -fsquangle and
index 81230d0cac246ccecdfe91d9e589cefff4c53389..58be8c47616a7fd3a61c63b6bbcd9681b08262af 100644 (file)
@@ -4644,7 +4644,7 @@ size_of_die (die)
          }
          break;
        case dw_val_class_const:
-         size += 4;
+         size += size_of_sleb128 (AT_int (a));
          break;
        case dw_val_class_unsigned_const:
          size += constant_size (AT_unsigned (a));
@@ -4801,7 +4801,7 @@ value_format (a)
          abort ();
        }
     case dw_val_class_const:
-      return DW_FORM_data4;
+      return DW_FORM_sdata;
     case dw_val_class_unsigned_const:
       switch (constant_size (AT_unsigned (a)))
        {
@@ -5089,7 +5089,10 @@ output_die (die)
          break;
 
        case dw_val_class_const:
-         ASM_OUTPUT_DWARF_DATA4 (asm_out_file, AT_int (a));
+         /* ??? It would be slightly more efficient to use a scheme like is
+            used for unsigned constants below, but gdb 4.x does not sign
+            extend.  Gdb 5.x does sign extend.  */
+         output_sleb128 (AT_int (a));
          break;
 
        case dw_val_class_unsigned_const: