summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2024-12-15 20:50:07 +0000
committerTom Lane2024-12-15 20:50:07 +0000
commitbf9165bb0c5cea71e1a9cfa0c584c4d176f6c36f (patch)
tree9a91f5ab346e35167b5b18ac9c6dadcc458cdf64
parent530f89e648da3a5505920322dcd4e00e15559f66 (diff)
Declare a couple of variables inside not outside a PG_TRY block.
I went through the buildfarm's reports of "warning: variable 'foo' might be clobbered by 'longjmp' or 'vfork' [-Wclobbered]". As usual, none of them are live problems according to my understanding of the effects of setjmp/longjmp, to wit that local variables might revert to their values as of PG_TRY entry, due to being kept in registers. But I did happen to notice that XmlTableGetValue's "cstr" variable doesn't need to be declared outside the PG_TRY block at all (thus giving further proof that the -Wclobbered warning has little connection to real problems). We might as well move it inside, and "cur" too, in hopes of eliminating one of the bogus warnings.
-rw-r--r--src/backend/utils/adt/xml.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
index 4ad5e04f48a..0898cb1be4c 100644
--- a/src/backend/utils/adt/xml.c
+++ b/src/backend/utils/adt/xml.c
@@ -4926,10 +4926,8 @@ XmlTableGetValue(TableFuncScanState *state, int colnum,
Oid typid, int32 typmod, bool *isnull)
{
#ifdef USE_LIBXML
- XmlTableBuilderData *xtCxt;
Datum result = (Datum) 0;
- xmlNodePtr cur;
- char *cstr = NULL;
+ XmlTableBuilderData *xtCxt;
volatile xmlXPathObjectPtr xpathobj = NULL;
xtCxt = GetXmlTableBuilderPrivateData(state, "XmlTableGetValue");
@@ -4943,13 +4941,15 @@ XmlTableGetValue(TableFuncScanState *state, int colnum,
*isnull = false;
- cur = xtCxt->xpathobj->nodesetval->nodeTab[xtCxt->row_count - 1];
-
Assert(xtCxt->xpathscomp[colnum] != NULL);
PG_TRY();
{
+ xmlNodePtr cur;
+ char *cstr = NULL;
+
/* Set current node as entry point for XPath evaluation */
+ cur = xtCxt->xpathobj->nodesetval->nodeTab[xtCxt->row_count - 1];
xtCxt->xpathcxt->node = cur;
/* Evaluate column path */