Hi all, In the fftw package the {$calling cdecl} directive is at the top of the file, and {$calling register} is somewhere in the interface section.
Now the problem seems to be that the function defined directly before the {$calling register} directive is already defined as register. This code: (from packages/fftw/fftw_s.pas) {$calling cdecl} ... procedure fftw_execute(plan:fftw_plan_single); external 'fftw3f' name 'fftwf_execute'; // <-- register {$calling register} The procedure fftw_execute is called by the example (fftw/examples) as being register. If you place another function in between the declaration and the compiler-directive, it is cdecl: {$calling cdecl} ... procedure fftw_execute(plan:fftw_plan_single); external 'fftw3f' name 'fftwf_execute'; // <-- cdecl function fftw_plan_dft(rank:cardinal;n:Pcardinal;i:Pcomplex_single;o:Psingle; flags:fftw_flagset):fftw_plan_single; external 'fftw3f' name 'fftwf_plan_dft_c2r'; {$calling register} How can that happen? Joost _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel