aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Bruel <christian.bruel@st.com>2013-04-29 14:12:55 +0200
committerChristian Bruel <chrbr@gcc.gnu.org>2013-04-29 14:12:55 +0200
commit9498e5dcbb89189feb81d25ebc7aa78bfad88ec8 (patch)
tree1f6ef4b71a06f768b1b91227c3e43765a466da23
parent6093bc066f693baced258a61efe497da897f67cd (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/config/sh/sh.md2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/sh/pr57108.c19
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 ());
+ }
+
+
+ }