On Mon, Mar 30, 2015 at 2:01 PM, Michael Paquier <michael.paqu...@gmail.com>
wrote:

>
>
>
> On Thu, Mar 26, 2015 at 6:49 AM, Andres Freund <and...@anarazel.de> wrote:
> > Centralize definition of integer limits.
> >
> > Several submitted and even committed patches have run into the problem
> > that C89, our baseline, does not provide minimum/maximum values for
> > various integer datatypes. C99's stdint.h does, but we can't rely on
> > it.
> >
> > Several parts of the code defined limits locally, so instead centralize
> > the definitions to c.h.
> >
> > This patch also changes the more obvious usages of literal limit values;
> > there's more places that could be changed, but it's less clear whether
> > it's beneficial to change those.
>
> My OSX dev box is generating a couple of warnings since this commit:
> pg_dump.c:14548:45: warning: format specifies type 'long' but the argument
> has type 'long long' [-Wformat]
>         snprintf(bufm, sizeof(bufm), INT64_FORMAT, SEQ_MINVALUE);
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
> ../../../src/include/pg_config_manual.h:52:22: note: expanded from macro
> 'SEQ_MINVALUE'
> #define SEQ_MINVALUE    (-SEQ_MAXVALUE)
>                         ^
> /usr/include/secure/_stdio.h:56:62: note: expanded from macro 'snprintf'
>   __builtin___snprintf_chk (str, len, 0, __darwin_obsz(str), __VA_ARGS__)
>                                                              ^
> pg_dump.c:14549:45: warning: format specifies type 'long' but the argument
> has type 'long long' [-Wformat]
>         snprintf(bufx, sizeof(bufx), INT64_FORMAT, SEQ_MAXVALUE);
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
> ../../../src/include/pg_config_manual.h:51:22: note: expanded from macro
> 'SEQ_MAXVALUE'
> #define SEQ_MAXVALUE    INT64_MAX
>                         ^~~~~~~~~
> /usr/include/stdint.h:122:26: note: expanded from macro 'INT64_MAX'
> #define INT64_MAX        9223372036854775807LL
>                          ^~~~~~~~~~~~~~~~~~~~~
> /usr/include/secure/_stdio.h:56:62: note: expanded from macro 'snprintf'
>   __builtin___snprintf_chk (str, len, 0, __darwin_obsz(str), __VA_ARGS__)
>
> Thoughts?
>

INT64_MODIFIER is "l" on OSX, causing this warning. Perhaps there is
something better to do instead of casting blindly to int64. Thoughts?
-- 
Michael
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 7da5c41..a15c875 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -14545,8 +14545,8 @@ dumpSequence(Archive *fout, DumpOptions *dopt, TableInfo *tbinfo)
 	/* Make sure we are in proper schema */
 	selectSourceSchema(fout, tbinfo->dobj.namespace->dobj.name);
 
-	snprintf(bufm, sizeof(bufm), INT64_FORMAT, SEQ_MINVALUE);
-	snprintf(bufx, sizeof(bufx), INT64_FORMAT, SEQ_MAXVALUE);
+	snprintf(bufm, sizeof(bufm), INT64_FORMAT, (int64) SEQ_MINVALUE);
+	snprintf(bufx, sizeof(bufx), INT64_FORMAT, (int64) SEQ_MAXVALUE);
 
 	if (fout->remoteVersion >= 80400)
 	{
-- 
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers

Reply via email to