Commit 680e8a00 by H.J. Lu Committed by H.J. Lu

re PR target/38781 (PR38151: valgrind finds problem)

2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/38781
	* config/i386/i386.c (classify_argument): Check total size of
	structure.

From-SVN: r145292
parent 133f9369
2008-03-30 H.J. Lu <hongjiu.lu@intel.com>
PR target/38781
* config/i386/i386.c (classify_argument): Check total size of
structure.
2009-03-30 Martin Jambor <mjambor@suse.cz> 2009-03-30 Martin Jambor <mjambor@suse.cz>
* ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST, * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
......
...@@ -4942,6 +4942,8 @@ classify_argument (enum machine_mode mode, const_tree type, ...@@ -4942,6 +4942,8 @@ classify_argument (enum machine_mode mode, const_tree type,
} }
else else
{ {
int pos;
type = TREE_TYPE (field); type = TREE_TYPE (field);
/* Flexible array member is ignored. */ /* Flexible array member is ignored. */
...@@ -4970,13 +4972,10 @@ classify_argument (enum machine_mode mode, const_tree type, ...@@ -4970,13 +4972,10 @@ classify_argument (enum machine_mode mode, const_tree type,
+ bit_offset) % 256); + bit_offset) % 256);
if (!num) if (!num)
return 0; return 0;
for (i = 0; i < num; i++) pos = (int_bit_position (field) + (bit_offset % 64)) / 8 / 8;
{ for (i = 0; i < num && (i + pos) < words; i++)
int pos = classes[i + pos] =
(int_bit_position (field) + (bit_offset % 64)) / 8 / 8; merge_classes (subclasses[i], classes[i + pos]);
classes[i + pos] =
merge_classes (subclasses[i], classes[i + pos]);
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment