On Fri, 29 Apr 2011, Joerg Schuelke wrote:

There is one problem with {$I %LINE%} and his friends, which restricts
the use of these directives. They are expanded even inside a macro
immediately, so, if you define a macro for debugging purposes, you
get the line and file info for the place of the definition and not
for the place of the expansion.

I am playing around with the compiler for some weeks, maybe i will send
a patch ( in a couple of weeks, the code is somehow complicated ) if
desired.

But what is the cleaner way? To defer the expansion of {$I %xxx%}
inside macros, or to define c-like macros __LINE__ and __FILE__, maybe
with nicer names?

Defer expansion. The use of {$I } is mandatory, since __LINE__ and friends are valid
pascal identifiers and this should not be changed by a macro.

Michael.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to