Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@ltfish
Copy link
Member

@ltfish ltfish commented Dec 15, 2025

No description provided.

@ltfish ltfish self-assigned this Dec 15, 2025
@ltfish ltfish added the bug Something is broken label Dec 15, 2025
@angr-bot
Copy link
Member

Corpus decompilation diffs can be found at angr/dec-snapshots@master...angr/angr_5943

@codecov
Copy link

codecov bot commented Dec 15, 2025

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
1185 1 1184 70
View the full list of 1 ❄️ flaky test(s)
tests/analyses/decompiler/test_decompiler.py::TestDecompiler::test_decompiling_abnormal_switch_case_case3

Flake rate in main: 47.62% (Passed 66 times, Failed 60 times)

Stack Traces | 12.6s run time
self = <tests.analyses.decompiler.test_decompiler.TestDecompiler testMethod=test_decompiling_abnormal_switch_case_case3>
decompiler_options = None

    def test_decompiling_abnormal_switch_case_case3(self, decompiler_options=None):
        bin_path = os.path.join(test_location, "x86_64", "windows", "msvcr120.dll")
        proj = angr.Project(bin_path, auto_load_libs=False)
    
        cfg = proj.analyses.CFGFast(
            force_smart_scan=False, normalize=True, regions=[(0x18003C330, 0x18003C330 + 0x1000)]
        )
        f = proj.kb.functions[0x18003C330]
        d = proj.analyses[Decompiler].prep(fail_fast=True)(f, cfg=cfg.model, options=decompiler_options)
        print_decompilation_result(d)
        assert d.codegen.text.count("switch") == 1
        # assert d.codegen.text.count("goto LABEL_18003c3fc;") == 2
        # assert d.codegen.text.count("LABEL_18003c3fc:") == 1
        # 16 cases without a default case
        for i in range(16):
            assert f"case {i}:" in d.codegen.text
        assert "default:" not in d.codegen.text
    
        # a0 should be an integer and a1 should be a char pointer
        assert len(d.codegen.cfunc.arg_list) == 3
        arg0, arg1, arg2 = d.codegen.cfunc.arg_list
        arg0_type = arg0.type
        arg1_type = arg1.type
        arg2_type = arg2.type
>       assert isinstance(arg0_type, SimTypePointer), f"Unexpected arg0 type: {arg0_type}"
E       AssertionError: Unexpected arg0 type: unsigned long (64 bits)
E       assert False
E        +  where False = isinstance(unsigned long (64 bits), SimTypePointer)

.../analyses/decompiler/test_decompiler.py:4201: AssertionError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@ltfish ltfish merged commit b0651e6 into master Dec 15, 2025
48 of 50 checks passed
@ltfish ltfish deleted the fix/phoenix_loop_refinement_stop_at_loop_boundaries branch December 15, 2025 19:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something is broken

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants