libstdc++: Optimize std::is_trivially_destructible_v
commit7af436ada243bbb6ae601c85bd47ea908c71fb41
authorJonathan Wakely <jwakely@redhat.com>
Wed, 22 Nov 2023 15:09:24 +0000 (22 15:09 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Sun, 7 Jan 2024 00:58:45 +0000 (7 00:58 +0000)
tree0a09107e773d6fc29ec24280f2525c9d0c425f1a
parentb368d79998003c2e5657a91055cb27991988b44b
libstdc++: Optimize std::is_trivially_destructible_v

This reduces the overhead of using std::is_trivially_destructible_v and
as a result fixes some recent regressions seen with a non-default
GLIBCXX_TESTSUITE_STDS env var:
FAIL: 20_util/variant/87619.cc  -std=gnu++20 (test for excess errors)
FAIL: 20_util/variant/87619.cc  -std=gnu++23 (test for excess errors)
FAIL: 20_util/variant/87619.cc  -std=gnu++26 (test for excess errors)

libstdc++-v3/ChangeLog:

* include/std/type_traits (is_trivially_destructible_v): Use
built-in directly when concepts are supported.
* testsuite/20_util/is_trivially_destructible/value_v.cc: New
test.
libstdc++-v3/include/std/type_traits
libstdc++-v3/testsuite/20_util/is_trivially_destructible/value_v.cc [new file with mode: 0644]