Change the way struct CStrings are handled.
A CString used to be copied into a token string, which is an int array. On a 64-bit architecture the pointers were misaligned, so ASan gave lots of warnings. On a 64-bit architecture that required memory accesses to be correctly aligned it would not work at all. The CString is now included in CValue instead.
This commit is contained in:
@ -330,7 +330,7 @@ static void parse_operand(TCCState *s1, Operand *op)
|
||||
next();
|
||||
if (tok != TOK_PPNUM)
|
||||
goto reg_error;
|
||||
p = tokc.cstr->data;
|
||||
p = tokc.str.data;
|
||||
reg = p[0] - '0';
|
||||
if ((unsigned)reg >= 8 || p[1] != '\0')
|
||||
goto reg_error;
|
||||
|
||||
Reference in New Issue
Block a user