1
0
mirror of https://github.com/angr/angr synced 2026-06-08 13:09:39 +00:00
Commit Graph

42 Commits

Author SHA1 Message Date
Fish af318d801d CFGModel: Preserve addr_type when needed. (#6260)
* CFGModel: Preserve addr_type when needed.

* Add a test case.

* Type check.
2026-03-18 19:09:54 -07:00
Fish 65915fad40 SpillingCFG: Cache call destinations. (#6248)
* SpillingCFG: Cache call destinations.

* Lint code.
2026-03-17 19:24:11 -07:00
Fish 8be232fd16 RtDb: Spilling CFG edges and edge attributes. (#6179)
* Preliminary implementation of CFG edge spilling.

* Many tweaks.

* Use little endian; switch to native bytes and msgspec.

* More tweaking.

* Fix test cases.

* Get rid of _all_keys.

* Lint code.

* Type check.
2026-02-26 02:30:53 -07:00
Fish 78799acd95 CFGModel: Spilling CFG nodes to RtDb. (#6092)
* Preliminary implementation of a spilling CFG graph.

* Fix some test cases.

* Fix another test case.

* Fixes.

* Lint code.

* Implement InEdgeView and OutEdgeView.

* Implement InDegreeView and OutDegreeView.

* Fixes.

* Use (Node.addr, Node.size) as key.

* Fix test cases.

* More fixes.

* Fix CFGENode support.

* Fix the remaining issues.

* Get rid of SpillingCFGGraph.reverse().

* Some refactoring.

* Oops

* Fix perf issue.

* Fix set size change error during key iteration.

* Fix db_batch_size assignment. Fix some test cases.

* SpillingCFGNodeDict.__setstate__: Initialize self._all_keys.

* Getting rid of the nodes dictionary.

* Fix logic in cfg_emulated.py

* Multiple fixes.

* Type annotation fix.

* Fix missing edges after merging CFGNodes.

* Fix more logic.

* Add Soot CFGNodes to the CFG model.

* Lint and type check.

* Add USE_SPILLING_CFGNODE_DICT and CFGNode.dirty.

* Oops

* Lint code.

* No more pickling of CFGNodes.

* Fix no_ret being None.

* Lint code.

* Some refactor; Destroy the fallback mechanism.

* Fix node dirty bug after deserialization.
2026-02-24 09:40:02 -07:00
Matt Borgerson d59b716194 VariableManagerInternal: Add serialization tests 2026-02-23 17:14:46 -07:00
Fish 5ee75140ff Dev: Switch from black to ruff format. (#6097)
* Dev: Switch from black to ruff format.

* Reformat all the files.
2026-02-05 14:29:21 -07:00
Fish e13adc02cd Function.prototype: Automatically set arg names when missing. (#6050)
* Function.prototype: Automatically set arg names when missing.

* Support setting None to Function.prototype.
2026-01-26 06:04:57 -05:00
pre-commit-ci[bot] 563fb5f862 [pre-commit.ci] pre-commit autoupdate (#6025)
* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/astral-sh/ruff-pre-commit: v0.14.11 → v0.14.13](https://github.com/astral-sh/ruff-pre-commit/compare/v0.14.11...v0.14.13)
- [github.com/psf/black-pre-commit-mirror: 25.12.0 → 26.1.0](https://github.com/psf/black-pre-commit-mirror/compare/25.12.0...26.1.0)

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-01-19 13:37:06 -07:00
Fish a31f3df8f7 FunctionManager: Spill to external storage. (#5976)
* FunctionManager: Spill to external storage.

* Remove atexit registration. Reduce map size.

* Introduce FuncNode in function graphs; Fix multiple issues with SpillingFunctionDict.

* Implement Function.dirty.

* A bit more optimization.

* FunctionManager loads only meta data for functions when graphs are not accessed; Save .info for functions.

* Only load meta data for Functions in more places.

* Remove FunctionManager.block_map because it's never really used.

* Retire blockaddr_to_function and replace it with blockaddr_to_funcaddr.

* More optimizations and fixes.

* More refactor and fixes.

* More optimizations.

* Fix the bug in lmdb spilling after raising MapFullError.

* Introduce RuntimeDb in KB. Migrate SpillingFunctionsDict to use RuntimeDb.

* Prioritize the basedir of the main executable for the runtime db path.

* Cache non-returning function addrs, unknown-returning function addrs, and function block count in FunctionManager.

* Bug fixes.

* Fix a bug in FunctionParser.

* CFGBase.make_functions: Copy over function metadata when creating functions in the first place.

* Update MockFunctionManager.

* Type check codenode.py and fix an RDA test case.

* Fix serialization tests; Introduce KnowledgeBasePlugin.set_kb(); SpillingFunctionDict now derives from UserDict; Fix KB.name stored in KB._plugins; Fix FunctionDict.__setstate__ swapping Function objects and function addresses.

* Update FactCollector to support FuncNode.

* FunctionInfo: Update Function.dirty and perform type checks on keys and values.

* Make function cache limit configurable.

* Adjust FunctionInfo type check.

* More fixes.

* More updates to account for FuncNode in function graphs.

* Update a test case.

* Fix another test case (do not use the size of FuncNodes).

* Fix Reassembler.

* CFGBase.make_functions: Add a missing insertion to _updated_nonreturning_functions.

* Update FunctionManager.rebuild_callgraph.

* FunctionParser: Call destinations must be FuncNodes.

* Serialize Function.is_default_name.

* Minor fixes.

* Fix CFunctionCall._is_target_ambiguous.

* Mark evicted Function instances as evicted.

* HashLookupAPIDeobfuscator: Take a list of function addresses instead of Function instances as arg.

* CC_NAMES: Fix the bug of missing SimCCCdecl.

* FunctionParser: Fix missing syscall function nodes.

* HookNode: Take a SimProcedure instance instead of the class as the sim_procedure argument.

* FunctionParser: Consider return-type edges when deserializing.

* SimTypeCppFunction: Fix to_json() serialization crash.

* FunctionParser: Fix missing return sites.

* Function.is_{syscall,simprocedure,alignment,plt} settings should mark the function dirty.

* RDA: Do not create blocks for FuncNodes or HookNodes.

* Update a test case.

* Fix issues with SimCppClass.to_json.

* HookNode: Fix HookNode.__eq__.

* Fix SootFunction.

* Lint function_manager.py.

* Lint and type check.

* More docs; Spill Function.ran_cca.

* RuntimeDb: Support specifying base dir using an environment variable.

* Lint and fix test cases.
2026-01-12 19:58:18 -07:00
Fish e7cf358a85 Remove pickle from Function.prototype serialization. (#5787)
* Remove pickle from Function.prototype serialization.

* Add a test case.

* Type check.
2025-11-12 20:12:48 -07:00
Audrey Dutcher 7cf133c99d chore: Make SIM_LIBRARIES a dict of list of lib instead of a dict of lib (#5336)
* chore: Make SIM_LIBRARIES a dict of list of lib instead of a dict of lib

* lint

* Revert "Temporarily disabling a line in test_decompiling_4846..."

This reverts commit eafdbf857a.

* remove stray line
2025-03-24 15:01:56 -07:00
mborgerson 31f9f06671 Labels: Fix and test get_unique_label (#5195) 2025-01-22 00:45:36 -07:00
Fish 816108fd00 FunctionManager: Better support for renamed functions. (#5007)
* support looking up sub_XXX names even when the function has been renamed.

* add ability to lookup functions by previous names after a renaming.

---------

Co-authored-by: Yan Shoshitaishvili <zardus@emotionlabs.io>
2024-10-24 14:38:46 -07:00
Kevin Phoenix fa56ba3668 Use ruff TID252 to prevent reletive imports from parents (#4916) 2024-10-01 09:06:33 -07:00
Brian Caswell e427875cbd Fix typos (#4812)
* fix typos

This mostly fixes comments, but in a handful of places fixes bugs due to typos.

One example:
```
-            insn_op_idx=None if cmsg.operand_idx == -1 else cmsg.opearnd_idx,
+            insn_op_idx=None if cmsg.operand_idx == -1 else cmsg.operand_idx,
```

* more typo fixes

* address lint issues

* more import fixes?

* address feedback from PR

---------

Co-authored-by: Brian Caswell <bcaswell@microsoft.com>
2024-09-09 08:23:20 -07:00
Kevin Phoenix a3297681f2 Apply B lints (#4795) 2024-08-29 18:59:52 -07:00
Kevin Phoenix feda6f6909 Apply ruff SIM lints (#4793)
* Apply SIM lints

* Fix some failing tests

* Fix more bugs
2024-08-29 16:56:53 -07:00
Kevin Phoenix ee464d0338 Adopt from __future__ import annotations (#4790) 2024-08-28 18:31:43 -07:00
Audrey Dutcher bf197cb0dc SimType & friends: Fully typecheck, fix observed bugs (#4610)
* SimType & friends: Fully typecheck, fix observed bugs

* fix small bugs

* lint

* adjust the semantics of SimType.size - it can return None now

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* whack

* whack

* whack

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-07-23 17:21:42 -07:00
Yan Shoshitaishvili 6222a6cd44 Support inlining of callees during decompilation (#4595)
* rename functions_callable to functions_reachable

rename functions_callable to functions_reachable

* fix operator for Constant.__sub__

* print hex address of Function

* support multiple blocks with the same address in StackCanarySimplifier. This happens when doing inlined decompilation

* support specifying initial register values in the StackPointerTracker for inlining functions onto stacks of other functions

* add a StackPointerTracker method to retrieve all offsets of a register

* move stack pointer analysis later, in preparation of pre-inlining refactor

* split decompilation process in preparation for inlining logic

* inlined decompilation!

* testcase for inlined decompiler

* support spilled (e.g., callee-saved) register simplification in the inlined callees

* fix variable reference issue due to duplicated blocks (triggered via inlining)

* Fix more type annotations in clinic.py.

Co-authored-by: Fish <fishw@asu.edu>
2024-05-24 15:31:33 -07:00
Florian Magin d7fbe5135b Add KB as parameter to KnowledgeBasePlugin for consistency (#4472)
* Add KB as parameter to KnowledgeBasePlugin for consistency

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Rattle the chains that bind us

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: Florian Magin <fmagin@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-03-13 15:07:58 -07:00
Matt Borgerson 56fba94d1d FunctionManager: Support querying for functions by disambiguated names 2024-01-08 20:24:29 -07:00
Fish b1886a8e27 Make CC and DEFAULT_CC platform-aware. (#4181)
* Make CC and DEFAULT_CC platform-aware. Also enhance the input variable
discovery.

* Lint code.

* compatibility fixes

* SimProcedure.project can be None.

* Add a CC for CGC. Other fixes.

* Be more conservative when analyzing call sites.
2023-09-20 19:51:52 -07:00
Matt Borgerson 17bad29fa6 tests: Structure test files into directories
* Initial pass, loosely following angr package layout
* Many updates to use the 'common' module for binaries repo
* Some unused imports and log handlers are cleaned up
2023-09-08 16:05:33 -07:00
Matt Borgerson 883f08fcd8 tests: Fixup shebangs, main functions, and mark tests executable 2023-09-07 18:46:00 -07:00
Fish f8e4838c09 RDA: Redesigned function handler interfaces (#3936)
* Attempt to provide an interface for writing RDA function handlers easily

* Aggressively touch up call and const atoms

* Totally rewrite function handlers

* Imports

* so many renames and fixes

* weh

* better errors

* Attempt to make decompiler work

* better behavior

* Fix a bunch of shit. thanks mypy

* Add DepGraph.find_path

* Use callsite insaddr for codeloc of function outputs

* Add LiveDefinitions: get_stack_values

* Don't require handle_impl_<func>

* wip: add logic for matching RDA definitions against SimVariables

* _narrow_exprs: Do not update call.ret_expr if ret_expr is None.

* Propagator: Fix an incorrect access to None in the AIL engine.

* RDA: Fix an incorrect CodeLocation definition in function handler.

* Clarify docs for CodeLocation

* fix handle_impl_ and clarify warning message

* Support pseudo function calls.

* Separate function effects applied at callsites and the ones applied inside callees.

* AILSimplifier._narrow_exprs: Filter away all definitions in callees.

* DepGraph no longer takes a reference to Project.

* Fix function argument inference for tail jumps.

* FunctionHandler: Use args. Support args_values.

* Tidy interfaces

* AILSimplifier._unify_local_variables: Ignore variables defined in callees.

* Fix CCA by enabling the function handler.

* Properly handle CallExprs.

* Fix call expression handling. Fix the test case.

* f

* DefinitionMatchPredicate: Fix default initializers

* Overhaul codelocs

* Fix context handling

* Fix values iter

* Sort some shit

* Add logic for handling incomplete prototypes in FunctionHandler

* FunctionHandler: apply effects from dependencies first.

* Properly handle Call.ret_expr in AIL. Fix a in VRA.

* Propagator: Be less strict about contatenation when the high bytes are concrete.

* oops

* Move uses to first pass of function handler effects

* Aggressive type hinting

* FunctionHandler: Try harder to resolve function address

* Type annotation

* Typing

* Adjust codegen to smooth over casts

* Tweak the function argument uses for the nth time

* ail simplifier: check that expr corresponding to use is not None

* Typing

* Objectively a correct bugfix

* Correctly generate args_atoms based on args_values

* in case of fire break glass

* Function handler: Add args uses even if there is no return value

* Add data.ret_values even if there is no ret atom (e.g. ccalls)

* Add the missing with_arch() call.

* function handler: hook prototypes don't have an arch

* Revert "Add the missing with_arch() call."

This reverts commit 319eb8f826f634c89106221e33359a2eb1009a48.

* Implement better is_testing detection.

* Uncomment an important fire extinguisher.

* RDA: AIL engine overwrites the whole register when the return value only occupies the partial register.

* FunctionHandler: Properly handle clobbered partial registers.

* Fix a type hint in atoms.Register.

* Do not add duplicated uses for values that are in args_values.

* copy guessed_prototype from hook to function data

* AILSimplifier: Ignore unused conflicting defs when unifying variables.

* c_args_as_atoms: Handle variadic functions.

* RDA: AILEngine: Do not redefine locals if call args are available.

* VRA: EngineAIL: Follow RDA's logic when handling call.ret_expr.

* Respect block_idx a few places; add caller-handled ret_defns to callsite info

* CallSiteMaker: Mark argument definitions in call stmts so RDA knows what to erase.

* RDA: AILEngine.handle_register: Use the optimal define location if possible.

* oops

* AILSimplifier._narrow_exprs: Fix the callee function check.

* Remove unused imports.

* docs

* Adapt StaticObjectFinder to the new function handler model.

* Make vex rda tests pass

* function handler: Apply bootstrap return value definition at callsite

* lint

* lint 2

---------

Co-authored-by: Audrey Dutcher <audrey@rhelmot.io>
Co-authored-by: Matt Borgerson <contact@mborgerson.com>
2023-05-07 05:54:22 -07:00
Kevin Phoenix 5cbc3b09fb Fix low-hanging lint issues (#3777)
* Fix low-hanging lint issues

* Fix some test failures

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix doc warnings

* Fix test_pickle.py

* Fix code-block doc warning

* Try indenting code block

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-02-07 14:34:29 -07:00
zwimer 346b2d883d black 2023-01-12 16:43:51 -07:00
Zachary Wimer 74e8f34ceb prefer builtin constructors (#3675) 2022-12-20 16:02:02 -07:00
mborgerson cfafb919fe tests: Add missing __init__.py files for test discovery (#3498)
* tests: Add missing __init__.py files

* Environment::merge: Add back other environment type check

* TestEnvironment: Fix merge() rval unpacking

* TestLiveDefinitons: Fix merge() rval unpacking

* LiveDefinitions::get_sp: Don't filter out 0 values
2022-08-29 23:10:42 -07:00
Fish f8a52691c0 Migrate static analyses to the new mixin-based memory model. (#2536)
* SimMemoryObject: Use slots.

* Add LabeledMemory.

* CodeLocation: stmt_idx can be None.

* Propagator: Switch to LabeledMemory and claripy ASTs - Strike One.

* Implement SimLabeledMemoryObject.

* Propagator: Switch to LabeledMemory and claripy ASTs - Strike Two.

* Bug fixes. Migrate RDA live_definitions to LabeledMemory.

* Call the test case.

* Add MVListPage.

* some effort

* Update the test case.

* More progress

* More work done.

* Implement page merging.

* Implement add and sub for RDEngineVEX.

* More test cases passed

* More progress. Update test cases.

* RDA: `SimEngineRDVEX._handle_function_core` to use `MultiValues`

Signed-off-by: Pamplemousse <xav.maso@gmail.com>

* Fix _process_block_end().

* Update _handle_CMPNE

* Update _handle_CMPLT

* Update _handle_CMPORD

* Update _handle_Sar

* Add none safety to some _handle_* functions

* Fix _handle_Not update

* Update _handle_Not1

* Update _handle_CCall

* Add exception checking during shifting

* Convert SimEngineRDAIL.

* bug fixes

* Fix the endianness bug.

* Several bug fixes.

* Do not resimplify a block if it is not changed.

* RDA: Do not reload register values.

* Fix DefinitionAnnotation.

* Fix MultiValues.__len__().

* Fix a test case.

* Propagator: Properly deal with stack addresses in Load.

* Migrate most of variable recovery analysis.

* Force AIL Store to use its own size.

* Fix incorrect propagation when bytes are extracted from an MO. Get rid of .processor_state in VRA.

* Get rid of ProcessorState.

* Minor bug fixes in _reference().

* bug fixes

* Propagator: Return 1-bit tops for CMPs.

* Cache TOPs.

* Fix variable indent for global variables.

* SimMemoryObject: Optimize __eq__().

* VRF: Fix four handlers in the AIL engine.

* Remove a breakpoint.

* MVListPage: Do not calculate changed bytes twice during merging.

* MVListPage: Reduce unnecessary scans of None in content.

* ListPage/MVListPage: Support custom SimMemoryObject comparators.

* MVListPage: Reduce calls to _contains().

* Propagator: Remove TOPs in replacements after analysis.

* Reduce max iterations of RDA and Propagator to 2.

* Bug fix in propagator.

* Fix an incorrect type annotation.

* Unify _post_analysis in Propagator.

* LiveDefinitions: Fix _mo_cmp.

* Revert "Reduce max iterations of RDA and Propagator to 2."

This reverts commit 536ea4d59f80095dc37ec9055ed25aab19ed7d83.

* _replace_and_build(): Returns if the replacement really happened.

* Propagator: Fix stack variable load/store.

* Compute less propagation and RDAs in AILSimplifier.

* RDA: Use cached and less-accurate dummy definitions for kill_definitions().

* Fix LiveDefinitions._mo_cmp.

* Propagator: Fix a minor issue in the Add handler in AIL engine.

* Propagator: Attempt to propagate everything coming out of tmps.

* Migrate variable recovery.

* RDA: Get rid of references to DataSet. Fix support for floating point values.

* LightEngineVEX: _handle_Const supports floating points.

* CallSiteMaker: Handle SimMemoryMissingError.

* extract_offset_to_sp: Handle __add__ with only one argument.

* Propagator: Do not store if the data is None.

* Implement get_all_definitions(). Fix bugs in SimEngineRDVEX.

* Fix more broken test cases.

* VariableRecovery: Fix a StopIteration bug.

* Fix more bugs.

* Lint the code.

* Fix test cases. Drop DataSet.

Co-authored-by: Pamplemousse <xav.maso@gmail.com>
Co-authored-by: Clasm <wfgibbs@asu.edu>
2021-05-10 18:36:42 -07:00
Pamplemousse 453c600fa9 RDA: dataset_from_datasets to handle empty list (#2435)
Signed-off-by: Pamplemousse <xav.maso@gmail.com>
2020-12-23 15:14:51 -07:00
Pamplemousse 57eaf83262 Allow to manage environment variables during RDA. (#2379)
* RDA: Keep track of environment variables

Create dedicated `Environment` to be used in `ReachingDefinitionsState`.

Signed-off-by: Pamplemousse <xav.maso@gmail.com>

* RDA: Merge environment in `ReachingDefinitionsState`

  * add `Environment.merge` feature

Signed-off-by: Pamplemousse <xav.maso@gmail.com>
2020-12-17 21:02:38 -07:00
Pamplemousse 550951c683 RDA: LiveDefinitions.get_sp() not to fail (#2407)
* RDA: Don't duplicate `get_sp` implementation

... accross `ReachingDefinitionsState` and `LiveDefinitions`

Signed-off-by: Pamplemousse <xav.maso@gmail.com>

* RDA: `LiveDefinitions.get_sp()` not to fail

...when there are several SP definitions.

Signed-off-by: Pamplemousse <xav.maso@gmail.com>
2020-12-02 10:33:05 -07:00
Pamplemousse 7df67652fe RDA: Improve DataSet (#2401)
* RDA: Utilitary to get the size of several `DataSet`s

Signed-off-by: Pamplemousse <xav.maso@gmail.com>

* RDA: More operations for `UnknownSize`

As the size of `DataSet`s represents a number of bits, the following
operation often happens in the code: `dataset._bits // 8` .

Signed-off-by: Pamplemousse <xav.maso@gmail.com>
2020-11-25 14:18:10 -07:00
Pamplemousse 68d9af7471 Heap "management" for ReachingDefinitionsAnalysis (#2376)
* RDA: Minor missing documention addition

Signed-off-by: Pamplemousse <xav.maso@gmail.com>

* RDA: Favor `unittest` assertions to `nose`

Signed-off-by: Pamplemousse <xav.maso@gmail.com>

* RDA: Basic heap memory modelisation

  * have a `HeapAddress` dedicated type
  * uber-basic simulation of an allocator behavior (addresses
  generation)

Signed-off-by: Pamplemousse <xav.maso@gmail.com>

* RDA: Add heap modelisation to the state

  * content as part of the `LiveDefinitions`
  * memory management using `HeapAllocator` and `HeapAddress`es

Signed-off-by: Pamplemousse <xav.maso@gmail.com>

* RDA: Allow sum between `int` and `HeapAddress`

Signed-off-by: Pamplemousse <xav.maso@gmail.com>

* RDA: Make `HeapAddress` hashable

Signed-off-by: Pamplemousse <xav.maso@gmail.com>
2020-11-25 14:17:42 -07:00
simplevuln 3bbe1bb56d Fix the infinite recursion bug in functions_called (#2377)
* Fix functions_called

Infinite recursion bug in functions_called

* Add test for functions_called

Check cyclic dependencies of functions_called

* `Function.functions_called` split tests

  * make the two cases explicitely separated

Signed-off-by: Pamplemousse <xav.maso@gmail.com>

Co-authored-by: Pamplemousse <xav.maso@gmail.com>
2020-11-07 16:31:23 -07:00
Pamplemousse c366024449 RDA: Keep DataSet displayable (#2368)
Avoid clobbering the output when a `DataSet` contain super long strings.

Signed-off-by: Pamplemousse <xav.maso@gmail.com>
2020-11-02 15:24:27 -07:00
Pamplemousse 39db5a68ab CFGManager: Get the most accurate CFG easily (#2342)
Signed-off-by: Pamplemousse <xav.maso@gmail.com>
2020-10-07 11:25:02 -07:00
Pamplemousse 848d844dce Corrections and improvements around Dataset (#2331)
* RDA: More handy DataSet instanciation

Signed-off-by: Pamplemousse <xav.maso@gmail.com>

* RDA: Correct `UnknownSize` comparisons

Signed-off-by: Pamplemousse <xav.maso@gmail.com>
2020-09-24 12:03:24 -07:00
Pamplemousse 8811adb6c7 Function: Add feature to get dependencies (#2318)
Dependencies as in "the list of other functions it -transitively-
calls".

Signed-off-by: Pamplemousse <xav.maso@gmail.com>
2020-09-09 02:05:38 -07:00
Pamplemousse deb49d35b7 RDA: Instanciate Atoms from SimFunctionArgument (#2243) 2020-07-08 15:57:45 -07:00