From c0a3f887e5153990dd33e72dd4a6530ba19ab5ce Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Mon, 24 Apr 2006 08:21:41 +0000 Subject: [PATCH] re PR middle-end/26869 (Segfault in find_lattice_value() for complex operands.) 2006-04-24 Richard Guenther PR middle-end/26869 * tree-complex.c (update_parameter_components): Don't handle unused parameters which have no default def. * gcc.dg/torture/pr26869.c: New testcase. From-SVN: r113219 --- gcc/ChangeLog | 6 ++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/torture/pr26869.c | 7 +++++++ gcc/tree-complex.c | 2 ++ 4 files changed, 20 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/torture/pr26869.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0f66eac78ce..171808d73cd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-04-24 Richard Guenther + + PR middle-end/26869 + * tree-complex.c (update_parameter_components): Don't handle + unused parameters which have no default def. + 2006-04-24 Andrew Pinski Richard Guenther diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 326c31d6a5b..3c6b413274c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-04-24 Richard Guenther + + PR middle-end/26869 + * gcc.dg/torture/pr26869.c: New testcase. + 2006-04-24 Andrew Pinski Richard Guenther diff --git a/gcc/testsuite/gcc.dg/torture/pr26869.c b/gcc/testsuite/gcc.dg/torture/pr26869.c new file mode 100644 index 00000000000..6743319d109 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr26869.c @@ -0,0 +1,7 @@ +/* { dg-do compile } */ + +_Complex float f (_Complex float b, _Complex float c) +{ + _Complex float a = 1.0 + 0.0i; + return a / c; +} diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c index 0529131301a..65466bbadb3 100644 --- a/gcc/tree-complex.c +++ b/gcc/tree-complex.c @@ -652,6 +652,8 @@ update_parameter_components (void) type = TREE_TYPE (type); ssa_name = default_def (parm); + if (!ssa_name) + continue; r = build1 (REALPART_EXPR, type, ssa_name); i = build1 (IMAGPART_EXPR, type, ssa_name);