Timm Baeder
8d26252eec
[clang][bytecode][NFC] Dead blocks are always uninitialized ( #152699 )
...
We always call the descriptor dtor before, so they are never
initialized.
2025-08-08 14:57:38 +02:00
Timm Baeder
fde9ee1ac2
[clang][bytecode] Don't deallocate dynamic blocks with pointers ( #152672 )
...
This fixes the edge case we had with variables pointing to dynamic
blocks, which forced us to convert basically *all* dynamic blocks to
DeadBlock when deallocating them.
We now don't run dynamic blocks through InterpState::deallocate() but
instead add them to a DeadAllocations list when they are deallocated but
still have pointers.
As a consequence, not all blocks with Block::IsDead = true are
DeadBlocks.
2025-08-08 13:02:01 +02:00
Timm Baeder
fb49c6784a
[clang][bytecode] Move Pointer::{Prev,Next} into BlockPointer ( #151097 )
...
They are only relevant for block pointers.
2025-07-30 10:17:21 +02:00
Timm Baeder
576ced56d7
[clang][bytecode] Simplify Block::replacePointer() ( #144490 )
...
Try to do less work here instead of a full remove + add.
2025-06-17 12:43:39 +02:00
Timm Baeder
4e5f8a8f0b
[clang][bytecode] Save a per-Block IsWeak bit ( #111248 )
...
Checking the decl for every load is rather expensive.
2024-10-05 17:35:52 +02:00
Timm Baeder
df11ee213e
[clang][bytecode] Diagnose member calls on deleted blocks ( #106529 )
...
This requires a bit of restructuring of ctor calls when checking for a
potential constant expression.
2024-08-29 15:22:59 +02:00
Timm Baeder
a07aba5d44
[clang] Rename all AST/Interp stuff to AST/ByteCode ( #104552 )
...
"Interp" clashes with the clang interpreter and people often confuse
this.
2024-08-16 17:13:12 +02:00