aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorRichard Sandiford <richard@codesourcery.com>2006-09-10 19:44:08 +0000
committerRichard Sandiford <richard@codesourcery.com>2006-09-10 19:44:08 +0000
commitd8ae2f5c31d7dbc17a16f1b3d91a4ca98ccab100 (patch)
tree3f1dcef182da8f6b52445d3201a86830f0186261 /gcc/testsuite
parent56567c0ab7e2c97e0b0cc3267ef4aaa7fb1e89fd (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.c3
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; }