[fpc-pascal] Macro expanding error
Pierre Muller
pierre at freepascal.org
Wed Jan 26 18:10:17 CET 2022
Hi all,
Le 26/01/2022 à 02:59, Ryan Joseph via fpc-pascal a écrit :
> I have this macro:
>
> {$define TCallback := TCallback2}
>
> which gives a long list of these errors.
>
> warning: Expanding of macros exceeds a depth of 16.
>
> What does this warning mean and how can I resolve it?
I just tested this:
muller at gcc140:~/pas/check$ ./test-macro-expansion
TCallBack2 called
muller at gcc140:~/pas/check$ cat ./test-macro-expansion.pp
procedure TCallBack2;
begin
writeln('TCallBack2 called');
end;
{$define TCallback := TCallback2}
begin
TCallBack();
end.
muller at gcc140:~/pas/check$ fpc -Sm test-macro-expansion.pp
Free Pascal Compiler version 3.2.2 [2021/05/16] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling test-macro-expansion.pp
Linking test-macro-expansion
12 lines compiled, 0.1 sec
muller at gcc140:~/pas/check$ ./test-macro-expansion
TCallBack2 called
So it is not as simple as Sven suggested...
Maybe there is another line like
{$define TCallback2 := TCallback}
Indeed:
muller at gcc140:~/pas/check$ cat ./test-double-macro-expansion.pp
procedure TCallBack2;
begin
writeln('TCallBack2 called');
end;
{$define TCallback := TCallback2}
{$define TCallback2 := TCallback}
begin
TCallBack();
end.
muller at gcc140:~/pas/check$ fpc -Sm ./test-double-macro-expansion.pp
Free Pascal Compiler version 3.2.2 [2021/05/16] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling ./test-double-macro-expansion.pp
test-double-macro-expansion.pp(9,10) Warning: Expanding of macros exceeds a depth of 16.
test-double-macro-expansion.pp(9,10) Error: Identifier not found "TCallback"
test-double-macro-expansion.pp(14) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: /home/muller/pas/x86_64/fpc-3.2.2/bin/ppcx64 returned an error exitcode
You should probably try to look for another define somewhere else!
Pierre
More information about the fpc-pascal
mailing list