Skip to content

Commit

Permalink
Fix the compilation under gcc 4.9.0.
Browse files Browse the repository at this point in the history
gcc interpretes C99's compound literals more strictly by invalid the
compound literal on implicit to pointer cast (because of automatic
storage duration, 6.5.2.5.6 in C99 standard draft).

This fixes the issue by not using compound literals at all.
  • Loading branch information
KamilaBorowska committed Aug 22, 2014
1 parent f9f773c commit 1f3a93a
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion builtin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2636,7 +2636,13 @@ static int builtin_read(parser_t &parser, wchar_t **argv)
size_t j = 0;
for (; i+1 < argc; ++i)
{
env_set(argv[i], j < bufflen ? (wchar_t[2]){buff[j], 0} : L"", place);
if (j < bufflen) {
wchar_t buffer[2] = {buff[j], 0};
env_set(argv[i], buffer, place);
}
else {
env_set(argv[i], L"", place);
}
if (j < bufflen) ++j;
}
if (i < argc) env_set(argv[i], &buff[j], place);
Expand Down

0 comments on commit 1f3a93a

Please sign in to comment.