Вроде как, накопал еще одну багу.
Суть: Если внутри модуля есть INCLUDE, внутри которого тоже есть модуль, ужасм ингода падает во время компиляции. Маловероятно, что это наведено моим предыдущим фиксом со структурами без меток.
В общем, в directives.cpp, dirMODULE() было так:
Падало в STRCAT (дебажная версия говорила, что стринг не заканчивается null'ом).Код:ModuleName = (char*)realloc(ModuleName,strlen(n)+strlen(ModuleName)+2); if (ModuleName == NULL) { Error("Not enough memory!", 0, FATAL); } STRCAT(ModuleName, sizeof("."), "."); STRCAT(ModuleName, sizeof(n), n);
Стало так:
Так не падает и вроде как компилит. Просьба к сишника и авторам репозиториев оценить фикс. Я не знаю разницы между STRCAT и strcat, оно помогло. Я тоже потестирую исправление.Код:ModuleName = (char*)realloc(ModuleName, strlen(n) + strlen(ModuleName) + 200); if (ModuleName == NULL) { Error("Not enough memory!", 0, FATAL); } strcat(ModuleName, "."); strcat(ModuleName, n);




Ответить с цитированием