Commit Graph

3089 Commits

Author SHA1 Message Date
Ivan Krysak d02e338d23 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 15:27:14 +01:00
Alessandro Di Federico 0ae918a6a4 ValueMaterializer: work around unreachable blocks 2024-03-15 15:24:59 +01:00
Ivan Krysak e4437563ad ImportPE: fix the filters 2024-03-15 15:24:59 +01:00
Ivan Krysak b97718f16b ABI-tests: turn temporary directory into "output" 2024-03-15 15:24:59 +01:00
Ivan Krysak 5fbc86cc6e ABI-tests: strip model of irrelevant functions 2024-03-15 15:24:59 +01:00
Ivan Krysak 6269c08578 ABI-tests: rename replace-abi script 2024-03-15 15:24:58 +01:00
Ivan Krysak 198280705a ABI-tests: improve ABI mismatch error message 2024-03-15 15:24:58 +01:00
Ivan Krysak 3373ad91a3 ABI: do not touch ABIs of unrelated functions 2024-03-15 15:24:58 +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
Alessandro Di Federico 09c0633391 Merge branch 'feature/open-revngc' 2024-03-01 10:23:18 +01:00
Alessandro Di Federico 85abd9b6fc revng artifact: introduce --analyze 2024-02-29 18:04:35 +01:00
Alessandro Di Federico d21aadfdd0 docs: document binary installation 2024-02-29 17:03:04 +01:00
Alessandro Di Federico 2403f1e10b mkdocs: make links relative 2024-02-26 16:08:54 +01:00
Alessandro Di Federico aa511e07ef Rewrite README.md 2024-02-26 16:03:32 +01:00
Alessandro Di Federico 401a653c89 Reorganize licensing information 2024-02-26 16:02:52 +01:00
Alessandro Di Federico 9f097e079d revng-c opening: update docs 2024-02-16 10:32:49 +01:00
Alessandro Di Federico b21ff0bd2a Merge branch 'feature/msvc-abi-testing' 2024-02-09 17:05:50 +01:00
Ivan Krysak b0b1f10e72 ABI: move ToCABIFunctionType analysis to revng 2024-02-09 16:24:44 +01:00
Ivan Krysak 069d3d3972 ToCABI: improve logger messages 2024-02-09 15:09:37 +00:00
Ivan Krysak e708a3655b ABI: drop incomplete clrcall support 2024-02-09 15:09:37 +00:00
Ivan Krysak c8cd0ab503 ValueDistributor: improve success log message 2024-02-09 15:09:37 +00:00
Ivan Krysak b1ed3aa959 AccessTracker: make an assertion more obvious
It's pretty confusing for a nullptr access to fail on the same line as
an existing assert, which is why it's better to move them to separate
lines.
2024-02-09 15:09:37 +00:00
Ivan Krysak e62d4f79ef ABI: remove an obsolete definition parameter
Since pointer to copy system got straightenned up, the old way of
marking them (`abi::Definition::UsePointerToCopyForStackArguments`)
is no longer needed.
2024-02-09 15:09:37 +00:00
Ivan Krysak 5a36d8fccf ABI-tests: update documentation 2024-02-09 15:09:37 +00:00
Ivan Krysak 94b6be25ae ABI-tests: check equivalence after compatibility
This does not change anything about the "successful" tests, but does
make "failing" ones slightly easier to debug - since "compatibility"
failures are generally easier to work with (they provide more explicit
information about the failure) that "equivalence" ones.
2024-02-09 15:09:37 +00:00
Ivan Krysak b73d4934c8 ABI-tests: extend register comparison
It now accounts for endianness.
2024-02-09 15:09:37 +00:00
Ivan Krysak 52c9ae0b4d ABI-tests: fix vector-less MIPS tests 2024-02-09 15:09:37 +00:00
Ivan Krysak bd6ab10454 ABI-tests: stop using unsupported primitives 2024-02-09 15:09:37 +00:00
Ivan Krysak 27491410d6 ABI: introduce a way to disable vector registers 2024-02-09 15:09:37 +00:00
Ivan Krysak fe025e37ef ABI: short-circuit zero-offset to always be zero 2024-02-09 15:09:37 +00:00
Ivan Krysak bc6673d90d ABI: make alignment-computation fails stricter 2024-02-09 15:09:37 +00:00
Ivan Krysak a018d443e1 ABI: update "safe" conversion list 2024-02-09 15:09:37 +00:00
Ivan Krysak 68301138c0 ABI: redesign register sorting from the ground up 2024-02-09 15:09:37 +00:00