Commit Graph

3113 Commits

Author SHA1 Message Date
Ivan Krysak dace089658 EFA: improve robustness against non-existent FSO 2024-03-18 17:23:57 +01:00
Ivan Krysak 9af0200b90 test-model-diff: fix temporary directory usage 2024-03-18 13:27:53 +00:00
Ivan Krysak 17557a65d1 Minor improvements 2024-03-18 13:27:53 +00:00
Ivan Krysak d36296a27c Doxygen: be extra explicit about layout usage 2024-03-18 13:27:53 +00:00
Ivan Krysak f6ae268249 PTML: fix doxygen stack indication 2024-03-18 13:27:53 +00:00
Ivan Krysak bedbf7c1d9 EFA: split importModel into multiple methods 2024-03-18 14:27:47 +01:00
Ivan Krysak 1860bbff8a EFA: update clobbered register list computation 2024-03-18 13:27:34 +00:00
Ivan Krysak 256df3f92a EFA: update preserved register diffing 2024-03-18 13:27:34 +00:00
Ivan Krysak c40e775570 EFA: reorder prototype-based summary importer
This lets up cleanly "bail out" after only some of the computation
is done. This way we avoid reading information we don't really use
from the model based on who is the specific user of the oracle.
2024-03-18 13:27:34 +00:00
Ivan Krysak e92907865c EFA: turn importPrototype into a helper struct 2024-03-18 13:27:31 +00:00
Ivan Krysak 3fbaaeaaf5 STLExtras: introduce revng::to helper 2024-03-18 12:24:21 +00:00
Ivan Krysak b7ddd6ebbe EnforceABI: stop using Layout 2024-03-18 12:24:21 +00:00
Ivan Krysak db017e0e2d EFA: stop using Layout 2024-03-18 12:24:21 +00:00
Ivan Krysak d83479f2fa Lift: stop using Layout 2024-03-18 12:24:21 +00:00
Ivan Krysak b4e4d73d49 Layout: introduce usedRegisters helper 2024-03-18 12:24:21 +00:00
Ivan Krysak 894c3e7b5c TrackingContainer: introduce asVector helper 2024-03-18 12:24:21 +00:00
Ivan Krysak 25bd3b437f Distributor: add nextPositionBasedIndex 2024-03-18 12:24:21 +00:00
Ivan Krysak 80375de3cb Layout: introduce finalStackOffset helper 2024-03-18 12:24:21 +00:00
Ivan Krysak b46649de71 Layout: introduce calleeSavedRegisters helper 2024-03-18 12:24:21 +00:00
Ivan Krysak c003a62212 Layout: rework dump 2024-03-18 12:24:21 +00:00
Ivan Krysak bf11370fc5 Layout: clean ArgumentKind enum up 2024-03-18 12:24:21 +00:00
Alessandro Di Federico e990d491a4 Merge branch 'feature/segregation-testing' 2024-03-15 19:05:11 +01:00
Ivan Krysak 08041ba771 ToCFT: fix last stack argument verification
It was still broken, even after `feature/alignment-fixes`, so
this commit softens requirements even further, to allow some of
the desired cases to pass through the verifier.
2024-03-15 19:05:10 +01:00
Alessandro Di Federico 250354bd27 ValueMaterializer: work around unreachable blocks 2024-03-15 19:05:10 +01:00
Ivan Krysak a58ccd159e ImportPE: fix the filters 2024-03-15 19:05:10 +01:00
Ivan Krysak 1b52530531 ABI-tests: turn temporary directory into "output" 2024-03-15 19:05:10 +01:00
Ivan Krysak d71fd7a1ad ABI-tests: strip model of irrelevant functions 2024-03-15 19:05:10 +01:00
Ivan Krysak 6feb9aa001 ABI-tests: rename replace-abi script 2024-03-15 19:05:10 +01:00
Ivan Krysak 8ecdd76e68 ABI-tests: improve ABI mismatch error message 2024-03-15 19:05:10 +01:00
Ivan Krysak 5407c11a8f ABI: do not touch ABIs of unrelated functions 2024-03-15 19:05:10 +01:00
Alessandro Di Federico e93d8ba09f RawBinaryView:getByOffset: fix of by = 2024-03-15 17:13:20 +01:00
Giacomo Vercesi a376c2b36a rcc: improve non-module files detection
Improve the detection of non-module files in `MyPyPass` to avoid python
scripts being erroneously passed to mypy together, causing the error
`Duplicate module named` in mypy.
2024-03-15 15:30:16 +01:00
Alessandro Di Federico 3fb9e58b0a Progress: cap line length to terminal size 2024-03-01 17:47:28 +01:00
Alessandro Di Federico fcf7fd8a0e Merge branch 'feature/13-binaries-fixes' 2024-03-01 16:45:58 +01:00
Alessandro Di Federico aec4be9b07 AttachDebugInfo: improve docs 2024-03-01 14:53:07 +01:00
Alessandro Di Federico ffe93548c5 Model ::size(): do not suspend tracking 2024-03-01 14:53:07 +01:00
Alessandro Di Federico 7f1a15d1bb Model: ignore empty ExportedNames 2024-03-01 14:53:07 +01:00
Alessandro Di Federico db4e5c4a5e Introduce dumpModel 2024-03-01 14:53:07 +01:00
Alessandro Di Federico c346e60ee7 PromoteOriginalName: no globals with local names
This commit ensures we do not introduce new global symbols that would
make local symbols invalid.
2024-03-01 14:53:06 +01:00
Alessandro Di Federico 6f4923265e Type verify: improve error reporting 2024-03-01 14:53:06 +01:00
Alessandro Di Federico 3cfd01e617 DwarfImporter: correctly handle Expected 2024-03-01 14:53:06 +01:00
Alessandro Di Federico c7868b4e7d Runner: improve logging 2024-03-01 14:53:06 +01:00
Alessandro Di Federico 0da9d1e1a4 Model: fix handling of 0-sized arguments
We used to support having a single `void` argument. It was for some
C-compatibility ambitions, but just omitting the argument is perfectly
fine.

Also, the DWARF importer has been fixed to handle typedef'd void as
arguments.

More in general, arguments are now required to always have a size.
2024-03-01 14:53:06 +01:00
Alessandro Di Federico d9e649d272 Importer/Binary: improve logging 2024-03-01 14:53:06 +01:00
Alessandro Di Federico aa882f1bef Importer/Binary: fix default XDG cache path 2024-03-01 14:53:06 +01:00
Alessandro Di Federico dd16a320a2 CMake: fix well-known-models install path 2024-03-01 14:53:06 +01:00
Alessandro Di Federico 6b4f44af2d Minor changes 2024-03-01 14:53:06 +01:00
Alessandro Di Federico 8479f3d8b8 artifact: reorganize how we run analysis lists 2024-03-01 14:28:12 +01:00
Alessandro Di Federico 2347304b70 Progress.cpp: handle StepsCount == 0 2024-03-01 14:23:30 +01:00
Alessandro Di Federico 340b02c71e DwarfImporter: improve progress reporting 2024-03-01 14:23:08 +01:00