trans.c (gfc_allocate_array_with_status): Mark error path as unlikely.
authorRichard Guenther <rguenther@suse.de>
Thu, 9 Jun 2011 12:17:17 +0000 (12:17 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 9 Jun 2011 12:17:17 +0000 (12:17 +0000)
2011-06-09  Richard Guenther  <rguenther@suse.de>

* trans.c (gfc_allocate_array_with_status): Mark error path
as unlikely.

From-SVN: r174842

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

index c77c6edfdb642ae410501ac8e8490aec78c16f46..dad51bf1a22ec22d9448ed490a277cc27708b308 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 f2f13525b39ade4032185842d7bc5efa434f6b74..ee35387a7d9dd62f13d89f27882de31b7c3cdbd5 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;