* [PATCH 1/5] dtc: Simplify asm_emit_string() implementation @ 2017-03-04 13:26 Nicolas Iooss [not found] ` <20170304132647.23286-1-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> 0 siblings, 1 reply; 12+ messages in thread From: Nicolas Iooss @ 2017-03-04 13:26 UTC (permalink / raw) To: David Gibson, Jon Loeliger, devicetree-compiler-u79uwXL29TY76Z2rM5mHXA Cc: Nicolas Iooss Using %.*s format helps making asm_emit_string() not modify its "str" parameter. While at it, constify the "str" parameter of bin_emit_string() and asm_emit_string(), as these function no longer modify it. Signed-off-by: Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> --- flattree.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/flattree.c b/flattree.c index ebac548b3fa8..d8a118258e01 100644 --- a/flattree.c +++ b/flattree.c @@ -49,7 +49,7 @@ static struct version_info { struct emitter { void (*cell)(void *, cell_t); - void (*string)(void *, char *, int); + void (*string)(void *, const char *, int); void (*align)(void *, int); void (*data)(void *, struct data); void (*beginnode)(void *, struct label *labels); @@ -64,7 +64,7 @@ static void bin_emit_cell(void *e, cell_t val) *dtbuf = data_append_cell(*dtbuf, val); } -static void bin_emit_string(void *e, char *str, int len) +static void bin_emit_string(void *e, const char *str, int len) { struct data *dtbuf = e; @@ -144,22 +144,14 @@ static void asm_emit_cell(void *e, cell_t val) (val >> 8) & 0xff, val & 0xff); } -static void asm_emit_string(void *e, char *str, int len) +static void asm_emit_string(void *e, const char *str, int len) { FILE *f = e; - char c = 0; - if (len != 0) { - /* XXX: ewww */ - c = str[len]; - str[len] = '\0'; - } - - fprintf(f, "\t.string\t\"%s\"\n", str); - - if (len != 0) { - str[len] = c; - } + if (len != 0) + fprintf(f, "\t.string\t\"%.*s\"\n", len, str); + else + fprintf(f, "\t.string\t\"%s\"\n", str); } static void asm_emit_align(void *e, int a) -- 2.11.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
[parent not found: <20170304132647.23286-1-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org>]
* [PATCH 2/5] libfdt: overlay: Check the value of the right variable [not found] ` <20170304132647.23286-1-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> @ 2017-03-04 13:26 ` Nicolas Iooss [not found] ` <20170304132647.23286-2-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> 2017-03-04 13:26 ` [PATCH 3/5] tests: Make realloc_fdt() really allocate *fdt Nicolas Iooss ` (3 subsequent siblings) 4 siblings, 1 reply; 12+ messages in thread From: Nicolas Iooss @ 2017-03-04 13:26 UTC (permalink / raw) To: David Gibson, Jon Loeliger, devicetree-compiler-u79uwXL29TY76Z2rM5mHXA Cc: Nicolas Iooss overlay_update_local_node_references() saves the result of fdt_subnode_offset() into variable tree_child but checks for variable ret afterwards. As this does not make sense, check tree_child instead of ret. This bug has been found by compiling with clang. The compiler reported the following warning: libfdt/fdt_overlay.c:275:7: error: variable 'ret' may be uninitialized when used here [-Werror,-Wconditional-uninitialized] if (ret == -FDT_ERR_NOTFOUND) ^~~ libfdt/fdt_overlay.c:210:9: note: initialize the variable 'ret' to silence this warning int ret; ^ = 0 Signed-off-by: Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> --- libfdt/fdt_overlay.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libfdt/fdt_overlay.c b/libfdt/fdt_overlay.c index 56cb70ed4445..b2fb5d970ccc 100644 --- a/libfdt/fdt_overlay.c +++ b/libfdt/fdt_overlay.c @@ -272,7 +272,7 @@ static int overlay_update_local_node_references(void *fdto, tree_child = fdt_subnode_offset(fdto, tree_node, fixup_child_name); - if (ret == -FDT_ERR_NOTFOUND) + if (tree_child == -FDT_ERR_NOTFOUND) return -FDT_ERR_BADOVERLAY; if (tree_child < 0) return tree_child; -- 2.11.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
[parent not found: <20170304132647.23286-2-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org>]
* Re: [PATCH 2/5] libfdt: overlay: Check the value of the right variable [not found] ` <20170304132647.23286-2-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> @ 2017-03-08 21:01 ` Simon Glass [not found] ` <CAPnjgZ2Lon3e-NV-FH76QpXFP2tAcc=Ex48hG7OMQxbcjzBfig-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 12+ messages in thread From: Simon Glass @ 2017-03-08 21:01 UTC (permalink / raw) To: Nicolas Iooss; +Cc: David Gibson, Jon Loeliger, Devicetree Compiler On 4 March 2017 at 06:26, Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> wrote: > overlay_update_local_node_references() saves the result of > fdt_subnode_offset() into variable tree_child but checks for variable > ret afterwards. As this does not make sense, check tree_child instead of > ret. > > This bug has been found by compiling with clang. The compiler reported > the following warning: > > libfdt/fdt_overlay.c:275:7: error: variable 'ret' may be > uninitialized when used here > [-Werror,-Wconditional-uninitialized] > if (ret == -FDT_ERR_NOTFOUND) > ^~~ > libfdt/fdt_overlay.c:210:9: note: initialize the variable 'ret' to > silence this > warning > int ret; > ^ > = 0 > > Signed-off-by: Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> > --- > libfdt/fdt_overlay.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Simon Glass <sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> This suggests we need a new test case. > > diff --git a/libfdt/fdt_overlay.c b/libfdt/fdt_overlay.c > index 56cb70ed4445..b2fb5d970ccc 100644 > --- a/libfdt/fdt_overlay.c > +++ b/libfdt/fdt_overlay.c > @@ -272,7 +272,7 @@ static int overlay_update_local_node_references(void *fdto, > > tree_child = fdt_subnode_offset(fdto, tree_node, > fixup_child_name); > - if (ret == -FDT_ERR_NOTFOUND) > + if (tree_child == -FDT_ERR_NOTFOUND) > return -FDT_ERR_BADOVERLAY; > if (tree_child < 0) > return tree_child; > -- > 2.11.1 > > -- > To unsubscribe from this list: send the line "unsubscribe devicetree-compiler" in > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <CAPnjgZ2Lon3e-NV-FH76QpXFP2tAcc=Ex48hG7OMQxbcjzBfig-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [PATCH 2/5] libfdt: overlay: Check the value of the right variable [not found] ` <CAPnjgZ2Lon3e-NV-FH76QpXFP2tAcc=Ex48hG7OMQxbcjzBfig-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2017-03-09 1:35 ` David Gibson 0 siblings, 0 replies; 12+ messages in thread From: David Gibson @ 2017-03-09 1:35 UTC (permalink / raw) To: Simon Glass; +Cc: Nicolas Iooss, Jon Loeliger, Devicetree Compiler [-- Attachment #1: Type: text/plain, Size: 2229 bytes --] On Wed, Mar 08, 2017 at 02:01:44PM -0700, Simon Glass wrote: > On 4 March 2017 at 06:26, Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> wrote: > > overlay_update_local_node_references() saves the result of > > fdt_subnode_offset() into variable tree_child but checks for variable > > ret afterwards. As this does not make sense, check tree_child instead of > > ret. > > > > This bug has been found by compiling with clang. The compiler reported > > the following warning: > > > > libfdt/fdt_overlay.c:275:7: error: variable 'ret' may be > > uninitialized when used here > > [-Werror,-Wconditional-uninitialized] > > if (ret == -FDT_ERR_NOTFOUND) > > ^~~ > > libfdt/fdt_overlay.c:210:9: note: initialize the variable 'ret' to > > silence this > > warning > > int ret; > > ^ > > = 0 > > > > Signed-off-by: Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> > > --- > > libfdt/fdt_overlay.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > Reviewed-by: Simon Glass <sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> > > This suggests we need a new test case. True. I've already merged this but adding a testcase as a followup would be most appreciated. > > > > > diff --git a/libfdt/fdt_overlay.c b/libfdt/fdt_overlay.c > > index 56cb70ed4445..b2fb5d970ccc 100644 > > --- a/libfdt/fdt_overlay.c > > +++ b/libfdt/fdt_overlay.c > > @@ -272,7 +272,7 @@ static int overlay_update_local_node_references(void *fdto, > > > > tree_child = fdt_subnode_offset(fdto, tree_node, > > fixup_child_name); > > - if (ret == -FDT_ERR_NOTFOUND) > > + if (tree_child == -FDT_ERR_NOTFOUND) > > return -FDT_ERR_BADOVERLAY; > > if (tree_child < 0) > > return tree_child; > > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 3/5] tests: Make realloc_fdt() really allocate *fdt [not found] ` <20170304132647.23286-1-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> 2017-03-04 13:26 ` [PATCH 2/5] libfdt: overlay: Check the value of the right variable Nicolas Iooss @ 2017-03-04 13:26 ` Nicolas Iooss [not found] ` <20170304132647.23286-3-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> 2017-03-04 13:26 ` [PATCH 4/5] fdtget: Use @return to document the return value Nicolas Iooss ` (2 subsequent siblings) 4 siblings, 1 reply; 12+ messages in thread From: Nicolas Iooss @ 2017-03-04 13:26 UTC (permalink / raw) To: David Gibson, Jon Loeliger, devicetree-compiler-u79uwXL29TY76Z2rM5mHXA Cc: Nicolas Iooss This bug has been found by using clang Static Analyzer: it reported that the value stored to fdt was never read. Signed-off-by: Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> --- tests/sw_tree1.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/sw_tree1.c b/tests/sw_tree1.c index 6d4c53102967..4887dc3e1172 100644 --- a/tests/sw_tree1.c +++ b/tests/sw_tree1.c @@ -42,14 +42,14 @@ static void realloc_fdt(void **fdt, size_t *size, bool created) switch (alloc_mode) { case FIXED: if (!(*fdt)) - fdt = xmalloc(*size); + *fdt = xmalloc(*size); else FAIL("Ran out of space"); return; case RESIZE: if (!(*fdt)) { - fdt = xmalloc(SPACE); + *fdt = xmalloc(SPACE); } else if (*size < SPACE) { *size += 1; fdt_resize(*fdt, *fdt, *size); -- 2.11.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
[parent not found: <20170304132647.23286-3-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org>]
* Re: [PATCH 3/5] tests: Make realloc_fdt() really allocate *fdt [not found] ` <20170304132647.23286-3-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> @ 2017-03-08 21:01 ` Simon Glass [not found] ` <CAPnjgZ0=jfYeYZSZUeQRf00wyHaQwDBRYvqAQqO6Bu0B2VA5NA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 12+ messages in thread From: Simon Glass @ 2017-03-08 21:01 UTC (permalink / raw) To: Nicolas Iooss; +Cc: David Gibson, Jon Loeliger, Devicetree Compiler On 4 March 2017 at 06:26, Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> wrote: > This bug has been found by using clang Static Analyzer: it reported that > the value stored to fdt was never read. > > Signed-off-by: Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> > --- > tests/sw_tree1.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Reviewed-by: Simon Glass <sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> I suggest changing the code in main() so it starts with a 0 size. Then the test would catch this problem. > > diff --git a/tests/sw_tree1.c b/tests/sw_tree1.c > index 6d4c53102967..4887dc3e1172 100644 > --- a/tests/sw_tree1.c > +++ b/tests/sw_tree1.c > @@ -42,14 +42,14 @@ static void realloc_fdt(void **fdt, size_t *size, bool created) > switch (alloc_mode) { > case FIXED: > if (!(*fdt)) > - fdt = xmalloc(*size); > + *fdt = xmalloc(*size); > else > FAIL("Ran out of space"); > return; > > case RESIZE: > if (!(*fdt)) { > - fdt = xmalloc(SPACE); > + *fdt = xmalloc(SPACE); > } else if (*size < SPACE) { > *size += 1; > fdt_resize(*fdt, *fdt, *size); > -- > 2.11.1 > > -- > To unsubscribe from this list: send the line "unsubscribe devicetree-compiler" in > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <CAPnjgZ0=jfYeYZSZUeQRf00wyHaQwDBRYvqAQqO6Bu0B2VA5NA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [PATCH 3/5] tests: Make realloc_fdt() really allocate *fdt [not found] ` <CAPnjgZ0=jfYeYZSZUeQRf00wyHaQwDBRYvqAQqO6Bu0B2VA5NA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2017-03-09 1:35 ` David Gibson 0 siblings, 0 replies; 12+ messages in thread From: David Gibson @ 2017-03-09 1:35 UTC (permalink / raw) To: Simon Glass; +Cc: Nicolas Iooss, Jon Loeliger, Devicetree Compiler [-- Attachment #1: Type: text/plain, Size: 1836 bytes --] On Wed, Mar 08, 2017 at 02:01:47PM -0700, Simon Glass wrote: > On 4 March 2017 at 06:26, Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> wrote: > > This bug has been found by using clang Static Analyzer: it reported that > > the value stored to fdt was never read. > > > > Signed-off-by: Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> > > --- > > tests/sw_tree1.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > Reviewed-by: Simon Glass <sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> > > I suggest changing the code in main() so it starts with a 0 size. Then > the test would catch this problem. Ah, yes, I was going to suggest this when I reviewed the series, but then I forgot. > > > > > diff --git a/tests/sw_tree1.c b/tests/sw_tree1.c > > index 6d4c53102967..4887dc3e1172 100644 > > --- a/tests/sw_tree1.c > > +++ b/tests/sw_tree1.c > > @@ -42,14 +42,14 @@ static void realloc_fdt(void **fdt, size_t *size, bool created) > > switch (alloc_mode) { > > case FIXED: > > if (!(*fdt)) > > - fdt = xmalloc(*size); > > + *fdt = xmalloc(*size); > > else > > FAIL("Ran out of space"); > > return; > > > > case RESIZE: > > if (!(*fdt)) { > > - fdt = xmalloc(SPACE); > > + *fdt = xmalloc(SPACE); > > } else if (*size < SPACE) { > > *size += 1; > > fdt_resize(*fdt, *fdt, *size); > > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 4/5] fdtget: Use @return to document the return value [not found] ` <20170304132647.23286-1-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> 2017-03-04 13:26 ` [PATCH 2/5] libfdt: overlay: Check the value of the right variable Nicolas Iooss 2017-03-04 13:26 ` [PATCH 3/5] tests: Make realloc_fdt() really allocate *fdt Nicolas Iooss @ 2017-03-04 13:26 ` Nicolas Iooss [not found] ` <20170304132647.23286-4-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> 2017-03-04 13:26 ` [PATCH 5/5] fdtput: Remove star from value_len documentation Nicolas Iooss 2017-03-06 4:13 ` [PATCH 1/5] dtc: Simplify asm_emit_string() implementation David Gibson 4 siblings, 1 reply; 12+ messages in thread From: Nicolas Iooss @ 2017-03-04 13:26 UTC (permalink / raw) To: David Gibson, Jon Loeliger, devicetree-compiler-u79uwXL29TY76Z2rM5mHXA Cc: Nicolas Iooss Signed-off-by: Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> --- fdtget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fdtget.c b/fdtget.c index fb9d0e1730d7..2982a3e7d960 100644 --- a/fdtget.c +++ b/fdtget.c @@ -245,7 +245,7 @@ static int show_data_for_item(const void *blob, struct display_info *disp, * @param filename Filename of blob file * @param arg List of arguments to process * @param arg_count Number of arguments - * @param return 0 if ok, -ve on error + * @return 0 if ok, -ve on error */ static int do_fdtget(struct display_info *disp, const char *filename, char **arg, int arg_count, int args_per_step) -- 2.11.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
[parent not found: <20170304132647.23286-4-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org>]
* Re: [PATCH 4/5] fdtget: Use @return to document the return value [not found] ` <20170304132647.23286-4-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> @ 2017-03-08 21:01 ` Simon Glass 0 siblings, 0 replies; 12+ messages in thread From: Simon Glass @ 2017-03-08 21:01 UTC (permalink / raw) To: Nicolas Iooss; +Cc: David Gibson, Jon Loeliger, Devicetree Compiler On 4 March 2017 at 06:26, Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> wrote: > Signed-off-by: Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> > --- > fdtget.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Simon Glass <sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 5/5] fdtput: Remove star from value_len documentation [not found] ` <20170304132647.23286-1-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> ` (2 preceding siblings ...) 2017-03-04 13:26 ` [PATCH 4/5] fdtget: Use @return to document the return value Nicolas Iooss @ 2017-03-04 13:26 ` Nicolas Iooss [not found] ` <20170304132647.23286-5-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> 2017-03-06 4:13 ` [PATCH 1/5] dtc: Simplify asm_emit_string() implementation David Gibson 4 siblings, 1 reply; 12+ messages in thread From: Nicolas Iooss @ 2017-03-04 13:26 UTC (permalink / raw) To: David Gibson, Jon Loeliger, devicetree-compiler-u79uwXL29TY76Z2rM5mHXA Cc: Nicolas Iooss When clang checks the documentation tags (with -Wdocumentation flag), it reports the following warning: fdtput.c:70:11: error: parameter '*value_len' not found in the function declaration [-Werror,-Wdocumentation] * @param *value_len Returns length of value encoded ^~~~~~~~~~ fdtput.c:70:11: note: did you mean 'value_len'? * @param *value_len Returns length of value encoded ^~~~~~~~~~ value_len As this sounds reasonable, remove the star from the documentation tag. Signed-off-by: Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> --- fdtput.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fdtput.c b/fdtput.c index db65e9613f29..971199813962 100644 --- a/fdtput.c +++ b/fdtput.c @@ -67,7 +67,7 @@ static void report_error(const char *name, int namelen, int err) * @param arg List of arguments from command line * @param arg_count Number of arguments (may be 0) * @param valuep Returns buffer containing value - * @param *value_len Returns length of value encoded + * @param value_len Returns length of value encoded */ static int encode_value(struct display_info *disp, char **arg, int arg_count, char **valuep, int *value_len) -- 2.11.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
[parent not found: <20170304132647.23286-5-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org>]
* Re: [PATCH 5/5] fdtput: Remove star from value_len documentation [not found] ` <20170304132647.23286-5-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> @ 2017-03-08 21:01 ` Simon Glass 0 siblings, 0 replies; 12+ messages in thread From: Simon Glass @ 2017-03-08 21:01 UTC (permalink / raw) To: Nicolas Iooss; +Cc: David Gibson, Jon Loeliger, Devicetree Compiler On 4 March 2017 at 06:26, Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> wrote: > When clang checks the documentation tags (with -Wdocumentation flag), it > reports the following warning: > > fdtput.c:70:11: error: parameter '*value_len' not found in the > function declaration [-Werror,-Wdocumentation] > * @param *value_len Returns length of value encoded > ^~~~~~~~~~ > fdtput.c:70:11: note: did you mean 'value_len'? > * @param *value_len Returns length of value encoded > ^~~~~~~~~~ > value_len > > As this sounds reasonable, remove the star from the documentation tag. > > Signed-off-by: Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> > --- > fdtput.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Simon Glass <sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/5] dtc: Simplify asm_emit_string() implementation [not found] ` <20170304132647.23286-1-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> ` (3 preceding siblings ...) 2017-03-04 13:26 ` [PATCH 5/5] fdtput: Remove star from value_len documentation Nicolas Iooss @ 2017-03-06 4:13 ` David Gibson 4 siblings, 0 replies; 12+ messages in thread From: David Gibson @ 2017-03-06 4:13 UTC (permalink / raw) To: Nicolas Iooss; +Cc: Jon Loeliger, devicetree-compiler-u79uwXL29TY76Z2rM5mHXA [-- Attachment #1: Type: text/plain, Size: 2122 bytes --] On Sat, Mar 04, 2017 at 02:26:43PM +0100, Nicolas Iooss wrote: > Using %.*s format helps making asm_emit_string() not modify its "str" > parameter. > > While at it, constify the "str" parameter of bin_emit_string() and > asm_emit_string(), as these function no longer modify it. > > Signed-off-by: Nicolas Iooss <nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> All applued, thanks. > --- > flattree.c | 22 +++++++--------------- > 1 file changed, 7 insertions(+), 15 deletions(-) > > diff --git a/flattree.c b/flattree.c > index ebac548b3fa8..d8a118258e01 100644 > --- a/flattree.c > +++ b/flattree.c > @@ -49,7 +49,7 @@ static struct version_info { > > struct emitter { > void (*cell)(void *, cell_t); > - void (*string)(void *, char *, int); > + void (*string)(void *, const char *, int); > void (*align)(void *, int); > void (*data)(void *, struct data); > void (*beginnode)(void *, struct label *labels); > @@ -64,7 +64,7 @@ static void bin_emit_cell(void *e, cell_t val) > *dtbuf = data_append_cell(*dtbuf, val); > } > > -static void bin_emit_string(void *e, char *str, int len) > +static void bin_emit_string(void *e, const char *str, int len) > { > struct data *dtbuf = e; > > @@ -144,22 +144,14 @@ static void asm_emit_cell(void *e, cell_t val) > (val >> 8) & 0xff, val & 0xff); > } > > -static void asm_emit_string(void *e, char *str, int len) > +static void asm_emit_string(void *e, const char *str, int len) > { > FILE *f = e; > - char c = 0; > > - if (len != 0) { > - /* XXX: ewww */ > - c = str[len]; > - str[len] = '\0'; > - } > - > - fprintf(f, "\t.string\t\"%s\"\n", str); > - > - if (len != 0) { > - str[len] = c; > - } > + if (len != 0) > + fprintf(f, "\t.string\t\"%.*s\"\n", len, str); > + else > + fprintf(f, "\t.string\t\"%s\"\n", str); > } > > static void asm_emit_align(void *e, int a) -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2017-03-09 1:35 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-03-04 13:26 [PATCH 1/5] dtc: Simplify asm_emit_string() implementation Nicolas Iooss [not found] ` <20170304132647.23286-1-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> 2017-03-04 13:26 ` [PATCH 2/5] libfdt: overlay: Check the value of the right variable Nicolas Iooss [not found] ` <20170304132647.23286-2-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> 2017-03-08 21:01 ` Simon Glass [not found] ` <CAPnjgZ2Lon3e-NV-FH76QpXFP2tAcc=Ex48hG7OMQxbcjzBfig-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-03-09 1:35 ` David Gibson 2017-03-04 13:26 ` [PATCH 3/5] tests: Make realloc_fdt() really allocate *fdt Nicolas Iooss [not found] ` <20170304132647.23286-3-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> 2017-03-08 21:01 ` Simon Glass [not found] ` <CAPnjgZ0=jfYeYZSZUeQRf00wyHaQwDBRYvqAQqO6Bu0B2VA5NA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2017-03-09 1:35 ` David Gibson 2017-03-04 13:26 ` [PATCH 4/5] fdtget: Use @return to document the return value Nicolas Iooss [not found] ` <20170304132647.23286-4-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> 2017-03-08 21:01 ` Simon Glass 2017-03-04 13:26 ` [PATCH 5/5] fdtput: Remove star from value_len documentation Nicolas Iooss [not found] ` <20170304132647.23286-5-nicolas.iooss_linux-oWGTIYur0i8@public.gmane.org> 2017-03-08 21:01 ` Simon Glass 2017-03-06 4:13 ` [PATCH 1/5] dtc: Simplify asm_emit_string() implementation David Gibson
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).