Commit Graph

2939 Commits

Author SHA1 Message Date
Alessandro Di Federico 0cb3eedd37 Do not use CallBase::getCalledFunction
Use our wrapper, which does not return nullptr if the `FunctionType`s do
not match.
2024-08-07 15:40:56 +02:00
Alessandro Di Federico 15d72e580d MetaAddress::address*: simply ignore Type 2024-08-05 17:41:41 +02:00
Alessandro Di Federico 7b00473859 PDBImporter: rework .pdb search 2024-08-05 17:41:34 +02:00
Alessandro Di Federico 06023b4555 BitLivenessWrapperPass::dump 2024-07-10 16:19:26 +02:00
Alessandro Di Federico 7ddae47040 Minor changes 2024-07-10 15:34:19 +02:00
Alessandro Di Federico 3c839cb821 Pipe::mutableContainers: use running containers 2024-07-09 08:58:51 +02:00
Alessandro Di Federico 966caa4137 revng artifact: fix handling of target arguments
This commit adds to `revng artifact` help the part of the command line
accepting a list of targets.
Also, it fixes the parsing of targets.
2024-07-09 08:58:51 +02:00
Pietro Fezzardi 521baf38e8 PTML: honor GeneratePlainC 2024-06-27 17:30:56 -04:00
Pietro Fezzardi d72139357f Add DecompileToDirectoryPipe
This pipe decompiles all the C code in a single directory, packaged up
as a .tar.gz file.
2024-06-27 17:26:18 -04:00
Pietro Fezzardi 8a95a0b9c9 HelpersToHeader: enable printing plain C 2024-06-27 17:14:28 -04:00
Pietro Fezzardi 2b9bcc0260 Backend: enable decompiling as plain C 2024-06-27 17:14:28 -04:00
Ivan Krysak 5ed120cdc9 ImplicitModelCastPass: extend logging 2024-06-27 11:07:02 +02:00
Ivan Krysak 185fc68097 PTML: fix the direct array data usage 2024-06-27 11:07:02 +02:00
Ivan Krysak 94a0ad6b93 Adopt reworked model::Type 2024-06-27 11:07:01 +02:00
Ivan Krysak c2b4fb70bb Model: rename TypePath to DefinitionReference 2024-06-27 11:07:01 +02:00
Ivan Krysak 3705906074 Model: rename Type into TypeDefinition 2024-06-27 11:07:01 +02:00
Ivan Krysak b900e36a68 CommonTypeMethods: introduce isAggregate 2024-06-27 11:05:52 +02:00
Ivan Krysak 0aa2ae7f08 Pipes: introduce a primitive rank 2024-06-27 11:05:52 +02:00
Ivan Krysak cd2fdafc45 TupleTree: never assign root directly
This prevented expected cache invalidation when a new root was
assigned.
2024-06-27 11:05:52 +02:00
Ivan Krysak b72e2fd87b Model: allow omission of void size 2024-06-27 11:05:52 +02:00
Ivan Krysak 9a3086694b UpcastablePointer: do not crash on empty print 2024-06-27 11:05:52 +02:00
Ivan Krysak fbe1416aa2 ConstexprString: add operator* 2024-06-27 11:05:52 +02:00
Ivan Krysak 4a2db0ba4f UpcastablePointer: streamline empty behavior 2024-06-27 11:05:52 +02:00
Ivan Krysak 42c1ea30f0 Allow deserialize to be called on non-root types 2024-06-27 11:05:51 +02:00
Ivan Krysak ffea5d9d4a TupleTreeReference: evict cache on setting root 2024-06-27 11:05:51 +02:00
Ivan Krysak 150d992368 Pipes: rename Type rank into TypeDefinition 2024-06-27 11:05:51 +02:00
Ivan Krysak 51208789a0 Rename ThePTMLBuilder into just B 2024-06-27 11:05:51 +02:00
Ivan Krysak 776a5cdc52 Model: move path data away from the header 2024-06-27 11:05:51 +02:00
Ivan Krysak 52aa0b5942 Model: introduce filters 2024-06-27 11:05:51 +02:00
Ivan Krysak dfa7478685 Adopt reworked model::Type 2024-06-27 11:05:51 +02:00
Ivan Krysak f2d12ec94a Model: fix metadata helpers
Before now, when called on an non-supported type, they were just
silently doing nothing.

Also, they now correctly handle const inputs.
2024-06-27 11:05:51 +02:00
Ivan Krysak 9e0f0f72f5 RecursiveCoroutine: add operator! 2024-06-27 11:05:51 +02:00
Ivan Krysak e2e95721cc UpcastablePointer: add a new copy constructor 2024-06-27 11:05:51 +02:00
Ivan Krysak 3c64d9b6c8 Concepts: introduce ConstPtrIfConst 2024-06-27 11:05:51 +02:00
Ivan Krysak e268b854cc Concepts: introduce NonBaseDerived 2024-06-27 11:05:50 +02:00
Ivan Krysak 1f16a5bee6 KeyedObjectContainers: add erase_if 2024-06-27 11:05:50 +02:00
Ivan Krysak 73c43add70 TupleTree: revamp the visitors 2024-06-27 11:05:50 +02:00
Ivan Krysak 6628cbe1b8 TupleTree: drop an unused argument 2024-06-27 11:05:50 +02:00
Ivan Krysak 925690a1e1 VerifyHelper: reduce pointer usage 2024-06-27 11:05:50 +02:00
Ivan Krysak b6625e8913 Model: simplify fixModel pass
Instead of getting reimplemented/updated, it now just reuses normal
type verification routines.
2024-06-27 11:05:50 +02:00
Ivan Krysak c76f7488d2 YAMLTraits: leave kind-less pointers empty 2024-06-27 11:05:50 +02:00
Ivan Krysak 72346979e2 TupleTree: improve nullptr robustness 2024-06-27 11:05:50 +02:00
Ivan Krysak d4bb646708 UpcastablePointer: improve nullptr robustness 2024-06-27 11:05:50 +02:00
Ivan Krysak 39264e73fa Model: introduce new Type system 2024-06-27 11:05:50 +02:00
Ivan Krysak 284699967f UpcastablePointer: introduce bool operator
This allows writing stuff like
```cpp
if (UpcastablePointer P = getPointerFromSomewhere())
  doSomething(*P);
```
which makes it even more pointer-like.
2024-06-27 11:05:50 +02:00
Ivan Krysak 277cba213c Model: separate verification 2024-06-27 11:05:49 +02:00
Ivan Krysak 9e6bf29f74 TTG: pull dump helper into the template 2024-06-27 11:05:49 +02:00
Ivan Krysak 927e8006b9 Model: rename TypePath to DefinitionReference 2024-06-27 11:05:49 +02:00
Ivan Krysak 087ecbc534 TypeSystemPrinter: remove unused method 2024-06-27 11:05:49 +02:00
Ivan Krysak 5ec894e117 Yield: resyncronize yield::BasicBlock 2024-06-27 11:05:49 +02:00