Hi Radu,

Fixing the compilation issue is the easy part: it looks like llvm-g++ really wants klee_make_symbolic declared and the correct thing is to add "#include <klee/klee.h>" and the corresponding "-I <path-to-klee>/include" flag.

However, KLEE has only partial support for C++, and you'll likely run into more significant issues, such as unhandled externals and intrinsics.

Cristian

On 17/03/14 09:04, Radu Stoenescu wrote:
Hello,

I am currently in the experimentation phase of using Klee and I have
succeed in running klee over a number of C programs.

I have also tried doing so with some C++ code:

// Header Files
#include <iostream>
#include <stdio.h>

using namespace std;

// Class Declaration
class person
{
     //Access - Specifier
     public:

     //Varibale Declaration
     string name;
     int number;

     void printName(int x) {
         if (x > 10)
             cout << name;
         else
             cout << "You have no name";
     }
};

//Main Function
int main()
{
     // Object Creation For Class
     person obj;

obj.name <http://obj.name> = "Foo";

     int a;
     klee_make_symbolic(&a, sizeof(a), "a");
     obj.printName(a);

     return 0;
}

I'm compiling it using:

llvm-g++ -B/usr/lib/x86_64-linux-gnu --emit-llvm -c -g

And I get the following error when invoking klee:

main.cpp:35: error: ‘klee_make_symbolic’ was not declared in this scope

Since I'm not doing the linking phase I thought this shouldn't occur.

Many thanks,

--
Radu Stoenescu


_______________________________________________
klee-dev mailing list
klee-dev@imperial.ac.uk
https://mailman.ic.ac.uk/mailman/listinfo/klee-dev


_______________________________________________
klee-dev mailing list
klee-dev@imperial.ac.uk
https://mailman.ic.ac.uk/mailman/listinfo/klee-dev

Reply via email to