Forum
Weird DEFB bug (*solved*) - Printable Version

+- Forum (https://www.boriel.com/forum)
+-- Forum: Compilers and Computer Languages (https://www.boriel.com/forum/forumdisplay.php?fid=12)
+--- Forum: ZX Basic Compiler (https://www.boriel.com/forum/forumdisplay.php?fid=11)
+---- Forum: Bug Reports (https://www.boriel.com/forum/forumdisplay.php?fid=15)
+---- Thread: Weird DEFB bug (*solved*) (/showthread.php?tid=641)



Weird DEFB bug (*solved*) - einar - 02-22-2015

Try running this program:

Code:
GO TO 10

sample:
    asm
       defb "A(B)CD"
    end asm

10  DIM a,i AS UBYTE
    FOR i = 0 TO 5
    LET a=PEEK(@sample+i)
    PRINT a;" '";CHR$(a);"'"
    NEXT i

It was supposed to produce this output:

Code:
65 'A'
40 '('
66 'B'
41 ')'
67 'C'
68 'D'

However it will produce this output instead:

Code:
65 'A'
32 ' '
40 '('
66 'B'
41 ')'
67 'C'

Apparently this extra space (code 32) mysteriously appears whenever there's parenthesis inside a defb string.

Tested using latest version 1.4.0s1902. This problem always happens regardless of optimization level for compilation.


Re: Weird DEFB bug - boriel - 07-11-2015

Confirmed bug. Confusedhock:
And I'm puzzled, because I though it was in the preprocessor. It is not.


Re: Weird DEFB bug - boriel - 07-11-2015

boriel Wrote:Confirmed bug. Confusedhock:
And I'm puzzled, because I though it was in the preprocessor. It is not.
Ok. It seems fixed now, but please, check even your old programs to see if they works ok.
It was a bug in an bizarre code in the optimizer I need to refact (as always).

Please, can you download ZX BASIC 1.4.0-r1912 and tell me if it works ok? :roll:


Re: Weird DEFB bug - einar - 07-11-2015

It works now, thanks!!!