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:
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.
From: Johan Knol <johan.knol@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.
Get latest updates about Open Source Projects, Conferences and News.