cloud9_root/src/cloud9/lib/Module/ProgramDependenceGraph.cpp
// Write a query asking: "What is program dependent to the passed instruction?" VarName
// is the name of the Z3 variable to use in the universal quantification.
// The variable will first be defined and then used in the query.
Write a query asking: "What is program dependent to the passed instruction?" VarName
is the name of the Z3 variable to use in the universal quantification.
The variable will first be defined and then used in the query.
Write a query asking : " What is program dependent to the passed instruction? " VarName is the name of the Z3 variable to use in the universal quantification . The variable will first be defined and then used in the query .
void PDG::writeUniversalQuery(Instruction *i, std::string varName, raw_fd_ostream *os) {
	(*os) << "(declare-var " + varName + " s)\n";
	unsigned instId = IDMap.saveAndGetIntID(i);
	std::string idStr = Utils::to_const_bitvec(instId);
	(*os) << "(query (prog-dep " << idStr << " " << varName << ") :print-answer true)\n";
}
void PDG :: writeUniversalQuery ( Instruction * i , std :: string varName , raw_fd_ostream * os ) { ( * os ) << " " + varName + " \n " ; unsigned instId = IDMap . saveAndGetIntID ( i ) ; std :: string idStr = Utils :: to_const_bitvec ( instId ) ; ( * os ) << " " << idStr << " " << varName << " \n " ; }
Write a query asking: "What is program dependent to the passed instruction?"
Write a query asking : " What is program dependent to the passed instruction? "
// Write a definition for the variable // s is the sort of all the IDs used in Z3 // Write the query