On 2012-11-16 23:04, Navdeep Parhar wrote:
On 11/16/12 13:49, Roman Divacky wrote:
Yes, it does that. iirc so that you can have things like

void foo(int cond) {
   if (cond) {
     static int i = 7;
   } else {
     static int i = 8;
   }
}

working correctly.

It's not appending the .n everywhere.  And when it does, I don't see any
potential collision that it prevented by doing so.  Instead, it looks
like the .n symbol corresponds to the nth element in the structure (so
this is not name mangling in the true sense).  I just don't see the
point in doing things this way.  It is only making things harder for
debuggers.

I don't think the point is making things harder for debuggers, the point
is optimization.  Since static variables and functions can be optimized
away, or arbitrarily moved around, you cannot count on those symbols
being there at all.
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to