new plan: functions that want 'tmp' can declare it

This commit is contained in:
Benjamin Peterson 2010-11-20 04:31:07 +00:00
parent b304d0b46f
commit d8f6597318
2 changed files with 6 additions and 23 deletions

View File

@ -365,10 +365,7 @@ class Obj2ModVisitor(PickleVisitor):
self.emit("int", 0) self.emit("int", 0)
self.emit("obj2ast_%s(PyObject* obj, %s* out, PyArena* arena)" % (name, ctype), 0) self.emit("obj2ast_%s(PyObject* obj, %s* out, PyArena* arena)" % (name, ctype), 0)
self.emit("{", 0) self.emit("{", 0)
self.emit("PyObject* tmp = NULL;", 1)
self.emit("int isinstance;", 1) self.emit("int isinstance;", 1)
# Prevent compiler warnings about unused variable.
self.emit("tmp = tmp;", 1)
self.emit("", 0) self.emit("", 0)
def sumTrailer(self, name, add_label=False): def sumTrailer(self, name, add_label=False):
@ -403,6 +400,7 @@ class Obj2ModVisitor(PickleVisitor):
def complexSum(self, sum, name): def complexSum(self, sum, name):
self.funcHeader(name) self.funcHeader(name)
self.emit("PyObject *tmp = NULL;", 1)
for a in sum.attributes: for a in sum.attributes:
self.visitAttributeDeclaration(a, name, sum=sum) self.visitAttributeDeclaration(a, name, sum=sum)
self.emit("", 0) self.emit("", 0)

View File

@ -3374,10 +3374,9 @@ failed:
int int
obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena) obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena)
{ {
PyObject* tmp = NULL;
int isinstance; int isinstance;
tmp = tmp;
PyObject *tmp = NULL;
if (obj == Py_None) { if (obj == Py_None) {
*out = NULL; *out = NULL;
@ -3523,10 +3522,9 @@ obj2ast_mod(PyObject* obj, mod_ty* out, PyArena* arena)
int int
obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena) obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
{ {
PyObject* tmp = NULL;
int isinstance; int isinstance;
tmp = tmp;
PyObject *tmp = NULL;
int lineno; int lineno;
int col_offset; int col_offset;
@ -4719,10 +4717,9 @@ obj2ast_stmt(PyObject* obj, stmt_ty* out, PyArena* arena)
int int
obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena) obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
{ {
PyObject* tmp = NULL;
int isinstance; int isinstance;
tmp = tmp;
PyObject *tmp = NULL;
int lineno; int lineno;
int col_offset; int col_offset;
@ -5835,9 +5832,7 @@ obj2ast_expr(PyObject* obj, expr_ty* out, PyArena* arena)
int int
obj2ast_expr_context(PyObject* obj, expr_context_ty* out, PyArena* arena) obj2ast_expr_context(PyObject* obj, expr_context_ty* out, PyArena* arena)
{ {
PyObject* tmp = NULL;
int isinstance; int isinstance;
tmp = tmp;
isinstance = PyObject_IsInstance(obj, (PyObject *)Load_type); isinstance = PyObject_IsInstance(obj, (PyObject *)Load_type);
if (isinstance == -1) { if (isinstance == -1) {
@ -5895,10 +5890,9 @@ obj2ast_expr_context(PyObject* obj, expr_context_ty* out, PyArena* arena)
int int
obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena) obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
{ {
PyObject* tmp = NULL;
int isinstance; int isinstance;
tmp = tmp;
PyObject *tmp = NULL;
if (obj == Py_None) { if (obj == Py_None) {
*out = NULL; *out = NULL;
@ -6018,9 +6012,7 @@ obj2ast_slice(PyObject* obj, slice_ty* out, PyArena* arena)
int int
obj2ast_boolop(PyObject* obj, boolop_ty* out, PyArena* arena) obj2ast_boolop(PyObject* obj, boolop_ty* out, PyArena* arena)
{ {
PyObject* tmp = NULL;
int isinstance; int isinstance;
tmp = tmp;
isinstance = PyObject_IsInstance(obj, (PyObject *)And_type); isinstance = PyObject_IsInstance(obj, (PyObject *)And_type);
if (isinstance == -1) { if (isinstance == -1) {
@ -6046,9 +6038,7 @@ obj2ast_boolop(PyObject* obj, boolop_ty* out, PyArena* arena)
int int
obj2ast_operator(PyObject* obj, operator_ty* out, PyArena* arena) obj2ast_operator(PyObject* obj, operator_ty* out, PyArena* arena)
{ {
PyObject* tmp = NULL;
int isinstance; int isinstance;
tmp = tmp;
isinstance = PyObject_IsInstance(obj, (PyObject *)Add_type); isinstance = PyObject_IsInstance(obj, (PyObject *)Add_type);
if (isinstance == -1) { if (isinstance == -1) {
@ -6154,9 +6144,7 @@ obj2ast_operator(PyObject* obj, operator_ty* out, PyArena* arena)
int int
obj2ast_unaryop(PyObject* obj, unaryop_ty* out, PyArena* arena) obj2ast_unaryop(PyObject* obj, unaryop_ty* out, PyArena* arena)
{ {
PyObject* tmp = NULL;
int isinstance; int isinstance;
tmp = tmp;
isinstance = PyObject_IsInstance(obj, (PyObject *)Invert_type); isinstance = PyObject_IsInstance(obj, (PyObject *)Invert_type);
if (isinstance == -1) { if (isinstance == -1) {
@ -6198,9 +6186,7 @@ obj2ast_unaryop(PyObject* obj, unaryop_ty* out, PyArena* arena)
int int
obj2ast_cmpop(PyObject* obj, cmpop_ty* out, PyArena* arena) obj2ast_cmpop(PyObject* obj, cmpop_ty* out, PyArena* arena)
{ {
PyObject* tmp = NULL;
int isinstance; int isinstance;
tmp = tmp;
isinstance = PyObject_IsInstance(obj, (PyObject *)Eq_type); isinstance = PyObject_IsInstance(obj, (PyObject *)Eq_type);
if (isinstance == -1) { if (isinstance == -1) {
@ -6354,10 +6340,9 @@ failed:
int int
obj2ast_excepthandler(PyObject* obj, excepthandler_ty* out, PyArena* arena) obj2ast_excepthandler(PyObject* obj, excepthandler_ty* out, PyArena* arena)
{ {
PyObject* tmp = NULL;
int isinstance; int isinstance;
tmp = tmp;
PyObject *tmp = NULL;
int lineno; int lineno;
int col_offset; int col_offset;