Author: Armin Rigo <ar...@tunes.org>
Branch: 
Changeset: r69416:8ccaadbf0ecf
Date: 2014-02-25 12:58 +0100
http://bitbucket.org/pypy/pypy/changeset/8ccaadbf0ecf/

Log:    More precise crash, better explanation

diff --git a/rpython/jit/codewriter/call.py b/rpython/jit/codewriter/call.py
--- a/rpython/jit/codewriter/call.py
+++ b/rpython/jit/codewriter/call.py
@@ -240,13 +240,19 @@
                 extraeffect = EffectInfo.EF_CAN_RAISE
             else:
                 extraeffect = EffectInfo.EF_CANNOT_RAISE
-        else:
-            assert not loopinvariant, (
+        #
+        # check that the result is really as expected
+        if loopinvariant:
+            assert extraeffect == EffectInfo.EF_LOOPINVARIANT, (
                 "in operation %r: this calls a _jit_loop_invariant_ function,"
-                " but it can have random effects")
-            assert not elidable, (
+                " but this contradicts other sources (e.g. it can have random"
+                " effects)" % (op,))
+        if elidable:
+            assert extraeffect in (EffectInfo.EF_ELIDABLE_CANNOT_RAISE,
+                                   EffectInfo.EF_ELIDABLE_CAN_RAISE), (
                 "in operation %r: this calls an _elidable_function_,"
-                " but it can have random effects")
+                " but this contradicts other sources (e.g. it can have random"
+                " effects)" % (op,))
         #
         effectinfo = effectinfo_from_writeanalyze(
             self.readwrite_analyzer.analyze(op, self.seen), self.cpu,
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to