2011-06-09 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Jun 2011 12:17:17 +0000 (12:17 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 9 Jun 2011 12:17:17 +0000 (12:17 +0000)
* trans.c (gfc_allocate_array_with_status): Mark error path
as unlikely.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174842 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/trans.c

index c77c6ed..dad51bf 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-09  Richard Guenther  <rguenther@suse.de>
+
+       * trans.c (gfc_allocate_array_with_status): Mark error path
+       as unlikely.
+
 2011-06-08  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/18918
index f2f1352..ee35387 100644 (file)
@@ -697,8 +697,9 @@ gfc_allocate_array_with_status (stmtblock_t * block, tree mem, tree size,
 
   /* Create a variable to hold the result.  */
   res = gfc_create_var (type, NULL);
-  null_mem = fold_build2_loc (input_location, EQ_EXPR, boolean_type_node, mem,
-                             build_int_cst (type, 0));
+  null_mem = gfc_unlikely (fold_build2_loc (input_location, NE_EXPR,
+                                           boolean_type_node, mem,
+                                           build_int_cst (type, 0)));
 
   /* If mem is NULL, we call gfc_allocate_with_status.  */
   gfc_start_block (&alloc_block);
@@ -751,7 +752,7 @@ gfc_allocate_array_with_status (stmtblock_t * block, tree mem, tree size,
     }
 
   tmp = fold_build3_loc (input_location, COND_EXPR, void_type_node, null_mem,
-                        alloc, error);
+                        error, alloc);
   gfc_add_expr_to_block (block, tmp);
 
   return res;