Francesco Bertolaccini

Results 52 issues of Francesco Bertolaccini

Converts Rellic to operate on Z3 expressions for as long as possible, only materializing to Clang AST before expression simplification. ~~Also keeps conditions in CNF without exponential blowup with a...

Invalid stores like `store i8 undef, i8* null` are ignored at the code lifting level ( https://github.com/lifting-bits/rellic/blob/master/lib/AST/IRToASTVisitor.cpp#L735-L738 ) , but they should be removed by a preprocessing pass.

Master branch uses a `substitutions` map in each pass to keep track of how AST nodes are substituted, but this not fine-grained enough. As an example, let's say we have...

Currently, some type information (e.g. `const`, `volatile`) regarding variables is lost. For example, this source code ```c struct foo { int x; }; typedef struct foo foo_t; int main(void) {...

enhancement
decomp
user-story

Rellic generates temporary local variables to store parameter values, instead of directly using the parameters themselves: ```c int foo(int a, int b, int c) { a = a * 2;...

enhancement
decomp
user-story

Currently, a loop such as this while(cond) { body } rest is lifted like this: while(cond) { body } if(!cond) { rest } It would be nice to get rid...

enhancement
decomp
user-story

Currently, Rellic always avoids generating `goto`s, favoring `if`s and `while`s. This is not always favorable, e.g. ```c extern int doA(void); extern void undoA(); extern int doB(void); extern void undoB(); extern...

enhancement
decomp
user-story