I think we're down to minor cosmetic issues:

On 10/21/2011 03:55 PM, Tom Tromey wrote:
There are a few spots like this that are missing a space before an open
paren.

+      if (DECL_LANGUAGE(decl) == lang_c)

Another one.

-          if (warn_cxx0x_compat
-              && C_RID_CODE (token->u.value) >= RID_FIRST_CXX0X
-              && C_RID_CODE (token->u.value) <= RID_LAST_CXX0X)
....

This code doesn't seem to have actually changed, so let's not adjust its whitespace.

+  /* Fill in PARMVEC with all of the parameters.  */
+  parmvec = make_tree_vec (len);

Let's call it 'charvec'; the characters are template arguments, not parameters.

+/* Parse a user-defined numeric constant.  returns a call to a user-defined
+   literal operator.  */
+static tree
+cp_parser_userdef_numeric_literal (cp_parser *parser)

Add a blank line between comment and function.

While looking at the embedded string issue I found that if you apply the suffix 
of a raw literal to a string it errors as it should but the error complained 
that there were too many arguments for the function.  This was not helpful so I 
made a nicer error message.

+  if (result == error_mark_node)
+    error ("invalid string literal prefix %<\"%s\"%> for user-defined"
+          " raw literal operator %qD", TREE_STRING_POINTER (value), name);

I think that we want a combination of the two errors; the new error doesn't help the user to fix their code as much. It should remind them that for a string literal the function is called with a length argument as well.

+       error ("literal operator template %qD has invalid parameter list",
+              decl);

Similarly, this message should say that the parameter list needs to be <char...>


+
+/* Return true if a user-defined literal operator is a raw operator.  */
+

We don't need the extra newline before the comment.

Should be ready to go with these tweaks.

Jason

Reply via email to