ipa-inline-analysis.c: Include gimplify.h (set_cond_stmt_execution_predicate...
authorJan Hubicka <hubicka@ucw.cz>
Wed, 25 Nov 2015 09:08:20 +0000 (10:08 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Wed, 25 Nov 2015 09:08:20 +0000 (09:08 +0000)
* ipa-inline-analysis.c: Include gimplify.h
(set_cond_stmt_execution_predicate,
set_switch_stmt_execution_predicate): Be sure to not leak locations
to function body.

From-SVN: r230857

gcc/ChangeLog
gcc/ipa-inline-analysis.c

index 9504817e269a56ca728a54a8a43d5aba4b79a658..3ec9ab7008fbf423fedbd161bc07fc22f1c9aa67 100644 (file)
@@ -1,3 +1,10 @@
+2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
+
+       * ipa-inline-analysis.c: Include gimplify.h
+       (set_cond_stmt_execution_predicate,
+       set_switch_stmt_execution_predicate): Be sure to not leak locations
+       to function body.
+
 2015-11-25  Jakub Jelinek  <jakub@redhat.com>
 
        PR target/67089
index 8c8b8e3af844621d8041f19794989b36f5de31e5..cf7766b7d1424d73682348d6716789857cea65ba 100644 (file)
@@ -94,6 +94,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "ipa-utils.h"
 #include "cilk.h"
 #include "cfgexpand.h"
+#include "gimplify.h"
 
 /* Estimate runtime of function can easilly run into huge numbers with many
    nested loops.  Be sure we can compute time * INLINE_SIZE_SCALE * 2 in an
@@ -1773,9 +1774,9 @@ set_cond_stmt_execution_predicate (struct ipa_func_body_info *fbi,
             unordered one.  Be sure it is not confused with NON_CONSTANT.  */
          if (this_code != ERROR_MARK)
            {
-             struct predicate p = add_condition (summary, index, &aggpos,
-                                                 this_code,
-                                                 gimple_cond_rhs (last));
+             struct predicate p = add_condition
+                (summary, index, &aggpos, this_code,
+                 unshare_expr_without_location (gimple_cond_rhs (last)));
              e->aux = edge_predicate_pool.allocate ();
              *(struct predicate *) e->aux = p;
            }
@@ -1861,12 +1862,15 @@ set_switch_stmt_execution_predicate (struct ipa_func_body_info *fbi,
       if (!min && !max)
        p = true_predicate ();
       else if (!max)
-       p = add_condition (summary, index, &aggpos, EQ_EXPR, min);
+       p = add_condition (summary, index, &aggpos, EQ_EXPR,
+                          unshare_expr_without_location (min));
       else
        {
          struct predicate p1, p2;
-         p1 = add_condition (summary, index, &aggpos, GE_EXPR, min);
-         p2 = add_condition (summary, index, &aggpos, LE_EXPR, max);
+         p1 = add_condition (summary, index, &aggpos, GE_EXPR,
+                             unshare_expr_without_location (min));
+         p2 = add_condition (summary, index, &aggpos, LE_EXPR,
+                             unshare_expr_without_location (max));
          p = and_predicates (summary->conds, &p1, &p2);
        }
       *(struct predicate *) e->aux