Hi, I created an attachment on the bug page that seems to solve the failed assertion problem. It would be great if you had a look and see if there is anything wrong with the fix:
http://llvm.org/bugs/show_bug.cgi?id=6171#c5 Thanks, Stefan On Sat, May 15, 2010 at 6:56 PM, Daniel Dunbar <daniel.dunbar at gmail.com> wrote: > Yes, it looks the same. I should be able to get to this in a couple weeks, > ping me if you don't hear anything. > > ?- Daniel > > > On May 13, 2010, at 16:55, bgarvin at cse.unl.edu wrote: > >> Daniel, >> >> The switch statement in getWidthForLLVMType(llvm::Type t) is seeing >> t->getTypeID() >> as 10, which LLVM's Type.h maps to llvm::Type::StructTyID. ?That leads me >> to suspect that I am seeing http://llvm.org/bugs/show_bug.cgi?id=6171. >> I'll see what I can do to contribute to this bug report. >> >> Thanks, >> Brady >> >>> Hi Brady, >>> >>> The -load option is indeed the right path. >>> >>> The assertion you are hitting is probably something to do with an LLVM >>> type KLEE doesn't have support for, most likely some kind of vector >>> type. If you can get a small test case, please file a bug, it might >>> not be too hard to fix. >>> >>> - Daniel >>> >>> On Tue, May 11, 2010 at 12:03 PM, ?<bgarvin at cse.unl.edu> wrote: >>>> Hi, >>>> >>>> I'm trying to use klee on a subject that makes calls to the GMP and MPFR >>>> libraries. ?These libraries use a lot of inline assembly, but I can >>>> guarantee that their functions' arguments will always be concrete. >>>> Therefore, I hoped to build GMP and MPFR as shared objects for x86_64 >>>> and >>>> make them available to KLEE via the -load option. >>>> >>>> However, KLEE nonetheless complains about undefined references to >>>> __gmp_version, __gmpz_add, etc. ?It subsequently aborts with an >>>> assertion >>>> violation: >>>> >>>> Context.cpp:41: static unsigned int >>>> klee::Expr::getWidthForLLVMType(const >>>> llvm::Type*): Assertion `0 && "non-primitive type argument to >>>> Expr::getWidthForLLVMType()\n"' failed, >>>> >>>> which may be unrelated. ?As a sanity check, nm reports all of these >>>> symbols appropriately defined and in their proper sections. >>>> >>>> Either I have misunderstood the -load option, or I have missed a step in >>>> getting KLEE to find the symbols in the shared objects. ?My googling >>>> thus >>>> far hasn't turned up much, except that KLEE may use libffi. ?Any >>>> corrections to my understanding or pointers to documentation would be >>>> much >>>> appreciated. >>>> >>>> Thanks, >>>> Brady J. Garvin >>>> >>>> >>>> _______________________________________________ >>>> klee-dev mailing list >>>> klee-dev at keeda.stanford.edu >>>> http://keeda.Stanford.EDU/mailman/listinfo/klee-dev >>>> >>> >> >> >> _______________________________________________ >> klee-dev mailing list >> klee-dev at keeda.stanford.edu >> http://keeda.Stanford.EDU/mailman/listinfo/klee-dev > _______________________________________________ > klee-dev mailing list > klee-dev at keeda.stanford.edu > http://keeda.Stanford.EDU/mailman/listinfo/klee-dev >
