Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@false.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: gcc-patches@gcc.gnu.org, gdb-patches@sources.redhat.com
Subject: Re: [RFA] Eliminate warnings about snprintf declaration
Date: Thu, 12 May 2005 15:33:00 -0000	[thread overview]
Message-ID: <20050512150804.GA1808@nevyn.them.org> (raw)
In-Reply-To: <01c55702$Blat.v2.4$d4764900@zahav.net.il>

On Thu, May 12, 2005 at 05:55:49PM +0300, Eli Zaretskii wrote:
> Okay, here're the patches to add snprintf and vsnprintf to the list of
> functions whose declarations are checked at configure time.  Comments?

I recommend copying the libiberty maintainers directly to get their
attention.

Also, this isn't useful:

> @@ -282,7 +282,7 @@
>    sysconf times sbrk gettimeofday ffs snprintf vsnprintf \
>    pstat_getstatic pstat_getdynamic sysmp getsysinfo table sysctl wait3 wait4 \
>    realpath canonicalize_file_name __fsetlocking)
> -  AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf])
> +  AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf])
>    AC_DEFINE(HAVE_SYS_ERRLIST, 1, [Define if you have the sys_errlist variable.])
>    AC_DEFINE(HAVE_SYS_NERR,    1, [Define if you have the sys_nerr variable.])
>    AC_DEFINE(HAVE_SYS_SIGLIST, 1, [Define if you have the sys_siglist variable.])
> @@ -518,7 +518,7 @@
>      [AC_MSG_RESULT([no])])
>  
>    AC_CHECK_FUNCS($checkfuncs)
> -  AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf])
> +  AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf])
>    libiberty_NEED_DECLARATION(canonicalize_file_name)
>  fi

That will only affect libiberty.h when building libiberty; it won't
affect the users of libiberty.

> +#if !HAVE_DECL_SNPRINTF
> +# ifdef HAVE_DECL_SNPRINTF
> +  extern int snprintf ();
> +# else
> +/* Like sprintf but prints at most N characters.  */
> +  extern int snprintf (char *, size_t, const char *, ...) ATTRIBUTE_PRINTF_3;
> +# endif
> +#endif
> +
> +#if !HAVE_DECL_VSNPRINTF
> +# ifdef HAVE_DECL_VSNPRINTF
> +  extern int vsnprintf ();
> +# else
> +/* Like vsprintf but prints at most N characters.  */
> +  extern int vsnprintf (char *, size_t, const char *, va_list);
> +# endif
> +#endif
> +

I believe you've got this logic reversed.  You also don't want or need
the non-prototype - it's only needed for basename because basename
returns a pointer.  How about this, based on the later examples in the
file:

#if defined (HAVE_DECL_SPRINTF) && !HAVE_DECL_SNPRINTF
/* Like sprintf but prints at most N characters.  */
extern int snprintf (char *, size_t, const char *, ...) ATTRIBUTE_PRINTF_3;
#endif

#if defined (HAVE_DECL_VSNPRINTF) && !HAVE_DECL_VSNPRINTF
/* Like vsprintf but prints at most N characters.  */
extern int vsnprintf (char *, size_t, const char *, va_list);
#endif

-- 
Daniel Jacobowitz
CodeSourcery, LLC


  reply	other threads:[~2005-05-12 15:08 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <01c4c990$Blat.v2.2.2$887ec720@zahav.net.il>
     [not found] ` <41994B9D.9080809@gnu.org>
2005-05-12 15:08   ` Eli Zaretskii
2005-05-12 15:33     ` Daniel Jacobowitz [this message]
2005-05-12 15:45       ` Eli Zaretskii
2005-05-12 15:53         ` Daniel Jacobowitz
2005-05-12 16:25           ` Eli Zaretskii
2005-05-12 18:07             ` Daniel Jacobowitz
2005-05-12 20:48               ` Eli Zaretskii
2005-05-12 21:05                 ` Daniel Jacobowitz
2005-05-12 21:27                   ` DJ Delorie
2005-05-14 10:23                   ` Eli Zaretskii
2005-05-14 16:39                     ` Daniel Jacobowitz
2005-05-14 19:43                       ` Eli Zaretskii
2005-05-15 16:31                         ` Ian Lance Taylor
2005-05-15 17:15                           ` Daniel Jacobowitz
2005-05-15 19:48                             ` Eli Zaretskii
2005-05-15 20:21                               ` Daniel Jacobowitz
2005-05-20 12:42                                 ` Eli Zaretskii
2005-05-20 14:16                             ` Eli Zaretskii
2005-05-20 14:34                               ` Andreas Schwab
2005-05-20 15:02                                 ` Eli Zaretskii
2005-05-20 15:06                                   ` Andreas Schwab
2005-05-20 18:24                                     ` Eli Zaretskii
2005-05-20 18:26                                       ` Eli Zaretskii
2005-05-20 20:47                                         ` Daniel Jacobowitz
2005-05-20 22:16                                           ` Eli Zaretskii
2005-05-22 14:54                                             ` Daniel Jacobowitz
2005-05-22 17:11                                             ` Andreas Schwab
2005-05-15 19:55                           ` Eli Zaretskii
2005-05-12 16:01         ` Ian Lance Taylor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20050512150804.GA1808@nevyn.them.org \
    --to=drow@false.org \
    --cc=eliz@gnu.org \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=gdb-patches@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox