From bf9165bb0c5cea71e1a9cfa0c584c4d176f6c36f Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 15 Dec 2024 15:50:07 -0500 Subject: 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. --- src/backend/utils/adt/xml.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/backend/utils/adt/xml.c') 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 */ -- cgit v1.2.3