1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-18 15:05:14 +00:00

Bug: Char arrays with a specified size could not be initialized with literal

strings that had the same length as the char array (in this case the zero
terminator must be omitted by the compiler).


git-svn-id: svn://svn.cc65.org/cc65/trunk@2230 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2003-07-19 09:12:38 +00:00
parent a01d673415
commit cc9263d413

View File

@ -1155,6 +1155,18 @@ static unsigned ParseArrayInit (type* T, int AllowFlexibleMembers)
/* Translate into target charset */
TranslateLiteralPool (CurTok.IVal);
/* If the array is one too small for the string literal, omit the
* trailing zero.
*/
if (ElementCount != UNSPECIFIED &&
ElementCount != FLEXIBLE &&
Count == ElementCount + 1) {
/* Omit the trailing zero */
--Count;
}
/* Output the data */
g_defbytes (Str, Count);
/* Remove string from pool */