Lines Matching refs:pointers
85 the union of all pointers which can be cast to void.
140 even when there are live pointers to them. Pointers are only valid as
141 long as the blocks they point to are valid, so a block with pointers to
142 it whose lifetime ends is kept alive until all pointers to it go out of
160 Non-static blocks track all the pointers into them through an intrusive
161 doubly-linked list, required to adjust and invalidate all pointers when
163 all pointers to it are invalidated, emitting the appropriate diagnostics when
231 through pointer arithmetic, such as ``((int *)0x100)[20]``. Null pointers are
232 target pointers with a zero offset.
246 Void pointers, which can be built by casting any of the aforementioned
247 pointers, are implemented as a union of all pointer types. The ``BitCast``
254 Block pointers track a ``Pointee``, the block to which they point, along
257 one-past-end pointers). The offset identifies the array element or field
259 contains the field. These two fields allow all pointers to be uniquely
280 ``&a.c[0].a``. In the interpreter, all these pointers must be
285 would have its field interleaved with metadata. The pointers which can
299 The ``Base`` offset of all pointers points to the start of a field or
305 Array elements are identified by the ``Offset`` field of pointers,
317 Extern pointers can be derived, pointing into symbols which are not
320 the ``LValuePath`` of an APValue. Extern pointers can be converted
321 to block pointers if the underlying variable is defined after the
336 replicating the behaviour of the ``offsetof`` builtin. Target pointers
342 case, null pointers are target pointers with all offsets set to 0.
353 Such pointers are built by operations which cannot generate valid
354 pointers, allowing the interpreter to continue execution after emitting