diff options
author | jamborm <jamborm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-02-08 09:47:09 +0000 |
---|---|---|
committer | jamborm <jamborm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-02-08 09:47:09 +0000 |
commit | f579567dded5b4aa739912bcbaa77f39682b1071 (patch) | |
tree | 24264722d83b83fd458ec440fd846ad648c70a87 | |
parent | 4df7e89d9e88b2c1af8f9ae79eb258d4f7a77053 (diff) |
[PR 79375] Avoid passing NULL by reference
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@245275 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/ipa-prop.c | 21 |
2 files changed, 20 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 67dc9b12bad..eea8bc77b23 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c index d031a70caa4..e4e44ce20c6 100644 --- a/gcc/ipa-prop.c +++ b/gcc/ipa-prop.c @@ -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. */ |