diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2021-01-26 13:58:18 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2021-01-26 13:58:18 -0500 |
commit | 7292fd8f1c781278021407276474d9188845113d (patch) | |
tree | 521ecd0d5f5c52bb245b3e430731db24218fdda7 /src | |
parent | f76a85000bba2f1b1c926cbbe525e47b246215f1 (diff) | |
download | postgresql-7292fd8f1c781278021407276474d9188845113d.tar.gz |
Suppress compiler warnings from commit ee895a655.
For obscure reasons, some buildfarm members are now generating
complaints about plpgsql_call_handler's "retval" variable possibly
being used uninitialized. It seems no less safe than it was before
that commit, but these complaints are (mostly?) new. I trust that
initializing the variable where it's declared will be enough to
shut that up.
I also notice that some compilers are warning about setjmp clobber
of the same variable, which is maybe a bit more defensible. Mark
it volatile to silence that.
Also, rearrange the logic to give procedure_resowner a single
point of initialization, in hopes of silencing some setjmp-clobber
warnings about that. (Marking it volatile would serve too, but
its sibling variables are depending on single assignment, so let's
stick with that method.)
Discussion: https://postgr.es/m/E1l4F1z-0000cN-Lx@gemulon.postgresql.org
Diffstat (limited to 'src')
-rw-r--r-- | src/pl/plpgsql/src/pl_handler.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/pl/plpgsql/src/pl_handler.c b/src/pl/plpgsql/src/pl_handler.c index 97f4264c28..00aace2f39 100644 --- a/src/pl/plpgsql/src/pl_handler.c +++ b/src/pl/plpgsql/src/pl_handler.c @@ -224,8 +224,8 @@ plpgsql_call_handler(PG_FUNCTION_ARGS) bool nonatomic; PLpgSQL_function *func; PLpgSQL_execstate *save_cur_estate; - ResourceOwner procedure_resowner = NULL; - Datum retval; + ResourceOwner procedure_resowner; + volatile Datum retval = (Datum) 0; int rc; nonatomic = fcinfo->context && @@ -254,9 +254,9 @@ plpgsql_call_handler(PG_FUNCTION_ARGS) * Therefore, be very wary of adding any code between here and the PG_TRY * block. */ - if (nonatomic && func->requires_procedure_resowner) - procedure_resowner = - ResourceOwnerCreate(NULL, "PL/pgSQL procedure resources"); + procedure_resowner = + (nonatomic && func->requires_procedure_resowner) ? + ResourceOwnerCreate(NULL, "PL/pgSQL procedure resources") : NULL; PG_TRY(); { @@ -271,7 +271,7 @@ plpgsql_call_handler(PG_FUNCTION_ARGS) { plpgsql_exec_event_trigger(func, (EventTriggerData *) fcinfo->context); - retval = (Datum) 0; + /* there's no return value in this case */ } else retval = plpgsql_exec_function(func, fcinfo, |