Ivan Krysak
c4f071dfe3
Importers: adopt primitive typedef flattening
2025-04-17 11:19:17 +03:00
Ivan Krysak
1383b0a40a
Importers: replace .s in section names
2025-04-17 11:19:17 +03:00
Ivan Krysak
433af9ef6e
Adopt the new name deduplication pass
2025-04-17 11:19:17 +03:00
Ivan Krysak
f070f1f1e1
Model: sunset double name system
2025-04-17 11:19:17 +03:00
Giacomo Vercesi
a9a0fdc236
ELFImport: fix input file missing
...
When using revng through `revng daemon` the variable `InputPath` is not
populated, leading to `lddtree` failing silently. Fall back to the input
binary in the resume directory in case the the `InputPath` variable is
empty.
2025-03-14 13:05:39 +01:00
Alessandro Di Federico
cac8b5d1b1
ELFImporter: search libs in the input directory
2025-03-05 09:57:51 +01:00
Ivan Krysak
705e4a5955
auto [...] -> auto &&[...]
2025-02-13 13:10:51 +02:00
Alessandro Di Federico
832840c307
Importers: ignore unmapped code
...
This commit ensures that parts of the model that must point to code
(specifically `Binary::EntryPoint`, `Binary::ExtraCodeAddresses` and
`Function::Entry`) actually point to a segment mapped as +x.
2024-11-28 15:22:10 +01:00
Alessandro Di Federico
278c6f625c
Importers: first of all, Segments
...
This commit makes sure that before setting EntryPoint, adding
ExtraCodeAddresses or Function entry points, we completed the processing
of Segments.
2024-11-28 14:04:36 +01:00
Alessandro Di Federico
d1252046ce
Importers: do not set EntryPoint, if absent
2024-11-28 13:58:29 +01:00
Alessandro Di Federico
1e2a55e372
Minor changes
2024-11-28 13:58:28 +01:00
Alessandro Di Federico
efcea8ae48
importBinary: fix error handling
2024-11-12 18:05:48 +01:00
Ivan Krysak
1eb80ecd2d
Introduce an error creation helper
2024-11-06 15:20:37 +02:00
Alessandro Di Federico
16e01f43d6
Import revng-c's FunctionTags.h
2024-10-31 17:19:51 +01:00
Alessandro Di Federico
a0c670652c
Improve usages of Expected<T>
2024-10-10 14:50:26 +02:00
Ivan Krysak
8c313a73af
Model: make sure segments use generic addresses
2024-10-08 13:53:52 +02:00
Ivan Krysak
99e016f120
ABI: reorganize default ABI helpers
2024-10-08 13:53:52 +02:00
Alessandro Di Federico
c1cbb4e9a0
Initialize pointers to nullptr
2024-09-27 12:07:17 +02:00
Alessandro Di Federico
2cdedc71f4
s/serialize/toString/
...
We keep serialize for method dealing with streams.
If it returns a `std::string`, let's use `toString`.
2024-09-27 12:07:17 +02:00
Alessandro Di Federico
bd08864e49
DwarfReader::readValue: handle DW_EH_PE_omit
2024-09-26 17:44:51 +02:00
Alessandro Di Federico
09e483f96b
BinaryImporter: create a Function for EntryPoint
2024-08-16 13:01:59 +02:00
Alessandro Di Federico
d3b945c6c2
PECOFFImporter: use Generic Segment::StartAddress
2024-08-05 18:00:27 +02:00
Alessandro Di Federico
df8f4db512
MachOImporter: set DefaultABI
2024-07-09 08:58:51 +02:00
Ivan Krysak
4a2db0ba4f
UpcastablePointer: streamline empty behavior
2024-06-27 11:05:52 +02:00
Ivan Krysak
dfa7478685
Adopt reworked model::Type
2024-06-27 11:05:51 +02:00
Ivan Krysak
927e8006b9
Model: rename TypePath to DefinitionReference
2024-06-27 11:05:49 +02:00
Ivan Krysak
ac587cbb4f
Model: rename Type into TypeDefinition
2024-06-27 11:05:48 +02:00
Ivan Krysak
b2959e36df
Minor improvements
2024-06-27 11:05:48 +02:00
Alessandro Di Federico
d07d6c4f1f
Drop leftover Section.h
2024-06-20 10:24:49 +02:00
Massimo Fioravanti
f783868dde
Model: adopt tryGet instead of find() != end()
2024-06-20 09:57:36 +02:00
Alessandro Di Federico
33cb4232f4
BinaryImporter: bail out if we have segments
2024-06-19 17:50:51 +02:00
Alessandro Di Federico
47c3dd8f0f
Drop model::Segment::Sections
2024-05-22 10:25:25 +02:00
Alessandro Di Federico
2267b51090
Mark findPrototype as inline
2024-04-19 18:33:00 +02:00
Alessandro Di Federico
7f1a15d1bb
Model: ignore empty ExportedNames
2024-03-01 14:53:07 +01:00
Alessandro Di Federico
d9e649d272
Importer/Binary: improve logging
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
b34031f828
Import sections into segment's struct
...
Each model::Segment is associated to a model::StructType. Now we also
create sub-`structs` for sections, if available.
2024-02-08 16:57:40 +01:00
Ivan Krysak
77b1acaf00
Prefer uint64_t to size_t wherever relevant
2024-01-29 11:57:54 +02:00
Massimo Fioravanti
c276a439b5
Add pipeline invalidation
...
Replace the stub implementation of invalidation with the proper
implementation. A ReadPathCache is added to each global so that it can
keep tracks of what target are associated to which read paths.
2024-01-02 11:14:56 +01:00
Pietro Fezzardi
48b27af795
Make Segment::Type a TupleTreeReference
...
This is homogeneous with all other nullable reference to types in the
model, like the StackFrameType in model::Function, and others.
2023-12-05 16:19:38 +01:00
Ivan Krysak
cfe28d8e56
Stop using std:: prefix for u?int\d+_t types
2023-11-02 17:10:03 +01:00
Alessandro Di Federico
79c5f59449
DwarfImporter: handle invalid function addresses
2023-10-06 17:16:04 +02:00
Alessandro Di Federico
a11435becf
BinaryImporter: error on unsupported formats
2023-10-06 17:16:04 +02:00
Alessandro Di Federico
2cbf3a8313
TypeCopier: minor rework
2023-10-05 10:19:44 +02:00
Alessandro Di Federico
b67e2ac13a
Minor changes
2023-10-04 17:47:50 +02:00
Alessandro Di Federico
f51af94e8f
TupleTreeReference::isValid is for assertions only
2023-08-23 16:14:05 +02:00
Alessandro Di Federico
247879f7fc
model::Type::ID: switch to progressive IDs
...
This commit switches `model::Type::ID` from being a GUID to be a
progressive number, in order to make things easier for humans.
On top of this, this commit introduces the following changes:
* TypeCopier: import all the necessary PrimitiveTypes and improve
handling of CustomName.
* Move Kind as the last field of the key of each TupleTree type used in
an `UpcastablePointer`.
* Update the ground truth of tests to ignore the `CustomName` in favor
of focusing on `OriginalName`.
* Increase adoption of `model::Binary::makeType`, equivalent to
`Binary.recordNewType(makeType<model::*Type>())`.
2023-08-23 16:14:04 +02:00
Alessandro Di Federico
14525d91f5
Adopt llvm::Task
2023-08-01 10:51:16 +02:00
Ivan Krysak
485ef34a12
Model: add Comment field all across the board
2023-07-21 17:25:24 +02:00
Ivan Krysak
7d235f4fd0
Enforce licence header consistency
...
Also do some basic cleanup: capitalize first letters, add `.`
at the end of the sentences, and so on.
2023-07-03 15:23:10 +00:00
Ivan Krysak
9f1d9fd5d0
Use Container::contains() where appropriate
2023-07-02 15:06:11 +00:00