aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2005-06-24 13:27:25 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2005-06-24 13:27:25 +0000
commit68c1abf1e0890ed03b7c1d91584193b82cf55714 (patch)
tree126cfb4378caa5075533fd25a1538e261cbc2dc7
parent305a132148b9ced8ec6a6cf33a3d4635729fde9d (diff)
downloadgcc-68c1abf1e0890ed03b7c1d91584193b82cf55714.zip
gcc-68c1abf1e0890ed03b7c1d91584193b82cf55714.tar.gz
gcc-68c1abf1e0890ed03b7c1d91584193b82cf55714.tar.bz2
re PR tree-optimization/22171 (gcc-4.0-20050623 internal compiler error in linux/drivers/serial/8250.c)
PR 22171 * tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL before use. PR 22171 * gcc.dg/tree-ssa/pr22171.c: New test. From-SVN: r101292
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/pr22171.c28
3 files changed, 39 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a8a5231..818aea5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-06-24 Mark Mitchell <mark@codesourcery.com>
+
+ PR 22171
+ * tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL
+ before use.
+
2005-06-23 Mark Mitchell <mark@codesourcery.com>
PR 22000
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 413f381..f699cd2 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-06-24 Mark Mitchell <mark@codesourcery.com>
+
+ PR 22171
+ * gcc.dg/tree-ssa/pr22171.c: New test.
+
2005-06-24 Feng Wang <fengwang@nudt.edu.cn>
* gfortran.dg/simplify_modulo.f90: New.
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr22171.c b/gcc/testsuite/gcc.dg/tree-ssa/pr22171.c
new file mode 100644
index 0000000..6a26c56
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr22171.c
@@ -0,0 +1,28 @@
+/* { dg-options "-O2" } */
+
+static unsigned int old_serial_port_irq[10];
+
+static struct uart_8250_port {
+ volatile unsigned int slock;
+ unsigned int irq;
+} serial8250_ports[10];
+
+static __inline__ __attribute__((always_inline)) int irq_canonicalize(int irq)
+{
+ return ((irq == 2) ? 9 : irq);
+}
+
+void serial8250_isa_init_ports(void)
+{
+ struct uart_8250_port *up;
+ int i;
+
+ for (i = 0, up = serial8250_ports; i < 10; i++, up++)
+ up->irq = irq_canonicalize(old_serial_port_irq[i]);
+}
+
+int main(void)
+{
+ serial8250_isa_init_ports();
+ return 0;
+}