SVF-tools / SVF

Static Value-Flow Analysis Framework for Source Code
http://svf-tools.github.io/SVF/
Other
1.39k stars 434 forks source link

SABER #50

Open zyw-nine opened 6 years ago

zyw-nine commented 6 years ago

your saber is flow-sensitive and field-sensitive and Context-Sensitive Interprocedural pointer analysis or not ?

yuleisui commented 6 years ago

Flow- field- and context-sensitive value-flows constructed using flow-insensitive Andersen's pointer analysis.

zyw-nine commented 6 years ago

In BreakConstantExpr.cpp ,line 88, you code is 88 "static ConstantExpr 89 hasConstantGEP (Value V) { 90 if (ConstantExpr * CE = dyn_cast(V)) { 91 if (CE->getOpcode() == Instruction::GetElementPtr) { 92 return CE; 93} else { 94for (unsigned index = 0; index < CE->getNumOperands(); ++index) { 95if (hasConstantGEP (CE->getOperand(index))) 96return CE; 97} 98} }

return 0;

}"

but I can't go to line 92 and 96, what is the instruction or code you can arrive the line 92 and 96?

yuleisui commented 6 years ago

will reach 93-96 If "CE->getOpcode() == Instruction::GetElementPtr" is not true (operator other than GetElementPtr).

It recursively expands the constant expression to flat all GetElementPtr CEs.