[PR 79375] Avoid passing NULL by reference
authorMartin Jambor <mjambor@suse.cz>
Wed, 8 Feb 2017 09:47:09 +0000 (10:47 +0100)
committerMartin Jambor <jamborm@gcc.gnu.org>
Wed, 8 Feb 2017 09:47:09 +0000 (10:47 +0100)
2017-02-08  Martin Jambor  <mjambor@suse.cz>

PR ipa/79375
* ipa-prop.c (ipa_alloc_node_params): Make static, return bool
whether allocation happened.
(ipa_initialize_node_params): Do not call ipa_alloc_node_params if
nothing was allocated.

From-SVN: r245275

gcc/ChangeLog
gcc/ipa-prop.c

index 67dc9b12badc0181198471b9b0ae19073b26496e..eea8bc77b23ea7e97bd6cbd6a5bb8a3e7cda2047 100644 (file)
@@ -1,3 +1,11 @@
+2017-02-08  Martin Jambor  <mjambor@suse.cz>
+
+       PR ipa/79375
+       * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
+       whether allocation happened.
+       (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
+       nothing was allocated.
+
 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
 
        PR tree-optimization/79408
index d031a70caa4667fc79fb49638ba3c1eeb7b1520f..e4e44ce20c693990da5393bc6538facdc9aa102e 100644 (file)
@@ -176,16 +176,21 @@ ipa_dump_param (FILE *file, struct ipa_node_params *info, int i)
     }
 }
 
-/* Initialize the ipa_node_params structure associated with NODE 
-   to hold PARAM_COUNT parameters.  */
+/* If necessary, allocate vector of parameter descriptors in info of NODE.
+   Return true if they were allocated, false if not.  */
 
-void
+static bool
 ipa_alloc_node_params (struct cgraph_node *node, int param_count)
 {
   struct ipa_node_params *info = IPA_NODE_REF (node);
 
   if (!info->descriptors && param_count)
-    vec_safe_grow_cleared (info->descriptors, param_count);
+    {
+      vec_safe_grow_cleared (info->descriptors, param_count);
+      return true;
+    }
+  else
+    return false;
 }
 
 /* Initialize the ipa_node_params structure associated with NODE by counting
@@ -197,11 +202,9 @@ ipa_initialize_node_params (struct cgraph_node *node)
 {
   struct ipa_node_params *info = IPA_NODE_REF (node);
 
-  if (!info->descriptors)
-    {
-      ipa_alloc_node_params (node, count_formal_params (node->decl));
-      ipa_populate_param_decls (node, *info->descriptors);
-    }
+  if (!info->descriptors
+      && ipa_alloc_node_params (node, count_formal_params (node->decl)))
+    ipa_populate_param_decls (node, *info->descriptors);
 }
 
 /* Print the jump functions associated with call graph edge CS to file F.  */