fcd icon indicating copy to clipboard operation
fcd copied to clipboard

An optimizing decompiler (modified to use remill semantics)

Results 22 fcd issues
Sort by recently updated
recently updated
newest added

This MR contains assorted bug fixes, bringing fcd+remill to a point where it is able to successfully decompile a simple function using debug build of [LLVM-7.0](https://github.com/llvm-mirror/llvm/commits/release_70) and [latest version of...

I've built FCD+Remill using Debug build of LLVM 4.0 to investigate other issue, but encountered this first: In `pass_argrec_remill.cpp:341` in function `ConvertRemillArgsToLocals()` ``` auto pc_type = remill::AddressType(module); auto arg_pc =...

The AST generation algorithm seems to perform boolean expression normalization when generating conditions. The implementation of the normalization algorithm seems to have significant performance issues that need to be addressed....

enhancement

The state of the AST generation algorithms and data structure codebase could be better and refactored with good programming practices in mind. The incorporation of [libclang](https://clang.llvm.org/docs/Tooling.html) for it's AST should...

enhancement

The AST generation algorithm does not consider most global entities in the input bitcode. Implementing handling of global entities, such as aggregate type definitions, global variables, function declarations, etc., would...

enhancement

The AST generation algorithm completely disregards floating point types and crashes if the input bitcode contains them. Needless to say, floats should be handled better.

enhancement

String literals are currently presented as initializer lists with ASCII values as characters instead of C string literals in output pseudocode. This should obviously not be the case long-term.

enhancement

Header declaration parsing was disabled for llvm-3.8 and lower. The feature relies on the `` header which was introduced in llvm-3.9. The code in `fcd/header_decls.cpp` and `fcd/clang/*` needs a refactor...

enhancement

The simple alias analysis pass housed in `fcd/pass_asaa.*` is currently littered with LLVM version `#ifdef` directives. There was some effort to keep it tidy, but LLVMs alias analysis has seen...

enhancement