This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[C++] Advertise -fext-numeric-literals in error messages
- From: Marc Glisse <marc dot glisse at inria dot fr>
- To: gcc-patches at gcc dot gnu dot org
- Cc: jason at redhat dot com, 3dw4rd at verizon dot net
- Date: Wed, 1 Jan 2014 19:33:27 +0100 (CET)
- Subject: [C++] Advertise -fext-numeric-literals in error messages
- Authentication-results: sourceware.org; auth=none
Hello,
an error message like the following:
error: unable to find numeric literal operator 'operator"" iF'
for using _Complex_I can be a bit hard for users to handle. This adds a
note that -std=gnu++11 and -fext-numeric-literals might help. Ideally we
would check if the suffix is indeed recognized by -fext-numeric-literals
before printing this text, but that's harder, someone else can do that
later.
No testcase because notes are pruned in the testsuite.
Bootstrap+testsuite on x86_64-unknown-linux-gnu.
2014-01-01 Marc Glisse <marc.glisse@inria.fr>
PR c++/59087
gcc/cp/
* parser.c (cp_parser_userdef_numeric_literal): Mention
-fext-numeric-literals in the message.
--
Marc Glisse
Index: gcc/cp/parser.c
===================================================================
--- gcc/cp/parser.c (revision 206274)
+++ gcc/cp/parser.c (working copy)
@@ -3918,20 +3918,23 @@ cp_parser_userdef_numeric_literal (cp_pa
result = finish_call_expr (decl, &args, false, true, tf_none);
if (result != error_mark_node)
{
release_tree_vector (args);
return result;
}
}
release_tree_vector (args);
error ("unable to find numeric literal operator %qD", name);
+ if (!cpp_get_options (parse_in)->ext_numeric_literals)
+ inform (token->location, "use -std=gnu++11 or -fext-numeric-literals "
+ "to enable more built-in suffixes");
return error_mark_node;
}
/* Parse a user-defined string constant. Returns a call to a user-defined
literal operator taking a character pointer and the length of the string
as arguments. */
static tree
cp_parser_userdef_string_literal (cp_token *token)
{