[pypy-svn] r21558 - in pypy/dist/pypy/translator/llvm: . test
rxe at codespeak.net
rxe at codespeak.net
Fri Dec 23 19:00:10 CET 2005
Author: rxe
Date: Fri Dec 23 19:00:08 2005
New Revision: 21558
Modified:
pypy/dist/pypy/translator/llvm/funcnode.py
pypy/dist/pypy/translator/llvm/test/test_merge_if_blocks.py
Log:
arrghh - im an idiot!
Modified: pypy/dist/pypy/translator/llvm/funcnode.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/funcnode.py (original)
+++ pypy/dist/pypy/translator/llvm/funcnode.py Fri Dec 23 19:00:08 2005
@@ -182,8 +182,8 @@
defaultlink = link
continue
- exitcase = link.llexitcase
- if block.exitswitch.concretetype is lltype.Char:
+ exitcase = link.llexitcase
+ if block.exitswitch.concretetype in [lltype.Char, lltype.UniChar]:
exitcase = ord(exitcase)
value_labels.append( (exitcase,
self.block_to_name[link.target]) )
Modified: pypy/dist/pypy/translator/llvm/test/test_merge_if_blocks.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/test/test_merge_if_blocks.py (original)
+++ pypy/dist/pypy/translator/llvm/test/test_merge_if_blocks.py Fri Dec 23 19:00:08 2005
@@ -37,6 +37,19 @@
for i in range(0, 50):
assert basic(i) == merge_if_blocks_chr(i)
+def test_merge_if_blocks_uni():
+ def merge_if_blocks_uni(i):
+ c = unichr(i)
+ if c == u'\x05':
+ return 1005
+ elif c == u'!':
+ return 1008
+ return 2222
+ basic = compile_optimized_function(merge_if_blocks_uni , [int])
+ for i in range(0, 50):
+ assert basic(i) == merge_if_blocks_uni(i)
+
+
def test_merge_if_blocks_many():
def merge_if_blocks_many(i):
if i == 0:
More information about the Pypy-commit
mailing list