From 38f1b50d963068f4d3eb1e46f8e2b579178b5e85 Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Sun, 15 Oct 2006 16:21:14 +0000 Subject: [PATCH] re PR target/29250 (internal compiler error: in extract_insn, at recog.c:2084) PR middle-end/29250 * gcc.c-torture/compile/pr29250.c: New test. From-SVN: r117747 --- gcc/testsuite/ChangeLog | 5 +++ gcc/testsuite/gcc.c-torture/compile/pr29250.c | 32 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 gcc/testsuite/gcc.c-torture/compile/pr29250.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c2ff6c22b40..8cf1478c84d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-10-15 David Edelsohn + + PR middle-end/29250 + * gcc.c-torture/compile/pr29250.c: New test. + 2006-10-15 Richard Guenther * gcc.dg/pr29299.c: New testcase. diff --git a/gcc/testsuite/gcc.c-torture/compile/pr29250.c b/gcc/testsuite/gcc.c-torture/compile/pr29250.c new file mode 100644 index 00000000000..970af329d74 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr29250.c @@ -0,0 +1,32 @@ +/* We used to ICE because EXPAND_SUM was being used for all recursive calls + to expand_expr. */ +struct TSparseEntry +{ + int feat_index; + double entry; +}; + +struct TSparse +{ + int vec_index; + int num_feat_entries; + struct TSparseEntry *features; +}; + +void +get_full_feature_matrix (struct TSparse* sparse_feature_matrix, int num_vec) +{ + double *fm; + int v, f; + + for (v=0; v < num_vec; v++) + { + for (f=0; f < sparse_feature_matrix[v].num_feat_entries; f++) + { + long long offs = sparse_feature_matrix[v].vec_index + + sparse_feature_matrix[v].features[f].feat_index; + fm[offs] = sparse_feature_matrix[v].features[f].entry; + } + } +} +