intel / intel/media-driver

[Bug]: build of 26.1.0 with gcc-16 warnings [-Warray-bounds=]

Open
#1,981 0 comments 0 reactions 2 assignees Claimed by @XinfengZhang View on GitHub
Dominant language
C
Stars
1.2k
Forks
383
Avg merge
8d 18h
Merged PRs (30d)
4

Description

### Which component impacted?

Build

### Is it regression? Good in old configuration?

None

### What happened?

Build issue
```c++

[282/1735] Building CXX object media_driver/CMakeFiles/iHD_drv_video_COMMON.dir/linux/common/codec/ddi/media_ddi_encode_hevc.cpp.o
In file included from /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/string:57,
from ../media_common/agnostic/common/os/mos_defs.h:40,
from ../media_common/agnostic/common/os/mos_os.h:30,
from ../media_softlet/agnostic/common/codec/hal/codechal_common.h:29,
from ../media_driver/agnostic/common/codec/hal/codechal.h:29,
from ../media_driver/linux/common/ddi/media_libva.h:52,
from ../media_driver/linux/common/ddi/media_ddi_base.h:34,
from ../media_driver/linux/common/codec/ddi/media_ddi_encode_hevc.cpp:27:
In constructor 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_Alloc_hider::_Alloc_hider(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::pointer, _Alloc&&) [with _CharT = char; _Traits = std::char_traits; _Alloc = std::allocator]',
inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits; _Alloc = std::allocator]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/basic_string.h:614:9,
inlined from 'std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = const std::__cxx11::basic_string; _T2 = unsigned int]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_pair.h:312:17,
inlined from 'void std::__new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = std::pair, unsigned int>; _Args = {const std::pair, std::allocator >, unsigned int>&}; _Tp = std::_Rb_tree_node, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/new_allocator.h:191:4,
inlined from 'static void std::allocator_traits >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = std::pair, unsigned int>; _Args = {const std::pair, std::allocator >, unsigned int>&}; _Tp = std::_Rb_tree_node, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/alloc_traits.h:674:17,
inlined from 'void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_construct_node(_Node_ptr, _Args&& ...) [with _Args = {const std::pair, std::allocator >, unsigned int>&}; _Key = std::__cxx11::basic_string; _Val = std::pair, unsigned int>; _KeyOfValue = std::_Select1st, unsigned int> >; _Compare = std::less >; _Alloc = std::allocator, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_tree.h:1237:37,
inlined from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Node_ptr std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {const std::pair, std::allocator >, unsigned int>&}; _Key = std::__cxx11::basic_string; _Val = std::pair, unsigned int>; _KeyOfValue = std::_Select1st, unsigned int> >; _Compare = std::less >; _Alloc = std::allocator, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_tree.h:1254:21,
inlined from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Node_ptr std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Alloc_node::operator()(_Arg&&) const [with _Arg = const std::pair, unsigned int>&; _Key = std::__cxx11::basic_string; _Val = std::pair, unsigned int>; _KeyOfValue = std::_Select1st, unsigned int> >; _Compare = std::less >; _Alloc = std::allocator, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_tree.h:1136:32,
inlined from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_(_Base_ptr, _Base_ptr, _Arg&&, _NodeGen&) [with _Arg = const std::pair, unsigned int>&; _NodeGen = std::_Rb_tree, std::pair, unsigned int>, std::_Select1st, unsigned int> >, std::less >, std::allocator, unsigned int> > >::_Alloc_node; _Key = std::__cxx11::basic_string; _Val = std::pair, unsigned int>; _KeyOfValue = std::_Select1st, unsigned int> >; _Compare = std::less >; _Alloc = std::allocator, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_tree.h:2485:14,
inlined from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_unique_(const_iterator, _Arg&&, _NodeGen&) [with _Arg = const std::pair, unsigned int>&; _NodeGen = std::_Rb_tree, std::pair, unsigned int>, std::_Select1st, unsigned int> >, std::less >, std::allocator, unsigned int> > >::_Alloc_node; _Key = std::__cxx11::basic_string; _Val = std::pair, unsigned int>; _KeyOfValue = std::_Select1st, unsigned int> >; _Compare = std::less >; _Alloc = std::allocator, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_tree.h:2907:19,
inlined from 'std::__enable_if_t<((bool)std::is_same<_Val, typename std::iterator_traits<_InputIterator>::value_type>::value)> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_range_unique(_InputIterator, _InputIterator) [with _InputIterator = const std::pair, unsigned int>*; _Key = std::__cxx11::basic_string; _Val = std::pair, unsigned int>; _KeyOfValue = std::_Select1st, unsigned int> >; _Compare = std::less >; _Alloc = std::allocator, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_tree.h:1725:23,
inlined from 'std::map<_Key, _Tp, _Compare, _Alloc>::map(std::initializer_list >, const _Compare&, const allocator_type&) [with _Key = std::__cxx11::basic_string; _Tp = unsigned int; _Compare = std::less >; _Alloc = std::allocator, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_map.h:247:36,
inlined from 'void __static_initialization_and_destruction_0()' at ../media_driver/linux/common/codec/ddi/media_ddi_encode_hevc.cpp:55:1:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/basic_string.h:209:43: warning: array subscript 0 is outside array bounds of 'void [0]' [-Warray-bounds=]
209 | : allocator_type(std::move(__a)), _M_p(__dat) { }
| ^~~~~~~~~~~
In function 'void __static_initialization_and_destruction_0()':
cc1plus: note: source object is likely at address zero
In constructor 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_Alloc_hider::_Alloc_hider(std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::pointer, _Alloc&&) [with _CharT = char; _Traits = std::char_traits; _Alloc = std::allocator]',
inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits; _Alloc = std::allocator]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/basic_string.h:614:9,
inlined from 'std::pair<_T1, _T2>::pair(const std::pair<_T1, _T2>&) [with _T1 = const std::__cxx11::basic_string; _T2 = unsigned int]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_pair.h:312:17,
inlined from 'void std::__new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = std::pair, unsigned int>; _Args = {const std::pair, std::allocator >, unsigned int>&}; _Tp = std::_Rb_tree_node, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/new_allocator.h:191:4,
inlined from 'static void std::allocator_traits >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = std::pair, unsigned int>; _Args = {const std::pair, std::allocator >, unsigned int>&}; _Tp = std::_Rb_tree_node, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/alloc_traits.h:674:17,
inlined from 'void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_construct_node(_Node_ptr, _Args&& ...) [with _Args = {const std::pair, std::allocator >, unsigned int>&}; _Key = std::__cxx11::basic_string; _Val = std::pair, unsigned int>; _KeyOfValue = std::_Select1st, unsigned int> >; _Compare = std::less >; _Alloc = std::allocator, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_tree.h:1237:37,
inlined from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Node_ptr std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {const std::pair, std::allocator >, unsigned int>&}; _Key = std::__cxx11::basic_string; _Val = std::pair, unsigned int>; _KeyOfValue = std::_Select1st, unsigned int> >; _Compare = std::less >; _Alloc = std::allocator, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_tree.h:1254:21,
inlined from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Node_ptr std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Alloc_node::operator()(_Arg&&) const [with _Arg = const std::pair, unsigned int>&; _Key = std::__cxx11::basic_string; _Val = std::pair, unsigned int>; _KeyOfValue = std::_Select1st, unsigned int> >; _Compare = std::less >; _Alloc = std::allocator, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_tree.h:1136:32,
inlined from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_(_Base_ptr, _Base_ptr, _Arg&&, _NodeGen&) [with _Arg = const std::pair, unsigned int>&; _NodeGen = std::_Rb_tree, std::pair, unsigned int>, std::_Select1st, unsigned int> >, std::less >, std::allocator, unsigned int> > >::_Alloc_node; _Key = std::__cxx11::basic_string; _Val = std::pair, unsigned int>; _KeyOfValue = std::_Select1st, unsigned int> >; _Compare = std::less >; _Alloc = std::allocator, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_tree.h:2485:14,
inlined from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::iterator std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_unique_(const_iterator, _Arg&&, _NodeGen&) [with _Arg = const std::pair, unsigned int>&; _NodeGen = std::_Rb_tree, std::pair, unsigned int>, std::_Select1st, unsigned int> >, std::less >, std::allocator, unsigned int> > >::_Alloc_node; _Key = std::__cxx11::basic_string; _Val = std::pair, unsigned int>; _KeyOfValue = std::_Select1st, unsigned int> >; _Compare = std::less >; _Alloc = std::allocator, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_tree.h:2907:19,
inlined from 'std::__enable_if_t<((bool)std::is_same<_Val, typename std::iterator_traits<_InputIterator>::value_type>::value)> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_range_unique(_InputIterator, _InputIterator) [with _InputIterator = const std::pair, unsigned int>*; _Key = std::__cxx11::basic_string; _Val = std::pair, unsigned int>; _KeyOfValue = std::_Select1st, unsigned int> >; _Compare = std::less >; _Alloc = std::allocator, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_tree.h:1725:23,
inlined from 'std::map<_Key, _Tp, _Compare, _Alloc>::map(std::initializer_list >, const _Compare&, const allocator_type&) [with _Key = std::__cxx11::basic_string; _Tp = unsigned int; _Compare = std::less >; _Alloc = std::allocator, unsigned int> >]' at /var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/stl_map.h:247:36,
inlined from 'void __static_initialization_and_destruction_0()' at ../media_driver/linux/common/codec/ddi/media_ddi_encode_hevc.cpp:55:1:
/var/media/DATA/home-rudi/LibreELEC.tv/build.LibreELEC-Generic.x86_64-13.0-devel/toolchain/x86_64-libreelec-linux-gnu/include/c++/16.0.0/bits/basic_string.h:209:43: warning: array subscript 0 is outside array bounds of 'void [0]' [-Warray-bounds=]
209 | : allocator_type(std::move(__a)), _M_p(__dat) { }
| ^~~~~~~~~~~
In function 'void __static_initialization_and_destruction_0()':
cc1plus: note: source object is likely at address zero

```

### What's the usage scenario when you are seeing the problem?

Others

### What impacted?

Compile warnings. Compile does progress.

### Debug Information

_No response_

### Do you want to contribute a patch to fix the issue?

No.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.