http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51727



--- Comment #20 from Simon Baldwin <simonb at google dot com> 2012-10-13 
09:26:35 UTC ---

(In reply to comment #19)

> ...Since we now process these symbols in a deterministic order,

> the integers of the symbols added during each iteration are also 
> deterministic.



Thanks for the note and the fix.  I guess my worry is that the order tags are

assigned to symbols is a function of pointer ordering.  I see the issue with

what look like anonymous symbols, but can't convince myself it couldn't occur

with something less anonymous.



Suppose two anonymous symbols 'X' differentiated only by their addresses 101

and 102.  After tagging there are two X's, call them X1 and X2, that will

produce two lines that are identical apart from tag.  Ordering by tag makes the

order the same even if you reverse their addresses.  However, two named symbols

'A' and 'B' at 101 and 102 will become A1 and B2 and produce two lines that

differ in both tag and other fields, written in tag order as A first and B

second.  If you reverse their addresses the tags are assigned differently, A2

and B1.  Here B has the smaller tag and so is written before A.



At this stage though, I'm out of my depth on fortran, so it may well be that

I'm the one missing something.

Reply via email to