On Tue, May 31, 2016 at 10:39 AM, Emil Velikov <[email protected]> wrote:
> On 31 May 2016 at 01:00, Mauro Rossi <[email protected]> wrote:
>> Fixes the following building error:
>>
>> bionic/libc/include/string.h:105:33: error: call to 
>> '__memcpy_dest_size_error'
>> declared with attribute error: memcpy called with size bigger than 
>> destination
>>
>> Cc: <[email protected]>
>> ---
>>  src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp 
>> b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>> index aa443a5..46079d2 100644
>> --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>> +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
>> @@ -3455,7 +3455,7 @@ glsl_to_tgsi_visitor::visit_image_intrinsic(ir_call 
>> *ir)
>>     if (reladdr.file != PROGRAM_UNDEFINED) {
>>        emit_arl(ir, sampler_reladdr, reladdr);
>>        image.reladdr = ralloc(mem_ctx, st_src_reg);
>> -      memcpy(image.reladdr, &sampler_reladdr, sizeof(reladdr));
>> +      memcpy(image.reladdr, &sampler_reladdr, sizeof(sampler_reladdr));
> Pretty sure that the original code is correct/intentional, as one
> wants to copy only the reladdr part of sampler_reladdr. Perhaps one
> could use an assignment operator here.
>
> Ilia, any suggestions ?

This code is very confused, which probably reflects my state of mind
as I was trying to add indirect sampler support a very long time ago.
sampler_reladdr is a st_dst_reg while image.reladdr (and the ralloc
right above it) are st_src_reg's. They have similar but different
fields. I suspect all of these should be changed to

*image.reladdr = st_src_reg(sampler_reladdr)

or similar, whenever I did that memcpy() bs with sampler_reladdr. Nice find!

  -ilia
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to