OwnershipConversion class
Defined in module l0_backend_convert (l0_backend_convert.py).
Checked pointer access and ownership-preserving value conversions.
Public static attributes
- static BackendState state
Protected functions
- auto _sizeof_expr_for_type(self, Type ty) -> str
- Return a C
sizeofexpression for the runtime access extent. - auto _alignof_expr_for_type(self, Type ty) -> str
- Return a C alignment expression for the runtime access target.
- auto _emit_checked_pointer_expr(self, str c_ptr_expr, Type ptr_ty, Node|None node = None, str access_mode = "_RT_ACCESS_READ") -> str
- Emit a pointer expression checked for one pointee-sized access.
- auto _emit_pointer_index_lvalue(self, str c_base, str c_index, Type base_ty, Node|None node = None, str access_mode = "_RT_ACCESS_WRITE") -> str
- Emit a checked pointer-index lvalue expression.
- auto _convert_expr_with_expected_type(self, str c_expr, Type|None natural_ty, Type expected) -> str
- Convert a pre-emitted expression into the expected type when required.
- auto _emit_unwrap(self, str c_dst, str c_inner, NullableType src_ty) -> str
- Emit code to unwrap a nullable value.
- auto _emit_sizeof_intrinsic(self, CallExpr expr) -> str
- Emit sizeof intrinsic.
Function documentation
str l0_backend_convert:: OwnershipConversion:: _convert_expr_with_expected_type(self,
str c_expr,
Type|None natural_ty,
Type expected) protected
Convert a pre-emitted expression into the expected type when required.
| Parameters | |
|---|---|
| c_expr | The C expression string. |
| natural_ty | The natural type of the expression. |
| expected | The expected type. |
| Returns | A C expression string, potentially wrapped or widened. |
str l0_backend_convert:: OwnershipConversion:: _emit_unwrap(self,
str c_dst,
str c_inner,
NullableType src_ty) protected
Emit code to unwrap a nullable value.
| Parameters | |
|---|---|
| c_dst | C type of destination. |
| c_inner | C expression of nullable value. |
| src_ty | The NullableType. |
| Returns | C code for unwrapped value. |
str l0_backend_convert:: OwnershipConversion:: _emit_sizeof_intrinsic(self,
CallExpr expr) protected
Emit sizeof intrinsic.
| Parameters | |
|---|---|
| expr | The sizeof call expression. |
| Returns | A C sizeof expression string. |
| Exceptions | |
| InternalCompilerError | If target type cannot be resolved. |