Daniel Gustafsson <dan...@yesql.se> writes: > On 17 Apr 2025, at 00:12, Tom Lane <t...@sss.pgh.pa.us> wrote: >> The only alternative I can see that might stop the warning is if we >> can find a way to make it clearer to the optimizer that the FREE() >> isn't reached. But I'm not sure about a trustworthy way to make that >> happen.
> Yeah, that seems messy enough that someone down the line will go "why on > earth" > and we'll have to revisit this discussion. It can probably be made to work > but > I doubt it will be worth it compared to allocating on the heap. Looking through all of the callers of freeJsonLexContext, quite a lot of them use local JsonLexContext structs, and probably some of them are more performance-critical than these. So that raises the question of why are we seeing warnings for only these call sites? Maybe there is a more elegant way to suppress them. Still, I think that observation refutes my initial thought that we should rip out support for local JsonLexContext structs altogether. I'm inclined now to just do the minimal thing of changing these callers to use an allocated struct, and call it a day. (BTW, there seem to be only 2 places to change not 3; two of the warnings are pointing at the same variable.) regards, tom lane