Skip to content
Snippets Groups Projects
Commit 8f3d0c8c authored by Richard Biener's avatar Richard Biener Committed by Richard Biener
Browse files

middle-end/111821 - compile-time/memory-hog with large copy

The following fixes a compile-time/memory-hog when performing a
large aggregate copy to a small object allocated to a register.
While store_bit_field_1 called by store_integral_bit_field will
do nothign for accesses outside of the target the loop over the
source in store_integral_bit_field will still code-generate
the read parts for all words in the source.  The following copies
the noop condition from store_bit_field_1 and terminates the
loop when it runs forward or avoid code-generating the read parts
when not.

	PR middle-end/111821
	* expmed.cc (store_integral_bit_field): Terminate the
	word-wise copy loop when we get out of the destination
	and do a forward copy.  Skip the word if it would be
	outside of the destination in case of a backward copy.

	* gcc.dg/torture/pr111821.c: New testcase.
parent 3592d3f8
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment