diff options
author | Christian Bruel <christian.bruel@st.com> | 2013-04-29 14:12:55 +0200 |
---|---|---|
committer | Christian Bruel <chrbr@gcc.gnu.org> | 2013-04-29 14:12:55 +0200 |
commit | 9498e5dcbb89189feb81d25ebc7aa78bfad88ec8 (patch) | |
tree | 1f6ef4b71a06f768b1b91227c3e43765a466da23 | |
parent | 6093bc066f693baced258a61efe497da897f67cd (diff) | |
download | gcc-9498e5dcbb89189feb81d25ebc7aa78bfad88ec8.zip gcc-9498e5dcbb89189feb81d25ebc7aa78bfad88ec8.tar.gz gcc-9498e5dcbb89189feb81d25ebc7aa78bfad88ec8.tar.bz2 |
re PR target/57108 ([4.7/4.8/4.9] SH internal compiler error: in int_mode_for_mode, at stor-layout.c:395)
2013-04-29 Christian Bruel <christian.bruel@st.com>
PR target/57108
* sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
From-SVN: r198411
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/sh/sh.md | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/sh/pr57108.c | 19 |
4 files changed, 30 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6400403..45530a7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-04-29 Christian Bruel <christian.bruel@st.com> + + PR target/57108 + * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0. + 2013-04-29 Richard Biener <rguenther@suse.de> PR middle-end/57089 diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index 44a6c08..8984d98 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -689,7 +689,7 @@ ;; Extract contiguous bits and compare them against zero. (define_insn "tstsi_t_zero_extract_eq" [(set (reg:SI T_REG) - (eq:SI (zero_extract:SI (match_operand 0 "logical_operand" "z") + (eq:SI (zero_extract:SI (match_operand:SI 0 "logical_operand" "z") (match_operand:SI 1 "const_int_operand") (match_operand:SI 2 "const_int_operand")) (const_int 0)))] diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 25c0141..ae1c36d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-04-29 Christian Bruel <christian.bruel@st.com> + + PR target/57108 + * gcc.target/sh/pr57108.c: New test. + 2013-04-29 Richard Biener <rguenther@suse.de> PR middle-end/57089 diff --git a/gcc/testsuite/gcc.target/sh/pr57108.c b/gcc/testsuite/gcc.target/sh/pr57108.c new file mode 100644 index 0000000..3d39637 --- /dev/null +++ b/gcc/testsuite/gcc.target/sh/pr57108.c @@ -0,0 +1,19 @@ +/* { dg-do compile { target "sh*-*-*" } } */ +/* { dg-options "-O1" } */ + +void __assert_func (void) __attribute__ ((__noreturn__)) ; + +void ATATransfer (int num, int buffer) +{ + int wordCount; + + while (num > 0) + { + wordCount = num * 512 / sizeof (int); + + ((0 == (buffer & 63)) ? (void)0 : __assert_func () ); + ((0 == (wordCount & 31)) ? (void)0 : __assert_func ()); + } + + + } |