Skip to content

[flang] Assertion failed: detail::isPresent(Val) && "dyn_cast on a non-existent value" #146712

@augusew1

Description

@augusew1

I have run into the assertion in the title while compiling an incredibly large fortran project.

I am using a custom build LLVM 20.1.7 toolchain on Windows compiled by clang-cl.exe 19.1.5 with the following options:

cmake `
  -G "Ninja" `
  -Wno-dev `
  -Wno-deprecated `
  -DCMAKE_C_COMPILER="clang-cl.exe" `
  -DCMAKE_CXX_COMPILER="clang-cl.exe" `
  -DCMAKE_C_LINK_EXECUTABLE="lld-link.exe" `
  -DCMAKE_CXX_LINK_EXECUTABLE="lld-link.exe" `
  -DCMAKE_BUILD_TYPE=Release `
  -DCMAKE_INSTALL_PREFIX:PATH="$($InstallDir)" `
  -DLLVM_ENABLE_ASSERTIONS=ON `
  -DLLVM_TARGETS_TO_BUILD=host `
  -DLLVM_ENABLE_PROJECTS="clang;mlir;lld;lldb;openmp;flang" `
  -DLLVM_ENABLE_RUNTIMES="compiler-rt" `
  -B "$($BuildDir)" `
  -DLLVM_LIT_ARGS=-svj4 `
  -S ".\llvm-src\llvm"

The full error is below

Error Log
Assertion failed: detail::isPresent(Val) && "dyn_cast on a non-existent value", file C:\Users\augusew1\Documents\git\llvm\llvm-project-llvmorg-20.1.7\llvm\include\llvm/Support/Casting.h, line 662
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: C:\\Users\\augusew1\\Documents\\git\\llvm\\llvm-install\\bin\\flang -fc1 -triple x86_64-pc-windows-msvc19.44.35209 -emit-obj -I otis4src\\libs/bcslib\\libbcslib.a.p -I otis4src\\libs/blas\\libblas.a.p -I otis4src\\libs/cdheat\\libcdheat.a.p -I otis4src\\libs/gram07\\libgram.a.p -I otis4src\\libs/jhuapl/borders\\libjhuapl_borders.a.p -I otis4src\\libs/jhuapl/massprops\\libjhuapl_massprops.a.p -I otis4src\\libs/jpl\\libjpl.a.p -I otis4src\\libs/linpack\\liblinpack.a.p -I otis4src\\libs/miniver\\libminiver.a.p -I otis4src\\libs/novas\\libnovas.a.p -I otis4src\\libs/slsqp\\libslsqp.a.p -I otis4src\\libs/smath\\libsmath.a.p -I otis4src\\spice/toolkit/src/spicelib\\libspicelib.a.p -I otis4src\\libs/snopt7\\libsnopt.a.p -I otis4src\\src\\otis4.exe.p -I otis4src\\src -I ..\\otis4src\\src -D NDEBUG -D _FILE_OFFSET_BITS=64 -ffixed-line-length=132 -mrelocation-model pic -pic-level 2 -target-cpu x86-64 --dependent-lib=clang_rt.builtins-x86_64.lib -D_MT --dependent-lib=libcmt --dependent-lib=FortranRuntime.static.lib --dependent-lib=FortranDecimal.static.lib -D_MSC_VER=1944 -D_MSC_FULL_VER=194435209 -D_WIN32 -D_M_X64=100 -fversion-loops-for-stride -module-dir otis4src\\src\\otis4.exe.p -resource-dir C:\\Users\\augusew1\\Documents\\git\\llvm\\llvm-install\\lib\\clang\\20 -mframe-pointer=none -O3 -o otis4src/src/otis4.exe.p/phmap.f.obj -x f95-cpp-input ../otis4src/src/phmap.f
Exception Code: 0xC000001D
 #0 0x00007ff61cc569a6 (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x5469a6)
 #1 0x00007ff9a6cae6d5 (C:\WINDOWS\System32\ucrtbase.dll+0x7e6d5)
 #2 0x00007ff9a6caf6e1 (C:\WINDOWS\System32\ucrtbase.dll+0x7f6e1)
 #3 0x00007ff9a6cb108e (C:\WINDOWS\System32\ucrtbase.dll+0x8108e)
 #4 0x00007ff9a6cb12d1 (C:\WINDOWS\System32\ucrtbase.dll+0x812d1)
 #5 0x00007ff620d404bf (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x46304bf)
 #6 0x00007ff61fdf6ccb (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x36e6ccb)
 #7 0x00007ff61fdf6325 (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x36e6325)
 #8 0x00007ff61fdf5fdb (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x36e5fdb)
 #9 0x00007ff620d16a74 (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x4606a74)
#10 0x00007ff6212c0364 (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x4bb0364)
#11 0x00007ff6212bd289 (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x4bad289)
#12 0x00007ff620d17b7b (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x4607b7b)
#13 0x00007ff620d16ba1 (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x4606ba1)
#14 0x00007ff620d18172 (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x4608172)
#15 0x00007ff620d1cdde (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x460cdde)
#16 0x00007ff61fdf221b (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x36e221b)
#17 0x00007ff61e293933 (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x1b83933)
#18 0x00007ff61e293f3b (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x1b83f3b)
#19 0x00007ff61e2966f5 (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x1b866f5)
#20 0x00007ff61cd8339a (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x67339a)
#21 0x00007ff61cd87554 (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x677554)
#22 0x00007ff61ccee12d (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x5de12d)
#23 0x00007ff61c77fdd2 (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x6fdd2)
#24 0x00007ff61c79751a (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x8751a)
#25 0x00007ff61c713f62 (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x3f62)
#26 0x00007ff61c712230 (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x2230)
#27 0x00007ff621440410 (C:\Users\augusew1\Documents\git\llvm\llvm-install\bin\flang.exe+0x4d30410)
#28 0x00007ff9a8a3259d (C:\WINDOWS\System32\KERNEL32.DLL+0x1259d)
#29 0x00007ff9a970af78 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x5af78)
flang: error: flang frontend command failed due to signal (use -v to see invocation)
flang version 20.1.7
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Users\augusew1\Documents\git\llvm\llvm-install\bin
Build config: +assertions
flang: note: diagnostic msg:
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
flang: note: diagnostic msg: C:\Users\augusew1\AppData\Local\Temp\phmap-345c06
flang: note: diagnostic msg: C:\Users\augusew1\AppData\Local\Temp\phmap-345c06.sh
flang: note: diagnostic msg:

********************

And here is only one of the requested log files:

phmap.sh
# Crash reproducer for clang version 20.1.7
# Driver args: "-I" "otis4src\\libs/bcslib\\libbcslib.a.p" "-I" "otis4src\\libs/blas\\libblas.a.p" "-I" "otis4src\\libs/cdheat\\libcdheat.a.p" "-I" "otis4src\\libs/gram07\\libgram.a.p" "-I" "otis4src\\libs/jhuapl/borders\\libjhuapl_borders.a.p" "-I" "otis4src\\libs/jhuapl/massprops\\libjhuapl_massprops.a.p" "-I" "otis4src\\libs/jpl\\libjpl.a.p" "-I" "otis4src\\libs/linpack\\liblinpack.a.p" "-I" "otis4src\\libs/miniver\\libminiver.a.p" "-I" "otis4src\\libs/novas\\libnovas.a.p" "-I" "otis4src\\libs/slsqp\\libslsqp.a.p" "-I" "otis4src\\libs/smath\\libsmath.a.p" "-I" "otis4src\\spice/toolkit/src/spicelib\\libspicelib.a.p" "-I" "otis4src\\libs/snopt7\\libsnopt.a.p" "-I" "otis4src\\src\\otis4.exe.p" "-I" "otis4src\\src" "-I" "..\\otis4src\\src" "-D" "NDEBUG" "-D" "_FILE_OFFSET_BITS=64" "-O3" "-ffixed-line-length-132" "-module-dir" "otis4src\\src\\otis4.exe.p" "-o" "otis4src/src/otis4.exe.p/phmap.f.obj" "-c" "../otis4src/src/phmap.f"
# Original command:  "C:\\Users\\augusew1\\Documents\\git\\llvm\\llvm-install\\bin\\flang" "-fc1" "-triple" "x86_64-pc-windows-msvc19.44.35209" "-emit-obj" "-I" "otis4src\\libs/bcslib\\libbcslib.a.p" "-I" "otis4src\\libs/blas\\libblas.a.p" "-I" "otis4src\\libs/cdheat\\libcdheat.a.p" "-I" "otis4src\\libs/gram07\\libgram.a.p" "-I" "otis4src\\libs/jhuapl/borders\\libjhuapl_borders.a.p" "-I" "otis4src\\libs/jhuapl/massprops\\libjhuapl_massprops.a.p" "-I" "otis4src\\libs/jpl\\libjpl.a.p" "-I" "otis4src\\libs/linpack\\liblinpack.a.p" "-I" "otis4src\\libs/miniver\\libminiver.a.p" "-I" "otis4src\\libs/novas\\libnovas.a.p" "-I" "otis4src\\libs/slsqp\\libslsqp.a.p" "-I" "otis4src\\libs/smath\\libsmath.a.p" "-I" "otis4src\\spice/toolkit/src/spicelib\\libspicelib.a.p" "-I" "otis4src\\libs/snopt7\\libsnopt.a.p" "-I" "otis4src\\src\\otis4.exe.p" "-I" "otis4src\\src" "-I" "..\\otis4src\\src" "-D" "NDEBUG" "-D" "_FILE_OFFSET_BITS=64" "-ffixed-line-length=132" "-mrelocation-model" "pic" "-pic-level" "2" "-target-cpu" "x86-64" "--dependent-lib=clang_rt.builtins-x86_64.lib" "-D_MT" "--dependent-lib=libcmt" "--dependent-lib=FortranRuntime.static.lib" "--dependent-lib=FortranDecimal.static.lib" "-D_MSC_VER=1944" "-D_MSC_FULL_VER=194435209" "-D_WIN32" "-D_M_X64=100" "-fversion-loops-for-stride" "-module-dir" "otis4src\\src\\otis4.exe.p" "-resource-dir" "C:\\Users\\augusew1\\Documents\\git\\llvm\\llvm-install\\lib\\clang\\20" "-mframe-pointer=none" "-O3" "-o" "otis4src/src/otis4.exe.p/phmap.f.obj" "-x" "f95-cpp-input" "../otis4src/src/phmap.f"
 "C:\\Users\\augusew1\\Documents\\git\\llvm\\llvm-install\\bin\\flang" "-fc1" "-triple" "x86_64-pc-windows-msvc19.44.35209" "-emit-obj" "-D" "NDEBUG" "-D" "_FILE_OFFSET_BITS=64" "-ffixed-line-length=132" "-mrelocation-model" "pic" "-pic-level" "2" "-target-cpu" "x86-64" "--dependent-lib=clang_rt.builtins-x86_64.lib" "-D_MT" "--dependent-lib=libcmt" "--dependent-lib=FortranRuntime.static.lib" "--dependent-lib=FortranDecimal.static.lib" "-D_MSC_VER=1944" "-D_MSC_FULL_VER=194435209" "-D_WIN32" "-D_M_X64=100" "-fversion-loops-for-stride" "-module-dir" "otis4src\\src\\otis4.exe.p" "-mframe-pointer=none" "-O3" "-x" "f95-cpp-input" "phmap-345c06"

Unfortunately, I cannot share the source code due to US law.

Some information about the code:

  • It is a fortran 77 code base
  • It makes heavy use of NAMELIST, COMMON, BLOCK DATA, and EQUIVALENCE which I suspect is related
  • It does successfully compile with ifx and gfortran

Metadata

Metadata

Assignees

No one assigned

    Labels

    flangFlang issues not falling into any other category

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions