re PR middle-end/28964 (partition_stack_vars uses unstable sort)
2006-09-22 Richard Guenther <rguenther@suse.de> PR middle-end/28964 * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make sort of stack variables stable. From-SVN: r117146
This commit is contained in:
parent
459f9f82ec
commit
79f802f532
@ -1,3 +1,9 @@
|
||||
2006-09-22 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/28964
|
||||
* cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
|
||||
sort of stack variables stable.
|
||||
|
||||
2006-09-22 Peter Bergner <bergner@vnet.ibm.com>
|
||||
|
||||
PR middle-end/28690
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user