(In reply to Dr. Werner Fink from comment #7) > 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. Well, the compiler doesn't know that lua_touserdata doesn't properly align the type. Whatever that function does. Dropping the aligned attribute is a valid fix (the extra NULL check seems unrelated to the issue). Is the aligned attribute new compared to the old sources? > The function lua_touserdata() is from lua52 library