Lauri Vasama
653d451e6c
Remove undef name configuration support
...
Also adds a model migration removing
Configuration.Naming.UndefinedValuePrefix.
2025-09-29 18:05:55 +03:00
Giacomo Vercesi
18509a4ca0
Add missing string to VH.fail
...
Add missing string to invocations of `VH.fail` that do not depend on a
child's `verify` method.
2025-09-09 12:27:33 +02:00
Ivan Krysak
e6d8ac2c87
Model: improve RFT verification output
2025-07-23 11:38:53 +02:00
Ivan Krysak
97aa3c8247
std::string: use implicit default constructor
2025-07-23 11:38:53 +02:00
Ivan Krysak
9e5053d9fd
CMakeLists: remove unused variables
2025-07-23 11:38:52 +02:00
Ivan Krysak
f391392fe9
Use explicit separator strings
2025-07-23 11:38:52 +02:00
Ivan Krysak
99476b249e
NamespaceBuilder: add variable and label support
2025-07-23 11:38:52 +02:00
Ivan Krysak
0572de8990
TypePathHelpers: fix incorrect return value paths
2025-07-23 11:38:52 +02:00
Ivan Krysak
554ffa376a
model::Function: introduce GotoLabels field
2025-07-23 11:38:51 +02:00
Ivan Krysak
1ebeb8f493
model::Function: introduce LocalVariables field
2025-07-23 11:38:50 +02:00
Ivan Krysak
4e3c6cccd0
Model: introduce LocalIdentifier struct
2025-07-23 11:38:50 +02:00
Ivan Krysak
d7c089799c
StatementComment: separate location verification
2025-07-23 11:38:50 +02:00
Ivan Krysak
b982ae68d0
NamingConfiguration: add UnnamedGotoLabelPrefix
2025-07-23 11:38:50 +02:00
Giacomo Vercesi
d62b7b6b1a
TTG: inline root type in schema
...
Move the root type inside the schema definition, as it is a property of
it and not of the generator.
2025-06-25 15:40:13 +02:00
Lauri Vasama
a7eb86174b
Add revng/Support/Identifier.h for id validation
2025-06-04 15:13:47 +02:00
Pietro Fezzardi
2f6c8b6f67
TypeSystemPrinter: fix CABIFT with empty return
2025-05-29 09:31:26 +02:00
Pietro Fezzardi
b441fc9916
CABIFunctionDefinition: no pointer-to-array return
...
This commit bans from the model pointer-to-array return types in
CABIFunctionDefinition.
CABIFunctionDefinition implies we're decompiling towards C, and C does
not support such return types, because it doesn't have valid syntax to
express them without using typedefs.
2025-05-28 17:11:11 +02:00
Pietro Fezzardi
0426c773b2
CABIFunctionDefinition: drop array argument/return
...
This commit bans from the model array types in as argument or return
types in CABIFunctionDefinition.
CABIFunctionDefinition implies we're decompiling towards C, and C does
not support array arguments (passed by copy) nor array return types.
Banning these from the model reduces the number of situations where we
have to emit artificial array wrappers (not present in the model) around
types when printing C code, simplifying the handling of such situations
when translating to clift and in general in the decompilation pipeline.
2025-05-28 17:11:11 +02:00
Pietro Fezzardi
7741e00e29
TypeSystemPrinter: fix CABIFT with empty return
2025-05-13 16:18:34 +02:00
Ivan Krysak
0d868894a2
model::Function: switch to indices as comment keys
2025-05-08 15:42:00 +02:00
Giacomo Vercesi
3e3779498e
Implement python interface for revng
...
Add a python interface (`revng.profile`) for interacting with the rev.ng
infrastructure as a whole; either through the CLI (`CLIProject`) or the
GraphQL API (`DaemonProject`).
2025-05-07 10:48:51 +02:00
Khaled Ismaeel
030becfeba
Adapt the build to the new schema version field
...
This is a followup to the commit where we introduced the `version`
field in the schema YAML.
2025-04-30 15:08:45 +02:00
Khaled Ismaeel
531d9b866c
Remove the now-redundant HEADERS list
2025-04-30 15:08:45 +02:00
Khaled Ismaeel
63469c9cd6
Use unified YAML schemas in the build process
...
In this commit we instruct the build system to use the unified schema
files instead of collecting the `TUPLE-TREE-YAML` comments.
The fixes to C++ files are necessary because they depend on the order
of the fields in the schema, which was changed.
2025-04-30 15:08:45 +02:00
Ivan Krysak
1622bb91a1
Introduce automatic names for dynamic functions
2025-04-24 13:22:14 +02:00
Ivan Krysak
79964eac74
Avoid ' misuse in error messages and comments
2025-04-17 16:41:21 +02:00
Ivan Krysak
83324fcf07
NameBuilder: improve documentation
2025-04-17 11:19:17 +03:00
Ivan Krysak
c8de226f56
DwarfImporter: remove an input-dependent assert
...
Not checking for primitives there doesn't change anything anyway, as
`purge-invalid-types` model pass will clean anything invalid still
left after the importer.
2025-04-17 11:19:17 +03:00
Ivan Krysak
ae3f19664a
ModelPasses: introduce fix-model
2025-04-17 11:19:17 +03:00
Ivan Krysak
e96e64f035
CNameBuilder: ban known llvm intrinsic names
2025-04-17 11:19:17 +03:00
Ivan Krysak
29554ef303
CNameBuilder: ban known helper names
2025-04-17 11:19:17 +03:00
Ivan Krysak
57b5eb7f98
NameBuilder: allow different name checkers
2025-04-17 11:19:17 +03:00
Ivan Krysak
c4f071dfe3
Importers: adopt primitive typedef flattening
2025-04-17 11:19:17 +03:00
Ivan Krysak
acb7d595ef
Model: introduce a primitive typedef removal pass
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
c9ade8d458
NameBuilder: report reason when renaming something
2025-04-17 11:19:17 +03:00
Ivan Krysak
355d4f634c
NameBuilder: prevent collisions with macros
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
cf78106d54
Model: introduce a name deduplication pass
2025-04-17 11:19:17 +03:00
Ivan Krysak
dce5c1a02c
NamingConfiguration: pull more prefixes inside
...
Unify additional values that used to be hardcoded in the old backend
under the same naming configuration root.
2025-04-17 11:19:17 +03:00
Ivan Krysak
af79a289d8
NamingConfiguration: add a new option
...
It's `ReserveNamesStartingWithUnderscore`.
2025-04-17 11:19:17 +03:00
Ivan Krysak
f070f1f1e1
Model: sunset double name system
2025-04-17 11:19:17 +03:00
Ivan Krysak
25790b5a78
NameBuilder: change automatic segment name
...
Use index within the binary instead of address in order to make these
shorter.
2025-04-15 16:35:42 +03:00
Ivan Krysak
645cf7fc2e
NameBuilder: sunset deduplication
...
This reworks NameBuilder to ease the transition to the system where
the model will be guaranteed to never contain any name collisions, both
between user-specified names and the automatic ones.
2025-04-15 16:35:42 +03:00
Ivan Krysak
6ea75f02b3
Model: switch to the new namespace verifier
2025-04-15 16:35:42 +03:00
Ivan Krysak
c9d9b00bb0
Model: introduce generic namespace processing
2025-04-15 16:35:42 +03:00
Ivan Krysak
6710dacfed
Model: give path helpers a home
2025-04-15 16:35:42 +03:00
Ivan Krysak
3edb6cbb9b
Minor improvements
2025-04-15 16:35:42 +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
Giacomo Vercesi
6cdf6b9eda
DebugInfo: do --verbose if logger is enabled
...
Enable running `fetch-debuginfo` in verbose mode if the logger is
enabled.
2025-03-13 18:03:50 +01:00