Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2011-03-07 02:15:48 +0000
committerTom Lane2011-03-07 02:15:48 +0000
commit4172bd88300524efd1728c247fbc1eff3c1ca6ed (patch)
tree3fb12ae1435f980a6743af4c52d33718f2810d9a
parentdfe18f18d262df731378cbf38a4136f08ca119a5 (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.xs37
-rw-r--r--src/pl/plpython/plpython.c6
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)