Entry names of packs (struct fields, union alternatives, procedure
parameter list) cannot be compared purely by pointer value. This
patch fixes the union alternative sorting code to not rely on this
false assumption.
Signed-off-by: Jose E. Marchesi <jemarch@gnu.org>
gcc/algol68/ChangeLog
* a68-moids-sorting.cc (packs_ordering): Do not rely on pointer
comparison when comparing pack element names.
return 1;
if (TEXT (b) == NO_TEXT)
return -1;
- return -strcmp (TEXT (a), TEXT (b));
+
+ int cmp = strcmp (TEXT (a), TEXT (b));
+ if (cmp != 0)
+ return -cmp;
}
}
}