crunch
crunch copied to clipboard
`crunch/inc/crn_defs.h: warning #175: subscript out of range` with ICC
I get this when building the Damon engine with ICC:
crunch/inc/crn_defs.h(236): warning #175: subscript out of range
return (m_buf[0] << 24U) | (m_buf[1] << 16U) | (m_buf[2] << 8U) | (m_buf[3]);
^
detected during instantiation of "crnd::crn_packed_uint<N>::operator unsigned int() const [with N=3U]" at line 2242 of "crunch/inc/crn_decomp.h"
crunch/inc/crn_defs.h(234): warning #175: subscript out of range
return (m_buf[0] << 16U) | (m_buf[1] << 8U) | (m_buf[2]);
^
detected during instantiation of "crnd::crn_packed_uint<N>::operator unsigned int() const [with N=2U]" at line 2198 of "crunch/inc/crn_decomp.h"
crunch/inc/crn_defs.h(236): warning #175: subscript out of range
return (m_buf[0] << 24U) | (m_buf[1] << 16U) | (m_buf[2] << 8U) | (m_buf[3]);
^
detected during instantiation of "crnd::crn_packed_uint<N>::operator unsigned int() const [with N=2U]" at line 2198 of "crunch/inc/crn_decomp.h"
crunch/inc/crn_defs.h(236): warning #175: subscript out of range
return (m_buf[0] << 24U) | (m_buf[1] << 16U) | (m_buf[2] << 8U) | (m_buf[3]);
^
detected during instantiation of "crnd::crn_packed_uint<N>::operator unsigned int() const [with N=2U]" at line 2198 of "crunch/inc/crn_decomp.h"
It looks to be the same problem CodeQL was reporting:
The following cpp/static-buffer-overflow critical error is dismissed as it is a false positive:
Potential buffer-overflow: 'm_buf' has size 2 but 'm_buf[3]' may be accessed here.It is a false positive because the tool fails to understand that the value tested for the switch case is the array size itself.
See: https://github.com/DaemonEngine/crunch/pull/60#issue-2393352483