There are 2 modes in Z3: automatic reference counting and manual mode.
I understand how manual counting works. Thanks to the example.
But how does Z3 know when to remove an AST node in case of automatic recounting of points? Since Z3_ast is a structure from C =>, it is not possible to keep track of all the uses and uses of Z3_ast outside of Z3 after its creation.
Or links to Z3 tracks only inside Z3? This is not an update to ref counts if you do, for example: ast1 = ast2.
Ayrat source
share