Bug in manual for gcc-2.95: __FUNCTION__
Jason Merrill
jason@cygnus.com
Sun Oct 31 23:33:00 GMT 1999
>>>>> Martin v Loewis <martin@mira.isdn.cs.tu-berlin.de> writes:
>> In g++, __FUNCTION__ is a variable, not a string literal. That change was
>> necessary to support templates.
> I would add the sentence
> In @code{C++}, @code{__FUNCTION__} and @code{__PRETTY_FUNCTION__} are
> variables, declared in the same way as @code{__func__}.
> With that change, is it ok to install the patch?
Sure.
> I just noticed that there is a number of minor nits, in the behaviour
> of gcc compared to the proposed documentation:
> a) __func__ is treated the same way as __FUNCTION__ in cc1. As a
> result, concatenation is supported for __func__, whereas it would be
> ill-formed according to C99.
> b) The value of these builtin identifiers is an array with a default
> length of 201. The default is not used when the value is longer
> than that, or when the -Wlarger-than- option is used. As a result,
> the program
> #include <stdio.h>
> int halloballo()
> {
> return sizeof(__FUNCTION__);
> }
> int main()
> {
> printf("%d\n",halloballo());
> }
> prints "201" when compiled as a C++ program, but "11" when compiled
> as a C program.
> Should these nits be documented, or should they be considered as bugs?
Bugs, I would think.
Jason
More information about the Gcc-patches
mailing list