On 06/30/2016 04:39 PM, Brian Drummond wrote: > On Thu, 2016-06-30 at 12:59 +0200, john smith wrote: >> On 6/30/16, Goswin von Brederlow <goswin-v-b@xxxxxx> wrote: >>> >>> On Thu, Jun 30, 2016 at 11:55:27AM +0200, john smith wrote: >>>> >>>> All static symbol have a short number attached to its name, for >>>> example: >>>> >>>> static const int def[9999999] = {1}; >>>> >>>> shows up as: >>>> >>>> 0000000000400920 r def.2802 >>>> >>>> >> ok, maybe I wasn't clear enough. I wonder how are these numbers >> chosen? It's not a random number because it stays the same after >> every >> compilation. It's not a hash made from an object name because it >> stays >> the same after changing the name. > > It might be inherited from the internal representation format, gimple. > This numbers just about everything in the code, including labels on > statements, so that loops, conditionals etc can be translated to > "goto"s. This happens before the optimisation passes transform it and > eliminate whatever they can. > IIRC, they are just counters. They don't start with 0 (or some other small value) because each built-in intrinsic function also gets an ID. -- Regards, Mikhail Maltsev