error: there are no arguments to ‘occupiedMask’ that depend on a template parameter, so a declaration of ‘occupiedMask’ must be available
- Dominant language
- C++
- Stars
- 30.5k
- Forks
- 5.9k
- PR merge metrics
- No merged PRs in 30d
Description
folly fails to build on riscv64 when compiled as part of dawrfs 0.12.1:
/usr/bin/c++ -DBOOST_ATOMIC_DYN_LINK -DBOOST_ATOMIC_NO_LIB -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_FILESYSTEM_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_PROGRAM_OPTIONS_NO_LIB -DBOOST_SYSTEM_DYN_LINK -DBOOST_SYSTEM_NO_LIB -DDWARFS_HAVE_CLOSE_RANGE=1 -DFMT_SHARED -DFOLLY_CFG_NO_COROUTINES -DGLOG_NO_ABBREVIATED_SEVERITIES -DGLOG_USE_GLOG_EXPORT -DNOGDI -DNOMINMAX -D_GNU_SOURCE -D_REENTRANT -I/home/abuild/rpmbuild/BUILD/dwarfs-0.12.1-build/dwarfs-0.12.1/include -isystem /home/abuild/rpmbuild/BUILD/dwarfs-0.12.1-build/dwarfs-0.12.1/build/folly -isystem /home/abuild/rpmbuild/BUILD/dwarfs-0.12.1-build/dwarfs-0.12.1/folly -isystem /home/abuild/rpmbuild/BUILD/dwarfs-0.12.1-build/dwarfs-0.12.1/fast_float -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -O2 -g -DNDEBUG -std=c++20 -fPIC -fdiagnostics-color=always -g -finput-charset=UTF-8 -fsigned-char -Wall -Wno-deprecated -Wno-deprecated-declarations -Wno-sign-compare -Wno-unused -Wuninitialized -Wunused-label -Wunused-result -Wextra -pedantic -Wno-stringop-overflow -MD -MT CMakeFiles/dwarfs_folly_lite.dir/folly/folly/container/detail/F14Table.cpp.o -MF CMakeFiles/dwarfs_folly_lite.dir/folly/folly/container/detail/F14Table.cpp.o.d -o CMakeFiles/dwarfs_folly_lite.dir/folly/folly/container/detail/F14Table.cpp.o -c /home/abuild/rpmbuild/BUILD/dwarfs-0.12.1-build/dwarfs-0.12.1/folly/folly/container/detail/F14Table.cpp
In file included from /home/abuild/rpmbuild/BUILD/dwarfs-0.12.1-build/dwarfs-0.12.1/folly/folly/container/detail/F14Table.cpp:17:
/home/abuild/rpmbuild/BUILD/dwarfs-0.12.1-build/dwarfs-0.12.1/folly/folly/container/detail/F14Table.h: In member function ‘folly::f14::detail::DenseMaskIter folly::f14::detail::F14Chunk::occupiedIter() const’:
/home/abuild/rpmbuild/BUILD/dwarfs-0.12.1-build/dwarfs-0.12.1/folly/folly/container/detail/F14Table.h:792:37: error: there are no arguments to ‘occupiedMask’ that depend on a template parameter, so a declaration of ‘occupiedMask’ must be available [-fpermissive]
792 | return DenseMaskIter{&tags_[0], occupiedMask()};
| ^~~~~~~~~~~~
Contributor guide
Research direction
Start with folly/container/detail/F14Table.h around F14Chunk::occupiedIter() and inspect the related declaration of occupiedMask; folly/container/detail/F14Table.cpp is the compilation entry point shown in the report. Reproduce the reported C++20 build on riscv64, then verify that F14Table.cpp compiles without the occupiedMask template lookup error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100