diff --git a/src/pl/plperl/Util.xs b/src/pl/plperl/Util.xs index eb1d15fc23..7d0102b837 100644 --- a/src/pl/plperl/Util.xs +++ b/src/pl/plperl/Util.xs @@ -36,37 +36,38 @@ static void do_util_elog(int level, SV *msg) { - MemoryContext oldcontext = CurrentMemoryContext; - char *cmsg = NULL; + MemoryContext oldcontext = CurrentMemoryContext; + char * volatile cmsg = NULL; - PG_TRY(); - { + PG_TRY(); + { cmsg = sv2cstr(msg); - elog(level, "%s", cmsg); + elog(level, "%s", cmsg); pfree(cmsg); - } - PG_CATCH(); - { - ErrorData *edata; + } + PG_CATCH(); + { + ErrorData *edata; - /* Must reset elog.c's state */ - MemoryContextSwitchTo(oldcontext); - edata = CopyErrorData(); - FlushErrorState(); + /* Must reset elog.c's state */ + MemoryContextSwitchTo(oldcontext); + edata = CopyErrorData(); + FlushErrorState(); if (cmsg) pfree(cmsg); - /* Punt the error to Perl */ - croak("%s", edata->message); - } - PG_END_TRY(); + /* Punt the error to Perl */ + croak("%s", edata->message); + } + PG_END_TRY(); } static text * sv2text(SV *sv) { - char *str = sv2cstr(sv); + char *str = sv2cstr(sv); + return cstring_to_text(str); } diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c index e415aa36f4..4a9e2a4f18 100644 --- a/src/pl/plpython/plpython.c +++ b/src/pl/plpython/plpython.c @@ -1516,7 +1516,7 @@ static PLyProcedure * PLy_procedure_get(Oid fn_oid, bool is_trigger) { HeapTuple procTup; - PLyProcedureEntry *entry; + PLyProcedureEntry * volatile entry; bool found; procTup = SearchSysCache1(PROCOID, ObjectIdGetDatum(fn_oid)); @@ -3234,7 +3234,7 @@ PLy_spi_prepare(PyObject *self, PyObject *args) void *tmpplan; volatile MemoryContext oldcontext; volatile ResourceOwner oldowner; - int nargs; + volatile int nargs; if (!PyArg_ParseTuple(args, "s|O", &query, &list)) return NULL; @@ -3470,7 +3470,7 @@ PLy_spi_execute_plan(PyObject *ob, PyObject *list, long limit) PG_TRY(); { - char *nulls; + char * volatile nulls; volatile int j; if (nargs > 0)