{$ifdef fpc} {$mode delphi} {$endif fpc} {$ifdef FPC_COMP_IS_INT64} type comp = double; {$endif FPC_COMP_IS_INT64} procedure test(a: widestring); overload; begin writeln('widestring called instead of widechar'); writeln('XXX') end; procedure test(a: widechar); overload; begin writeln('widechar called instead of widestring'); halt(1) end; var v: variant; x: widestring; y: widechar; begin try v := x; test(v); except on E : TObject do halt(1); end; try v := y; test(v); except on E : TObject do halt(1); end; end.