This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Apply attribute returns_nonnull in libiberty


On Fri, 2013-10-11 at 19:53 +0200, Marc Glisse wrote:
> With the patch now...

[...]

> -extern char *concat_copy (char *, const char *, ...) ATTRIBUTE_SENTINEL;
> +extern char *concat_copy (char *, const char *, ...) ATTRIBUTE_SENTINEL ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURNS_NONNULL;

An aesthetic idea: should the attributes be ordered to reflect the order
that the related entities appear in the declaration?  Return types
appear before parameters in declarations, and thus perhaps the
attributes describing them should also.

This would make the above look like this (introducing a newline to avoid
overlong lines):

extern char *concat_copy (char *, const char *, ...)
  ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1) ATTRIBUTE_SENTINEL;

Such runs of blockcaps might be made more readable by adding newlines:

extern char *concat_copy (char *, const char *, ...)
  ATTRIBUTE_RETURNS_NONNULL
  ATTRIBUTE_NONNULL(1)
  ATTRIBUTE_SENTINEL;

FWIW I do something like this with custom attributes in my
gcc-python-plugin, see e.g.:
https://gcc-python-plugin.readthedocs.org/en/latest/cpychecker.html#marking-functions-that-steal-references-to-their-arguments

Thoughts?
Dave


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]