+2002-07-17 Neil Booth <neil@daikokuya.co.uk>
+
+ * cppexp.c (cpp_interpret_integer, append_digit, parse_defined,
+ eval_token): Clarify and correct use of "bool" variables.
+ * cpplib.h (struct cpp_options): Similarly.
+ * cppmacro.c (parse_params, _cpp_save_parameter): Ditto.
+ * cpptrad.c (recursive_macro): Similarly.
+
Wed Jul 17 17:08:06 2002 J"orn Rennecke <joern.rennecke@superh.com>
* config/sh/lib1funcs.asm (udivsi3_i4): Implement SHcompact version in
result.low = 0;
result.high = 0;
- result.unsignedp = type & CPP_N_UNSIGNED;
- result.overflow = 0;
+ result.unsignedp = !!(type & CPP_N_UNSIGNED);
+ result.overflow = false;
p = token->val.str.text;
end = p + token->val.str.len;
if (base == 10)
cpp_error (pfile, DL_WARNING,
"integer constant is so large that it is unsigned");
- result.unsignedp = 1;
+ result.unsignedp = true;
}
}
/* Multiply by 8 or 16. Catching this overflow here means we don't
need to worry about add_high overflowing. */
- overflow = num.high >> (PART_PRECISION - shift);
+ overflow = !!(num.high >> (PART_PRECISION - shift));
result.high = num.high << shift;
result.low = num.low << shift;
result.high |= num.low >> (PART_PRECISION - shift);
pfile->state.prevent_expansion--;
- result.unsignedp = 0;
+ result.unsignedp = false;
result.high = 0;
- result.overflow = 0;
+ result.overflow = false;
result.low = node && node->type == NT_MACRO;
return result;
}
result.low = temp;
}
- result.unsignedp = unsignedp;
- result.overflow = 0;
+ result.unsignedp = !!unsignedp;
+ result.overflow = false;
return result;
}
\f
ints and target wide characters, respectively. */
size_t precision, char_precision, int_precision, wchar_precision;
- /* Nonzero means chars (wide chars) are unsigned. */
- unsigned char unsigned_char, unsigned_wchar;
+ /* True means chars (wide chars) are unsigned. */
+ bool unsigned_char, unsigned_wchar;
/* Nonzero means __STDC__ should have the value 0 in system headers. */
unsigned char stdc_0_in_system_headers;
static cpp_token *lex_expansion_token PARAMS ((cpp_reader *, cpp_macro *));
static bool warn_of_redefinition PARAMS ((cpp_reader *, const cpp_hashnode *,
const cpp_macro *));
-static int parse_params PARAMS ((cpp_reader *, cpp_macro *));
+static bool parse_params PARAMS ((cpp_reader *, cpp_macro *));
static void check_trad_stringification PARAMS ((cpp_reader *,
const cpp_macro *,
const cpp_string *));
{
cpp_error (pfile, DL_ERROR, "duplicate macro parameter \"%s\"",
NODE_NAME (node));
- return 1;
+ return true;
}
if (BUFF_ROOM (pfile->a_buff)
((cpp_hashnode **) BUFF_FRONT (pfile->a_buff))[macro->paramc++] = node;
node->arg_index = macro->paramc;
- return 0;
+ return false;
}
-/* Check the syntax of the parameters in a MACRO definition. */
-static int
+/* Check the syntax of the parameters in a MACRO definition. Returns
+ false if an error occurs. */
+static bool
parse_params (pfile, macro)
cpp_reader *pfile;
cpp_macro *macro;
cpp_error (pfile, DL_ERROR,
"\"%s\" may not appear in macro parameter list",
cpp_token_as_text (pfile, token));
- return 0;
+ return false;
case CPP_NAME:
if (prev_ident)
{
cpp_error (pfile, DL_ERROR,
"macro parameters must be comma-separated");
- return 0;
+ return false;
}
prev_ident = 1;
if (_cpp_save_parameter (pfile, macro, token->val.node))
- return 0;
+ return false;
continue;
case CPP_CLOSE_PAREN:
if (prev_ident || macro->paramc == 0)
- return 1;
+ return true;
/* Fall through to pick up the error. */
case CPP_COMMA:
if (!prev_ident)
{
cpp_error (pfile, DL_ERROR, "parameter name missing");
- return 0;
+ return false;
}
prev_ident = 0;
continue;
/* We're at the end, and just expect a closing parenthesis. */
token = _cpp_lex_token (pfile);
if (token->type == CPP_CLOSE_PAREN)
- return 1;
+ return true;
/* Fall through. */
case CPP_EOF:
cpp_error (pfile, DL_ERROR, "missing ')' in macro parameter list");
- return 0;
+ return false;
}
}
}
cpp_reader *pfile;
cpp_hashnode *node;
{
- bool recursing = node->flags & NODE_DISABLED;
+ bool recursing = !!(node->flags & NODE_DISABLED);
/* Object-like macros that are already expanding are necessarily
recursive.