Michael Morrell <morrell@xxxxxxxxxxxxxxx> writes: > I'm building some code that I want to make sure produces the same bits each > time. I ran into a case where the only difference between the result from > two different compilation is the names of some of the symbols. > > For example, I may see the symbol name: > > __PRETTY_FUNCTION__.20638 > > in the first build, and then: > > __PRETTY_FUNCTION__.20694 > > in the second build. > > I can believe that gcc might need to generate a suffix to disambiguate > function-scoped static variables with the same name, but I need it to do > so in a deterministic fashion. Over a large code base, this only shows > up a few times, so that seems strange. > > Can someone help to explain this or point me towards the place in the > compiler where it is generating this suffix? The number comes from DECL_UID in lhd_set_decl_assembler_name. That should normally be fixed for a single compilation, but it is likely affected by some compiler options. Ian