]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR ipa/59008 (ICEs in try_make_edge_direct_simple_call / propagate_controlled_uses)
authorMartin Jambor <mjambor@suse.cz>
Mon, 6 Jan 2014 14:05:25 +0000 (15:05 +0100)
committerMartin Jambor <jamborm@gcc.gnu.org>
Mon, 6 Jan 2014 14:05:25 +0000 (15:05 +0100)
2014-01-06  Martin Jambor  <mjambor@suse.cz>

PR ipa/59008
* ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
to int.
* ipa-prop.c (ipa_print_node_params): Fix indentation.

testsuite/
        * gcc.dg/ipa/pr59008.c: New test.

From-SVN: r206361

gcc/ChangeLog
gcc/ipa-cp.c
gcc/ipa-prop.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/ipa/pr59008.c [new file with mode: 0644]

index a810fa22c22b8c62a91a1c0a3824bb6eacda49dd..8a0c3f3c42a83d873142b0622ea5feec24507d39 100644 (file)
@@ -1,3 +1,10 @@
+2014-01-06  Martin Jambor  <mjambor@suse.cz>
+
+       PR ipa/59008
+       * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
+       to int.
+       * ipa-prop.c (ipa_print_node_params): Fix indentation.
+
 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR debug/59350
index 63c50370a0a6658d5b03a45f260a49b640e8bae1..a6a44e6d81aceabbf5dca273cba702771376f50e 100644 (file)
@@ -2281,7 +2281,7 @@ ipcp_discover_new_direct_edges (struct cgraph_node *node,
        {
          bool agg_contents = ie->indirect_info->agg_contents;
          bool polymorphic = ie->indirect_info->polymorphic;
-         bool param_index = ie->indirect_info->param_index;
+         int param_index = ie->indirect_info->param_index;
          struct cgraph_edge *cs = ipa_make_edge_direct_to_target (ie, target);
          found = true;
 
index 08be9199d9927864640a863892451f4bcc5fd13a..786a96f8d334f4f92c0c42ccb6e2aaa73b388634 100644 (file)
@@ -3326,6 +3326,7 @@ ipa_print_node_params (FILE *f, struct cgraph_node *node)
     {
       int c;
 
+      fprintf (f, "    ");
       ipa_dump_param (f, info, i);
       if (ipa_is_param_used (info, i))
        fprintf (f, " used");
index ab3f2b0dc7db74808b06a91363433ddfd7e45652..7b7e558923fa66b1358f275ea31d6785e7d4bbf8 100644 (file)
@@ -1,3 +1,8 @@
+2014-01-06  Martin Jambor  <mjambor@suse.cz>
+
+       PR ipa/59008
+       * gcc.dg/ipa/pr59008.c: New test.
+
 2014-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * gcc.dg/vect/vect.exp: Add clearcap_ldflags to DEFAULT_VECTCFLAGS
diff --git a/gcc/testsuite/gcc.dg/ipa/pr59008.c b/gcc/testsuite/gcc.dg/ipa/pr59008.c
new file mode 100644 (file)
index 0000000..b729672
--- /dev/null
@@ -0,0 +1,32 @@
+/* { dg-do compile } */
+/* { dg-options "-O3" } */
+
+typedef int (*funct)(int, int, int);
+
+extern int f(int, int, int);
+extern int g(int, int, int);
+extern int h(int, funct, funct);
+
+static int baz(int x, int y, int z)
+{
+  return x + y + z;
+}
+
+static int bar(int n, funct f1, funct f2)
+{
+  return h(n, f1, f2) + f1(0, 1, 2);
+}
+
+static int foo(int n, funct f1, funct f2)
+{
+  return bar(n, f1, f2) + f2(0, 1, 2);
+}
+
+int main(void)
+{
+  return foo(0, f, g)
+#ifndef ICE2
+   + foo(0, baz, g)
+#endif
+  ;
+}