From e48bc77a49447eedb8d753fd293509e7f934956f Mon Sep 17 00:00:00 2001 From: Robert Bradshaw Date: Wed, 8 Oct 2008 00:05:25 -0700 Subject: [PATCH] Fix ticket #72, (compiler crash on bad code) --- Cython/Compiler/Optimize.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cython/Compiler/Optimize.py b/Cython/Compiler/Optimize.py index 07f2e0fb..c26bd913 100644 --- a/Cython/Compiler/Optimize.py +++ b/Cython/Compiler/Optimize.py @@ -39,12 +39,12 @@ class SwitchTransform(Visitor.VisitorTransform): if is_common_value(cond.operand1, cond.operand1): if isinstance(cond.operand2, ExprNodes.ConstNode): return cond.operand1, [cond.operand2] - elif hasattr(cond.operand2, 'entry') and cond.operand2.entry.is_const: + elif hasattr(cond.operand2, 'entry') and cond.operand2.entry and cond.operand2.entry.is_const: return cond.operand1, [cond.operand2] if is_common_value(cond.operand2, cond.operand2): if isinstance(cond.operand1, ExprNodes.ConstNode): return cond.operand2, [cond.operand1] - elif hasattr(cond.operand1, 'entry') and cond.operand1.entry.is_const: + elif hasattr(cond.operand1, 'entry') and cond.operand1.entry and cond.operand1.entry.is_const: return cond.operand2, [cond.operand1] elif (isinstance(cond, ExprNodes.BoolBinopNode) and cond.operator == 'or'): -- 2.26.2