From 7615883aaa47ab3268a344a708b7f61c1affe86a Mon Sep 17 00:00:00 2001 From: rguenth Date: Fri, 22 Sep 2006 15:43:27 +0000 Subject: 2006-09-22 Richard Guenther PR middle-end/28964 * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make sort of stack variables stable. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117146 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cfgexpand.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gcc/cfgexpand.c') diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 9839d098375..4cc1047fadf 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -350,11 +350,19 @@ stack_var_size_cmp (const void *a, const void *b) { HOST_WIDE_INT sa = stack_vars[*(const size_t *)a].size; HOST_WIDE_INT sb = stack_vars[*(const size_t *)b].size; + unsigned int uida = DECL_UID (stack_vars[*(const size_t *)a].decl); + unsigned int uidb = DECL_UID (stack_vars[*(const size_t *)b].decl); if (sa < sb) return -1; if (sa > sb) return 1; + /* For stack variables of the same size use the uid of the decl + to make the sort stable. */ + if (uida < uidb) + return -1; + if (uida > uidb) + return 1; return 0; } -- cgit v1.2.1