Issue |
125541
|
Summary |
`-Warray-bounds=` warning compiling `lvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp`
|
Labels |
backend:AArch64,
code-quality
|
Assignees |
|
Reporter |
firewave
|
```
In file included from /usr/include/c++/14.2.1/algorithm:60,
from /home/user/CLionProjects/llvm-project/llvm/include/llvm/ADT/SmallVector.h:18,
from /home/user/CLionProjects/llvm-project/llvm/include/llvm/MC/MCELFStreamer.h:12,
from /home/user/CLionProjects/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h:16,
from /home/user/CLionProjects/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp:15:
In static member function ‘static _Up* std::__copy_move<_IsMove, true, std::random_access_iterator_tag>::__copy_m(_Tp*, _Tp*, _Up*) [with _Tp = const llvm::MCSymbol*; _Up = const llvm::MCSymbol*; bool _IsMove = true]’,
inlined from ‘_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = true; _II = const llvm::MCSymbol**; _OI = const llvm::MCSymbol**]’ at /usr/include/c++/14.2.1/bits/stl_algobase.h:521:30,
inlined from ‘_OI std::__copy_move_a1(_II, _II, _OI) [with bool _IsMove = true; _II = const llvm::MCSymbol**; _OI = const llvm::MCSymbol**]’ at /usr/include/c++/14.2.1/bits/stl_algobase.h:548:42,
inlined from ‘_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = true; _II = const llvm::MCSymbol**; _OI = const llvm::MCSymbol**]’ at /usr/include/c++/14.2.1/bits/stl_algobase.h:555:31,
inlined from ‘_OI std::move(_II, _II, _OI) [with _II = const llvm::MCSymbol**; _OI = const llvm::MCSymbol**]’ at /usr/include/c++/14.2.1/bits/stl_algobase.h:683:38,
inlined from ‘llvm::SmallVectorImpl<T>& llvm::SmallVectorImpl<T>::operator=(llvm::SmallVectorImpl<T>&&) [with T = const llvm::MCSymbol*]’ at /home/user/CLionProjects/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1070:25,
inlined from ‘virtual void llvm::AArch64TargetELFStreamer::finish()’ at /home/user/CLionProjects/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp:499:31:
/usr/include/c++/14.2.1/bits/stl_algobase.h:452:30: warning: ‘void* __builtin_memmove(void*, const void*, long unsigned int)’ offset [16, 24] is out of the bounds [0, 16] of object ‘NewSyms’ with type ‘llvm::SmallVector<const llvm::MCSymbol*, 0>’ [-Warray-bounds=]
452 | __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/user/CLionProjects/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp: In member function ‘virtual void llvm::AArch64TargetELFStreamer::finish()’:
/home/user/CLionProjects/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp:475:40: note: ‘NewSyms’ declared here
475 | SmallVector<const MCSymbol *, 0> NewSyms;
| ^~~~~~~
In static member function ‘static _Up* std::__copy_move<_IsMove, true, std::random_access_iterator_tag>::__copy_m(_Tp*, _Tp*, _Up*) [with _Tp = const llvm::MCSymbol*; _Up = const llvm::MCSymbol*; bool _IsMove = true]’,
inlined from ‘_OI std::__copy_move_a2(_II, _II, _OI) [with bool _IsMove = true; _II = const llvm::MCSymbol**; _OI = const llvm::MCSymbol**]’ at /usr/include/c++/14.2.1/bits/stl_algobase.h:521:30,
inlined from ‘_OI std::__copy_move_a1(_II, _II, _OI) [with bool _IsMove = true; _II = const llvm::MCSymbol**; _OI = const llvm::MCSymbol**]’ at /usr/include/c++/14.2.1/bits/stl_algobase.h:548:42,
inlined from ‘_OI std::__copy_move_a(_II, _II, _OI) [with bool _IsMove = true; _II = const llvm::MCSymbol**; _OI = const llvm::MCSymbol**]’ at /usr/include/c++/14.2.1/bits/stl_algobase.h:555:31,
inlined from ‘_OI std::move(_II, _II, _OI) [with _II = const llvm::MCSymbol**; _OI = const llvm::MCSymbol**]’ at /usr/include/c++/14.2.1/bits/stl_algobase.h:683:38,
inlined from ‘llvm::SmallVectorImpl<T>& llvm::SmallVectorImpl<T>::operator=(llvm::SmallVectorImpl<T>&&) [with T = const llvm::MCSymbol*]’ at /home/user/CLionProjects/llvm-project/llvm/include/llvm/ADT/SmallVector.h:1093:14,
inlined from ‘virtual void llvm::AArch64TargetELFStreamer::finish()’ at /home/user/CLionProjects/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp:499:31:
/usr/include/c++/14.2.1/bits/stl_algobase.h:452:30: warning: ‘void* __builtin_memmove(void*, const void*, long unsigned int)’ offset [16, 24] is out of the bounds [0, 16] of object ‘NewSyms’ with type ‘llvm::SmallVector<const llvm::MCSymbol*, 0>’ [-Warray-bounds=]
452 | __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
| ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/user/CLionProjects/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp: In member function ‘virtual void llvm::AArch64TargetELFStreamer::finish()’:
/home/user/CLionProjects/llvm-project/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp:475:40: note: ‘NewSyms’ declared here
475 | SmallVector<const MCSymbol *, 0> NewSyms;
| ^~~~~~~
```
I am using `gcc (GCC) 14.2.1 20240910` on Manjaro Linux.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs