RE: [RFA] Handle GPC specific name for main function

Pierre Muller
2007-10-08T07:35:28Z

Hi Joel,

I am sorry to be so late to reply to your
comments, but I have currently no internet access
at home :(

About your changes:

1) Change of function type to "const char *"
Chainging the return type of
"pascal_main_name" to "const char *" seems fine for me,
but in the function "find_main_name",
there is first a call to ada_main_name
which is a "char *" function, and is now
assigned to a "const char *", as you changed the type of
"new_main_name" variable. My limited knowledge of
the subtle differences between "const char *" and "char *"
explains why I missed it at the start, but also
lets me state that I have no idea if changing the return type
of "ada_main_name" is correct, or if doing the typecasting on
the line where "ada_main_name" is called.
Wouldn't it be better to leave the new_main_name type
unchanged, and do a type cast either when calling "pascal_main_name"
or inside "pascal_main_name" if we decide to leave it as a
"char *".

2) Your change to the final comment inside "pascal_main_name":
The main point here is that this function is only useful for
the GNU pascal compiler (GPC) which gives a special symbol name
to the main procedure inside the main source.
This is not the case for the Free Pascal compiler,
another freeware, and I happen to be part of the core developer
team of Free Pascal, thus your comment is misleading
+ /* No known entry procedure found, the main program is probably
+ not in pascal. */
I would propose
+ /* No known entry procedure found, the main program is probably
+ not compiled by GPC. */

Thank you very much for taking the time
to review this patch,

Pierre Muller
Pascal language maintainer.

> -----Original Message-----
> From: Joel Brobecker [mailto:brobecker@adacore.com]
> Sent: Monday, October 08, 2007 8:35 AM
> To: Eli Zaretskii
> Cc: muller@ics.u-strasbg.fr; gdb-patches@sourceware.org
> Subject: Re: [RFA] Handle GPC specific name for main function
>
> > Fine with me; that's what I had in mind.
>
> Excellent. Here is the complete patch, I forgot to include the symtab.c
> part...
>
> 2007-10-07 Pierre Muller <muller@ics.u-strasbg.fr>
>
> * p-lang.h (pascal_main_name): Add declaration.
> * p-lang.c (GPC_P_INITIALIZE, GPC_MAIN_PROGRAM_NAME_1)
> (GPC_MAIN_PROGRAM_NAME_2): New constants.
> (pascal_main_name): New function.
> * symtab.c: Include p-lang.h.
> (find_main_name): ADd call to pascal_main_name.
> * Makefile.in (symtab.o): Add dependency on p-lang.h.
>
> Needs to be tested...
>
> --
> Joel