ccadar/klee — pull request #73 by delcypher (2013-12-07 14:08:38+00:00)
Title: Added support for printing Expr to llvm::raw_ostream

The implementation is a little hacky but is far simpler than changing
all the code to use llvm::raw_ostream instead of std::ostream.

Now we can do things like:

```
#include
...
ref e = /* Some expression */
DEBUG_WITH_TYPE("klee_something", dbgs() << "Expression:" << e << "\n");
```

We should probably come up with a convention for writing debug information out in KLEE e.g.

For solver stuff use

```
DEBUG_WITH_TYPE("klee_solver", dbgs() << "Expression:" << e << "\n");
// only shows output when use -debug=klee_solver command line argument and with Debug build.
```

For executor stuff use

```
DEBUG_WITH_TYPE("klee_executor", dbgs() << "Expression:" << e << "\n");
// only shows output when use -debug=klee_executor command line argument and with Debug build.
```

The DEBUG macros is documented in the [LLVM programmer's manual](http://llvm.org/docs/ProgrammersManual.html#the-debug-macro-and-debug-option)