On Thu, Oct 13, 2022 at 02:52:59AM +0200, Paul Iannetta via Gcc-patches wrote:
> + if (type != error_mark_node
> + && !ADDR_SPACE_GENERIC_P (TYPE_ADDR_SPACE (type))
> + && current_function_decl)
> + {
> + error
> + ("compound literal qualified by address-space qualifier");
> + type = error_mark_node;
Can you please write this as:
error ("compound literal qualified by address-space "
"qualifier");
? That is how diagnostics that don't fit on one line are usually written.
> @@ -23812,6 +23830,11 @@ cp_parser_cv_qualifier_seq_opt (cp_parser* parser)
> break;
> }
>
> + if (RID_FIRST_ADDR_SPACE <= token->keyword &&
&& should never go at the end of line.
> + token->keyword <= RID_LAST_ADDR_SPACE)
> + cv_qualifier =
and similarly = (except for aggregate initializers).
> + ENCODE_QUAL_ADDR_SPACE (token->keyword - RID_FIRST_ADDR_SPACE);
So:
if (RID_FIRST_ADDR_SPACE <= token->keyword
&& token->keyword <= RID_LAST_ADDR_SPACE)
cv_qualifier
= ENCODE_QUAL_ADDR_SPACE (token->keyword - RID_FIRST_ADDR_SPACE);
> + int unified_cv =
> + CLEAR_QUAL_ADDR_SPACE (arg_cv_quals & ~parm_cv_quals)
> + | ENCODE_QUAL_ADDR_SPACE (as_common);
Similarly (but this time with ()s added to ensure correct formatting in
some editors).
int unified_cv
= (CLEAR_QUAL_ADDR_SPACE (arg_cv_quals & ~parm_cv_quals)
| ENCODE_QUAL_ADDR_SPACE (as_common));
> result_type
> = cp_build_qualified_type (void_type_node,
> - (cp_type_quals (TREE_TYPE (t1))
> - | cp_type_quals (TREE_TYPE (t2))));
> + (CLEAR_QUAL_ADDR_SPACE (cp_type_quals
> (TREE_TYPE (t1)))
> + | CLEAR_QUAL_ADDR_SPACE (cp_type_quals
> (TREE_TYPE (t2)))
The above 2 lines are way too long.
I'd suggest to use temporaries, say
int quals1 = cp_type_quals (TREE_TYPE (t1));
int quals2 = cp_type_quals (TREE_TYPE (t2));
and use those.
Jakub