Under-constrained symbolic execution : correctness checking for real code