[Bug 1042012] Latest gcc 7-1.2 cause crash
http://bugzilla.suse.com/show_bug.cgi?id=1042012 http://bugzilla.suse.com/show_bug.cgi?id=1042012#c3 --- Comment #3 from Dr. Werner Fink <werner@suse.com> --- The type of `struct cdata' is defined and declared in texk/web2c/luatexdir/luaffi/ffi.h with #ifdef _MSC_VER __declspec(align(16)) #endif struct cdata { const struct ctype type #ifdef __GNUC__ __attribute__ ((aligned(16))) #endif ; }; Whereas `struct ctype' is given in the same file at line 320 upto 366 with /* Note: if adding a new member that is associated with a struct/union * definition then it needs to be copied over in ctype.c:set_defined for when * we create types based off of the declaration alone. * * Since this is used as a header for every ctype and cdata, and we create a * ton of them on the stack, we try and minimise its size. */ struct ctype { size_t base_size; /* size of the base type in bytes */ union { /* valid if is_bitfield */ struct { /* size of bitfield in bits */ unsigned bit_size : 7; /* offset within the current byte between 0-63 */ unsigned bit_offset : 6; }; /* Valid if is_array */ size_t array_size; /* Valid for is_variable_struct or is_variable_array. If * variable_size_known (only used for is_variable_struct) then this is * the total increment otherwise this is the per element increment. */ size_t variable_increment; }; size_t offset; unsigned align_mask : 4; /* as (align bytes - 1) eg 7 gives 8 byte alignment */ unsigned pointers : POINTER_BITS; /* number of dereferences to get to the base type including +1 for arrays */ unsigned const_mask : POINTER_MAX + 1; /* const pointer mask, LSB is current pointer, +1 for the whether the base type is const */ unsigned type : 5; /* value given by type enum above */ unsigned is_reference : 1; unsigned is_array : 1; unsigned is_defined : 1; unsigned is_null : 1; unsigned has_member_name : 1; unsigned calling_convention : 2; unsigned has_var_arg : 1; unsigned is_variable_array : 1; /* set for variable array types where we don't know the variable size yet */ unsigned is_variable_struct : 1; unsigned variable_size_known : 1; /* used for variable structs after we know the variable size */ unsigned is_bitfield : 1; unsigned has_bitfield : 1; unsigned is_jitted : 1; unsigned is_packed : 1; unsigned is_unsigned : 1; }; with #define POINTER_BITS 2 #define POINTER_MAX ((1 << POINTER_BITS) - 1) at line 315 -- You are receiving this mail because: You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@novell.com