BCB6 подозревается на наличие серьёзного бага в компиляторе.
Просьба проверить, если есть возможность.
Создайте простой проект консольного приложения в BCB6.
Создайте в проекте заголовочный файл следующего содержания:
//-----
#ifndef __BugDeclaration__
#define __BugDeclaration__
// !!!THIS STRUCTURE DEFINITION BREAKS COMPILATION PROCESS!!!
typedef struct
{
union
{
struct
{
union
{
short A; // as short
struct
{
unsigned char Alo; // as byte + byte
unsigned char Ahi;
};
};
union
{
short B;
struct
{
unsigned char Blo;
unsigned char Bhi;
};
};
};
float FloatParam;
int IntParam;
};
unsigned char FunRecordType;
} FUN_RECORD;
#endif
//-----
Включите этот файл в основной юнит директивой #include
и запустите компиляцию.
BCB6 бодро отрапортует: "Done: Build All", но экзешник не соберёт.
Подозреваю, что компилятор просто вылетает по AV, наткнувшись на описанную выше структуру.
Здравствуйте, Здоровый Бык, Вы писали:
ЗБ>BCB6 подозревается на наличие серьёзного бага в компиляторе.
Хм, а билдер со всеми апдейтами?
Я попробовал — все билдидтся, все запускается.

Проверил пару раз, вроде все 1 в 1 сделал.
В том-то и прикол, что со всеми обновлениями.
Версия 6.0, build 10.166
А вот тут лежит оригинальный проект:
http://bcb6bug.narod.ru/
архив:
http://bcb6bug.narod.ru/BCB_6_UNION_BUG.zip
Проверял на разных компутерах — вылетает BCB, и всё тут!
Здравствуйте, Здоровый Бык, Вы писали:
ЗБ>http://bcb6bug.narod.ru/BCB_6_UNION_BUG.zip
ЗБ>Проверял на разных компутерах — вылетает BCB, и всё тут!
Хм. Так дейстительно вылетает.
Причем только в том случае если обьявленая структура хоть как-то используется в проекте. Стоит закомментить "FUN_RECORD fun = {0,0,0};" или заменить его на "FUN_RECORD fun;", как все начинает нормально собираться. Интересно.
О, и так тоже работает: FUN_RECORD fun = {0};
PS: кстати, предварительно пришлось отковырять в этом проекте зависимость от TntLibR.bpi %)