diff options
Diffstat (limited to 'libcpp/expr.cc')
-rw-r--r-- | libcpp/expr.cc | 75 |
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)); } |