This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/51727] Changing module files
- From: "simonb at google dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 13 Oct 2012 09:26:35 +0000
- Subject: [Bug fortran/51727] Changing module files
- Auto-submitted: auto-generated
- References: <bug-51727-4@http.gcc.gnu.org/bugzilla/>
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.