Closed
Description
After the merge of #281, one regression test started failing.
Input
Run the following command from the regression-tests framework:
$ python3 runner.py features.corkami -r delayimports.ex
Output
Running 1 test case in retdec-regression-tests/features/corkami for commit 0259b1f7...
features.corkami.CorkamiTest (delayimports.ex) [ FAIL ] (4.55s)
F
======================================================================
FAIL: test (features.corkami.CorkamiTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "retdec-regression-tests/features/corkami/test.py", line 10, in test
assert self.out_c.funcs['entry_point'].calls('printf', 'ExitProcess')
AssertionError
----------------------------------------------------------------------
Ran 1 test in 0.024s
FAILED (failures=1)
Expected output
Running 1 test case in retdec-regression-tests/features/corkami for commit 0259b1f7...
features.corkami.CorkamiTest (delayimports.ex) [ OK ] (2.50s)
SUCCESS (1/1)
Notes
When I checked out a commit before the merge of #281 (0259b1f), the test passed. The original output contained the following code:
int32_t entry_point(void) {
// entry
printf(" * delay imports\n");
ExitProcess(0);
// UNREACHABLE
}
Now, after the merge of #281, the corresponding code is
int32_t (*g7)(int32_t) = (int32_t (*)(int32_t))0x401150;
int32_t entry_point(void) {
// entry
((int32_t (*)(int32_t))&g7)((int32_t)" * delay imports\n");
ExitProcess(0);
// UNREACHABLE
}
It seems that we are no longer able to decompile the call to printf()
.
Configuration
- Commit: 7138895 (current
master
) - 64b Arch Linux, GCC 7.3.1, Debug build of RetDec