Comment # 7 on bug 1042012 from
Created attachment 727291 [details]
source-luatex.dif

(In reply to Richard Biener from comment #6)
> So as I thought GCC is taking advantage of
> 
>  #ifdef _MSC_VER
>  __declspec(align(16))
>  #endif
>  struct cdata {
>      const struct ctype type
>  #ifdef __GNUC__
>        __attribute__ ((aligned(16)))
>  #endif
>        ;
>  };
> 
> when loading from cd->type but
> 
>     cd = (struct cdata*) lua_touserdata(L, idx);
> 
> lua_touserdata doesn't honor that alignment.  You can probably see that
> at the point of the crash %eax is not aligned to 16 bytes.

Aha ... thanks, with the attached patch the problem is gone. Maybe gcc7 should
throw an error at compile time if the aligment does not fit.

The function lua_touserdata() is from lua52 library


You are receiving this mail because: