[fpc-pascal] Re: Get all caller adresses of a given function/procedure before executing

Rainer Stratmann RainerStratmann at t-online.de
Wed Aug 15 16:17:56 CEST 2012

Am Wednesday 15 August 2012 15:20:21 schrieb Lukasz Sokol:
> On 15/08/2012 13:55, Rainer Stratmann wrote:
> > Am Wednesday 15 August 2012 14:49:04 schrieb Rainer Stratmann:
> >> I would call this function rs( s : pchar ) because it has to be short.
> >> if there is a rs() in the program the compiler stores the caller adress
> >> (unique handle) and the pointer to the pchar in a list.
> >
> > If the pointer to pchar is unique then this one information will be
> > already enough. That means the parameter s must be a constant text.
> This question has long lingered in my brain just could not express it:
> What happens in your program/translator, if the strings change their
> physical/relative address?

Then the
mov  pcharconst , EAX
command also had changed.
At every start of the program I see if it works here.
If it works here ist works outside also.

> For example if you add/remove units and rebuild.

All pchar adresses are searched at programstart.

> For example if FPC internals decide to add or remove some padding in front
> of the constants.

Very unlikely.
For which reason should there be padding in front?
I can not see any insolvable problem here.

> Will all your translation work go to waste ?

Then I would have a look at the opcodes directly and see what has been changed 
and likely find a solution.

If the maintainers decide to build in the suggested function above then 
everthing is solved. By now no one of the maintainers wants this.

I also can ask what happens if there are no more maintainers for fpc?

More information about the fpc-pascal mailing list