implicit declaration of datumIsEqual in parse_coerce.c
Hi,
Not sure what changed, but I'm seeing this failure:
parse_coerce.c: In function ‘coerce_type’:
parse_coerce.c:345:9: warning: implicit declaration of function ‘datumIsEqual’ [-Wimplicit-function-declaration]
345 | if (!datumIsEqual(newcon->constvalue, val2, false, newcon->constlen))
| ^~~~~~~~~~~~
Not sure if this because of compiler version (I'm on gcc 9.2.1) or
something else - I don't see any obvious changes to relevant parts of
the code, but I haven't dug too much.
Simply including 'utils/datum.h' resolves the issue.
regards
--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Tomas Vondra <tomas.vondra@2ndquadrant.com> writes:
Not sure what changed, but I'm seeing this failure:
parse_coerce.c: In function ‘coerce_type’:
parse_coerce.c:345:9: warning: implicit declaration of function ‘datumIsEqual’ [-Wimplicit-function-declaration]
345 | if (!datumIsEqual(newcon->constvalue, val2, false, newcon->constlen))
| ^~~~~~~~~~~~
That's inside "#ifdef RANDOMIZE_ALLOCATED_MEMORY", which probably
explains why most of us aren't seeing it. My guess is somebody
removed an #include without realizing that this chunk of code
needed it.
regards, tom lane
On Tue, Apr 07, 2020 at 05:16:58PM -0400, Tom Lane wrote:
That's inside "#ifdef RANDOMIZE_ALLOCATED_MEMORY", which probably
explains why most of us aren't seeing it. My guess is somebody
removed an #include without realizing that this chunk of code
needed it.
[cough]
commit: 4dbcb3f844eca4a401ce06aa2781bd9a9be433e9
author: Tom Lane <tgl@sss.pgh.pa.us>
date: Sat, 14 Mar 2020 14:42:22 -0400
Restructure polymorphic-type resolution in funcapi.c.
[...]
@@ -26,7 +25,6 @@
#include "parser/parse_relation.h"
#include "parser/parse_type.h"
#include "utils/builtins.h"
-#include "utils/datum.h"
#include "utils/lsyscache.h"
--
Michael
Michael Paquier <michael@paquier.xyz> writes:
On Tue, Apr 07, 2020 at 05:16:58PM -0400, Tom Lane wrote:
That's inside "#ifdef RANDOMIZE_ALLOCATED_MEMORY", which probably
explains why most of us aren't seeing it. My guess is somebody
removed an #include without realizing that this chunk of code
needed it.
[cough]
Bleagh. Either of you want to put it back? (Maybe with a comment
this time, like "needed for datumIsEqual()".)
Curiously, there are no buildfarm warnings about this, even though we have
at least one member running with RANDOMIZE_ALLOCATED_MEMORY. Wonder why?
regards, tom lane
On Tue, Apr 07, 2020 at 10:39:30PM -0400, Tom Lane wrote:
On Tue, Apr 07, 2020 at 05:16:58PM -0400, Tom Lane wrote:
That's inside "#ifdef RANDOMIZE_ALLOCATED_MEMORY", which probably
explains why most of us aren't seeing it. My guess is somebody
removed an #include without realizing that this chunk of code
needed it.
Curiously, there are no buildfarm warnings about this, even though we have
at least one member running with RANDOMIZE_ALLOCATED_MEMORY. Wonder why?
The RANDOMIZE_ALLOCATED_MEMORY buildfarm members use xlc, which disables this
warning by default. (Given flag -qinfo=pro, it would warn.)