On Thu, Mar 26, 2015 at 6:49 AM, Andres Freund <andres@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?