On 5/9/25 1:31 PM, Jonathan Wakely wrote:
On Fri, 9 May 2025 at 18:13, Jonathan Wakely <jwak...@redhat.com> wrote:
On Fri, 9 May 2025 at 11:19, Jonathan Wakely <jwak...@redhat.com> wrote:
On Thu, 8 May 2025 at 20:56, Jason Merrill <ja...@redhat.com> wrote:
Tested x86_64-pc-linux-gnu. Does this make sense for trunk?
Yes, it looks useful. I'm going to test it with my "very -std and -m32
and old-string ABI" test settings to be sure it doesn't cause any
problems.
There are a few failures when using GLIBCXX_TESTSUITE_STDS=20 to run
tests as C++20 or later:
FAIL: experimental/net/internet/resolver/ops/lookup.cc -std=gnu++23
(test for excess errors)
Excess errors:
/tmp/build/x86_64-pc-linux-gnu/libstdc++-v3/include/experimental/internet:2100:
warning: offset of
'std::experimental::net::v1::ip::basic_resolver<std::experimental::net::v1::ip::tcp>::_M_ctx'
for '-std=c++20' and up changes in '-fabi-version=21' (GCC 16) [-Wabi]
We have code like this in the networking TS headers:
struct Base {
protected:
Base() = default;
~Base() = default;
};
struct Derived : Base {
void* ptr;
};
Is the warning wrong?
Hmm, it seems to be: sizeof(Derived) isn't affected by -std=c++20 before
the fix, I guess the warning doesn't handle empty bases properly.
Jason