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:
Richard Guenther 2006-09-22 15:43:27 +00:00 committed by Richard Biener
parent 459f9f82ec
commit 79f802f532
2 changed files with 14 additions and 0 deletions

View File

@ -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

View File

@ -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;
}