cast chars to int when we want to print integers so we get a number
authorNathan Binkert <binkertn@umich.edu>
Mon, 18 Dec 2006 22:07:52 +0000 (14:07 -0800)
committerNathan Binkert <binkertn@umich.edu>
Mon, 18 Dec 2006 22:07:52 +0000 (14:07 -0800)
instead of a character

--HG--
extra : convert_revision : 7bfa88ba23ad057b751eb01a80416d9f72cfe81a

src/base/cprintf_formats.hh
src/unittest/cprintftest.cc

index 58ee7f7950f4c037d66dee093bd0d2bb7cfaadf7..3ea20446d2b54e130b9087020ac0b7d495862e63 100644 (file)
@@ -288,13 +288,13 @@ format_integer(std::ostream &out, const T &data, Format &fmt)
 { _format_integer(out, data, fmt); }
 inline void
 format_integer(std::ostream &out, char data, Format &fmt)
-{ _format_integer(out, data, fmt); }
+{ _format_integer(out, (int)data, fmt); }
 inline void
 format_integer(std::ostream &out, unsigned char data, Format &fmt)
-{ _format_integer(out, data, fmt); }
+{ _format_integer(out, (int)data, fmt); }
 inline void
 format_integer(std::ostream &out, signed char data, Format &fmt)
-{ _format_integer(out, data, fmt); }
+{ _format_integer(out, (int)data, fmt); }
 #if 0
 inline void
 format_integer(std::ostream &out, short data, Format &fmt)
index 9c3eb0cd63e8ea08f9dd7eb7b932ee28c9f74bb9..a05426356e9336e8d9f9be1652d3f1243054419b 100644 (file)
@@ -43,6 +43,7 @@ main()
     char foo[9];
     cprintf("%s\n", foo);
 
+    cprintf("%d\n", 'A');
     cprintf("%shits%%s + %smisses%%s\n", "test", "test");
     cprintf("%%s%-10s %c he went home \'\"%d %#o %#x %1.5f %1.2E\n",
             "hello", 'A', 1, 0xff, 0xfffffffffffffULL, 3.141592653589, 1.1e10);