bin/71613: [PATCH] traceroute(8): cleanup of the
usr.sbin/traceroute6 code
Dan Lukes
dan at obluda.cz
Sat Mar 15 18:39:34 UTC 2008
Bruce Evans napsal/wrote, On 03/15/08 18:12:
> __COPYRIGHT() in <sys/cdefs.h> reduces this problem by concatenating
> __LINE__. It could also concatenate a file name (but not __FILE__, since
> that is probably not an identifier).
It's heuristic. It may, or may not work (it may or may not create
unique name across all sources).
>> We still have the problem the variable may be optimized out.
>
> __used prevents this.
__used is nonstandard gcc extension. I tried it on gcc 3.4.6 and 4.2.3.
It works.
I don't know if it work for icc as I have no one.
If it works, then it's good fix.
> volatile doesn't prevent the variable being optimized out for gcc-4.2.
> This makes some sense -- volatile sort of means "use it carefully", but
> when it is not used no care with it is needed.
The meaning of volatile shall be "use it carefully, because you can't
found which way the variable is used". If the gcc-4.2 optimized it out,
it's definitely gcc's bug. If I claim "you don't know how it's used" the
compiler shall never respond "I better know what I know than you".
But such discussion doesn't belong there.
> I prefer 'static char const __used copyright[]'. Not sure where __used
> belongs.
I have no problem with it if __used works for all relevant compilers. I
prefer the form of a macro (may be other than __COPYRIGHT) for further
maintenance, but no problem even with non-macro form.
-------------
Well, it seems we reach consensus. So what about commitment of a patch
for this four year old PR ? ;-)
Dan
More information about the freebsd-bugs
mailing list