Add clang-format for libstdc++
Stephan Bergmann
sbergman@redhat.com
Fri Feb 10 22:05:06 GMT 2023
On 2/7/23 22:01, Thomas Rodgers via Libstdc++ wrote:
> Is it possible to get clang-format to enforce the libstdc++ uglification
> rules (probably requires a clang-format plugin though)?
I'm not sure clang-format can do that, but it wouldn't be too hard to
come up with a clang-tidy checker to report missing uglification.
With the attached Makefile, input.cc, and stdlibunreserved.cc, which
should work at least against a recent LLVM 17 trunk, and run against a
recent libstdc++ 13 trunk,
> $ make
> g++ -fPIC $(/home/sbergman/llvm/inst/bin/llvm-config --cxxflags) stdlibunreserved.cc -shared \
> $(/home/sbergman/llvm/inst/bin/llvm-config --ldflags) -o stdlibunreserved.so
> /home/sbergman/llvm/inst/bin/clang-tidy --load=./stdlibunreserved.so \
> --checks='-*,stdlibunreserved' --header-filter='.*' \
> --system-headers --extra-arg=--gcc-install-dir=/home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1 \
> --extra-arg=-std=c++2b --extra-arg=-D_GLIBCXX_DEBUG input.cc --
> 139 warnings generated.
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/cxxabi_init_exception.h:70:42: warning: ParmVar uses unreserved identifier 'object' [stdlibunreserved]
> __cxa_init_primary_exception(void *object, std::type_info *tinfo,
> ~~~~~~^~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/cxxabi_init_exception.h:70:66: warning: ParmVar uses unreserved identifier 'tinfo' [stdlibunreserved]
> __cxa_init_primary_exception(void *object, std::type_info *tinfo,
> ~~~~~~~~~~~~~~~~^~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/cxxabi_init_exception.h:71:47: warning: ParmVar uses unreserved identifier 'dest' [stdlibunreserved]
> void (_GLIBCXX_CDTOR_CALLABI *dest) (void *)) _GLIBCXX_NOTHROW;
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/fs_ops.h:93:54: warning: ParmVar uses unreserved identifier 'attributes' [stdlibunreserved]
> bool create_directory(const path& __p, const path& attributes);
> ~~~~~~~~~~~~^~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/fs_ops.h:94:54: warning: ParmVar uses unreserved identifier 'attributes' [stdlibunreserved]
> bool create_directory(const path& __p, const path& attributes,
> ~~~~~~~~~~~~^~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/fs_path.h:523:41: warning: ParmVar uses unreserved identifier 'base' [stdlibunreserved]
> path lexically_relative(const path& base) const;
> ~~~~~~~~~~~~^~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/fs_path.h:524:42: warning: ParmVar uses unreserved identifier 'base' [stdlibunreserved]
> path lexically_proximate(const path& base) const;
> ~~~~~~~~~~~~^~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/iterator_concepts.h:968:21: warning: TemplateTypeParm uses unreserved identifier 'auto:1' [stdlibunreserved]
> void begin(auto&) = delete;
> ~~~~~^
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/iterator_concepts.h:969:27: warning: TemplateTypeParm uses unreserved identifier 'auto:1' [stdlibunreserved]
> void begin(const auto&) = delete;
> ~~~~~^
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/memory_resource.h:85:5: warning: CXXMethod uses unreserved identifier 'do_allocate' [stdlibunreserved]
> do_allocate(size_t __bytes, size_t __alignment) = 0;
> ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/memory_resource.h:88:5: warning: CXXMethod uses unreserved identifier 'do_deallocate' [stdlibunreserved]
> do_deallocate(void* __p, size_t __bytes, size_t __alignment) = 0;
> ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/memory_resource.h:91:5: warning: CXXMethod uses unreserved identifier 'do_is_equal' [stdlibunreserved]
> do_is_equal(const memory_resource& __other) const noexcept = 0;
> ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/ranges_algo.h:3493:16: warning: TemplateTypeParm uses unreserved identifier 'Proj1' [stdlibunreserved]
> typename Proj1 = identity, typename Proj2 = identity>
> ~~~~~~~~~^~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/ranges_algo.h:3493:43: warning: TemplateTypeParm uses unreserved identifier 'Proj2' [stdlibunreserved]
> typename Proj1 = identity, typename Proj2 = identity>
> ~~~~~~~~~^~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/ranges_algo.h:3571:74: warning: TemplateTypeParm uses unreserved identifier 'T' [stdlibunreserved]
> template<forward_iterator _Iter, sentinel_for<_Iter> _Sent, typename T, typename _Proj = identity>
> ~~~~~~~~~^
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/ranges_algo.h:3602:45: warning: TemplateTypeParm uses unreserved identifier 'T' [stdlibunreserved]
> template<forward_range _Range, typename T, typename _Proj = identity>
> ~~~~~~~~~^
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/ranges_base.h:136:19: warning: TemplateTypeParm uses unreserved identifier 'auto:1' [stdlibunreserved]
> void end(auto&) = delete;
> ~~~~~^
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/ranges_base.h:137:25: warning: TemplateTypeParm uses unreserved identifier 'auto:1' [stdlibunreserved]
> void end(const auto&) = delete;
> ~~~~~^
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/ranges_base.h:225:22: warning: TemplateTypeParm uses unreserved identifier 'auto:1' [stdlibunreserved]
> void rbegin(auto&) = delete;
> ~~~~~^
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/ranges_base.h:226:28: warning: TemplateTypeParm uses unreserved identifier 'auto:1' [stdlibunreserved]
> void rbegin(const auto&) = delete;
> ~~~~~^
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/ranges_base.h:289:20: warning: TemplateTypeParm uses unreserved identifier 'auto:1' [stdlibunreserved]
> void rend(auto&) = delete;
> ~~~~~^
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/ranges_base.h:290:26: warning: TemplateTypeParm uses unreserved identifier 'auto:1' [stdlibunreserved]
> void rend(const auto&) = delete;
> ~~~~~^
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/ranges_base.h:373:20: warning: TemplateTypeParm uses unreserved identifier 'auto:1' [stdlibunreserved]
> void size(auto&) = delete;
> ~~~~~^
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/ranges_base.h:374:26: warning: TemplateTypeParm uses unreserved identifier 'auto:1' [stdlibunreserved]
> void size(const auto&) = delete;
> ~~~~~^
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/regex.h:1762:52: warning: Typedef uses unreserved identifier 'match_flag_type' [stdlibunreserved]
> typedef regex_constants::match_flag_type match_flag_type;
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/regex_automaton.h:113:28: warning: ParmVar uses unreserved identifier 'ostr' [stdlibunreserved]
> _M_print(std::ostream& ostr) const;
> ~~~~~~~~~~~~~~^~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/regex_automaton.tcc:39:39: warning: ParmVar uses unreserved identifier 'ostr' [stdlibunreserved]
> _State_base::_M_print(std::ostream& ostr) const
> ~~~~~~~~~~~~~~^~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/regex_error.h:139:11: warning: TypeAlias uses unreserved identifier 'error_type' [stdlibunreserved]
> using error_type = regex_constants::error_type;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/regex_scanner.tcc:487:28: warning: ParmVar uses unreserved identifier 'ostr' [stdlibunreserved]
> _M_print(std::ostream& ostr)
> ~~~~~~~~~~~~~~^~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/shared_ptr_atomic.h:377:13: warning: TypeAlias uses unreserved identifier 'value_type' [stdlibunreserved]
> using value_type = _Tp;
> ~~~~~~^~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/shared_ptr_atomic.h:539:7: warning: CXXMethod uses unreserved identifier 'load' [stdlibunreserved]
> load(memory_order __o) const noexcept
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/shared_ptr_atomic.h:557:7: warning: CXXMethod uses unreserved identifier 'swap' [stdlibunreserved]
> swap(value_type& __r, memory_order __o) noexcept
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/shared_ptr_atomic.h:565:7: warning: CXXMethod uses unreserved identifier 'compare_exchange_strong' [stdlibunreserved]
> compare_exchange_strong(value_type& __expected, value_type __desired,
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/shared_ptr_atomic.h:589:7: warning: CXXMethod uses unreserved identifier 'wait' [stdlibunreserved]
> wait(value_type __old, memory_order __o) const noexcept
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/shared_ptr_atomic.h:599:7: warning: CXXMethod uses unreserved identifier 'notify_one' [stdlibunreserved]
> notify_one() noexcept
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/shared_ptr_atomic.h:605:7: warning: CXXMethod uses unreserved identifier 'notify_all' [stdlibunreserved]
> notify_all() noexcept
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/shared_ptr_base.h:828:13: warning: TypeAlias uses unreserved identifier 'pointer' [stdlibunreserved]
> using pointer = typename allocator_traits<_Alloc>::pointer;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/std_mutex.h:145:11: warning: TypeAlias uses unreserved identifier 'timespec' [stdlibunreserved]
> using timespec = __gthread_time_t;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/unordered_map.h:2177:8: warning: TypeAlias uses unreserved identifier 'unordered_map' [stdlibunreserved]
> using unordered_map = _GLIBCXX_STD_C::unordered_map<_Tp...>;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/unordered_map.h:2179:8: warning: TypeAlias uses unreserved identifier 'unordered_multimap' [stdlibunreserved]
> using unordered_multimap = _GLIBCXX_STD_C::unordered_multimap<_Tp...>;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/unordered_map.h:2201:8: warning: TypeAlias uses unreserved identifier 'unordered_map' [stdlibunreserved]
> using unordered_map = _GLIBCXX_STD_C::unordered_map<_Tp...>;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/unordered_map.h:2203:8: warning: TypeAlias uses unreserved identifier 'unordered_multimap' [stdlibunreserved]
> using unordered_multimap = _GLIBCXX_STD_C::unordered_multimap<_Tp...>;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/unordered_set.h:1846:8: warning: TypeAlias uses unreserved identifier 'unordered_set' [stdlibunreserved]
> using unordered_set = _GLIBCXX_STD_C::unordered_set<_Tp...>;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/unordered_set.h:1848:8: warning: TypeAlias uses unreserved identifier 'unordered_multiset' [stdlibunreserved]
> using unordered_multiset = _GLIBCXX_STD_C::unordered_multiset<_Tp...>;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/unordered_set.h:1870:8: warning: TypeAlias uses unreserved identifier 'unordered_set' [stdlibunreserved]
> using unordered_set = _GLIBCXX_STD_C::unordered_set<_Tp...>;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/bits/unordered_set.h:1872:8: warning: TypeAlias uses unreserved identifier 'unordered_multiset' [stdlibunreserved]
> using unordered_multiset = _GLIBCXX_STD_C::unordered_multiset<_Tp...>;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/chrono:2966:8: warning: TypeAlias uses unreserved identifier 'string_view' [stdlibunreserved]
> using string_view = type_identity_t<std::string_view>;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/compare:736:13: warning: TypeAlias uses unreserved identifier 'int64_t' [stdlibunreserved]
> using int64_t = __INT64_TYPE__;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/compare:737:13: warning: TypeAlias uses unreserved identifier 'int32_t' [stdlibunreserved]
> using int32_t = __INT32_TYPE__;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/compare:738:13: warning: TypeAlias uses unreserved identifier 'int16_t' [stdlibunreserved]
> using int16_t = __INT16_TYPE__;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/compare:739:13: warning: TypeAlias uses unreserved identifier 'uint64_t' [stdlibunreserved]
> using uint64_t = __UINT64_TYPE__;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/compare:740:13: warning: TypeAlias uses unreserved identifier 'uint16_t' [stdlibunreserved]
> using uint16_t = __UINT16_TYPE__;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/condition_variable:72:11: warning: TypeAlias uses unreserved identifier 'steady_clock' [stdlibunreserved]
> using steady_clock = chrono::steady_clock;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/condition_variable:73:11: warning: TypeAlias uses unreserved identifier 'system_clock' [stdlibunreserved]
> using system_clock = chrono::system_clock;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/debug/safe_local_iterator.h:71:45: warning: Typedef uses unreserved identifier 'size_type' [stdlibunreserved]
> typedef typename _Sequence::size_type size_type;
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/debug/safe_sequence.h:77:7: warning: Typedef uses unreserved identifier 'difference_type' [stdlibunreserved]
> difference_type;
> ~~~~~~^~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/debug/vector:56:49: warning: Typedef uses unreserved identifier 'size_type' [stdlibunreserved]
> typedef typename _BaseSequence::size_type size_type;
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/ext/concurrence.h:288:24: warning: ParmVar uses unreserved identifier 'mutex' [stdlibunreserved]
> void wait(__mutex *mutex)
> ~~~~~~~~~^~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/ext/concurrence.h:298:44: warning: ParmVar uses unreserved identifier 'mutex' [stdlibunreserved]
> void wait_recursive(__recursive_mutex *mutex)
> ~~~~~~~~~~~~~~~~~~~^~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/format:291:10: warning: Binding uses unreserved identifier 'ptr' [stdlibunreserved]
> auto [ptr, ec] = std::from_chars(__first, __last, __val);
> ^~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/format:291:15: warning: Binding uses unreserved identifier 'ec' [stdlibunreserved]
> auto [ptr, ec] = std::from_chars(__first, __last, __val);
> ^~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/format:2532:13: warning: TypeAlias uses unreserved identifier 'uint64_t' [stdlibunreserved]
> using uint64_t = __UINTPTR_TYPE__;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/format:3159:13: warning: TypeAlias uses unreserved identifier 'uint64_t' [stdlibunreserved]
> using uint64_t = __UINT64_TYPE__;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/format:3532:13: warning: TypeAlias uses unreserved identifier 'iterator' [stdlibunreserved]
> using iterator = typename _Scanner<_CharT>::iterator;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/memory_resource:126:5: warning: CXXMethod uses unreserved identifier 'allocate' [stdlibunreserved]
> allocate(size_t __bytes, size_t __alignment);
> ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/memory_resource:130:5: warning: CXXMethod uses unreserved identifier 'deallocate' [stdlibunreserved]
> deallocate(void* __p, size_t __bytes, size_t __alignment);
> ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/memory_resource:134:10: warning: CXXMethod uses unreserved identifier 'release' [stdlibunreserved]
> void release() noexcept;
> ~~~~~^~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/memory_resource:136:22: warning: CXXMethod uses unreserved identifier 'resource' [stdlibunreserved]
> memory_resource* resource() const noexcept
> ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/mutex:297:30: warning: ParmVar uses unreserved identifier 'clockid' [stdlibunreserved]
> _M_clocklock(clockid_t clockid, const __gthread_time_t& __ts)
> ~~~~~~~~~~^~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/mutex:375:30: warning: ParmVar uses unreserved identifier 'clockid' [stdlibunreserved]
> _M_clocklock(clockid_t clockid, const __gthread_time_t& __ts)
> ~~~~~~~~~~^~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_fwd.h:367:17: warning: TemplateTypeParm uses unreserved identifier 'IsVector' [stdlibunreserved]
> class IsVector>
> ~~~~~~^~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_fwd.h:374:17: warning: TemplateTypeParm uses unreserved identifier 'IsVector' [stdlibunreserved]
> class IsVector>
> ~~~~~~^~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_fwd.h:531:41: warning: TemplateTypeParm uses unreserved identifier 'OutputIterator' [stdlibunreserved]
> template <class _ForwardIterator, class OutputIterator, class _BinaryPredicate>
> ~~~~~~^~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_fwd.h:923:17: warning: TemplateTypeParm uses unreserved identifier 'OutputIterator' [stdlibunreserved]
> template <class OutputIterator, class Size, class _Generator>
> ~~~~~~^~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_fwd.h:923:39: warning: TemplateTypeParm uses unreserved identifier 'Size' [stdlibunreserved]
> template <class OutputIterator, class Size, class _Generator>
> ~~~~~~^~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_fwd.h:927:17: warning: TemplateTypeParm uses unreserved identifier 'OutputIterator' [stdlibunreserved]
> template <class OutputIterator, class Size, class _Generator>
> ~~~~~~^~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_fwd.h:927:39: warning: TemplateTypeParm uses unreserved identifier 'Size' [stdlibunreserved]
> template <class OutputIterator, class Size, class _Generator>
> ~~~~~~^~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_fwd.h:931:41: warning: TemplateTypeParm uses unreserved identifier 'OutputIterator' [stdlibunreserved]
> template <class _ExecutionPolicy, class OutputIterator, class Size, class _Generator, class _IsVector>
> ~~~~~~^~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_fwd.h:931:63: warning: TemplateTypeParm uses unreserved identifier 'Size' [stdlibunreserved]
> template <class _ExecutionPolicy, class OutputIterator, class Size, class _Generator, class _IsVector>
> ~~~~~~^~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_fwd.h:936:41: warning: TemplateTypeParm uses unreserved identifier 'OutputIterator' [stdlibunreserved]
> template <class _ExecutionPolicy, class OutputIterator, class Size, class _Generator, class _IsVector>
> ~~~~~~^~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_fwd.h:936:63: warning: TemplateTypeParm uses unreserved identifier 'Size' [stdlibunreserved]
> template <class _ExecutionPolicy, class OutputIterator, class Size, class _Generator, class _IsVector>
> ~~~~~~^~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_impl.h:1296:41: warning: TemplateTypeParm uses unreserved identifier 'OutputIterator' [stdlibunreserved]
> template <class _ForwardIterator, class OutputIterator, class _BinaryPredicate>
> ~~~~~~^~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_impl.h:1304:46: warning: TemplateTypeParm uses unreserved identifier 'OutputIterator' [stdlibunreserved]
> template <class _RandomAccessIterator, class OutputIterator, class _BinaryPredicate>
> ~~~~~~^~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_impl.h:1452:29: warning: ParmVar uses unreserved identifier '_is_vector' [stdlibunreserved]
> _IsVector _is_vector,
> ~~~~~~~~~~^~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_impl.h:2517:17: warning: TemplateTypeParm uses unreserved identifier 'OutputIterator' [stdlibunreserved]
> template <class OutputIterator, class Size, class _Generator>
> ~~~~~~^~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_impl.h:2517:39: warning: TemplateTypeParm uses unreserved identifier 'Size' [stdlibunreserved]
> template <class OutputIterator, class Size, class _Generator>
> ~~~~~~^~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_impl.h:2524:17: warning: TemplateTypeParm uses unreserved identifier 'OutputIterator' [stdlibunreserved]
> template <class OutputIterator, class Size, class _Generator>
> ~~~~~~^~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/algorithm_impl.h:2524:39: warning: TemplateTypeParm uses unreserved identifier 'Size' [stdlibunreserved]
> template <class OutputIterator, class Size, class _Generator>
> ~~~~~~^~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/execution_defs.h:17:11: warning: Namespace uses unreserved identifier 'execution' [stdlibunreserved]
> namespace execution
> ~~~~~~~~~~^~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/execution_defs.h:19:18: warning: Namespace uses unreserved identifier 'v1' [stdlibunreserved]
> inline namespace v1
> ~~~~~~~~~~~~~~~~~^~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/execution_impl.h:142:20: warning: TemplateTypeParm uses unreserved identifier 'policy' [stdlibunreserved]
> template <typename policy, typename... _IteratorTypes>
> ~~~~~~~~~^~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/execution_impl.h:150:20: warning: TemplateTypeParm uses unreserved identifier 'policy' [stdlibunreserved]
> template <typename policy, typename... _IteratorTypes>
> ~~~~~~~~~^~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/glue_algorithm_defs.h:142:107: warning: ParmVar uses unreserved identifier 'result' [stdlibunreserved]
> copy_if(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 result,
> ~~~~~~~~~~~~~~~~~~^~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/glue_algorithm_defs.h:204:71: warning: ParmVar uses unreserved identifier 'count' [stdlibunreserved]
> generate_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size count, _Generator __g);
> ~~~~~~^~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/glue_algorithm_defs.h:487:98: warning: ParmVar uses unreserved identifier 'result' [stdlibunreserved]
> _ForwardIterator2 __first2, _ForwardIterator2 __last2, _ForwardIterator result,
> ~~~~~~~~~~~~~~~~~^~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/glue_algorithm_impl.h:343:28: warning: ParmVar uses unreserved identifier 'x' [stdlibunreserved]
> [__op](_Input1Type x, _Input2Type y, _OutputType z) mutable { z = __op(x, y); },
> ~~~~~~~~~~~~^
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/glue_algorithm_impl.h:343:43: warning: ParmVar uses unreserved identifier 'y' [stdlibunreserved]
> [__op](_Input1Type x, _Input2Type y, _OutputType z) mutable { z = __op(x, y); },
> ~~~~~~~~~~~~^
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/glue_algorithm_impl.h:343:58: warning: ParmVar uses unreserved identifier 'z' [stdlibunreserved]
> [__op](_Input1Type x, _Input2Type y, _OutputType z) mutable { z = __op(x, y); },
> ~~~~~~~~~~~~^
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/glue_numeric_defs.h:108:67: warning: ParmVar uses unreserved identifier 'op' [stdlibunreserved]
> _ForwardIterator2 __d_first, _BinaryOperation op);
> ~~~~~~~~~~~~~~~~~^~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/numeric_impl.h:300:67: warning: TemplateTypeParm uses unreserved identifier 'BinaryOperation' [stdlibunreserved]
> template <class _ForwardIterator1, class _ForwardIterator2, class BinaryOperation>
> ~~~~~~^~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/unseq_backend_simd.h:535:26: warning: ParmVar uses unreserved identifier 'value' [stdlibunreserved]
> _Combiner(const _Tp& value, const _BinaryOp* bin_op) : __value(value), __bin_op(const_cast<_BinaryOp*>(bin_op)) {}
> ~~~~~~~~~~~^~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/unseq_backend_simd.h:535:50: warning: ParmVar uses unreserved identifier 'bin_op' [stdlibunreserved]
> _Combiner(const _Tp& value, const _BinaryOp* bin_op) : __value(value), __bin_op(const_cast<_BinaryOp*>(bin_op)) {}
> ~~~~~~~~~~~~~~~~~^~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/unseq_backend_simd.h:627:40: warning: ParmVar uses unreserved identifier 'val' [stdlibunreserved]
> _ComplexType(const _ValueType& val, const _Compare* comp)
> ~~~~~~~~~~~~~~~~~~^~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/unseq_backend_simd.h:627:61: warning: ParmVar uses unreserved identifier 'comp' [stdlibunreserved]
> _ComplexType(const _ValueType& val, const _Compare* comp)
> ~~~~~~~~~~~~~~~~^~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/unseq_backend_simd.h:688:40: warning: ParmVar uses unreserved identifier 'min_val' [stdlibunreserved]
> _ComplexType(const _ValueType& min_val, const _ValueType& max_val, const _Compare* comp)
> ~~~~~~~~~~~~~~~~~~^~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/unseq_backend_simd.h:688:67: warning: ParmVar uses unreserved identifier 'max_val' [stdlibunreserved]
> _ComplexType(const _ValueType& min_val, const _ValueType& max_val, const _Compare* comp)
> ~~~~~~~~~~~~~~~~~~^~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/pstl/unseq_backend_simd.h:688:92: warning: ParmVar uses unreserved identifier 'comp' [stdlibunreserved]
> _ComplexType(const _ValueType& min_val, const _ValueType& max_val, const _Compare* comp)
> ~~~~~~~~~~~~~~~~^~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/source_location:45:11: warning: TypeAlias uses unreserved identifier 'uint_least32_t' [stdlibunreserved]
> using uint_least32_t = __UINT_LEAST32_TYPE__;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/sstream:84:13: warning: TypeAlias uses unreserved identifier 'allocator_traits' [stdlibunreserved]
> using allocator_traits = std::allocator_traits<_Alloc>;
> ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/tuple:2331:30: warning: TemplateTemplateParm uses unreserved identifier 'TQual' [stdlibunreserved]
> template<typename> class TQual, template<typename> class UQual>
> ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
> /home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1/../../../../include/c++/13.0.1/tuple:2331:62: warning: TemplateTemplateParm uses unreserved identifier 'UQual' [stdlibunreserved]
> template<typename> class TQual, template<typename> class UQual>
> ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
> /usr/include/pthread.h:412:30: warning: ParmVar uses unreserved identifier 'sigmask' [stdlibunreserved]
> const __sigset_t *sigmask);
> ~~~~~~~~~~~~~~~~~~^~~~~~~
> /usr/include/pthread.h:418:24: warning: ParmVar uses unreserved identifier 'sigmask' [stdlibunreserved]
> __sigset_t *sigmask);
> ~~~~~~~~~~~~^~~~~~~
> /usr/include/semaphore.h:82:16: warning: ParmVar uses unreserved identifier 'clock' [stdlibunreserved]
> clockid_t clock,
> ~~~~~~~~~~^~~~~
> Suppressed 12 warnings (12 with check filters).
-------------- next part --------------
A non-text attachment was scrubbed...
Name: input.cc
Type: text/x-c++src
Size: 3109 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/libstdc++/attachments/20230210/7b4c7659/attachment-0002.bin>
-------------- next part --------------
GCC_INSTALL_DIR=/home/sbergman/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/13.0.1
LLVM_BIN_DIR=/home/sbergman/llvm/inst/bin
.PHONY: check
check: input.cc stdlibunreserved.so
$(LLVM_BIN_DIR)/clang-tidy --load=./stdlibunreserved.so \
--checks='-*,stdlibunreserved' --header-filter='.*' \
--system-headers --extra-arg=--gcc-install-dir=$(GCC_INSTALL_DIR) \
--extra-arg=-std=c++2b --extra-arg=-D_GLIBCXX_DEBUG input.cc --
stdlibunreserved.so: stdlibunreserved.cc
g++ -fPIC $$($(LLVM_BIN_DIR)/llvm-config --cxxflags) $< -shared \
$$($(LLVM_BIN_DIR)/llvm-config --ldflags) -o $@
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stdlibunreserved.cc
Type: text/x-c++src
Size: 5785 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/libstdc++/attachments/20230210/7b4c7659/attachment-0003.bin>
More information about the Libstdc++
mailing list