An lvalue is something that can of the `left'-hand side of an assignment: a storage area (such as a variable). It is also usable as an rvalue, where the rvalue is computed by reading from the storage area.
Upcast an lvalue to be an object.
Upcast an lvalue to be an rvalue.
Take the address of an lvalue; analogous to:
&(EXPR)
in C.
Make a variable a thread-local variable.
The “model” parameter determines the thread-local storage model of the “lvalue”:
Don’t set the TLS model.
This is analogous to:
_Thread_local int foo __attribute__ ((tls_model("MODEL")));
in C.
This entrypoint was added in LIBGCCJIT_ABI_17; you can test for its presence using
#ifdef LIBGCCJIT_HAVE_gcc_jit_lvalue_set_tls_model
Set the link section of a variable.
The parameter section_name
must be non-NULL and must contain the
leading dot. Analogous to:
int variable __attribute__((section(".section")));
in C.
This entrypoint was added in LIBGCCJIT_ABI_18; you can test for its presence using
#ifdef LIBGCCJIT_HAVE_gcc_jit_lvalue_set_link_section
Set the register name of a variable.
The parameter reg_name
must be non-NULL. Analogous to:
register int variable asm ("r12");
in C.
This entrypoint was added in LIBGCCJIT_ABI_22; you can test for its presence using
#ifdef LIBGCCJIT_HAVE_gcc_jit_lvalue_set_register_name
Set the alignment of a variable, in bytes. Analogous to:
int variable __attribute__((aligned (16)));
in C.
This entrypoint was added in LIBGCCJIT_ABI_24; you can test for its presence using
#ifdef LIBGCCJIT_HAVE_ALIGNMENT
Return the alignment of a variable set by gcc_jit_lvalue_set_alignment
.
Return 0 if the alignment was not set. Analogous to:
_Alignof (variable)
in C.
This entrypoint was added in LIBGCCJIT_ABI_24; you can test for its presence using
#ifdef LIBGCCJIT_HAVE_ALIGNMENT