Created attachment 205116 [details] folly/io/RecordIO.cpp (preprocessed, compressed) Probably a regression from base r349004 as 11.3-RC1 isn't affected. FAILED: CMakeFiles/folly_base.dir/folly/io/RecordIO.cpp.o /usr/bin/c++ -DFOLLY_XLOG_STRIP_PREFIXES=\"/wrkdirs/usr/ports/devel/folly/work/folly-2019.06.10.00:/wrkdirs/usr/ports/devel/folly/work/.build\" -DGFLAGS_IS_A_DLL=0 -D_GNU_SOURCE -D_REENTRANT -I/wrkdirs/usr/ports/devel/folly/work/folly-2019.06.10.00 -I. -I/usr/local/include -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -fPIC -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -fPIC -g -Wall -Wextra -O3 -g -std=gnu++1z -finput-charset=UTF-8 -fsigned-char -Wall -Wno-deprecated -Wno-deprecated-declarations -Wno-sign-compare -Wno-unused -Wunused-label -Wunused-result -Wno-noexcept-type -Wno-nullability-completeness -Wno-inconsistent-missing-override -faligned-new -fopenmp -MD -MT CMakeFiles/folly_base.dir/folly/io/RecordIO.cpp.o -MF CMakeFiles/folly_base.dir/folly/io/RecordIO.cpp.o.d -o CMakeFiles/folly_base.dir/folly/io/RecordIO.cpp.o -c /wrkdirs/usr/ports/devel/folly/work/folly-2019.06.10.00/folly/io/RecordIO.cpp Assertion failed: (!Init->isValueDependent()), function checkInitIsICE, file /poudriere/jails/head-amd64/usr/src/contrib/llvm/tools/clang/lib/AST/Decl.cpp, line 2342. c++: error: unable to execute command: Abort trap c++: error: clang frontend command failed due to signal (use -v to see invocation) FreeBSD clang version 8.0.1 (branches/release_80 363030) (based on LLVM 8.0.1) Target: x86_64-unknown-freebsd13.0 Thread model: posix InstalledDir: /usr/bin
Created attachment 205117 [details] command line args (for clang 8)
I can reproduce, and am investigating. It is some C++17 feature that goes awry. Reduced to: // clang -cc1 -triple x86_64-- -S -std=c++17 RecordIO-min.cpp // Assertion failed: (!Init->isValueDependent()), function checkInitIsICE, // file tools/clang/lib/AST/Decl.cpp, line 2342. template <int> struct a; template <class b, class> struct c { static constexpr int f = b ::d; c(a<f>); }; template <class e, class g = int> c(e)->c<e, g>;
Looks like this might be OBE? The LLVM PR[1] is still open, but devel/folly apparently builds with more recent versions of LLVM. [1] https://bugs.llvm.org/show_bug.cgi?id=42338
This got fixed only in clang 9.0, but the change was rather too big to backport to 8.0. Since we still have 8.0 in 12.1-R, we should close this bug after it expires, e.g. 2021-01-31.
12.1-RELEASE expires 2021-01-31.