aboutsummaryrefslogtreecommitdiff
path: root/gcc/cexp.c
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>1999-02-15 11:58:09 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>1999-02-15 11:58:09 +0000
commitbd86d7e2b23aa121ff48d2501036d0c164383a19 (patch)
treee9939213b7dbe98be50feffc765b5e3e079c426f /gcc/cexp.c
parentc4ae272555de2b9872514f6f73e63ba6c51765eb (diff)
downloadgcc-bd86d7e2b23aa121ff48d2501036d0c164383a19.zip
gcc-bd86d7e2b23aa121ff48d2501036d0c164383a19.tar.gz
gcc-bd86d7e2b23aa121ff48d2501036d0c164383a19.tar.bz2
cccp.c: Don't define HOST_WIDE_INT.
* cccp.c: Don't define HOST_WIDE_INT. Replace all occurrences of WIDE_INT with WIDEST_INT. * cexp.y: Likewise. Don't define unsigned_HOST_WIDE_INT, CHAR_BIT or HOST_BITS_PER_WIDE_INT. Replace occurrences of PRINTF_PROTO_1() style with PVPROTO() ATTRIBUTE_PRINTF_1 style macros. Replace occurrences of "unsigned_HOST" with "unsigned HOST". Provide a definition of variable `c89' when compiling a test binary and set it. * system.h: Don't define the PRINTF_PROTO_* macros. From-SVN: r25217
Diffstat (limited to 'gcc/cexp.c')
-rw-r--r--gcc/cexp.c239
1 files changed, 104 insertions, 135 deletions
diff --git a/gcc/cexp.c b/gcc/cexp.c
index 4dc0ec9..9777678 100644
--- a/gcc/cexp.c
+++ b/gcc/cexp.c
@@ -43,44 +43,11 @@ struct arglist {
int argno;
};
-/* Find the largest host integer type and set its size and type.
- Watch out: on some crazy hosts `long' is shorter than `int'. */
-
-#ifndef HOST_WIDE_INT
-# if HAVE_INTTYPES_H
-# include <inttypes.h>
-# define HOST_WIDE_INT intmax_t
-# define unsigned_HOST_WIDE_INT uintmax_t
-# else
-# if (HOST_BITS_PER_LONG <= HOST_BITS_PER_INT && HOST_BITS_PER_LONGLONG <= HOST_BITS_PER_INT)
-# define HOST_WIDE_INT int
-# else
-# if (HOST_BITS_PER_LONGLONG <= HOST_BITS_PER_LONG || ! (defined LONG_LONG_MAX || defined LLONG_MAX))
-# define HOST_WIDE_INT long
-# else
-# define HOST_WIDE_INT long long
-# endif
-# endif
-# endif
-#endif
-
-#ifndef unsigned_HOST_WIDE_INT
-#define unsigned_HOST_WIDE_INT unsigned HOST_WIDE_INT
-#endif
-
-#ifndef CHAR_BIT
-#define CHAR_BIT 8
-#endif
-
-#ifndef HOST_BITS_PER_WIDE_INT
-#define HOST_BITS_PER_WIDE_INT (CHAR_BIT * sizeof (HOST_WIDE_INT))
-#endif
-
-HOST_WIDE_INT parse_c_expression PROTO((char *, int));
+HOST_WIDEST_INT parse_c_expression PROTO((char *, int));
static int yylex PROTO((void));
-static void yyerror PRINTF_PROTO_1((char *, ...)) __attribute__ ((noreturn));
-static HOST_WIDE_INT expression_value;
+static void yyerror PVPROTO((char *, ...)) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
+static HOST_WIDEST_INT expression_value;
#ifdef TEST_EXP_READER
static int expression_signedp;
#endif
@@ -141,13 +108,13 @@ extern int c89;
#define MAX_WCHAR_TYPE_SIZE WCHAR_TYPE_SIZE
#endif
-#define MAX_CHAR_TYPE_MASK (MAX_CHAR_TYPE_SIZE < HOST_BITS_PER_WIDE_INT \
- ? (~ (~ (HOST_WIDE_INT) 0 << MAX_CHAR_TYPE_SIZE)) \
- : ~ (HOST_WIDE_INT) 0)
+#define MAX_CHAR_TYPE_MASK (MAX_CHAR_TYPE_SIZE < HOST_BITS_PER_WIDEST_INT \
+ ? (~ (~ (HOST_WIDEST_INT) 0 << MAX_CHAR_TYPE_SIZE)) \
+ : ~ (HOST_WIDEST_INT) 0)
-#define MAX_WCHAR_TYPE_MASK (MAX_WCHAR_TYPE_SIZE < HOST_BITS_PER_WIDE_INT \
- ? ~ (~ (HOST_WIDE_INT) 0 << MAX_WCHAR_TYPE_SIZE) \
- : ~ (HOST_WIDE_INT) 0)
+#define MAX_WCHAR_TYPE_MASK (MAX_WCHAR_TYPE_SIZE < HOST_BITS_PER_WIDEST_INT \
+ ? ~ (~ (HOST_WIDEST_INT) 0 << MAX_WCHAR_TYPE_SIZE) \
+ : ~ (HOST_WIDEST_INT) 0)
/* Suppose A1 + B1 = SUM1, using 2's complement arithmetic ignoring overflow.
Suppose A, B and SUM have the same respective signs as A1, B1, and SUM1.
@@ -161,25 +128,25 @@ extern int c89;
struct constant;
-HOST_WIDE_INT parse_escape PROTO((char **, HOST_WIDE_INT));
+HOST_WIDEST_INT parse_escape PROTO((char **, HOST_WIDEST_INT));
int check_assertion PROTO((U_CHAR *, int, int, struct arglist *));
struct hashnode *lookup PROTO((U_CHAR *, int, int));
-void error PRINTF_PROTO_1((char *, ...));
-void pedwarn PRINTF_PROTO_1((char *, ...));
-void warning PRINTF_PROTO_1((char *, ...));
+void error PVPROTO((char *, ...)) ATTRIBUTE_PRINTF_1;
+void pedwarn PVPROTO((char *, ...)) ATTRIBUTE_PRINTF_1;
+void warning PVPROTO((char *, ...)) ATTRIBUTE_PRINTF_1;
static int parse_number PROTO((int));
-static HOST_WIDE_INT left_shift PROTO((struct constant *, unsigned_HOST_WIDE_INT));
-static HOST_WIDE_INT right_shift PROTO((struct constant *, unsigned_HOST_WIDE_INT));
+static HOST_WIDEST_INT left_shift PROTO((struct constant *, unsigned HOST_WIDEST_INT));
+static HOST_WIDEST_INT right_shift PROTO((struct constant *, unsigned HOST_WIDEST_INT));
static void integer_overflow PROTO((void));
/* `signedp' values */
#define SIGNED (~0)
#define UNSIGNED 0
-#line 185 "cexp.y"
+#line 152 "cexp.y"
typedef union {
- struct constant {HOST_WIDE_INT value; int signedp;} integer;
+ struct constant {HOST_WIDEST_INT value; int signedp;} integer;
struct name {U_CHAR *address; int length;} name;
struct arglist *keywords;
} YYSTYPE;
@@ -258,10 +225,10 @@ static const short yyrhs[] = { 35,
#if YYDEBUG != 0
static const short yyrline[] = { 0,
- 215, 225, 226, 233, 238, 241, 243, 246, 250, 252,
- 257, 262, 275, 292, 305, 311, 317, 323, 329, 332,
- 335, 342, 349, 356, 363, 366, 369, 372, 375, 378,
- 381, 384, 386, 389, 392, 394, 396, 404, 406, 419
+ 182, 192, 193, 200, 205, 208, 210, 213, 217, 219,
+ 224, 229, 242, 259, 272, 278, 284, 290, 296, 299,
+ 302, 309, 316, 323, 330, 333, 336, 339, 342, 345,
+ 348, 351, 353, 356, 359, 361, 363, 371, 373, 386
};
#endif
@@ -367,7 +334,7 @@ static const short yycheck[] = { 4,
26, 27, 23, 24, 25, 26, 27, 0, 9
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
-#line 3 "/usr/cygnus/r5900/share/bison.simple"
+#line 3 "/usr/local/gnu/share/bison.simple"
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -560,7 +527,7 @@ __yy_memcpy (char *to, char *from, int count)
#endif
#endif
-#line 196 "/usr/cygnus/r5900/share/bison.simple"
+#line 196 "/usr/local/gnu/share/bison.simple"
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *.
@@ -865,7 +832,7 @@ yyreduce:
switch (yyn) {
case 1:
-#line 216 "cexp.y"
+#line 183 "cexp.y"
{
expression_value = yyvsp[0].integer.value;
#ifdef TEST_EXP_READER
@@ -874,55 +841,55 @@ case 1:
;
break;}
case 3:
-#line 227 "cexp.y"
+#line 194 "cexp.y"
{ if (pedantic)
pedwarn ("comma operator in operand of `#if'");
yyval.integer = yyvsp[0].integer; ;
break;}
case 4:
-#line 234 "cexp.y"
+#line 201 "cexp.y"
{ yyval.integer.value = - yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[0].integer.signedp;
if ((yyval.integer.value & yyvsp[0].integer.value & yyval.integer.signedp) < 0)
integer_overflow (); ;
break;}
case 5:
-#line 239 "cexp.y"
+#line 206 "cexp.y"
{ yyval.integer.value = ! yyvsp[0].integer.value;
yyval.integer.signedp = SIGNED; ;
break;}
case 6:
-#line 242 "cexp.y"
+#line 209 "cexp.y"
{ yyval.integer = yyvsp[0].integer; ;
break;}
case 7:
-#line 244 "cexp.y"
+#line 211 "cexp.y"
{ yyval.integer.value = ~ yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[0].integer.signedp; ;
break;}
case 8:
-#line 247 "cexp.y"
+#line 214 "cexp.y"
{ yyval.integer.value = check_assertion (yyvsp[0].name.address, yyvsp[0].name.length,
0, NULL_PTR);
yyval.integer.signedp = SIGNED; ;
break;}
case 9:
-#line 251 "cexp.y"
+#line 218 "cexp.y"
{ keyword_parsing = 1; ;
break;}
case 10:
-#line 253 "cexp.y"
+#line 220 "cexp.y"
{ yyval.integer.value = check_assertion (yyvsp[-4].name.address, yyvsp[-4].name.length,
1, yyvsp[-1].keywords);
keyword_parsing = 0;
yyval.integer.signedp = SIGNED; ;
break;}
case 11:
-#line 258 "cexp.y"
+#line 225 "cexp.y"
{ yyval.integer = yyvsp[-1].integer; ;
break;}
case 12:
-#line 263 "cexp.y"
+#line 230 "cexp.y"
{ yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp;
if (yyval.integer.signedp)
{
@@ -933,11 +900,11 @@ case 12:
integer_overflow ();
}
else
- yyval.integer.value = ((unsigned_HOST_WIDE_INT) yyvsp[-2].integer.value
+ yyval.integer.value = ((unsigned HOST_WIDEST_INT) yyvsp[-2].integer.value
* yyvsp[0].integer.value); ;
break;}
case 13:
-#line 276 "cexp.y"
+#line 243 "cexp.y"
{ if (yyvsp[0].integer.value == 0)
{
if (!skip_evaluation)
@@ -952,11 +919,11 @@ case 13:
integer_overflow ();
}
else
- yyval.integer.value = ((unsigned_HOST_WIDE_INT) yyvsp[-2].integer.value
+ yyval.integer.value = ((unsigned HOST_WIDEST_INT) yyvsp[-2].integer.value
/ yyvsp[0].integer.value); ;
break;}
case 14:
-#line 293 "cexp.y"
+#line 260 "cexp.y"
{ if (yyvsp[0].integer.value == 0)
{
if (!skip_evaluation)
@@ -967,11 +934,11 @@ case 14:
if (yyval.integer.signedp)
yyval.integer.value = yyvsp[-2].integer.value % yyvsp[0].integer.value;
else
- yyval.integer.value = ((unsigned_HOST_WIDE_INT) yyvsp[-2].integer.value
+ yyval.integer.value = ((unsigned HOST_WIDEST_INT) yyvsp[-2].integer.value
% yyvsp[0].integer.value); ;
break;}
case 15:
-#line 306 "cexp.y"
+#line 273 "cexp.y"
{ yyval.integer.value = yyvsp[-2].integer.value + yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp;
if (overflow_sum_sign (yyvsp[-2].integer.value, yyvsp[0].integer.value,
@@ -979,7 +946,7 @@ case 15:
integer_overflow (); ;
break;}
case 16:
-#line 312 "cexp.y"
+#line 279 "cexp.y"
{ yyval.integer.value = yyvsp[-2].integer.value - yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp;
if (overflow_sum_sign (yyval.integer.value, yyvsp[0].integer.value,
@@ -987,7 +954,7 @@ case 16:
integer_overflow (); ;
break;}
case 17:
-#line 318 "cexp.y"
+#line 285 "cexp.y"
{ yyval.integer.signedp = yyvsp[-2].integer.signedp;
if ((yyvsp[0].integer.value & yyvsp[0].integer.signedp) < 0)
yyval.integer.value = right_shift (&yyvsp[-2].integer, -yyvsp[0].integer.value);
@@ -995,7 +962,7 @@ case 17:
yyval.integer.value = left_shift (&yyvsp[-2].integer, yyvsp[0].integer.value); ;
break;}
case 18:
-#line 324 "cexp.y"
+#line 291 "cexp.y"
{ yyval.integer.signedp = yyvsp[-2].integer.signedp;
if ((yyvsp[0].integer.value & yyvsp[0].integer.signedp) < 0)
yyval.integer.value = left_shift (&yyvsp[-2].integer, -yyvsp[0].integer.value);
@@ -1003,110 +970,110 @@ case 18:
yyval.integer.value = right_shift (&yyvsp[-2].integer, yyvsp[0].integer.value); ;
break;}
case 19:
-#line 330 "cexp.y"
+#line 297 "cexp.y"
{ yyval.integer.value = (yyvsp[-2].integer.value == yyvsp[0].integer.value);
yyval.integer.signedp = SIGNED; ;
break;}
case 20:
-#line 333 "cexp.y"
+#line 300 "cexp.y"
{ yyval.integer.value = (yyvsp[-2].integer.value != yyvsp[0].integer.value);
yyval.integer.signedp = SIGNED; ;
break;}
case 21:
-#line 336 "cexp.y"
+#line 303 "cexp.y"
{ yyval.integer.signedp = SIGNED;
if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
yyval.integer.value = yyvsp[-2].integer.value <= yyvsp[0].integer.value;
else
- yyval.integer.value = ((unsigned_HOST_WIDE_INT) yyvsp[-2].integer.value
+ yyval.integer.value = ((unsigned HOST_WIDEST_INT) yyvsp[-2].integer.value
<= yyvsp[0].integer.value); ;
break;}
case 22:
-#line 343 "cexp.y"
+#line 310 "cexp.y"
{ yyval.integer.signedp = SIGNED;
if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
yyval.integer.value = yyvsp[-2].integer.value >= yyvsp[0].integer.value;
else
- yyval.integer.value = ((unsigned_HOST_WIDE_INT) yyvsp[-2].integer.value
+ yyval.integer.value = ((unsigned HOST_WIDEST_INT) yyvsp[-2].integer.value
>= yyvsp[0].integer.value); ;
break;}
case 23:
-#line 350 "cexp.y"
+#line 317 "cexp.y"
{ yyval.integer.signedp = SIGNED;
if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
yyval.integer.value = yyvsp[-2].integer.value < yyvsp[0].integer.value;
else
- yyval.integer.value = ((unsigned_HOST_WIDE_INT) yyvsp[-2].integer.value
+ yyval.integer.value = ((unsigned HOST_WIDEST_INT) yyvsp[-2].integer.value
< yyvsp[0].integer.value); ;
break;}
case 24:
-#line 357 "cexp.y"
+#line 324 "cexp.y"
{ yyval.integer.signedp = SIGNED;
if (yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp)
yyval.integer.value = yyvsp[-2].integer.value > yyvsp[0].integer.value;
else
- yyval.integer.value = ((unsigned_HOST_WIDE_INT) yyvsp[-2].integer.value
+ yyval.integer.value = ((unsigned HOST_WIDEST_INT) yyvsp[-2].integer.value
> yyvsp[0].integer.value); ;
break;}
case 25:
-#line 364 "cexp.y"
+#line 331 "cexp.y"
{ yyval.integer.value = yyvsp[-2].integer.value & yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp; ;
break;}
case 26:
-#line 367 "cexp.y"
+#line 334 "cexp.y"
{ yyval.integer.value = yyvsp[-2].integer.value ^ yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp; ;
break;}
case 27:
-#line 370 "cexp.y"
+#line 337 "cexp.y"
{ yyval.integer.value = yyvsp[-2].integer.value | yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-2].integer.signedp & yyvsp[0].integer.signedp; ;
break;}
case 28:
-#line 373 "cexp.y"
+#line 340 "cexp.y"
{ skip_evaluation += !yyvsp[-1].integer.value; ;
break;}
case 29:
-#line 375 "cexp.y"
+#line 342 "cexp.y"
{ skip_evaluation -= !yyvsp[-3].integer.value;
yyval.integer.value = (yyvsp[-3].integer.value && yyvsp[0].integer.value);
yyval.integer.signedp = SIGNED; ;
break;}
case 30:
-#line 379 "cexp.y"
+#line 346 "cexp.y"
{ skip_evaluation += !!yyvsp[-1].integer.value; ;
break;}
case 31:
-#line 381 "cexp.y"
+#line 348 "cexp.y"
{ skip_evaluation -= !!yyvsp[-3].integer.value;
yyval.integer.value = (yyvsp[-3].integer.value || yyvsp[0].integer.value);
yyval.integer.signedp = SIGNED; ;
break;}
case 32:
-#line 385 "cexp.y"
+#line 352 "cexp.y"
{ skip_evaluation += !yyvsp[-1].integer.value; ;
break;}
case 33:
-#line 387 "cexp.y"
+#line 354 "cexp.y"
{ skip_evaluation += !!yyvsp[-4].integer.value - !yyvsp[-4].integer.value; ;
break;}
case 34:
-#line 389 "cexp.y"
+#line 356 "cexp.y"
{ skip_evaluation -= !!yyvsp[-6].integer.value;
yyval.integer.value = yyvsp[-6].integer.value ? yyvsp[-3].integer.value : yyvsp[0].integer.value;
yyval.integer.signedp = yyvsp[-3].integer.signedp & yyvsp[0].integer.signedp; ;
break;}
case 35:
-#line 393 "cexp.y"
+#line 360 "cexp.y"
{ yyval.integer = yylval.integer; ;
break;}
case 36:
-#line 395 "cexp.y"
+#line 362 "cexp.y"
{ yyval.integer = yylval.integer; ;
break;}
case 37:
-#line 397 "cexp.y"
+#line 364 "cexp.y"
{ if (warn_undef && !skip_evaluation)
warning ("`%.*s' is not defined",
yyvsp[0].name.length, yyvsp[0].name.address);
@@ -1114,11 +1081,11 @@ case 37:
yyval.integer.signedp = SIGNED; ;
break;}
case 38:
-#line 405 "cexp.y"
+#line 372 "cexp.y"
{ yyval.keywords = 0; ;
break;}
case 39:
-#line 407 "cexp.y"
+#line 374 "cexp.y"
{ struct arglist *temp;
yyval.keywords = (struct arglist *) xmalloc (sizeof (struct arglist));
yyval.keywords->next = yyvsp[-2].keywords;
@@ -1133,7 +1100,7 @@ case 39:
temp->next->length = 1; ;
break;}
case 40:
-#line 420 "cexp.y"
+#line 387 "cexp.y"
{ yyval.keywords = (struct arglist *) xmalloc (sizeof (struct arglist));
yyval.keywords->name = yyvsp[-1].name.address;
yyval.keywords->length = yyvsp[-1].name.length;
@@ -1141,7 +1108,7 @@ case 40:
break;}
}
/* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/cygnus/r5900/share/bison.simple"
+#line 498 "/usr/local/gnu/share/bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
@@ -1337,7 +1304,7 @@ yyerrhandle:
yystate = yyn;
goto yynewstate;
}
-#line 425 "cexp.y"
+#line 392 "cexp.y"
/* During parsing of a C expression, the pointer to the next character
@@ -1357,7 +1324,7 @@ parse_number (olen)
{
register char *p = lexptr;
register int c;
- register unsigned_HOST_WIDE_INT n = 0, nd, max_over_base;
+ register unsigned HOST_WIDEST_INT n = 0, nd, max_over_base;
register int base = 10;
register int len = olen;
register int overflow = 0;
@@ -1375,7 +1342,7 @@ parse_number (olen)
}
}
- max_over_base = (unsigned_HOST_WIDE_INT) -1 / base;
+ max_over_base = (unsigned HOST_WIDEST_INT) -1 / base;
for (; len > 0; len--) {
c = *p++;
@@ -1430,7 +1397,7 @@ parse_number (olen)
pedwarn ("integer constant out of range");
/* If too big to be signed, consider it unsigned. */
- if (((HOST_WIDE_INT) n & yylval.integer.signedp) < 0)
+ if (((HOST_WIDEST_INT) n & yylval.integer.signedp) < 0)
{
if (base == 10)
warning ("integer constant is so large that it is unsigned");
@@ -1471,7 +1438,7 @@ yylex ()
register unsigned char *tokstart;
register struct token *toktab;
int wide_flag;
- HOST_WIDE_INT mask;
+ HOST_WIDEST_INT mask;
retry:
@@ -1538,7 +1505,7 @@ yylex ()
handles multicharacter constants and wide characters.
It is mostly copied from c-lex.c. */
{
- register HOST_WIDE_INT result = 0;
+ register HOST_WIDEST_INT result = 0;
register int num_chars = 0;
int chars_seen = 0;
unsigned width = MAX_CHAR_TYPE_SIZE;
@@ -1653,12 +1620,12 @@ yylex ()
sizeof ("__CHAR_UNSIGNED__") - 1, -1)
|| ((result >> (num_bits - 1)) & 1) == 0)
yylval.integer.value
- = result & (~ (unsigned_HOST_WIDE_INT) 0
- >> (HOST_BITS_PER_WIDE_INT - num_bits));
+ = result & (~ (unsigned HOST_WIDEST_INT) 0
+ >> (HOST_BITS_PER_WIDEST_INT - num_bits));
else
yylval.integer.value
- = result | ~(~ (unsigned_HOST_WIDE_INT) 0
- >> (HOST_BITS_PER_WIDE_INT - num_bits));
+ = result | ~(~ (unsigned HOST_WIDEST_INT) 0
+ >> (HOST_BITS_PER_WIDEST_INT - num_bits));
}
else
{
@@ -1784,10 +1751,10 @@ yylex ()
If \ is followed by 000, we return 0 and leave the string pointer
after the zeros. A value of 0 does not mean end of string. */
-HOST_WIDE_INT
+HOST_WIDEST_INT
parse_escape (string_ptr, result_mask)
char **string_ptr;
- HOST_WIDE_INT result_mask;
+ HOST_WIDEST_INT result_mask;
{
register int c = *(*string_ptr)++;
switch (c)
@@ -1826,7 +1793,7 @@ parse_escape (string_ptr, result_mask)
case '6':
case '7':
{
- register HOST_WIDE_INT i = c - '0';
+ register HOST_WIDEST_INT i = c - '0';
register int count = 0;
while (++count < 3)
{
@@ -1848,7 +1815,7 @@ parse_escape (string_ptr, result_mask)
}
case 'x':
{
- register unsigned_HOST_WIDE_INT i = 0, overflow = 0;
+ register unsigned HOST_WIDEST_INT i = 0, overflow = 0;
register int digits_found = 0, digit;
for (;;)
{
@@ -1889,31 +1856,31 @@ integer_overflow ()
pedwarn ("integer overflow in preprocessor expression");
}
-static HOST_WIDE_INT
+static HOST_WIDEST_INT
left_shift (a, b)
struct constant *a;
- unsigned_HOST_WIDE_INT b;
+ unsigned HOST_WIDEST_INT b;
{
/* It's unclear from the C standard whether shifts can overflow.
The following code ignores overflow; perhaps a C standard
interpretation ruling is needed. */
- if (b >= HOST_BITS_PER_WIDE_INT)
+ if (b >= HOST_BITS_PER_WIDEST_INT)
return 0;
else
- return (unsigned_HOST_WIDE_INT) a->value << b;
+ return (unsigned HOST_WIDEST_INT) a->value << b;
}
-static HOST_WIDE_INT
+static HOST_WIDEST_INT
right_shift (a, b)
struct constant *a;
- unsigned_HOST_WIDE_INT b;
+ unsigned HOST_WIDEST_INT b;
{
- if (b >= HOST_BITS_PER_WIDE_INT)
- return a->signedp ? a->value >> (HOST_BITS_PER_WIDE_INT - 1) : 0;
+ if (b >= HOST_BITS_PER_WIDEST_INT)
+ return a->signedp ? a->value >> (HOST_BITS_PER_WIDEST_INT - 1) : 0;
else if (a->signedp)
return a->value >> b;
else
- return (unsigned_HOST_WIDE_INT) a->value >> b;
+ return (unsigned HOST_WIDEST_INT) a->value >> b;
}
/* This page contains the entry point to this file. */
@@ -1926,7 +1893,7 @@ right_shift (a, b)
We do not support C comments. They should be removed before
this function is called. */
-HOST_WIDE_INT
+HOST_WIDEST_INT
parse_c_expression (string, warn_undefined)
char *string;
int warn_undefined;
@@ -1980,10 +1947,11 @@ extern int yydebug;
int pedantic;
int traditional;
+int c89;
int main PROTO((int, char **));
static void initialize_random_junk PROTO((void));
-static void print_unsigned_host_wide_int PROTO((unsigned_HOST_WIDE_INT));
+static void print_unsigned_host_widest_int PROTO((unsigned HOST_WIDEST_INT));
/* Main program for testing purposes. */
int
@@ -1993,12 +1961,13 @@ main (argc, argv)
{
int n, c;
char buf[1024];
- unsigned_HOST_WIDE_INT u;
+ unsigned HOST_WIDEST_INT u;
pedantic = 1 < argc;
traditional = 2 < argc;
+ c89 = 3 < argc;
#if YYDEBUG
- yydebug = 3 < argc;
+ yydebug = 4 < argc;
#endif
initialize_random_junk ();
@@ -2011,7 +1980,7 @@ main (argc, argv)
break;
parse_c_expression (buf, 1);
printf ("parser returned ");
- u = (unsigned_HOST_WIDE_INT) expression_value;
+ u = (unsigned HOST_WIDEST_INT) expression_value;
if (expression_value < 0 && expression_signedp) {
u = -u;
printf ("-");
@@ -2019,7 +1988,7 @@ main (argc, argv)
if (u == 0)
printf ("0");
else
- print_unsigned_host_wide_int (u);
+ print_unsigned_host_widest_int (u);
if (! expression_signedp)
printf("u");
printf ("\n");
@@ -2029,11 +1998,11 @@ main (argc, argv)
}
static void
-print_unsigned_host_wide_int (u)
- unsigned_HOST_WIDE_INT u;
+print_unsigned_host_widest_int (u)
+ unsigned HOST_WIDEST_INT u;
{
if (u) {
- print_unsigned_host_wide_int (u / 10);
+ print_unsigned_host_widest_int (u / 10);
putchar ('0' + (int) (u % 10));
}
}