summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2021-01-26 13:58:18 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2021-01-26 13:58:18 -0500
commit7292fd8f1c781278021407276474d9188845113d (patch)
tree521ecd0d5f5c52bb245b3e430731db24218fdda7 /src
parentf76a85000bba2f1b1c926cbbe525e47b246215f1 (diff)
downloadpostgresql-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.c12
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,