Fixed on upstream, thanks for reporting, I guess my host GCC is just too old. It doesn't even not report that bug with -Wall -Wextra..
On Fri, Nov 17, 2023 at 11:41 PM Andreas Schwab <sch...@linux-m68k.org> wrote: > > In file included from > /daten/riscv64/gcc/gcc-20231117/Build/prev-riscv64-suse-linux/libstdc++-v3/include/memory:78, > from ../../gcc/system.h:769, > from ../../gcc/config/riscv/riscv-target-attr.cc:25: > In member function 'void std::default_delete<_Tp>::operator()(_Tp*) const > [with _Tp = char]', > inlined from 'std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = char; > _Dp = std::default_delete<char>]' at > /daten/riscv64/gcc/gcc-20231117/Build/prev-riscv64-suse-linux/libstdc++-v3/include/bits/unique_ptr.h:398:17, > inlined from 'bool riscv_process_one_target_attr(char*, location_t, > {anonymous}::riscv_target_attr_parser&)' at > ../../gcc/config/riscv/riscv-target-attr.cc:274:1, > inlined from 'bool riscv_process_target_attr(tree, location_t, > gcc_options*)' at ../../gcc/config/riscv/riscv-target-attr.cc:346:37: > /daten/riscv64/gcc/gcc-20231117/Build/prev-riscv64-suse-linux/libstdc++-v3/include/bits/unique_ptr.h:93:9: > error: 'void operator delete(void*, std::size_t)' called on pointer returned > from a mismatched allocation function [-Werror=mismatched-new-delete] > 93 | delete __ptr; > | ^~~~~~~~~~~~ > In function 'bool riscv_process_one_target_attr(char*, location_t, > {anonymous}::riscv_target_attr_parser&)', > inlined from 'bool riscv_process_target_attr(tree, location_t, > gcc_options*)' at ../../gcc/config/riscv/riscv-target-attr.cc:346:37: > ../../gcc/config/riscv/riscv-target-attr.cc:244:42: note: returned from > 'void* operator new [](std::size_t)' > 244 | std::unique_ptr<char> buf (new char[len]); > | ^ > In member function 'void std::default_delete<_Tp>::operator()(_Tp*) const > [with _Tp = char]', > inlined from 'std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = char; > _Dp = std::default_delete<char>]' at > /daten/riscv64/gcc/gcc-20231117/Build/prev-riscv64-suse-linux/libstdc++-v3/include/bits/unique_ptr.h:398:17, > inlined from 'bool riscv_process_target_attr(tree, location_t, > gcc_options*)' at ../../gcc/config/riscv/riscv-target-attr.cc:361:1: > /daten/riscv64/gcc/gcc-20231117/Build/prev-riscv64-suse-linux/libstdc++-v3/include/bits/unique_ptr.h:93:9: > error: 'void operator delete(void*, std::size_t)' called on pointer returned > from a mismatched allocation function [-Werror=mismatched-new-delete] > 93 | delete __ptr; > | ^~~~~~~~~~~~ > ../../gcc/config/riscv/riscv-target-attr.cc: In function 'bool > riscv_process_target_attr(tree, location_t, gcc_options*)': > ../../gcc/config/riscv/riscv-target-attr.cc:330:42: note: returned from > 'void* operator new [](std::size_t)' > 330 | std::unique_ptr<char> buf (new char[len]); > | ^ > In member function 'void std::default_delete<_Tp>::operator()(_Tp*) const > [with _Tp = char]', > inlined from 'std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = char; > _Dp = std::default_delete<char>]' at > /daten/riscv64/gcc/gcc-20231117/Build/prev-riscv64-suse-linux/libstdc++-v3/include/bits/unique_ptr.h:398:17, > inlined from 'bool > {anonymous}::riscv_target_attr_parser::parse_arch(const char*)' at > ../../gcc/config/riscv/riscv-target-attr.cc:140:5, > inlined from 'bool > {anonymous}::riscv_target_attr_parser::handle_arch(const char*)' at > ../../gcc/config/riscv/riscv-target-attr.cc:158:21: > /daten/riscv64/gcc/gcc-20231117/Build/prev-riscv64-suse-linux/libstdc++-v3/include/bits/unique_ptr.h:93:9: > error: 'void operator delete(void*, std::size_t)' called on pointer returned > from a mismatched allocation function [-Werror=mismatched-new-delete] > 93 | delete __ptr; > | ^~~~~~~~~~~~ > In member function 'bool > {anonymous}::riscv_target_attr_parser::parse_arch(const char*)', > inlined from 'bool > {anonymous}::riscv_target_attr_parser::handle_arch(const char*)' at > ../../gcc/config/riscv/riscv-target-attr.cc:158:21: > ../../gcc/config/riscv/riscv-target-attr.cc:108:46: note: returned from > 'void* operator new [](std::size_t)' > 108 | std::unique_ptr<char> buf (new char[len]); > | ^ > In member function 'void std::default_delete<_Tp>::operator()(_Tp*) const > [with _Tp = char]', > inlined from 'std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = char; > _Dp = std::default_delete<char>]' at > /daten/riscv64/gcc/gcc-20231117/Build/prev-riscv64-suse-linux/libstdc++-v3/include/bits/unique_ptr.h:398:17, > inlined from 'bool > {anonymous}::riscv_target_attr_parser::parse_arch(const char*)' at > ../../gcc/config/riscv/riscv-target-attr.cc:140:5, > inlined from 'bool > {anonymous}::riscv_target_attr_parser::handle_arch(const char*)' at > ../../gcc/config/riscv/riscv-target-attr.cc:158:21: > /daten/riscv64/gcc/gcc-20231117/Build/prev-riscv64-suse-linux/libstdc++-v3/include/bits/unique_ptr.h:93:9: > error: 'void operator delete(void*, std::size_t)' called on pointer returned > from a mismatched allocation function [-Werror=mismatched-new-delete] > 93 | delete __ptr; > | ^~~~~~~~~~~~ > In member function 'bool > {anonymous}::riscv_target_attr_parser::parse_arch(const char*)', > inlined from 'bool > {anonymous}::riscv_target_attr_parser::handle_arch(const char*)' at > ../../gcc/config/riscv/riscv-target-attr.cc:158:21: > ../../gcc/config/riscv/riscv-target-attr.cc:108:46: note: returned from > 'void* operator new [](std::size_t)' > 108 | std::unique_ptr<char> buf (new char[len]); > | ^ > cc1plus: all warnings being treated as errors > make[3]: *** [../../gcc/config/riscv/t-riscv:120: riscv-target-attr.o] Error 1 > > -- > Andreas Schwab, sch...@linux-m68k.org > GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 > "And now for something completely different."