On Fri, Apr 04, 2025 at 02:16:03PM +0200, Simon Josefsson wrote:
> Eric Blake <ebl...@redhat.com> writes:
> 
> >> #  define G_GNUC_IDN2_ATTRIBUTE_PURE __attribute__ ((pure))
> ...
> >>   extern _IDN2_API const char *idn2_check_version (const char *req_version)
> >>     G_GNUC_IDN2_ATTRIBUTE_PURE;
> >
> > Figuring out how to write the __attribute__-hiding macros conditional
> > on compiler version wasn't the issue (the m4 definitions for
> > ATTRIBUTE_PURE come from gnulib, and are under a similar ladder of
> > #if); rather, it's that an all-caps macro that takes no arguments and
> > appears after the func(params) but before the trailing ; of an extern
> > function declaration confuse indent.
> 
> By formatting things like the above, without any '(())', then indent is
> happy.  I run indent on the idn2.h and it looks like the above without
> any INDENT-OFF.  If I included the '(())' part, then just like you I had
> issues getting indent to behave.  The conditional part is unrelated to
> the indent issue, but I can see that my recommendation was unclear.

ATTRIBUTE_COLD wasn't necessarily the problem.  It was
"ATTRIBUTE_FORMAT ((__printf__, 3, 4))".  And that one needs
parameters, since it applies to a varargs that is not at a fixed
location.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.
Virtualization:  qemu.org | libguestfs.org


  • bug formatt... Eric Blake
    • Re: bu... Simon Josefsson via Bug reports for the GNU m4 macro processor
      • Re... Eric Blake
        • ... Simon Josefsson via Bug reports for the GNU m4 macro processor
          • ... Eric Blake
            • ... Simon Josefsson via Bug reports for the GNU m4 macro processor

Reply via email to