This is the mail archive of the
mailing list for the GCC project.
Re: [C++ PATCH] [PR2204] Check for parameters of abstract types (partial fix)
"Zack Weinberg" <firstname.lastname@example.org> writes:
| Gabriel Dos Reis <email@example.com> writes:
| > "Giovanni Bajo" <firstname.lastname@example.org> writes:
| > | if (TREE_CODE (decl) == VAR_DECL)
| > | ! error ("%Jcannot declare variable `%D' to be of abstract type `%T'",
| > | ! decl, decl, type);
| > That is an abuse of %J. Use error_at instead.
| I told Giovanni that error/warning/pedwarn_at were to be eliminated in
| favor of %J. Did I misunderstand what you've said about these in the
I don't know exactly what you're referring to. But, the repetition of
the "decl" is not right and if any removal should lead to that, then
that removal should not happen.
There are some uses of error_at which are wrong. E.g.
error_at ("foo is nonsensical", decl); // WRONG
error ("%Jfoo is nonsensical", decl); // Good
error ("%Jdeclaration '%D' is nonsensical", decl, decl); // WRONG
error_at ("declaration '%+D' is nonsensical", decl); // Good