From: <pa...@pj...> - 2001-05-19 18:58:30
|
This morning I was working away on a faster printf routine, and I hit a case where an assembly-style comment within a large _asm _endasm block causes a segfault. I made a few attempts at reproducing the problem with a small and simple example, but everything I tried with a small _asm block would not cause the segfault. You can grab a copy of the code that reproduces the segfault: http://www.pjrc.com/tmp/printf_segfault.c I do not know if the problem is related to the large size of this _asm block or if there's something in my code that's triggering it. If you remove that one comment or turn it into a C style comment, the segfault goes away and the code compiles. Paul |
From: Johan K. <joh...@id...> - 2001-05-20 16:27:15
|
> I do not know if the problem is related to the large size of > this _asm block or if there's something in my code that's > triggering it. If you remove that one comment or turn it into > a C style comment, the segfault goes away and the code compiles. Inline asm buffers where limited to 4096 bytes. You managed to overflow them (4473 bytes :). These buffers are now dynamically allocated. Unless you include the english dictionairy as a comment in your _asm ... _endasm; it should works now. I fixed this mainly in SDCC.lex and SDCC.y (no, I couldn't resist, and it wasn't so hard after all :), but also in most of the ports that suffered from this. If I broke anything, please let me know. Johan |