aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2019-12-11 10:01:06 +0900
committerMichael Paquier <michael@paquier.xyz>2019-12-11 10:01:06 +0900
commitc341c7d391e256f80cfbae53b4f55278bffca699 (patch)
treed876bb8e5ad278591064350ca6acee2a98bf828c
parent8729fa72483f8a9acf299508bb2cbae1aa9a29b8 (diff)
downloadpostgresql-c341c7d391e256f80cfbae53b4f55278bffca699.tar.gz
postgresql-c341c7d391e256f80cfbae53b4f55278bffca699.zip
Fix some compiler warnings with timestamp parsing in formatting.c
gcc-7 used with a sufficient optimization level complains about warnings around do_to_timestamp() regarding the initialization and handling of some of its variables. Recent commits 66c74f8 and d589f94 made things made the interface more confusing, so document which variables are always expected and initialize properly the optional ones when they are set. Author: Andrey Lepikhov, Michael Paquier Discussion: https://postgr.es/m/a7e28b83-27b1-4e1c-c76b-4268c4b785bc@postgrespro.ru
-rw-r--r--src/backend/utils/adt/formatting.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c
index f7175df8da6..8fcbc2267f9 100644
--- a/src/backend/utils/adt/formatting.c
+++ b/src/backend/utils/adt/formatting.c
@@ -4128,7 +4128,7 @@ parse_datetime(text *date_txt, text *fmt, bool strict, Oid *typid,
{
struct pg_tm tm;
fsec_t fsec;
- int fprec = 0;
+ int fprec;
uint32 flags;
do_to_timestamp(date_txt, fmt, strict, &tm, &fsec, &fprec, &flags, have_error);
@@ -4318,11 +4318,18 @@ do_to_timestamp(text *date_txt, text *fmt, bool std,
int fmask;
bool incache = false;
+ Assert(tm != NULL);
+ Assert(fsec != NULL);
+
date_str = text_to_cstring(date_txt);
ZERO_tmfc(&tmfc);
ZERO_tm(tm);
*fsec = 0;
+ if (fprec)
+ *fprec = 0;
+ if (flags)
+ *flags = 0;
fmask = 0; /* bit mask for ValidateDate() */
fmt_len = VARSIZE_ANY_EXHDR(fmt);