Ivan Krysak
60f6abf0eb
Ease conventions to allow lines to start with ->
2022-09-26 10:33:43 +02:00
Ivan Krysak
a5f97fc215
Pipes: prevent non-root ranked file containers
2022-09-26 10:33:43 +02:00
Ivan Krysak
00dc8dd477
PTMLTag: fix addListAttribute's requires clause
2022-09-26 10:33:43 +02:00
Ivan Krysak
247710648f
Minor changes
2022-09-26 10:33:43 +02:00
Alessandro Di Federico
07ff20585c
pipeline-analysis: handle 0 functions
2022-09-22 17:43:56 +02:00
Alessandro Di Federico
8cf981fbf8
JTM: no assert on indirect jump to invalid address
2022-09-22 17:43:56 +02:00
Alessandro Di Federico
7935af70a4
revng_add_executable_internal: force -pie
...
clang does not do -pie by default.
2022-09-22 17:43:55 +02:00
Alessandro Di Federico
011c65d8ab
merge-dynamic: drop a default argument
2022-09-22 17:43:55 +02:00
Alessandro Di Federico
cf62e6dce7
Minor changes
2022-09-22 17:43:55 +02:00
Alessandro Di Federico
08afac660b
Merge branch 'feature/import-idb'
2022-09-21 18:45:26 +02:00
Alessandro Di Federico
85d574b305
test-abi: various fixes
2022-09-21 18:39:28 +02:00
Alessandro Di Federico
d1bc0405dc
LinkForTranslation: add .note.GNU-stack
...
In LinkForTranslation we create an object file for each segment in the
input binary. In order to do this, we use `objcopy`. However, an object
file without a `.note.GNU-stack` section will trigger the linked program
to have the stack executable, which we don't want.
This led the linker to complain as follows:
ld.bfd: warning: object.o: missing .note.GNU-stack section implies
executable stack
ld.bfd: NOTE: This behaviour is deprecated and will be removed in a
future version of the linker
This commit adds to the `objcopy` invocation a flag to create the
`.note.GNU-stack` section.
2022-09-21 18:39:25 +02:00
Djordje Todorovic
2e5a6dc167
model: add tests for import-idb
2022-09-21 18:39:22 +02:00
Djordje Todorovic
753a50895c
Introduce revng model import-idb
2022-09-21 18:39:10 +02:00
Djordje Todorovic
5559d8431b
Introduce fix-model model pass
2022-09-21 18:37:36 +02:00
Giacomo Vercesi
7c900d45ca
revng.daemon: fix for ariadne>=0.16
2022-09-21 14:07:24 +02:00
Alvise de Faveri
999df25246
Add revng model export type-graph tool
...
This tools dumps a type, a function or an entire type-system to a
dot file,representing dependencies between types as edges.
2022-09-19 08:35:06 +02:00
Pietro Fezzardi
ec9a5b0608
Use lexicographical compare for model::Qualifier
2022-09-19 08:34:20 +02:00
Pietro Fezzardi
12ab345848
SubGraph: make getEntryNode more const-correct
...
GraphTraits<SubGraph<InnerNodeType>>::getEntryNode now takes a const
GraphType &, not just a GraphType &.
2022-09-19 08:33:45 +02:00
Davide Depau
286a9fe2d3
revng-analyze: add InitRevng to entrypoint
2022-09-19 08:32:02 +02:00
Davide Depau
42e932ad39
revng-artifact: add InitRevng to entrypoint
2022-09-19 08:31:55 +02:00
Alessandro Di Federico
137fad57e9
revng-daemon tests: increase verbosity
2022-09-08 09:44:41 +02:00
Alessandro Di Federico
fa3ed38f97
Merge branch 'feature/rework-schema-generator'
2022-09-02 16:34:45 +02:00
Giacomo Vercesi
67e970e1e8
Fix revng cli invocation with namespaces
...
When revng cli was invoked with a bare namespace, e.g. `revng ptml`
it would produce an ugly exception.
Fix this behavior by instead rerunning the command with `--help`
appended.
2022-09-02 03:49:56 +02:00
Giacomo Vercesi
c084620ef2
Switch from yarn to npm
2022-09-02 03:49:56 +02:00
Giacomo Vercesi
ae5522e861
tuple_tree_generator: minor TypeScript fixes
2022-09-02 03:49:54 +02:00
Alessandro Di Federico
ee6d80fa17
Merge branch 'feature/emit-ptml-in-c-backend'
2022-09-01 17:48:25 +02:00
Giacomo Vercesi
d68640e2cb
upcast: use universal references
2022-09-01 17:48:00 +02:00
Giacomo Vercesi
a7eb0a8d59
Ranks.h: introduce additional Ranks
2022-09-01 17:47:55 +02:00
Giacomo Vercesi
37caa91e6d
Ranks: fix Rank keys
...
Use model::Function::Key for the Function rank instead of the naked
MetaAddress as it allows forward-compatibility if the model::Function
key is ever changed.
Use a std::tuple<uint64_t> for TypeField as it's the current type for
{Struct,Enum,Union}Field.key()
2022-09-01 17:46:57 +02:00
Giacomo Vercesi
7cff7737ac
Introduce ModelHelpers.h
...
ModelHelpers contains helper functions that produce the appropiate
edit path for the given elements of the model.
2022-09-01 17:46:40 +02:00
Giacomo Vercesi
e443cd3766
YAMLTraits.h: add traits for std::tuple<T>
...
This commit introduces a YAML trait for `std:tuple`s of a single
scalar that allows their serialization/deserialization generically.
2022-09-01 17:46:35 +02:00
Giacomo Vercesi
8aab66a517
Rank.h: restrict keys to scalars and enums
...
Rank keys so far could be of any type as long as it was
yaml-serializable, however this would introduce problems down the
line if a Location contained for example array or mapping.
This commit restricts the type of keys to only scalars and enums,
to limit the chance that a key serializes in an invalid location.
2022-09-01 17:46:30 +02:00
Giacomo Vercesi
7d77d388b5
ConstexprString: allow default construction
2022-09-01 17:46:30 +02:00
Giacomo Vercesi
a05737696f
Introduce revng/Model/ForwardDecls.h
2022-09-01 17:46:25 +02:00
Giacomo Vercesi
b7a23dcd4a
Rename and improve ptml::TagScope
...
Renames ptml::TagScope to ScopeTag and fixes issue when Tag.scope
was called with a temporary.
2022-09-01 17:46:10 +02:00
Giacomo Vercesi
e1adce0f69
PTMLIndentedOstream: rework write_impl
...
Previous implementation would write '\n' if the buffer ended with
'\n\n'.
2022-09-01 17:46:04 +02:00
Giacomo Vercesi
07c2457a16
revng.cli: various improvements
...
This commit introduces some miscellaneous fixes to revng.cli:
* Remove useless subclasses in pipeline_tools.py;
* Improve type annotations in _commands/ptml and fix a help string;
* Add some extra type annotations for `Command`;
* Remove useless namespaces in `commands_registry` and add help text
for the ones in use;
2022-09-01 17:45:44 +02:00
Giacomo Vercesi
bbbcbd080a
revng ptml cat: add C highlighting
2022-09-01 15:49:44 +02:00
Giacomo Vercesi
84e29d6b96
Fix linkage of Tag::scope in Tag.h
2022-09-01 15:49:44 +02:00
Alessandro Di Federico
b0bfa5db4a
CollectCFG: nop if root is absent
2022-09-01 14:58:50 +02:00
Alessandro Di Federico
40f1e06135
CFGAnalyzer, opaque_true: use inaccessiblememonly
...
This prevents EarlyCSE from deduplicating calls to this functions with
the same arguments, which has unintend effects and leads to loss of
code.
2022-09-01 11:32:42 +02:00
Alessandro Di Federico
df34095721
Minor changes
2022-09-01 11:32:12 +02:00
Ivan Krysak
4c08f2153d
install_pattern: do not use git ls-files
2022-08-31 19:42:35 +02:00
Alessandro Di Federico
ed2672d12f
Merge branch 'feature/pipeline-analysis-args'
2022-08-31 18:08:00 +02:00
Massimo Fioravanti
9a4e97d8ea
Pipeline: handle having 0 functions
2022-08-31 18:07:47 +02:00
Alessandro Di Federico
712585be48
CodeGenerator: handle PTC translation failure
2022-08-31 18:07:47 +02:00
Alessandro Di Federico
d8230c3e9a
revng-pipeline: improve error reporting
2022-08-31 18:07:47 +02:00
Alessandro Di Federico
b14b40b1eb
revng: do not print failing command
2022-08-31 18:07:47 +02:00
Alessandro Di Federico
f93eefda66
replaceAll: move to STLExtras.h
2022-08-31 18:07:47 +02:00