Annotation of gdb/=news, revision 1.1.1.1

1.1       root        1: ===================================================================
                      2: RCS file: RCS/printcmd.c,v
                      3: retrieving revision 1.1
                      4: diff -c3 -r1.1 printcmd.c
                      5: *** /tmp/,RCSt1011248  Tue Jan 12 14:06:06 1988
                      6: --- printcmd.c Mon Sep 21 21:33:39 1987
                      7: ***************
                      8: *** 174,179
                      9:        VALUE_TYPE (val) = builtin_type_float;
                     10:         if (TYPE_LENGTH (VALUE_TYPE (val)) == sizeof (double))
                     11:        VALUE_TYPE (val) = builtin_type_double;
                     12:         printf ("%g", value_as_double (val));
                     13:         break;
                     14:   
                     15: 
                     16: --- 174,185 -----
                     17:        VALUE_TYPE (val) = builtin_type_float;
                     18:         if (TYPE_LENGTH (VALUE_TYPE (val)) == sizeof (double))
                     19:        VALUE_TYPE (val) = builtin_type_double;
                     20: + #ifdef PRINTF_BUG
                     21: +       if (is_nan(value_as_double (val)))
                     22: +       printf ("Nan");
                     23: +       else
                     24: +         printf ("%g", value_as_double (val));
                     25: + #else
                     26:         printf ("%g", value_as_double (val));
                     27:   #endif
                     28:         break;
                     29: ***************
                     30: *** 175,180
                     31:         if (TYPE_LENGTH (VALUE_TYPE (val)) == sizeof (double))
                     32:        VALUE_TYPE (val) = builtin_type_double;
                     33:         printf ("%g", value_as_double (val));
                     34:         break;
                     35:   
                     36:       case 0:
                     37: 
                     38: --- 181,187 -----
                     39:           printf ("%g", value_as_double (val));
                     40:   #else
                     41:         printf ("%g", value_as_double (val));
                     42: + #endif
                     43:         break;
                     44:   
                     45:       case 0:
                     46: ===================================================================
                     47: RCS file: RCS/valprint.c,v
                     48: retrieving revision 1.1
                     49: diff -c3 -r1.1 valprint.c
                     50: *** /tmp/,RCSt1011248  Tue Jan 12 14:06:09 1988
                     51: --- valprint.c Mon Sep 21 21:35:45 1987
                     52: ***************
                     53: *** 21,26
                     54:   #include <stdio.h>
                     55:   #include "defs.h"
                     56:   #include "initialize.h"
                     57:   #include "symtab.h"
                     58:   #include "value.h"
                     59:   
                     60: 
                     61: --- 21,27 -----
                     62:   #include <stdio.h>
                     63:   #include "defs.h"
                     64:   #include "initialize.h"
                     65: + #include "param.h"
                     66:   #include "symtab.h"
                     67:   #include "value.h"
                     68:   
                     69: ***************
                     70: *** 249,255
                     71:         break;
                     72:   
                     73:       case TYPE_CODE_FLT:
                     74: !       fprintf (stream, "%g", unpack_double (type, valaddr));
                     75:         break;
                     76:   
                     77:       case TYPE_CODE_VOID:
                     78: 
                     79: --- 250,265 -----
                     80:         break;
                     81:   
                     82:       case TYPE_CODE_FLT:
                     83: !       { double d = unpack_double (type, valaddr);
                     84: ! #ifdef PRINTF_BUG
                     85: !      if (is_nan(d))
                     86: !          fprintf (stream, "Nan");
                     87: !      else
                     88: !          fprintf (stream, "%g", d);
                     89: ! #else
                     90: !      fprintf (stream, "%g", d);
                     91: ! #endif
                     92: !       }
                     93:         break;
                     94:   
                     95:       case TYPE_CODE_VOID:
                     96: ***************
                     97: *** 559,563
                     98:     float_type_table[sizeof (float)] = "float";
                     99:     float_type_table[sizeof (double)] = "double";
                    100:   }
                    101:   
                    102:   END_FILE
                    103: 
                    104: --- 569,599 -----
                    105:     float_type_table[sizeof (float)] = "float";
                    106:     float_type_table[sizeof (double)] = "double";
                    107:   }
                    108: + 
                    109: + 
                    110: + #ifdef PRINTF_BUG
                    111: + 
                    112: + struct ieee {                         /* IEEE floating format */
                    113: +   unsigned int s:1;
                    114: +   unsigned int e:11;
                    115: +   unsigned int f1:20;
                    116: +   unsigned int f2;
                    117: + };
                    118: + 
                    119: + #define ZERO_F(x)  ((x.f1 == 0) && (x.f2 == 0))     /* zero fraction ? */
                    120: + #define ZERO_E(x)  (x.e == 0)                       /* zero exponential ? */
                    121: + #define MAX_E(x)   (x.e == 0x7ff)                   /* max exponential ? */
                    122: + #define MINUS_S(x) (x.s == 1)                       /* minus ? */
                    123: + 
                    124: + int
                    125: + is_nan(arg)                            /* Not a Number ? */
                    126: + struct ieee arg;
                    127: + {
                    128: +   if (MAX_E(arg) && !ZERO_F(arg))
                    129: +     return (1);
                    130: +   else
                    131: +     return (0);
                    132: + }
                    133: + #endif
                    134:   
                    135:   END_FILE
                    136: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.