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
Ivan Krysak
bc98e0079f
Formatting: change PenaltyReturnTypeOnItsOwnLine
...
The new value is 21.
2023-07-02 13:20:49 +02:00
Ivan Krysak
d99b0241e8
Minor improvements
2023-05-17 14:08:04 +02:00
Alessandro Di Federico
b3eaae6f83
ELFImporter: fix handling of DT_{INIT,FINI}
2023-05-17 11:17:39 +02:00
Giacomo Vercesi
31cd2b53f9
rcc: add codespell
...
Add codespell to the list of checks performed by
revng-check-conventions. This should reduce the amount of typos present
in the revng codebase.
2023-05-11 10:05:32 +02:00
Alessandro Di Federico
abc380017b
{ELF,Dwarf}Importer: fix ExportedNames
...
Under certain conditions, upon import, functions where not being added
`ExportedNames`, which was preventing them from finding the prototypes
from dynamic libraries' debug information.
2023-05-10 09:21:43 +02:00
Alessandro Di Federico
f562d0373f
Importers: fix usage of BaseAddress
...
This commit ensure the BaseAddress is propagate as appropriate to all
levels of the importers and that it is ignored for executables
(non-PIC).
This was a recurring source of importing the same function twice, once
relocated, once not.
2023-05-10 09:20:40 +02:00
Alessandro Di Federico
73fb1a31c9
Outline TypeCopier
...
This commit also drop the suggestion that it should be used for copying
prototypes only.
2023-05-10 09:20:15 +02:00
Massimo Fioravanti
254dc99fcb
TupleTreeGenerator: emit tracking machinery
2023-04-21 17:50:16 +02:00
Alessandro Di Federico
dbcdad0a4d
Switch from llvm::Optional to std::optional
2023-04-08 08:42:24 +02:00
Alessandro Di Federico
31b46de38c
Remove dead code and fix spurious warnings
...
Remove some dead code or introduce suppressions for spurious.
These are results of more accurate warnings in clang 16.
2023-04-08 08:42:23 +02:00
Alessandro Di Federico
b866e9010e
ELFImporter: fix setting gp_mips canonical value
...
We used to set the canonical value of the MIPS gp register even in
absence of PLT, leading to a crash (specifically on archlinux librt.so).
2023-03-22 14:22:24 +01:00
Djordje Todorovic
956160e667
TypeCopier: Avoid copying the types twice
2023-03-22 11:38:12 +01:00
Alessandro Di Federico
92dd38c603
TypeCopier: copy PrimitiveTypes only when needed
2023-03-16 15:39:55 +01:00
Ivan Krysak
64856306c4
BinaryImporter: rework command line interface
2023-03-15 10:19:03 +01:00
Ivan Krysak
34b532c754
BinaryImporter: always promote original name
2023-03-15 10:19:03 +01:00
Ivan Krysak
08b3764b23
BinaryImporter: prevent overlap in segment struct
2023-03-15 10:19:03 +01:00
Ivan Krysak
11c0d7f02e
Stop using \brief doxygen command
2023-03-15 10:19:01 +01:00
Ivan Krysak
0b1aaeaede
Minor improvements
2023-03-15 10:19:01 +01:00
Alessandro Di Federico
8886792ebb
Logger: ensure we consume llvm::Error
2023-02-23 14:51:03 +01:00
Djordje Todorovic
24a5705e12
Importer: Attach attributes when copying types
2023-02-16 11:07:52 +01:00
Antonio Frighetto
ab36efca8d
Model: import data objects in Segment.Type
2023-02-06 12:08:18 +01:00
Djordje Todorovic
8f95f14f12
CrossModelFindType: consider ExportedNames
2023-01-27 17:54:08 +01:00
Djordje Todorovic
fec0ec7034
Model: add ExportedNames for local Functions
2023-01-27 17:54:06 +01:00
Djordje Todorovic
83905cf5ed
Fix the level for FetchDebugInfo
2023-01-27 17:53:47 +01:00
Djordje Todorovic
961f9e5461
Model: search debug info locally upon import
...
Also find prototypes in Models of dynamic libs for both PE and ELF.
2022-12-13 11:26:54 +01:00
Massimo Fioravanti
742e1a0c56
TupleTree: switch from public fields to accessors
2022-12-12 18:36:57 +01:00
Massimo Fioravanti
0d3133cfc9
Fix missing includes
...
This ensures headers make sense on their own, without implicit
assumption about includers to also include other headers before them.
2022-12-09 18:09:39 +01:00
Alessandro Di Federico
b83edd61c0
DwarfImport: fix handling of local functions
2022-11-30 15:06:54 +01:00
Massimo Fioravanti
9363bbd70a
Pipeline: every container type has now a C++ type
2022-09-29 15:51:17 +02:00
Ivan Krysak
247710648f
Minor changes
2022-09-26 10:33:43 +02:00
Djordje Todorovic
2abd250ae0
model: Skip nameless dyn functions in PE
2022-08-31 18:07:47 +02:00
Massimo Fioravanti
915c083661
Pipes: reorganize who defines pipes
2022-08-29 14:44:35 +02:00
Alessandro Di Federico
6a6cd939db
Rework EarlyFunctionAnalysis
2022-08-08 13:55:34 +02:00