diff options
| author | Reid Kleckner <reid@kleckner.net> | 2014-08-22 00:09:56 +0000 |
|---|---|---|
| committer | Reid Kleckner <reid@kleckner.net> | 2014-08-22 00:09:56 +0000 |
| commit | c36f48f08ae9bc3560725df344427e0f08310d3e (patch) | |
| tree | bb40ba0a7d35083df072457f31c5dbc96fba12be /llvm/lib/Analysis/ValueTracking.cpp | |
| parent | c25146b67b74c30f909b8da5b16c9157d59033c5 (diff) | |
| download | bcm5719-llvm-c36f48f08ae9bc3560725df344427e0f08310d3e.tar.gz bcm5719-llvm-c36f48f08ae9bc3560725df344427e0f08310d3e.zip | |
SROA: Handle a case of store size being smaller than allocation size
In this case, we are creating an x86_fp80 slice for a union from C where
the padding bytes may contain real data. An x86_fp80 alloca is 16 bytes,
and that's just fine. We can't, however, use regular loads and stores to
access the slice, because the store size is only 10 bytes / 80 bits.
Instead, use memcpy and memset.
Fixes PR18726.
Reviewed By: chandlerc
Differential Revision: http://reviews.llvm.org/D5012
llvm-svn: 216248
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
0 files changed, 0 insertions, 0 deletions

