NVHPC nvc++ 26.3 compiler crash (assert)

[30/78||1] /opt/nvidia/hpc_sdk/Linux_x86_64/2026/compilers/bin/nvc++ -DBLAS_DOT_RETURNS_VOID -I/builds/correaa/boost-multi/include -std=c++23 -D_GLIBCXX_ASSERTIONS=0 -fast -O3 -DNDEBUG -fmax-errors=2 -Wall -Wextra -MD -MT test/CMakeFiles/ranges_zip.cpp.x.dir/ranges_zip.cpp.o -MF test/CMakeFiles/ranges_zip.cpp.x.dir/ranges_zip.cpp.o.d -o test/CMakeFiles/ranges_zip.cpp.x.dir/ranges_zip.cpp.o -c /builds/correaa/boost-multi/test/ranges_zip.cpp
FAILED: test/CMakeFiles/ranges_zip.cpp.x.dir/ranges_zip.cpp.o 
/opt/nvidia/hpc_sdk/Linux_x86_64/2026/compilers/bin/nvc++ -DBLAS_DOT_RETURNS_VOID -I/builds/correaa/boost-multi/include -std=c++23 -D_GLIBCXX_ASSERTIONS=0 -fast -O3 -DNDEBUG -fmax-errors=2 -Wall -Wextra -MD -MT test/CMakeFiles/ranges_zip.cpp.x.dir/ranges_zip.cpp.o -MF test/CMakeFiles/ranges_zip.cpp.x.dir/ranges_zip.cpp.o.d -o test/CMakeFiles/ranges_zip.cpp.x.dir/ranges_zip.cpp.o -c /builds/correaa/boost-multi/test/ranges_zip.cpp
Internal error: assertion failed at: "lower_name.cpp", line 10245 in record_substitution_for_type


1 catastrophic error detected in the compilation of "/builds/correaa/boost-multi/test/ranges_zip.cpp".
Compilation aborted.
ninja: build stopped: subcommand failed.

all the information to preproduce the error is here: nvhpc-26.3 (#14822804256) · Jobs · Alfredo Correa / boost-multi · GitLab

Here is the same job, running ok in nvc++ 22.7: nvhpc-22.7 (#14822804255) · Jobs · Alfredo Correa / boost-multi · GitLab
and in nvc++ 23.11: nvhpc (#14822804254) · Jobs · Alfredo Correa / boost-multi · GitLab

Because of the location, I think it is probably related to some requires clause, or handing of std::ranges.

Thanks for the report alfredo.correa!

I was able to reproduce the problem here and filed a report, TPR #38676, and sent it to engineering for investigation.

-Mat

Thank you. I was able to reduce it down to 25.9; the common factor is the -std=c++23 option. so it is some feature, such as requires that is enabled (in my library) in C++23, and then NVHPC fails to compile it.