This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: Question concerning comment in symtab.h
- To: Hilfinger at gnat dot com
- Subject: Re: Question concerning comment in symtab.h
- From: Daniel Berlin <dan at cgsoftware dot com>
- Date: Wed, 9 May 2001 20:21:26 -0400
- Cc: gdb-patches at sources dot redhat dot com
On Wednesday, May 9, 2001, at 08:04 PM, Paul N. Hilfinger wrote:
>
> The definition of struct block contains:
>
> /* Version of GCC used to compile the function corresponding
> to this block, or 0 if not compiled with GCC. When possible,
> GCC should be compatible with the native compiler, or if that
> is not feasible, the differences should be fixed during symbol
> reading. As of 16 Apr 93, this flag is never used to distinguish
> between gcc2 and the native compiler.
>
> If there is no function corresponding to this block, this meaning
> of this flag is undefined. */
>
> unsigned char gcc_compile_flag;
>
> Am I correct that this comment is wrong? For example, in valops.c
> (hand_function_call), we find
>
> {
> struct block *b = block_for_pc (funaddr);
> /* If compiled without -g, assume GCC 2. */
> using_gcc = (b == NULL ? 2 : BLOCK_GCC_COMPILED (b));
> }
>
> ... and later ...
>
> if (using_gcc == 0)
> if (param_type)
> /* if this parameter is a pointer to function */
> if (TYPE_CODE (param_type) == TYPE_CODE_PTR)
> if (TYPE_CODE (param_type->target_type) == TYPE_CODE_FUNC)
> /* elz: FIXME here should go the test about the compiler used
> to compile the target. We want to issue the error
> message only if the compiler used was HP's aCC.
>
> which looks to me as if it handles GCC 2 and native compilers
> differently.
>
> [I ask because we may have another use for BLOCK_GCC_COMPILED, which
> simply
> returns gcc_compile_flag, and I want to understand whether anything
> DEPENDS
> on the assertion in this comment.]
What do you want to do with BLOCK_GCC_COMPILED?
I was just getting ready to remove it.
As the comment says, you shouldn't be using it to distinguish between
gcc and something else past the symbol reading.
>
> Paul Hilfinger