Alessandro Di Federico
8de1b62f56
TypeCopier::copyTypeInto: fix returning wrong type
...
TypeCopier::copyTypeInto used to return a random type among those just
created instead of the new version of the originally requested type.
2023-09-14 15:47:34 +02:00
Alessandro Di Federico
b5aa75f1f1
Introduce model::PrimitiveType::fromName
2023-08-23 16:14:05 +02:00
Alessandro Di Federico
f6a5857d80
StructType: move the Size field up
2023-08-23 16:14:05 +02:00
Alessandro Di Federico
f51af94e8f
TupleTreeReference::isValid is for assertions only
2023-08-23 16:14:05 +02:00
Alessandro Di Federico
a5b380b201
Model: rework how we name things
...
This commit improves the formalization of how we handle names.
The main changes are:
* Now `_` is a reserved prefix and all the generated names start with
`_`.
* The model verification routine now checks that `CustomName`s in the
global scope do not collide with any local namespace (e.g., fields of
a `StructType`).
* We changed the prefix `prefix_` to `unreserved_` to better convey the
fact that the prefix has been introduce to use an non-reserved name.
2023-08-23 16:14:04 +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
e63573ee81
Introduce model::Binary::path
2023-08-23 16:14:04 +02:00
Alessandro Di Federico
67be2c30b8
Introduce PrimitiveType::FirstNonPrimitiveID
2023-08-23 16:14:04 +02:00
Alessandro Di Federico
56268e94b0
VerifyHelper: handle fail in type verification
...
Before this commit, if there was a failure during the verification of a
type (which is recursive), we'd get an assertion in ~VerifyHelper due to
a "pending" type still being verified.
2023-08-23 16:14:04 +02:00
Pietro Fezzardi
72bedb7dfd
TypeSystemPrinter: print DynamicFunctions
2023-08-21 12:29:31 +02:00
Alessandro Di Federico
1d53bf4696
Introduce getLLVMIntegerTypeFor
2023-07-26 10:16:25 +02:00
Djordje Todorovic
60ebfa950d
VerifyHelper: Remember the reason of fail
...
In some cases we want to know what was the reason of some error
without crashing the revng.
2023-07-24 09:22:07 +02:00
Ivan Krysak
888b083248
Model: introduce edit path helpers for comments
2023-07-21 17:25:24 +02:00
Ivan Krysak
5c31405e63
Model: rework edit path helpers from the ground up
2023-07-21 17:25:24 +02:00
Ivan Krysak
0c8a5aaffb
Model: move edit path helpers in from PTML
2023-07-21 17:25:24 +02:00
Ivan Krysak
70a5c8edd0
Model: make metadata utilities more generic
2023-07-21 17:25:24 +02:00
Ivan Krysak
560ed4f55e
Model: add ReturnValueComment field to functions
2023-07-21 17:25:24 +02:00
Ivan Krysak
485ef34a12
Model: add Comment field all across the board
2023-07-21 17:25:24 +02:00
Ivan Krysak
8a9b253314
Model: clean type constructors up
2023-07-21 17:25:24 +02:00
Ivan Krysak
1e9e38548d
Model: make register name check stricter
2023-07-21 17:25:24 +02:00
Ivan Krysak
bc0eebaad1
Model: enforce consistent name fields
2023-07-21 17:25:24 +02: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
01b4ec36c9
Formatting: set AllowShortEnumsOnASingleLine
...
The new value is `false`.
2023-07-02 13:15:08 +02:00
Ivan Krysak
7ed14ca65c
Minor improvements
2023-07-02 11:06:55 +00:00
Alessandro Di Federico
fa61c784c2
Reintroduce st0_x86 as floating point return value
2023-06-23 17:54:16 +02:00
Alessandro Di Federico
f1f8c217e7
TypeCopier: reset TTR's root pointer after copy
2023-05-17 11:17:35 +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
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
Alessandro Di Federico
52521f8cac
Adopt more standard library's features
2023-04-08 08:42:23 +02:00
Kacper Kołodziej
e7bb7d09df
Rename getStrByAddress to getStringByAddress
...
We don't use abbreviations in names.
2023-04-04 09:30:09 +02:00
Pietro Fezzardi
4c2602e956
RawBinaryView: add getStrByAddress method
...
This method is similar to `getByAddress`, but it returns an
`llvm::StringRef`.
It is intended for those users that need to manipulate the bytes as
strings. In those cases, the `llvm::ArrayRef<uint8_t>` returned by
`getByAddress` is not suitable, because it triggers warnings due to
`uint8_t` not being the same as `char`.
2023-04-04 09:30:09 +02:00
Kacper Kołodziej
1b8801c9dc
Add RawBinaryView::isReadOnly method
...
isReadOnly returns true if segment which contains region defined with
MetaAddress and size is not writable.
2023-04-04 09:30:08 +02:00
Ivan Krysak
64856306c4
BinaryImporter: rework command line interface
2023-03-15 10:19:03 +01:00
Ivan Krysak
4d21a88777
Model: remove an obsolete function conversion pass
2023-03-15 10:19:03 +01:00
Ivan Krysak
ce0d39a9a6
Model: document model::Type::size()
2023-03-15 10:19:02 +01:00
Ivan Krysak
84229d92b1
Model & ABI: make size and alignment stricter
2023-03-15 10:19:02 +01:00
Ivan Krysak
769e5c1cbe
ABI: add a natural alignment calculation helper
2023-03-15 10:19:02 +01:00
Ivan Krysak
75feff6186
model::Register: introduce isUsedInArchitecture
2023-03-15 10:19:02 +01:00
Ivan Krysak
058807ca00
model::Register: rename getArchitecture
...
The new name is `getReferenceArchitecture`
2023-03-15 10:19:02 +01:00
Ivan Krysak
9148f70b24
model::Register::getSize: leave a TODO
2023-03-15 10:19:02 +01:00
Ivan Krysak
7442bdc4a9
Model: introduce model::ABI::getPointerSize
2023-03-15 10:19:02 +01:00
Ivan Krysak
c45b7778c1
Model: introduce copyMetadata and moveMetadata
2023-03-15 10:19:02 +01:00
Ivan Krysak
3c0c49c785
Model: add ABI::getRegisterArchitecture
2023-03-15 10:19:02 +01:00
Ivan Krysak
07837d9b9b
Model: add model::Binary::recordNewTypes
2023-03-15 10:19:02 +01:00
Ivan Krysak
b0e481cdef
Model: add model::Binary::makeType
2023-03-15 10:19:02 +01:00
Ivan Krysak
3687869795
Model: make AddPrimitiveTypes a pure analysis
2023-03-15 10:19:01 +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