Use a callable type for ScopedFILE in settings_writer.cc Newer glibc have an attribute((nonnull(1))) on fclose. Attributes aren't part of the language, so decltype(fclose) lose the attribute. It seems this causes std::unique_ptr<FILE, decltype(fclose)> to trip -Wignored-attributes in GCC. This is a bit aggressive of a warning, but work around this with a custom deleter, which makes the unique_ptr object smaller anyway. (Though the compiler can, I hope, dissolve all of this anyway.) Fixed: 642 Change-Id: I9a0206a8c5675f856e80c5266c90be42d66a5606 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/62465 Auto-Submit: David Benjamin <davidben@google.com> Reviewed-by: Bob Beck <bbe@google.com> Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/ssl/test/settings_writer.cc b/ssl/test/settings_writer.cc index 8605222..78598a8 100644 --- a/ssl/test/settings_writer.cc +++ b/ssl/test/settings_writer.cc
@@ -75,8 +75,11 @@ } bssl::UniquePtr<uint8_t> free_settings(settings); - using ScopedFILE = std::unique_ptr<FILE, decltype(&fclose)>; - ScopedFILE file(fopen(path_.c_str(), "w"), fclose); + struct FileCloser { + void operator()(FILE *f) const { fclose(f); } + }; + using ScopedFILE = std::unique_ptr<FILE, FileCloser>; + ScopedFILE file(fopen(path_.c_str(), "w")); if (!file) { return false; }