В файле FTCG_CodeGen.dpr есть объект типа TScData и указатель на него PScData.
Объекты в Delphi создаются либо по указателю с помощью оператора New(), либо прямо объявляя переменную этого типа. В обеих случаях память, выделенная под объект, не инициализируется 0-ми. Автор кода об этом знает, например, в этом месте, когда после New(Result) выполняет FillChar(Result^, sizeof(TScData), 0):
function MakeData(num:integer):PScData; overload;
begin
New(Result);
FillChar(Result^, sizeof(TScData), 0);
Result.SetValue(num);
end;
function map_lower(parser:TParser; args:TArgs):TScData;
begin
Result.SetValue(LowerCase(args.Values[0].toStr()), args.Values[0].GetType);
end;
procedure TScData.Clear;
begin
if ldata <> nil then
dispose(ldata);
end;
На данный момент оно работает - просто по чистой случайности компилятор Delphi 4 с текущими настройками размещает созданные таким образом объекты в обнуленных участках памяти. Но нет никакой гарантии, что после каких-либо незначительных изменений в каких-либо случаях на месте объекта не окажутся какие-либо числа.
Надо бы это как-то поправить или хотя бы принять к сведению.