#NEWLINE# def nrt_meminfo_new_varsize( self , builder , size ) : #NEWLINE# #INDENT# "\n        Allocate a MemInfo pointing to a variable-sized data area.  The area\n        is separately allocated (i.e. two allocations are made) so that\n        re-allocating it doesn't change the MemInfo's address.\n\n        A pointer to the MemInfo is returned.\n        " #NEWLINE# self . _require_nrt ( ) #NEWLINE# mod = builder . module #NEWLINE# fnty = llvmir . FunctionType ( void_ptr , [ self . get_value_type ( types . intp ) ] ) #NEWLINE# fn = mod . get_or_insert_function ( fnty , name = 'NRT_MemInfo_new_varsize' ) #NEWLINE# fn . return_value . add_attribute ( 'noalias' ) #NEWLINE# return builder . call ( fn , [ size ] )