The internal assembler had two bugs in .ascii directive parsing: 1. Comment stripping treated '#' as a comment start even inside quoted strings, silently truncating string literals containing '#'. This corrupted .rodata for any program with '#' in string constants (e.g. QBE IR format strings like "# String literals"). 2. The \xHH hex escape syntax was not handled. Bytes encoded as \xE2 etc. were emitted as literal ASCII 'xE2' (3 bytes) instead of the single byte 0xE2, corrupting UTF-8 string data. Both bugs were invisible when using the external assembler (gcc) and only manifested when --assembler internal was used on large programs with non-ASCII string literals or '#' characters in strings. |
||
|---|---|---|
| .. | ||
| src | ||
| project.xml | ||