diff options
author | Richard Sandiford <richard@codesourcery.com> | 2006-09-10 19:44:08 +0000 |
---|---|---|
committer | Richard Sandiford <richard@codesourcery.com> | 2006-09-10 19:44:08 +0000 |
commit | d8ae2f5c31d7dbc17a16f1b3d91a4ca98ccab100 (patch) | |
tree | 3f1dcef182da8f6b52445d3201a86830f0186261 /gcc/testsuite | |
parent | 56567c0ab7e2c97e0b0cc3267ef4aaa7fb1e89fd (diff) |
gcc/
* config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
* config/mips/mips.c (mips_expand_unaligned_store): Use the mode
returned by mode_for_size, rather than the mode of src itself,
to choose between 32-bit and 64-bit patterns.
(mips_mem_fits_mode_p): New function.
* config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
that the size of the source matches the size of the destination.
(mov_<store>l, mov_<store>r): Likewise.
gcc/testsuite/
* gcc.c-torture/execute/pr29006.c: New test.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/csl/sourcerygxx-4_1@116825 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/pr29006.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/pr29006.c b/gcc/testsuite/gcc.c-torture/execute/pr29006.c new file mode 100644 index 00000000000..4d1f1388465 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr29006.c @@ -0,0 +1,3 @@ +struct __attribute__((__packed__)) s { char c; unsigned long long x; }; +void __attribute__((__noinline__)) foo (struct s *s) { s->x = 0; } +int main (void) { struct s s = { 1, ~0ULL }; foo (&s); return s.x != 0; } |