l0_backend_convert::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 sizeof expression 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.