Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ignored fwrite results trigger a gcc-8.2 -Wunused-result #1098

Closed
BillyDonahue opened this issue Mar 28, 2019 · 1 comment
Closed

ignored fwrite results trigger a gcc-8.2 -Wunused-result #1098

BillyDonahue opened this issue Mar 28, 2019 · 1 comment

Comments

@BillyDonahue
Copy link
Contributor

BillyDonahue commented Mar 28, 2019

We don't use cmake, so I'm doing a naive compile of a libfmt subtree in my own toolchain.
(using fmt @ e979c78)

I could easily add the -Wno-unused-result to my build, but maybe you'd want to tackle it upstream. This is gcc-8.2 on an Ubuntu 18.04 workstation, btw.
These could perhaps be mitigated with some (void) casts or pragmas or something.


 [2019/03/28 17:32:10.092] /opt/mongodbtoolchain/v3/bin/g++ \
    -o build/cached/third_party/fmt/dist/src/format.o \
    -c -Woverloaded-virtual -Wno-maybe-uninitialized -std=c++17 \
    -fno-omit-frame-pointer -fno-strict-aliasing -ggdb -pthread \
    -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -Werror \
    -O2 \
    -Wno-unused-local-typedefs -Wno-unused-function -Wno-deprecated-declarations -Wno-unused-const-variable -Wno-unused-but-set-variable -Wno-missing-braces \
    -fstack-protector-strong -fno-builtin-memcmp -fPIE \
    -DPCRE_STATIC -DNDEBUG -D_XOPEN_SOURCE=700 -D_GNU_SOURCE -D_FORTIFY_SOURCE=2 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS -DABSL_FORCE_ALIGNED_ACCESS \
    -Isrc/third_party/fmt/dist/include -Ibuild/cached -Isrc \
    src/third_party/fmt/dist/src/format.cc


 [2019/03/28 17:32:11.072] In file included from src/third_party/fmt/dist/src/format.cc:8:
 [2019/03/28 17:32:11.072] src/third_party/fmt/dist/include/fmt/format-inl.h: In function 'void fmt::v5::{anonymous}::report_error(fmt::v5::{anonymous}::FormatFunc, int, fmt::v5::string_view)':
 [2019/03/28 17:32:11.072] src/third_party/fmt/dist/include/fmt/format-inl.h:190:14: error: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result [-Werror=unused-result]
 [2019/03/28 17:32:11.072]    std::fwrite(full_message.data(), full_message.size(), 1, stderr);
 [2019/03/28 17:32:11.072]    ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 [2019/03/28 17:32:11.072] src/third_party/fmt/dist/include/fmt/format-inl.h: In function 'void fmt::v5::vprint(FILE*, fmt::v5::string_view, fmt::v5::format_args)':
 [2019/03/28 17:32:11.072] src/third_party/fmt/dist/include/fmt/format-inl.h:910:14: error: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result [-Werror=unused-result]
 [2019/03/28 17:32:11.072]    std::fwrite(buffer.data(), 1, buffer.size(), f);
 [2019/03/28 17:32:11.072]    ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 [2019/03/28 17:32:11.072] src/third_party/fmt/dist/include/fmt/format-inl.h: In function 'void fmt::v5::vprint(FILE*, fmt::v5::wstring_view, fmt::v5::wformat_args)':
 [2019/03/28 17:32:11.072] src/third_party/fmt/dist/include/fmt/format-inl.h:916:14: error: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result [-Werror=unused-result]
 [2019/03/28 17:32:11.072]    std::fwrite(buffer.data(), sizeof(wchar_t), buffer.size(), f);
 [2019/03/28 17:32:11.072]    ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

@vitaut
Copy link
Contributor

vitaut commented Mar 29, 2019

We should check the result of fwrite and throw fmt::system_error in case of an error as it is done in

if (result < 0) FMT_THROW(system_error(errno, "cannot write to file"));
. Could you by any chance submit a PR?

BillyDonahue added a commit to BillyDonahue/fmt that referenced this issue Mar 29, 2019
vitaut pushed a commit that referenced this issue Mar 30, 2019
@vitaut vitaut closed this as completed Mar 30, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants