diff options
author | Tom Lane | 2011-03-07 02:15:48 +0000 |
---|---|---|
committer | Tom Lane | 2011-03-07 02:15:48 +0000 |
commit | 4172bd88300524efd1728c247fbc1eff3c1ca6ed (patch) | |
tree | 3fb12ae1435f980a6743af4c52d33718f2810d9a | |
parent | dfe18f18d262df731378cbf38a4136f08ca119a5 (diff) |
Suppress some "variable might be clobbered by longjmp" warnings.
Seen with an older gcc version. I'm not sure these represent any real
risk factor, but still a bit scary. Anyway we have lots of other
volatile-marked variables in this code, so a couple more won't hurt.
-rw-r--r-- | src/pl/plperl/Util.xs | 37 | ||||
-rw-r--r-- | src/pl/plpython/plpython.c | 6 |
2 files changed, 22 insertions, 21 deletions
diff --git a/src/pl/plperl/Util.xs b/src/pl/plperl/Util.xs index eb1d15fc23e..7d0102b837f 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 e415aa36f41..4a9e2a4f181 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) |