[squid-dev] Latest Clang build errors
Amos Jeffries
squid3 at treenet.co.nz
Tue Mar 28 13:27:25 UTC 2023
Alex, since the whole IPC and SHM system is your design are you able to
work on fixing the FlexibleArray build errors we are now getting with
clang v15.
IIRC FlexibleArray was a placeholder for std::dynarray, which is now
officially dead. So if we can do an implementation which uses more
standard behaviour it would be better.
Cheers
Amos
[1] Log excerpt from Jenkins:
01:00:06 In file included from ../../../../src/ipc/StoreMap.h:12,
01:00:06 from ../../../../src/fs/rock/RockRebuild.h:17,
01:00:06 from ../../../../src/fs/rock/RockRebuild.cc:15:
01:00:06 In member function 'Item&
Ipc::Mem::FlexibleArray<Item>::operator[](int) [with Item = long
unsigned int]',
01:00:06 inlined from 'Ipc::StoreMapItems<C>::Item&
Ipc::StoreMapItems<C>::at(int) [with C = long unsigned int]' at
../../../../src/ipc/StoreMap.h:136:21,
01:00:06 inlined from 'Rock::LoadingEntry::LoadingEntry(sfileno,
Rock::LoadingParts&)' at ../../../../src/fs/rock/RockRebuild.cc:199:27:
01:00:06 ../../../../src/ipc/mem/FlexibleArray.h:34:52: error: array
subscript -1 is below array bounds of 'long unsigned int [1]'
[-Werror=array-bounds=]
01:00:06 34 | Item &operator [](const int idx) { return items[idx]; }
01:00:06 | ~~~~~^
01:00:06 ../../../../src/ipc/mem/FlexibleArray.h: In constructor
'Rock::LoadingEntry::LoadingEntry(sfileno, Rock::LoadingParts&)':
01:00:06 ../../../../src/ipc/mem/FlexibleArray.h:43:10: note: while
referencing 'Ipc::Mem::FlexibleArray<long unsigned int>::items'
01:00:06 43 | Item items[1]; // ensures proper alignment of array
elements
01:00:06 | ^~~~~
01:00:06 In member function 'Item&
Ipc::Mem::FlexibleArray<Item>::operator[](int) [with Item = unsigned int]',
01:00:06 inlined from 'Ipc::StoreMapItems<C>::Item&
Ipc::StoreMapItems<C>::at(int) [with C = unsigned int]' at
../../../../src/ipc/StoreMap.h:136:21,
01:00:06 inlined from 'Rock::LoadingEntry::LoadingEntry(sfileno,
Rock::LoadingParts&)' at ../../../../src/fs/rock/RockRebuild.cc:200:33:
01:00:06 ../../../../src/ipc/mem/FlexibleArray.h:34:52: error: array
subscript -1 is below array bounds of 'unsigned int [1]'
[-Werror=array-bounds=]
01:00:06 34 | Item &operator [](const int idx) { return items[idx]; }
01:00:06 | ~~~~~^
01:00:06 ../../../../src/ipc/mem/FlexibleArray.h: In constructor
'Rock::LoadingEntry::LoadingEntry(sfileno, Rock::LoadingParts&)':
01:00:06 ../../../../src/ipc/mem/FlexibleArray.h:43:10: note: while
referencing 'Ipc::Mem::FlexibleArray<unsigned int>::items'
01:00:06 43 | Item items[1]; // ensures proper alignment of array
elements
01:00:06 | ^~~~~
01:00:06 In member function 'Item&
Ipc::Mem::FlexibleArray<Item>::operator[](int) [with Item = int]',
01:00:06 inlined from 'Ipc::StoreMapItems<C>::Item&
Ipc::StoreMapItems<C>::at(int) [with C = int]' at
../../../../src/ipc/StoreMap.h:136:21,
01:00:06 inlined from 'Rock::LoadingSlot::LoadingSlot(Rock::SlotId,
Rock::LoadingParts&)' at ../../../../src/fs/rock/RockRebuild.cc:208:27:
01:00:06 ../../../../src/ipc/mem/FlexibleArray.h:34:52: error: array
subscript -1 is below array bounds of 'int [1]' [-Werror=array-bounds=]
01:00:06 34 | Item &operator [](const int idx) { return items[idx]; }
01:00:06 | ~~~~~^
01:00:06 ../../../../src/ipc/mem/FlexibleArray.h: In constructor
'Rock::LoadingSlot::LoadingSlot(Rock::SlotId, Rock::LoadingParts&)':
01:00:06 ../../../../src/ipc/mem/FlexibleArray.h:43:10: note: while
referencing 'Ipc::Mem::FlexibleArray<int>::items'
01:00:06 43 | Item items[1]; // ensures proper alignment of array
elements
01:00:06 | ^~~~~
01:00:06 cc1plus: all warnings being treated as errors
01:00:06 make[4]: *** [Makefile:986: rock/RockRebuild.lo] Error 1
01:00:06 make[4]: Leaving directory
'/srv/jenkins/workspace/5-pr-test/COMPILER/gcc/OS/fedora-rawhide/label/docker-build-host/btlayer-02-maximus/squid-7.0.0-VCS/_build/sub/src/fs'
More information about the squid-dev
mailing list