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
This commit is contained in:
parent
f76a85000b
commit
7292fd8f1c
|
@ -224,8 +224,8 @@ plpgsql_call_handler(PG_FUNCTION_ARGS)
|
||||||
bool nonatomic;
|
bool nonatomic;
|
||||||
PLpgSQL_function *func;
|
PLpgSQL_function *func;
|
||||||
PLpgSQL_execstate *save_cur_estate;
|
PLpgSQL_execstate *save_cur_estate;
|
||||||
ResourceOwner procedure_resowner = NULL;
|
ResourceOwner procedure_resowner;
|
||||||
Datum retval;
|
volatile Datum retval = (Datum) 0;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
nonatomic = fcinfo->context &&
|
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
|
* Therefore, be very wary of adding any code between here and the PG_TRY
|
||||||
* block.
|
* block.
|
||||||
*/
|
*/
|
||||||
if (nonatomic && func->requires_procedure_resowner)
|
procedure_resowner =
|
||||||
procedure_resowner =
|
(nonatomic && func->requires_procedure_resowner) ?
|
||||||
ResourceOwnerCreate(NULL, "PL/pgSQL procedure resources");
|
ResourceOwnerCreate(NULL, "PL/pgSQL procedure resources") : NULL;
|
||||||
|
|
||||||
PG_TRY();
|
PG_TRY();
|
||||||
{
|
{
|
||||||
|
@ -271,7 +271,7 @@ plpgsql_call_handler(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
plpgsql_exec_event_trigger(func,
|
plpgsql_exec_event_trigger(func,
|
||||||
(EventTriggerData *) fcinfo->context);
|
(EventTriggerData *) fcinfo->context);
|
||||||
retval = (Datum) 0;
|
/* there's no return value in this case */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
retval = plpgsql_exec_function(func, fcinfo,
|
retval = plpgsql_exec_function(func, fcinfo,
|
||||||
|
|
Loading…
Reference in New Issue