We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is your feature request related to a problem? Please describe.
A typical test pattern in unittets is TEST_F(IFDSTaintAnalysisTest, TaintTest_04) { initialize({PathToLlFiles + "dummy_source_sink/taint_04_cpp_dbg.ll"}); IFDSSolver_P TaintSolver(*TaintProblem); TaintSolver.solve(); map<int, set> GroundTruth; GroundTruth[19] = set{"18"}; GroundTruth[24] = set{"23"}; compareResults(GroundTruth); }
Specifying individual IDs is very fragile since it depends on how clang compiles and a single change can break everything.
Describe the solution you'd like A more flexible/less fragile pattern
e.g. specify the instruction pattern (with filters/qulifiers) %kIVSize = alloca i32, align 4, !psr.id !35 | ID: 7
Something like IDLookup.Builder.IRpattern("%kIVSize = alloca i32, align 4").inFunction("main").afterIRpattern("%p = alloca %struct.Params").build().getID();
The text was updated successfully, but these errors were encountered:
I agree that this is fragile. So far we have not had problems with that, which I don't mean as an excuse not to do it right.
Sorry, something went wrong.
One example is the differences than result between stdlibc++ and libcxx
meret-boe
No branches or pull requests
Is your feature request related to a problem? Please describe.
A typical test pattern in unittets is
TEST_F(IFDSTaintAnalysisTest, TaintTest_04) {
initialize({PathToLlFiles + "dummy_source_sink/taint_04_cpp_dbg.ll"});
IFDSSolver_P TaintSolver(*TaintProblem);
TaintSolver.solve();
map<int, set> GroundTruth;
GroundTruth[19] = set{"18"};
GroundTruth[24] = set{"23"};
compareResults(GroundTruth);
}
Specifying individual IDs is very fragile since it depends on how clang compiles and a single change can break everything.
Describe the solution you'd like
A more flexible/less fragile pattern
e.g. specify the instruction pattern (with filters/qulifiers)
%kIVSize = alloca i32, align 4, !psr.id !35 | ID: 7
Something like
IDLookup.Builder.IRpattern("%kIVSize = alloca i32, align 4").inFunction("main").afterIRpattern("%p = alloca %struct.Params").build().getID();
The text was updated successfully, but these errors were encountered: