Hi,

Thanks for the pointer.

As for this error message:
WARNING: this target does not support the llvm.stacksave intrinsic.
LLVM ERROR: Code generator does not support intrinsic function
'llvm.uadd.with.overflow.i64'!

Is this also caused by unsupported inline asm? Apart from the __asm__
calls, are there any other C constructs that might generate inlined
asm?

Thanks,
Jiaqi

On Wed, Feb 22, 2012 at 1:02 AM, Paul Marinescu
<[email protected]> wrote:
> The error can be caused by an inline asm instruction in your program (e.g.
> call i32 asm ...). KLEE does not support them.
>
> Paul
>
>
> On 21/02/12 09:46, Jiaqi Tan wrote:
>>
>> Hi,
>>
>> I did some poking around the KLEE source, and found that this error is
>> being generated due to the assertion here (code segment included):
>>
>> ===== begin code =====
>> const Cell&  Executor::eval(KInstruction *ki, unsigned index,
>>                            ExecutionState&state) const {
>>
>>   assert(index<  ki->inst->getNumOperands());
>>   int vnumber = ki->operands[index];
>>
>>   if (vnumber == -1) {
>>          std::cout<<  "Assert about to fail: #operands:"<<
>> ki->inst->getNumOperands()<<  " index:"<<  index<<  " vnumber:"<<
>> vnumber<<  std::endl;
>>   }
>>
>>   assert(vnumber != -1&&
>>          "Invalid operand to eval(), not a value or constant!");
>> ===== end code =====
>>
>> I suppose -1 is used as a special flag value here? Because later on,
>> (- vnumber - 2) is used to grab a constant 3 lines down in the code.
>> What does the operands array in KInstruction store, and where is it
>> populated?
>>
>> Thanks!
>> Jiaqi
>>
>> On Mon, Feb 20, 2012 at 1:52 PM, Jiaqi Tan<[email protected]>  wrote:
>>>
>>> Hi,
>>>
>>> I'm trying to run BusyBox, and I'm getting this error message:
>>>
>>> KLEE: WARNING: executable has module level assembly (ignoring)
>>> KLEE: WARNING: calling external: syscall(54, 0, 21505, 231590832)
>>> KLEE: WARNING: calling __user_main with extra arguments.
>>> KLEE: WARNING: calling external: __xstat64(3, 231196304, 231603064)
>>> klee: Executor.cpp:1001: const klee::Cell&
>>> klee::Executor::eval(klee::KInstruction*, unsigned int,
>>> klee::ExecutionState&) const: Assertion `vnumber != -1&&  "Invalid
>>>
>>> operand to eval(), not a value or constant!"' failed.
>>> 0  klee 0x089a79f8
>>> Aborted
>>>
>>> Does anybody have any idea where the source of the problem might be?
>>> I'm not quite sure where to get started to figure out where the
>>> problem is. Is this due to a compilation or linking problem due to
>>> missing code or libraries?
>>>
>>> Thanks!
>>> Jiaqi Tan
>>
>> _______________________________________________
>> klee-dev mailing list
>> [email protected]
>> http://keeda.Stanford.EDU/mailman/listinfo/klee-dev
>
>
_______________________________________________
klee-dev mailing list
[email protected]
http://keeda.Stanford.EDU/mailman/listinfo/klee-dev

Reply via email to