]>
Commit | Line | Data |
---|---|---|
143edc46 JP |
1 | From 299e5e8c38de9be99b86885c1af60dd5e1cc9888 Mon Sep 17 00:00:00 2001 |
2 | From: Ondrej Mosnacek <omosnace@redhat.com> | |
3 | Date: Mon, 17 May 2021 22:19:32 +0200 | |
4 | Subject: [PATCH] docproc: fix -Wconversion warnings on 32-bit | |
5 | ||
6 | On i686, GCC 11.1.1 complains: | |
7 | ``` | |
8 | lib/doc/bin/docproc.c: In function 'find_all_symbols': | |
9 | lib/doc/bin/docproc.c:433:17: error: conversion to 'ssize_t' {aka 'int'} from 'unsigned int' may change the sign of the result [-Werror=sign-conversion] | |
10 | 433 | start = all_list_len; | |
11 | | ^~~~~~~~~~~~ | |
12 | lib/doc/bin/docproc.c:441:48: error: comparison of integer expressions of different signedness: 'ssize_t' {aka 'int'} and 'unsigned int' [-Werror=sign-compare] | |
13 | 441 | for (i = 0; i < (int)data_len && start != all_list_len; i++) { | |
14 | | ^~ | |
15 | cc1: all warnings being treated as errors | |
16 | ``` | |
17 | ||
18 | Fix this by declaring all of all_list_len, i, count, and start as | |
19 | size_t and remove a few casts that are no longer necessary. | |
20 | ||
21 | Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com> | |
22 | Signed-off-by: Stephan Mueller <smueller@chronox.de> | |
23 | --- | |
24 | lib/doc/bin/docproc.c | 14 +++++++------- | |
25 | 1 file changed, 7 insertions(+), 7 deletions(-) | |
26 | ||
27 | diff --git a/lib/doc/bin/docproc.c b/lib/doc/bin/docproc.c | |
28 | index 556d5d4..74b3cdb 100644 | |
29 | --- a/lib/doc/bin/docproc.c | |
30 | +++ b/lib/doc/bin/docproc.c | |
31 | @@ -77,11 +77,11 @@ FILELINE * docsection; | |
32 | static char *srctree, *kernsrctree; | |
33 | ||
34 | static char **all_list = NULL; | |
35 | -static unsigned int all_list_len = 0; | |
36 | +static size_t all_list_len = 0; | |
37 | ||
38 | static void consume_symbol(const char *sym) | |
39 | { | |
40 | - unsigned int i; | |
41 | + size_t i; | |
42 | ||
43 | for (i = 0; i < all_list_len; i++) { | |
44 | if (!all_list[i]) | |
45 | @@ -361,11 +361,11 @@ static void find_all_symbols(char *filename) | |
46 | { | |
47 | char *vec[4]; /* kerneldoc -list file NULL */ | |
48 | pid_t pid; | |
49 | - ssize_t ret, i, count, start; | |
50 | + ssize_t ret; | |
51 | char real_filename[PATH_MAX + 1]; | |
52 | int pipefd[2]; | |
53 | char *data, *str; | |
54 | - size_t data_len = 0; | |
55 | + size_t i, count, start, data_len = 0; | |
56 | ||
57 | vec[0] = KERNELDOC; | |
58 | vec[1] = LIST; | |
59 | @@ -424,21 +424,21 @@ static void find_all_symbols(char *filename) | |
60 | ||
61 | count = 0; | |
62 | /* poor man's strtok, but with counting */ | |
63 | - for (i = 0; i < (int)data_len; i++) { | |
64 | + for (i = 0; i < data_len; i++) { | |
65 | if (data[i] == '\n') { | |
66 | count++; | |
67 | data[i] = '\0'; | |
68 | } | |
69 | } | |
70 | start = all_list_len; | |
71 | - all_list_len += (unsigned int)count; | |
72 | + all_list_len += count; | |
73 | all_list = realloc(all_list, sizeof(char *) * all_list_len); | |
74 | if (!all_list) { | |
75 | perror("realloc"); | |
76 | exit(1); | |
77 | } | |
78 | str = data; | |
79 | - for (i = 0; i < (int)data_len && start != all_list_len; i++) { | |
80 | + for (i = 0; i < data_len && start != all_list_len; i++) { | |
81 | if (data[i] == '\0') { | |
82 | all_list[start] = str; | |
83 | str = data + i + 1; |