* SimStruct: Remove _arch_memo to fix the cache leak.
* Fix the comment
* Better typing.
* Fix RustSimTypes.
* More fixes.
* Fix caching for anonymous structs.
* SimUnion: Cache alignment.
* Convert returnty to a arch-ed returnty.
* RustSimType: Do not shadow SimType.with_arch.
* Rust: Bind an arch to types before they reach the type solver.
* RustSimType: Make it a subclass of SimType.
* Enable ruff isort rule
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Function: Record prototype source.
Fix the issue in decompiler where the callee's prototype cannot be
updated to the more accurate version (e.g., the prototype coming from
decompiling the function) than the one that's generated at call sites.
* Delay import.
* Update some test cases.
* Preserve function return type if the original prototype wasn't guessed.
* Fix another test case.
* Tweak
* Type check.
* Remove TypeLifter (TypeTranslator supersedes it).
* Add a test case for lifting recursive structs.
* Reuse VRA's type translator in Typehoon.
* Fix struct name assignment.
* Update Windows type library for Enums.
* Fix test cases; Fix PWSTR definition; Fix to_json for nested structs.
* Fix an infinite recursion.
* Type check and lint code.
* Update a test case.
* Add array support to VariableManager.stack_offset_to_complex_types.
* Remove special handling for char* and wchar_t* in VRA. Fix bugs in SimpleSolver.
* InlinedMemset: Fix the prototype of memset.
* VRA: Do not record variables.
* Type check.
* Ughhhhhhh
* Lint code.
* Type lifting support for enums.
* Add some test cases.
* Enable type inference for Enum constants.
* Use contextlib.suppress.
* Remove special case typing logic for NULLs; Update a test case.
* Fix test cases.
* Make AILExprIdAnnotation eliminatable so that it does not hinder expression simplifications.
* CondProc: Invoke claripy.simplify() before calling claripy.is_true() to remove eliminatable annotations.
* Fix a test case.
* Lint and type check.
* Fix a test case.
* VRA: Fix the bug that stack struct variable typevar gets incorrectly associated with the first member of the struct.
* Use equivalence instead of subtyping between a const typevar and another
typevar; Fix the test case.
* SimpleSolver: Fix missing solutions for typevars because of _equivalence.
* CCodeGen._access: Support dereferencing plain integers. Fix a test case.
* Add SimTypeEnum for enum type representation and enhance prototype handling
* Add SimTypeBitfield support and integration tests for enum types
* Remove unused variable assignment in enum decompiler integration tests
* Lint and type check test_enum_integration.py.
* Minor fixes.
Co-authored-by: Fish <fishw@asu.edu>
* keep const in declarations
* parse qualifiers from pycparser and add them to SimType objects for getting correct function prototype
* fix test 9
* fix test
* do not deepcopy
* regenerate glibc.json w/o deepcopy
* always return
* change qualifiers to q
* don't modify shared type
* add test case
* regenerate glibc.json
* update q to qualifier