Bugzilla – Bug 146
Interpreter does not handle setne constant expression
Last modified: 2003-12-10 22:05:10
You need to log in before you can comment on or make changes to this bug.
The lli program fails on the following instruction when the -force-interpreter option is used: br bool setne (void ()* %_GLOBAL__D_lshaped_driver.cpp_00000000_A3849043, void ()* null), label %then.0.i, label %loopentry.i The lli program aborts with: Unhandled ConstantExpr: bool setne (void ()* %_GLOBAL__D_lshaped_driver.cpp_00000000_A3849043, void ()* null) Examination and some extra debugging added to lib/ExecutionEngine/Interpreter/Execution.cpp seems to indicate that the setne instruction is castable as a constant expression (which makes sense because null is constant and the %_GLOBAL... is the name of an internal function). However, the interpreter cannot interpret a setne constant expression, so lli aborts. I'll try to create a smaller test case later tonight.
This patch adds support for setne constant expressions (among others): http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20031208/010072.html Thanks, -Brian