libfirm / cparser

C99 parser and frontend for libfirm
http://pp.ipd.kit.edu/firm
GNU General Public License v2.0
337 stars 38 forks source link

assertion in type.c:68: get_type_struct_size: Assertion `sizes[kind] != 0' failed. #2

Closed rofl0r closed 11 years ago

rofl0r commented 11 years ago

/media/3T/git-mirror/musl[master]$ make /media/3T/git-mirror/cparser/build/debug/cparser -m32 -std=c99 -nostdinc -ffreestanding -D_XOPEN_SOURCE=700 -I./arch/i386 -I./src/internal -I./include -Os -pipe -fomit-frame-pointer -fno-asynchronous-unwind-tables -Wa,--noexecstack -c -o src/complex/cexp.o src/complex/cexp.c warning: ignoring unknown option -Wa,--noexecstack cparser: type.c:68: get_type_struct_size: Assertion sizes[kind] != 0' failed. make: *** [src/complex/__cexp.o] Aborted make: *** Deleting filesrc/complex/__cexp.o'

this seems to be the issue with complex numbers referenced in issue #1

MatzeB commented 11 years ago

Yes this is more missing complex support (your libm.h contains some constructs). I have patches which fix this particular assertion but they are not that usefull at the moment, since codegeneration for complex is not implemented anyway.

MatzeB commented 11 years ago

Support for complex is implemented in cparser as of 157b9df22b3b2148603bdc63edb9d5439ed903c1. However to have it working 100% we still some change in libFirm to adhere to the gcc/ia32 calling conventions (system V doesn't seem to care about complex) where complex float is returned in 2 integer registers...

MatzeB commented 11 years ago

closing this issue now. The codegeneration issues for complex numbers are in a separate bug report (in the mantis bugtracker).