提交 4172bd88 编写于 作者: T Tom Lane

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.
上级 dfe18f18
......@@ -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);
}
......
......@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册