Actually i do not want to pass by value. I thought composite types are 
references by a pointer (to the first element, like in C) and having mytype 
as the type of input parameter would pass the pointer to the library call? 

On Thursday, January 8, 2015 2:41:20 PM UTC+1, Isaiah wrote:
>
> If you are trying to pass a struct by-value then it is unlikely to work. 
> Julia does not support this at the abi level as yet. I think there is an 
> open issue about this, and an old PR.
>
> For more readable code_llvm output, try setting 'f(args) = ccall(...)' and 
> look at code_llvm for f. Another way to see the details is to use a 
> debugger and set a breakpoint in the function you are calling.
> On Jan 8, 2015 4:29 AM, "Andreas Lobinger" <[email protected] 
> <javascript:>> wrote:
>
>> Hello colleagues,
>>
>> i thought i understood the ccall interface but now i ran into a problem 
>> (segmentation fault) and i cannot really track down, where actually the 
>> problem occures.
>> I want/need to pass a pointer to structure (c style) to a library and the 
>> function in the library writes entries in the structure.
>>
>> (the following i write from memory, i do not have the code on this 
>> computer...)
>>
>> type mytype
>>     a::Int32
>>     b::Int32
>> end
>>
>> t = mytype(0,0)
>>
>> ccall(:flip, Void, (mytype,), t)
>>
>>
>> 1) is there somewhere code you would recommend to read?
>> 2) how can i use code_lowered or code_llvm to actually see the details. 
>> The above example is included in a module and it looks like the code is 
>> compiled at 'using' so code_llvm e.g. only shows the call to the compiled 
>> function, but not the inside.
>> 3) other documentation (blog, FR) etc?
>>
>> Wishing a happy day,
>>       Andreas
>>
>

Reply via email to