- нету типа real, оператор / должен возвращать дробный результат - нету открытых массивов - нет символов и строк - нету операторов if, while и т.д. - импортируемые модули не инициализируются (секция begin) - нету типа set - не реализована свёртка констант - не протестированы типы разнных размеров - не реализовано расширение типа record: libgccjit не умеет в классы. Проверки в рантайме надо делать вручную. - нет проверок границ массивов в рантайме: Потому что как минимум нет дескрипторов типа. Возможно можно заюзать это: https://gcc.gnu.org/onlinedocs/gcc/Pointer-Bounds-Checker-builtins.html - При вычислении размера структур не учитывается вравнивание. в libgccjit нет средств получения размера типов, в т.ч. структур Как происходит выравнивание и есть ли оно вообще по дефолту - не понятно: Нужно ли для получения выровненных структур использовать gcc_jit_type_get_aligned? Пересекается с этим: https://gcc.gnu.org/onlinedocs/gcc/Common-Type-Attributes.html Требуемые выравнивания для типов можно получить через встроинную функцию __alignof__(T) https://gcc.gnu.org/onlinedocs/gcc/Alignment.html Возможный алгоритм выравнивания: https://stackoverflow.com/questions/6963998/how-does-gcc-calculate-the-required-space-for-a-structure http://www.rendoc.tech/questions/834444/how-does-gcc-calculate-the-required-space-for-a-structure Есть ещё что-то для проверки границ объектов: https://gcc.gnu.org/onlinedocs/gcc/Object-Size-Checking.html - не понятен результат присваивания статических/разыменованных структур и массивов (* reca := recb; *) - побайтовое копирование? - не реализовано присваивание процедур к переменным-процедурам: в libgccjit нет средств получения указателя на функцию. Как решение-костыль - получение указателя в основной программе и сохранение в переменной. - не реализован автокаст: Не критично: libgccjit сам разруливает типы разных размеров. - не реализованы локальные процедуры: libgccjit не умеет в локальные функции. Обойти можно костылём как в jvm. - нет проверок переполнения как в рантайме, так и в компилтайме. Возможно можно заюзать это: https://gcc.gnu.org/onlinedocs/gcc/Integer-Overflow-Builtins.html - нету счёта строк / столбцов - любая ошибка фатальна