From: Alexander Turenko <alexander.turenko@tarantool.org>
To: Gleb <gleb-skiba@mail.ru>
Cc: tarantool-patches@freelists.org
Subject: [tarantool-patches] Re: [PATCH] Fix warnings.
Date: Thu, 29 Mar 2018 21:33:07 +0300 [thread overview]
Message-ID: <20180329183306.5ywa5akot35tgo7u@tkn_work_nb> (raw)
In-Reply-To: <1522247382-8505-1-git-send-email-gleb-skiba@mail.ru>
Hi, Gleb!
Consider comments below.
I propose to add another release target with -Werror, consider [g].
[g]: https://github.com/tarantool/tarantool/issues/3238#issuecomment-377319953
WBR, Alexander Turenko.
On Wed, Mar 28, 2018 at 05:29:42PM +0300, Gleb wrote:
> Ensure -Werror -Wall set for the whole src/.
> Fix warnings which have been find with prev flags.
>
> Fixes #3238
Please, remove the dot at the end of the commit title.
> ---
> -Issue from https://github.com/tarantool/tarantool/issues/3238.
> -Source from https://github.com/tarantool/tarantool/tree/gh-3238-check-warnings.
> src/box/sql/alter.c | 2 +-
> src/box/sql/pragma.c | 3 +--
> src/box/vy_read_iterator.c | 2 +-
> src/box/xrow.c | 10 ++++++----
> src/httpc.c | 2 +-
> src/lua/init.c | 2 +-
> src/say.c | 6 ++++--
> 7 files changed, 15 insertions(+), 12 deletions(-)
>
> diff --git a/src/box/sql/alter.c b/src/box/sql/alter.c
> index a52ba8d..098d183 100644
> --- a/src/box/sql/alter.c
> +++ b/src/box/sql/alter.c
> @@ -150,7 +150,7 @@ sqlite3AlterFinishAddColumn(Parse * pParse, Token * pColDef)
> Column *pCol; /* The new column */
> Expr *pDflt; /* Default value for the new column */
> sqlite3 *db; /* The database connection; */
> - Vdbe *v = pParse->pVdbe; /* The prepared statement under construction */
> + Vdbe *v __attribute__((unused)) = pParse->pVdbe; /* The prepared statement under construction */
> struct session *user_session = current_session();
>
The line is longer that 80 symbols.
Please, use portable macro MAYBE_UNUSED from src/trivia/util.h (or cast
to void as an separate statement).
> db = pParse->db;
> diff --git a/src/box/sql/pragma.c b/src/box/sql/pragma.c
> index 23b4c73..4ecc18d 100644
> --- a/src/box/sql/pragma.c
> +++ b/src/box/sql/pragma.c
> @@ -257,7 +257,6 @@ sqlite3Pragma(Parse * pParse, Token * pId, /* First part of [schema.]id field */
> char *zLeft = 0; /* Nul-terminated UTF-8 string <id> */
> char *zRight = 0; /* Nul-terminated UTF-8 string <value>, or NULL */
> char *zTable = 0; /* Nul-terminated UTF-8 string <value2> or NULL */
> - int rc; /* return value form SQLITE_FCNTL_PRAGMA */
> sqlite3 *db = pParse->db; /* The database connection */
> Vdbe *v = sqlite3GetVdbe(pParse); /* Prepared statement */
> const PragmaName *pPragma; /* The pragma */
> @@ -521,7 +520,7 @@ sqlite3Pragma(Parse * pParse, Token * pId, /* First part of [schema.]id field */
> box_tuple_t *tuple;
> box_iterator_t* iter;
> iter = box_index_iterator(space_id, 0,ITER_ALL, key_buf, key_end);
> - rc = box_iterator_next(iter, &tuple);
> + int rc __attribute__((unused)) = box_iterator_next(iter, &tuple); /* return value form SQLITE_FCNTL_PRAGMA */
Long line.
The comment seems to be unrelated, it is better to remove it.
> assert(rc==0);
> for (i = 0; tuple!=NULL; i++, box_iterator_next(iter, &tuple)){
> /* 1 is name field number */
> diff --git a/src/box/vy_read_iterator.c b/src/box/vy_read_iterator.c
> index a265f58..93681a8 100644
> --- a/src/box/vy_read_iterator.c
> +++ b/src/box/vy_read_iterator.c
> @@ -552,7 +552,7 @@ vy_read_iterator_next_lsn(struct vy_read_iterator *itr, struct tuple **ret)
> {
> uint32_t i;
> bool unused;
> - struct vy_read_src *src;
> + struct vy_read_src *src = NULL;
>
> assert(itr->curr_stmt != NULL);
> assert(itr->curr_src < itr->skipped_src);
> diff --git a/src/box/xrow.c b/src/box/xrow.c
> index 3ef3d82..b272166 100644
> --- a/src/box/xrow.c
> +++ b/src/box/xrow.c
> @@ -300,7 +300,7 @@ iproto_reply_vclock(struct obuf *out, uint64_t sync, uint32_t schema_version,
> iproto_header_encode(buf, IPROTO_OK, sync, schema_version,
> size - IPROTO_HEADER_LEN);
>
> - char *ptr = obuf_alloc(out, size);
> + char *ptr __attribute__((unused)) = obuf_alloc(out, size);
> assert(ptr == buf);
> return 0;
> }
> @@ -339,9 +339,11 @@ iproto_write_error(int fd, const struct error *e, uint32_t schema_version,
> schema_version, sizeof(body) + msg_len);
>
> body.v_data_len = mp_bswap_u32(msg_len);
> - (void) write(fd, header, sizeof(header));
> - (void) write(fd, &body, sizeof(body));
> - (void) write(fd, e->errmsg, msg_len);
> + ssize_t r;
> + r = write(fd, header, sizeof(header));
> + r = write(fd, &body, sizeof(body));
> + r = write(fd, e->errmsg, msg_len);
> + (void) r;
write has __wur flag for which cast-to-void broken at times. The story
is in [1], [2] and [3]. So this is workaround for gcc bug, okay.
I afraid that 1st and 2nd *values* of `r` are ignored and gcc can give
warning about it in the future. But I'm okay if it works good from gcc
4.5 to gcc 7.2.
[1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425
[2]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25509
[3]: https://sourceware.org/bugzilla/show_bug.cgi?id=11959
> }
>
> int
> diff --git a/src/httpc.c b/src/httpc.c
> index 633e688..d6c1b00 100644
> --- a/src/httpc.c
> +++ b/src/httpc.c
> @@ -249,7 +249,7 @@ httpc_set_low_speed_limit(struct httpc_request *req, long low_speed_limit)
> void
> httpc_set_verbose(struct httpc_request *req, bool curl_verbose)
> {
> - curl_easy_setopt(req->curl_request.easy, CURLOPT_VERBOSE, curl_verbose);
> + curl_easy_setopt(req->curl_request.easy, CURLOPT_VERBOSE, (long)curl_verbose);
> }
>
Too long line (tab is 8 symbols long), please, break it into parts.
Separate cast operator from an expression by a space.
> void
> diff --git a/src/lua/init.c b/src/lua/init.c
> index 76e978c..84f81e6 100644
> --- a/src/lua/init.c
> +++ b/src/lua/init.c
> @@ -279,7 +279,7 @@ tarantool_lua_setpaths(struct lua_State *L)
> {
> const char *home = getenv("HOME");
> char cwd[PATH_MAX] = {'\0'};
> - getcwd(cwd, sizeof(cwd));
> + char *buf __attribute__((unused)) = getcwd(cwd, sizeof(cwd));
> lua_getglobal(L, "package");
> int top = lua_gettop(L);
>
> diff --git a/src/say.c b/src/say.c
> index b92514d..0801f04 100644
> --- a/src/say.c
> +++ b/src/say.c
> @@ -1040,8 +1040,10 @@ log_vsay(struct log *log, int level, const char *filename, int line,
> break;
> case SAY_LOGGER_SYSLOG:
> write_to_syslog(log, total);
> - if (level == S_FATAL && log->fd != STDERR_FILENO)
> - (void) write(STDERR_FILENO, buf, total);
> + if (level == S_FATAL && log->fd != STDERR_FILENO) {
> + ssize_t r = write(STDERR_FILENO, buf, total);
> + (void) r; /* silence gcc warning */
Why do you fill 23 spaces before the comment? Maybe just 1 is better?
> + }
> break;
> case SAY_LOGGER_BOOT
> {
> --
> 2.7.4
>
next parent reply other threads:[~2018-03-29 18:33 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1522247382-8505-1-git-send-email-gleb-skiba@mail.ru>
2018-03-29 18:33 ` Alexander Turenko [this message]
2018-04-04 8:59 [tarantool-patches] " Gleb
2018-04-10 22:13 ` [tarantool-patches] " Alexander Turenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180329183306.5ywa5akot35tgo7u@tkn_work_nb \
--to=alexander.turenko@tarantool.org \
--cc=gleb-skiba@mail.ru \
--cc=tarantool-patches@freelists.org \
--subject='[tarantool-patches] Re: [PATCH] Fix warnings.' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox