aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/xml.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2024-12-15 15:50:07 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2024-12-15 15:50:07 -0500
commitbf9165bb0c5cea71e1a9cfa0c584c4d176f6c36f (patch)
tree9a91f5ab346e35167b5b18ac9c6dadcc458cdf64 /src/backend/utils/adt/xml.c
parent530f89e648da3a5505920322dcd4e00e15559f66 (diff)
downloadpostgresql-bf9165bb0c5cea71e1a9cfa0c584c4d176f6c36f.tar.gz
postgresql-bf9165bb0c5cea71e1a9cfa0c584c4d176f6c36f.zip
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.
Diffstat (limited to 'src/backend/utils/adt/xml.c')
-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 */