fixed bug #468811
authorjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 8 Oct 2001 10:24:00 +0000 (10:24 +0000)
committerjohanknol <johanknol@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 8 Oct 2001 10:24:00 +0000 (10:24 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1374 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/SDCCval.c

index a9b17d639e144ca60507c3006adca4b74bd17dbf..1d18f7ef141ef40b1533ca34b52f669012fa0be8 100644 (file)
 #include <limits.h>
 #include "newalloc.h"
 
+#if defined(__BORLANDC__) || defined(_MSC_VER)
+#define LONG_LONG __int64
+#else
+#define LONG_LONG long long
+#endif
+
 int cNestLevel;
 
 /*-----------------------------------------------------------------*/
@@ -420,7 +426,7 @@ value *constVal (char *s)
   short hex = 0, octal = 0;
   char scanFmt[10];
   int scI = 0;
-  unsigned long sval;
+  LONG_LONG sval;
 
   val = newValue ();           /* alloc space for value   */
 
@@ -444,6 +450,8 @@ value *constVal (char *s)
   /* create the scan string */
   scanFmt[scI++] = '%';
 
+  scanFmt[scI++] = 'L';
+
   if (octal)
     scanFmt[scI++] = 'o';
   else if (hex)
@@ -451,7 +459,6 @@ value *constVal (char *s)
   else
     scanFmt[scI++] = 'd';
 
-  scanFmt[scI++] = 'L';
   scanFmt[scI++] = '\0';
 
   sscanf (s, scanFmt, &sval);