Plans on SMG fixes
-
enable CI (#3 (closed)) -
fix easy problems detected by CI -
merge trunk
intosmg-master
-
!13 (merged) update CI after merge -
check aligned/packed attributes
-
-
merge fixes into smg-master
-
!8 (closed) petrov-8take2-fix-areNotEqual fixes #8 (closed)? -
!3 (merged) marchenko-smg-abstraction -
fixes levels #25 (closed) #9 (closed), lists #19 (closed) #10 #21
-
-
-
refactor: -
SMG consistency runtime checks, see #32 for details, see also upstream #712. -
unsupported features in input -
unsupported features (atexit, pthread_create, ...) -- fail with error? -
recursion -- two modes: strict fails (for competitions), default keeps searching for bugs and reports unknown instead of true -
cannot evaluate size / offset -- same as above?
-
-
get rid of HV-edge filter !29 - was necessary when HVEs was a flat collection
-
introduce methods #getHVEs(object)
,#getHVE(object, offset)
,#hasHVE(object, offset, bitsize)
-
other, more rare variants of filtering - depends on how we treat value sizes
-
maybe add backwards map value->HVEs with this value
-
get rid of PT-edge filter too? -
add backwards collection for PTEs so we can use same scheme as for HVEs
-
-
objects -
fix: stack allocations are not variables, move to separate collection in frame, forbid abstracting -
fix: invalid heap should still be in heap collection -
see which collections we need -
refactor collections into the small ones, return big ones as chained iterators over small -
isHeap, isStack, isGlobal, isExternal should be object's method, without lookup in an SMG collections -
isExternal is spreading in SMGState#pruneUnreachable
, so it is not an object's method. Split into isExternal and isReachableFromExternal?
-
-
refactor SMGObject
's hierarchy:-
make SMGAbstractObject
an abstract class underSMGObject
-
introduce children for SMGRegion
: variable, allocation, return object, string literal, function. This way we can be sure if something is an allocation and can add specifics inside.
-
-
-
evaluators, see !9
-
Edited by Петров Олег Максимович