From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Paul N. Hilfinger" To: gdb-patches@sources.redhat.com Subject: Question concerning comment in symtab.h Date: Wed, 09 May 2001 17:04:00 -0000 Message-id: <200105100004.RAA07318@localhost.localdomain> X-SW-Source: 2001-05/msg00130.html 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.] Paul Hilfinger