avast / avast/retdec

dead code elimination sometimes eliminates non-dead code.

Open
#1,102 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
8.6k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

I guess it is because lifting is done incorrectly sometimes. If some code is present in the binary it may be that it is not dead, because optimizing compilers are meant to eliminate it themselves. And even in debug builds dead code can bear some insight on the data layout.

So it is proposed to remove dead code elimination passes.

Contributor guide

No contributing guide indexed for this repository

Research direction

No files, tests, or entry points are named. Start by locating the dead code elimination passes and reviewing how lifting feeds them, then determine whether removing those passes preserves code and data-layout insight in normal and debug builds. Done means the proposed passes are removed or the reported incorrect elimination is otherwise resolved, with verification for both build modes.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers, reverse-engineering
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.