aboutsummaryrefslogtreecommitdiff
path: root/libcpp/expr.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libcpp/expr.cc')
-rw-r--r--libcpp/expr.cc75
1 files changed, 40 insertions, 35 deletions
diff --git a/libcpp/expr.cc b/libcpp/expr.cc
index 089bf3e..b7772c9 100644
--- a/libcpp/expr.cc
+++ b/libcpp/expr.cc
@@ -678,10 +678,12 @@ cpp_classify_number (cpp_reader *pfile, const cpp_token *token,
{
if (radix == 2)
SYNTAX_ERROR2_AT (virtual_location,
- "invalid digit \"%c\" in binary constant", '0' + max_digit);
+ "invalid digit %<%c%> in binary constant",
+ '0' + max_digit);
else
SYNTAX_ERROR2_AT (virtual_location,
- "invalid digit \"%c\" in octal constant", '0' + max_digit);
+ "invalid digit %<%c%> in octal constant",
+ '0' + max_digit);
}
if (float_flag != NOT_FLOAT)
@@ -689,7 +691,7 @@ cpp_classify_number (cpp_reader *pfile, const cpp_token *token,
if (radix == 2)
{
cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0,
- "invalid prefix \"0b\" for floating constant");
+ "invalid prefix %<0b%> for floating constant");
return CPP_N_INVALID;
}
@@ -751,8 +753,8 @@ cpp_classify_number (cpp_reader *pfile, const cpp_token *token,
else
{
cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0,
- "invalid suffix \"%.*s\" on floating constant",
- (int) (limit - str), str);
+ "invalid suffix %<%.*s%> on floating "
+ "constant", (int) (limit - str), str);
return CPP_N_INVALID;
}
}
@@ -762,7 +764,7 @@ cpp_classify_number (cpp_reader *pfile, const cpp_token *token,
&& CPP_WTRADITIONAL (pfile)
&& ! cpp_sys_macro_p (pfile))
cpp_warning_with_line (pfile, CPP_W_TRADITIONAL, virtual_location, 0,
- "traditional C rejects the \"%.*s\" suffix",
+ "traditional C rejects the %<%.*s%> suffix",
(int) (limit - str), str);
/* A suffix for double is a GCC extension via decimal float support.
@@ -777,8 +779,8 @@ cpp_classify_number (cpp_reader *pfile, const cpp_token *token,
if ((result & CPP_N_DFLOAT) && radix != 10)
{
cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0,
- "invalid suffix \"%.*s\" with hexadecimal floating constant",
- (int) (limit - str), str);
+ "invalid suffix %<%.*s%> with hexadecimal "
+ "floating constant", (int) (limit - str), str);
return CPP_N_INVALID;
}
@@ -791,11 +793,12 @@ cpp_classify_number (cpp_reader *pfile, const cpp_token *token,
if (!CPP_OPTION (pfile, dfp_constants))
cpp_pedwarning_with_line
(pfile, CPP_W_PEDANTIC, virtual_location, 0,
- "decimal float constants are a C23 feature");
+ "decimal floating constants are a C23 feature");
else if (CPP_OPTION (pfile, cpp_warn_c11_c23_compat) > 0)
cpp_warning_with_line (pfile, CPP_W_C11_C23_COMPAT,
virtual_location, 0,
- "decimal float constants are a C23 feature");
+ "decimal floating constants are a C23 "
+ "feature");
}
result |= CPP_N_FLOATING;
@@ -814,8 +817,8 @@ cpp_classify_number (cpp_reader *pfile, const cpp_token *token,
else
{
cpp_error_with_line (pfile, CPP_DL_ERROR, virtual_location, 0,
- "invalid suffix \"%.*s\" on integer constant",
- (int) (limit - str), str);
+ "invalid suffix %<%.*s%> on integer "
+ "constant", (int) (limit - str), str);
return CPP_N_INVALID;
}
}
@@ -831,7 +834,7 @@ cpp_classify_number (cpp_reader *pfile, const cpp_token *token,
if (u_or_i || large)
cpp_warning_with_line (pfile, large ? CPP_W_LONG_LONG : CPP_W_TRADITIONAL,
virtual_location, 0,
- "traditional C rejects the \"%.*s\" suffix",
+ "traditional C rejects the %<%.*s%> suffix",
(int) (limit - str), str);
}
@@ -853,9 +856,10 @@ cpp_classify_number (cpp_reader *pfile, const cpp_token *token,
if ((result & CPP_N_SIZE_T) == CPP_N_SIZE_T
&& !CPP_OPTION (pfile, size_t_literals))
{
- const char *message = (result & CPP_N_UNSIGNED) == CPP_N_UNSIGNED
- ? N_("use of C++23 %<size_t%> integer constant")
- : N_("use of C++23 %<make_signed_t<size_t>%> integer constant");
+ const char *message
+ = (result & CPP_N_UNSIGNED) == CPP_N_UNSIGNED
+ ? N_("use of C++23 %<size_t%> integer constant")
+ : N_("use of C++23 %<make_signed_t<size_t>%> integer constant");
cpp_warning_with_line (pfile, CPP_W_SIZE_T_LITERALS,
virtual_location, 0, message);
}
@@ -1118,7 +1122,7 @@ parse_defined (cpp_reader *pfile)
cpp_context *initial_context = pfile->context;
if (pfile->state.in_directive == 3)
- cpp_error (pfile, CPP_DL_ERROR, "'defined' in #embed parameter");
+ cpp_error (pfile, CPP_DL_ERROR, "%<defined%> in %<#embed%> parameter");
/* Don't expand macros. */
pfile->state.prevent_expansion++;
@@ -1135,14 +1139,14 @@ parse_defined (cpp_reader *pfile)
node = token->val.node.node;
if (paren && cpp_get_token (pfile)->type != CPP_CLOSE_PAREN)
{
- cpp_error (pfile, CPP_DL_ERROR, "missing ')' after \"defined\"");
+ cpp_error (pfile, CPP_DL_ERROR, "missing %<)%> after %<defined%>");
node = 0;
}
}
else
{
cpp_error (pfile, CPP_DL_ERROR,
- "operator \"defined\" requires an identifier");
+ "operator %<defined%> requires an identifier");
if (token->flags & NAMED_OP)
{
cpp_token op;
@@ -1150,7 +1154,7 @@ parse_defined (cpp_reader *pfile)
op.flags = 0;
op.type = token->type;
cpp_error (pfile, CPP_DL_ERROR,
- "(\"%s\" is an alternative token for \"%s\" in C++)",
+ "(%qs is an alternative token for %qs in C++)",
cpp_token_as_text (pfile, token),
cpp_token_as_text (pfile, &op));
}
@@ -1163,7 +1167,7 @@ parse_defined (cpp_reader *pfile)
|| initial_context != &pfile->base_context)
&& CPP_OPTION (pfile, warn_expansion_to_defined))
cpp_pedwarning (pfile, CPP_W_EXPANSION_TO_DEFINED,
- "this use of \"defined\" may not be portable");
+ "this use of %<defined%> may not be portable");
is_defined = _cpp_defined_macro_p (node);
if (!_cpp_maybe_notify_macro_use (pfile, node, token->src_loc))
/* It wasn't a macro after all. */
@@ -1268,7 +1272,7 @@ eval_token (cpp_reader *pfile, const cpp_token *token,
result.low = 0;
if (CPP_OPTION (pfile, warn_undef) && !pfile->state.skip_eval)
cpp_warning_with_line (pfile, CPP_W_UNDEF, virtual_location, 0,
- "\"%s\" is not defined, evaluates to 0",
+ "%qs is not defined, evaluates to %<0%>",
NODE_NAME (token->val.node.node));
}
break;
@@ -1431,7 +1435,7 @@ _cpp_parse_expr (cpp_reader *pfile, const char *dir,
case CPP_HASH:
if (!want_value)
SYNTAX_ERROR2_AT (op.loc,
- "missing binary operator before token \"%s\"",
+ "missing binary operator before token %qs",
cpp_token_as_text (pfile, op.token));
want_value = false;
top->value = eval_token (pfile, op.token, op.loc);
@@ -1456,7 +1460,8 @@ _cpp_parse_expr (cpp_reader *pfile, const char *dir,
default:
if ((int) op.op <= (int) CPP_EQ || (int) op.op >= (int) CPP_PLUS_EQ)
SYNTAX_ERROR2_AT (op.loc,
- "token \"%s\" is not valid in preprocessor expressions",
+ "token %qs is not valid in preprocessor "
+ "expressions",
cpp_token_as_text (pfile, op.token));
break;
}
@@ -1466,7 +1471,7 @@ _cpp_parse_expr (cpp_reader *pfile, const char *dir,
{
if (!want_value)
SYNTAX_ERROR2_AT (op.loc,
- "missing binary operator before token \"%s\"",
+ "missing binary operator before token %qs",
cpp_token_as_text (pfile, op.token));
}
else if (want_value)
@@ -1475,7 +1480,7 @@ _cpp_parse_expr (cpp_reader *pfile, const char *dir,
Try to emit a specific diagnostic. */
if (op.op == CPP_CLOSE_PAREN && top->op == CPP_OPEN_PAREN)
SYNTAX_ERROR_AT (op.loc,
- "missing expression between '(' and ')'");
+ "missing expression between %<(%> and %<)%>");
if (op.op == CPP_EOF && top->op == CPP_EOF)
SYNTAX_ERROR2_AT (op.loc,
@@ -1483,13 +1488,13 @@ _cpp_parse_expr (cpp_reader *pfile, const char *dir,
if (top->op != CPP_EOF && top->op != CPP_OPEN_PAREN)
SYNTAX_ERROR2_AT (op.loc,
- "operator '%s' has no right operand",
+ "operator %qs has no right operand",
cpp_token_as_text (pfile, top->token));
else if (op.op == CPP_CLOSE_PAREN || op.op == CPP_EOF)
/* Complain about missing paren during reduction. */;
else
SYNTAX_ERROR2_AT (op.loc,
- "operator '%s' has no left operand",
+ "operator %qs has no left operand",
cpp_token_as_text (pfile, op.token));
}
@@ -1518,7 +1523,7 @@ _cpp_parse_expr (cpp_reader *pfile, const char *dir,
case CPP_COLON:
if (top->op != CPP_QUERY)
SYNTAX_ERROR_AT (op.loc,
- " ':' without preceding '?'");
+ " %<:%> without preceding %<?%>");
if (!num_zerop (top[-1].value)) /* Was '?' condition true? */
pfile->state.skip_eval++;
else
@@ -1687,7 +1692,7 @@ reduce (cpp_reader *pfile, struct op *top, enum cpp_ttype op)
{
cpp_error_with_line (pfile, CPP_DL_ERROR,
top->token->src_loc,
- 0, "missing ')' in expression");
+ 0, "missing %<)%> in expression");
return 0;
}
top--;
@@ -1716,7 +1721,7 @@ reduce (cpp_reader *pfile, struct op *top, enum cpp_ttype op)
/* COMMA and COLON should not reduce a QUERY operator. */
if (op == CPP_COMMA || op == CPP_COLON)
return top;
- cpp_error (pfile, CPP_DL_ERROR, "'?' without following ':'");
+ cpp_error (pfile, CPP_DL_ERROR, "%<?%> without following %<:%>");
return 0;
default:
@@ -1731,7 +1736,7 @@ reduce (cpp_reader *pfile, struct op *top, enum cpp_ttype op)
if (op == CPP_CLOSE_PAREN)
{
- cpp_error (pfile, CPP_DL_ERROR, "missing '(' in expression");
+ cpp_error (pfile, CPP_DL_ERROR, "missing %<(%> in expression");
return 0;
}
@@ -1763,12 +1768,12 @@ check_promotion (cpp_reader *pfile, const struct op *op)
{
if (!num_positive (op[-1].value, CPP_OPTION (pfile, precision)))
cpp_error_with_line (pfile, CPP_DL_WARNING, op[-1].loc, 0,
- "the left operand of \"%s\" changes sign when promoted",
- cpp_token_as_text (pfile, op->token));
+ "the left operand of %qs changes sign when "
+ "promoted", cpp_token_as_text (pfile, op->token));
}
else if (!num_positive (op->value, CPP_OPTION (pfile, precision)))
cpp_error_with_line (pfile, CPP_DL_WARNING, op->loc, 0,
- "the right operand of \"%s\" changes sign when promoted",
+ "the right operand of %qs changes sign when promoted",
cpp_token_as_text (pfile, op->token));
}