<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/128606>128606</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang][debug] Unexpected Assertion `!attr.getIsRecSelf() && "unbound DI recursive self reference"' failure
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
akuhlens
</td>
</tr>
</table>
<pre>
This seems to be another case of #122024. The example code is a lot more complicated and I wasn't able to reduce it to a single file. I can delete a fair amount of code, but deleting the [switch case for `type(TestCase)`](https://github.com/Goddard-Fortran-Ecosystem/pFUnit/blob/cbe21b95eff70804acfd7f5a9b68dec291781c4a/src/funit/core/TestSuite.F90#L164). Allows this file to compile and then gets stuck on the next file with the same error.
```
$ git clone git@github.com:Goddard-Fortran-Ecosystem/pFUnit.git
$ cd pFUnit
$ mkdir build
$ cd build
$ flang --version
flang version 21.0.0git (https://github.com/llvm/llvm-project f6a30021249c3b6aac20f108559915e74943540f)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir:
Build config: +assertions
$ export FC=flang
$ cmake -DCMAKE_INSTALL_PREFIX=../install -DENABLE_TESTS=ON -DSKIP_MPI=YES ..
$ make test
...
[ 14%] Building Fortran object src/funit/core/CMakeFiles/funit-core.dir/TestSuite.F90.o
flang-21: warning: OpenMP support in flang is still experimental [-Wexperimental-option]
flang: /proj/build/llvm/Linux_x86_64/mlir/lib/Target/LLVMIR/DebugTranslation.cpp:276: llvm::DINode* mlir::LLVM::detail::DebugTranslation::translateRecursive(mlir::LLVM::DIRecursiveTypeAttrInterface): Assertion `!attr.getIsRecSelf() && "unbound DI recursive self reference"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /proj/nv/llvm/Linux_x86_64/llvm-4477/bin/flang -fc1 -triple x86_64-unknown-linux-gnu -emit-obj -D Robust -I /home/akuhlenschmi/tmp/pFUnit/build/src/funit/mod -I /home/akuhlenschmi/tmp/pFUnit/include -I /home/akuhlenschmi/tmp/pFUnit/build/src/funit/core -I /local/home/akuhlenschmi/tmp/install/GFTL-1.15/include/v2 -I /local/home/akuhlenschmi/tmp/install/GFTL_SHARED-1.10/include/v2 -I /local/home/akuhlenschmi/tmp/install/FARGPARSE-1.9/include -cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu x86-64 -module-dir ../mod -debug-info-kind=standalone -fopenmp -resource-dir /proj/nv/llvm/Linux_x86_64/llvm-4477/lib/clang/21 -mframe-pointer=all -O0 -o CMakeFiles/funit-core.dir/TestSuite.F90.o -x f95-cpp-input /home/akuhlenschmi/tmp/pFUnit/src/funit/core/TestSuite.F90
#0 0x0000556097d9d13b llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/proj/nv/llvm/Linux_x86_64/llvm-4477/bin/flang+0x450713b)
#1 0x0000556097d9a954 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#2 0x00007ff69983e520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#3 0x00007ff6998929fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#4 0x00007ff6998929fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
#5 0x00007ff6998929fc pthread_kill ./nptl/pthread_kill.c:89:10
#6 0x00007ff69983e476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
#7 0x00007ff6998247f3 abort ./stdlib/abort.c:81:7
#8 0x00007ff69982471b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#9 0x00007ff699835e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#10 0x000055609bb56359 mlir::LLVM::detail::DebugTranslation::translateRecursive(mlir::LLVM::DIRecursiveTypeAttrInterface) (/proj/nv/llvm/Linux_x86_64/llvm-4477/bin/flang+0x82c0359)
#11 0x000055609bb565ed mlir::LLVM::detail::DebugTranslation::translate(mlir::LLVM::DINodeAttr) (/proj/nv/llvm/Linux_x86_64/llvm-4477/bin/flang+0x82c05ed)
#12 0x000055609bb579c4 mlir::LLVM::detail::DebugTranslation::translateImpl(mlir::LLVM::DIDerivedTypeAttr) (/proj/nv/llvm/Linux_x86_64/llvm-4477/bin/flang+0x82c19c4)
#13 0x000055609bb569bb mlir::LLVM::detail::DebugTranslation::translate(mlir::LLVM::DINodeAttr) (/proj/nv/llvm/Linux_x86_64/llvm-4477/bin/flang+0x82c09bb)
#14 0x000055609bb579c4 mlir::LLVM::detail::DebugTranslation::translateImpl(mlir::LLVM::DIDerivedTypeAttr) (/proj/nv/llvm/Linux_x86_64/llvm-4477/bin/flang+0x82c19c4)
#15 0x000055609bb569bb mlir::LLVM::detail::DebugTranslation::translate(mlir::LLVM::DINodeAttr) (/proj/nv/llvm/Linux_x86_64/llvm-4477/bin/flang+0x82c09bb)
#16 0x000055609bb58b70 mlir::LLVM::detail::DebugTranslation::getMDTupleOrNull(llvm::ArrayRef<mlir::LLVM::DINodeAttr>) (/proj/nv/llvm/Linux_x86_64/llvm-4477/bin/flang+0x82c2b70)
#17 0x000055609bb5995b mlir::LLVM::detail::DebugTranslation::translateImpl(mlir::LLVM::DICompositeTypeAttr) (/proj/nv/llvm/Linux_x86_64/llvm-4477/bin/flang+0x82c395b)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcWFtv3LYS_jX0y0CCRN1WD36QvVa7qJMY9vZcnhYUNdplTZECSfny7w9I7daX06RNk-LgNNjAEkV-nG_mm-FIzFqxV4jnpLggxfqMze6gzTm7nw8SlT3rdP98vj0ICxZxtOA0dAhMaXdAA5xZBD0AoVlKaULzGLYHBHxi4yQRuO4RhAUGUjsYtfFD4yQFZw57YKqHDTwyqwitHLBOosc32M8cQTh_w8AKtZcIg5AYwwY4U9CjRIfAYGDCABv1rJw3w-9H6CV0s1vmCLUHd0AgxYV9FI4fFosHbYCUiXuekNDVFq27ZBYJrUmZkGJN6Org3GRJ1hDaEtruhTvMXcz1SGj7g-57Zvqo1cYZpqIrru2zdeifTe3PSjhC207qjtCWd0jTri5wGKpkleSMD301FKzuylWPnNZptUp5zghtreGEtsO8rOfaIKGtN-1uFg7jtk4Iza7TMie0jqGRUj9acD4w3jPeVd61_tK71R1QwR6dBetmfg9aBT8ofHLL_EfhDmHIshEBjdEmBpI0_lcmx1_SEJrDXjjgUiv0VyRPXnkja37fG7FftSDxHo4eWu7H-14Y6GYh-5cZr28HydQeougBjRVakaRZRo73QNM4ib1B8OWYSflw-hNNRv-C3MFQsixJaErzmmddyRinyZAmq6Ko67TAKq_zrMiTwcsiabbM7NGRrIGnVbkr82hW90o_qkgKNT9FezX7SQeDrIdR9yj91Elb8USSZqOsY1JivxbGG5g0F54kcK0GsfczCb1g1qJxQit7JI9PkzYO2kuSrQPtk49Gdo8QrS8_ND9d7TYf77bN9fXu5vaq3fyLZOs4JrQVy44Qra8-NhfXV7vt1d32jmTrTx8hWt_9tLnZfbjZkGz976s7iONTPDywQ-vjEy-jxQWkOaEFKdYQjPYpdQw26C548jele_mB3WMrJNrTs8g_iXth3gs71qfARjT13nhkRgkVHPNpQvXhBuw8BWcIddSEL0hOSOm9hEaMqByTPs-jf74eifTkXeqT-rjF4u3Wq8DnaRDbrwK59sHcLREmtB1lMFYKn8tHBdD2-vofHza3hLZr7Ob91jBlJfO7xHyaSNbQqvSbBMisIVmz3nwMhamBABjGPMhy1aNjQh5nvkNcRt1xAG-Rz8aKB1-1fgtqvfl1xvZ5wsY5s1EOzcB4qG5ZA81JZb4AEpoy50y8R7ext8jvUA6ErgitgdCS0BIIpbPq9Kx6WG_AnNDBohzA4IAGlcemhFa-GkvsvWxurq-auyuwczcKBwy6eQ8GQwSdhq9LVK9ma-ego1DbhOJy7jFUL26YPUDH-L0zjKPf-84xfg_9PE5LqiUxhH83Ru8NG4GZ_ezFYd8qQT18VgbBmjyvKi8Yobyel7o08BQiZ4Q_6z5XFiDCUbhId79AtIZb3c3WQbTxOx_06DPldNbywygIbd04vTlJjgp9m2Sj7r8G5OSyb97Xp_ARRWrO5O-gHcuQPzXb7XWUxmnxYg2h7QP902C7ux-b26u1x0y-B2bb3P5w09zeXUVpXL92GZ8miEaDHs4nThTKO0yCQzQJHkl8QAl0uRE2mgRC5EKxiPg0e2FEZQ5-2Swx8ideKNEhhL1P-EioQUf3QvUkW1vHVM_CcRsNekI1ThAZtHo2fFn91Zpd6hcP1Y-2NIVoHAwbMZq08OWBZOtwVnxKINLwVYUboicY6sI7KRJqmt0f1tcf6HcSn59ZAslTkiRJUZRJXfV1n2bdq-Jqn-1ycWOEciH5tybUu9XLJMMed9o6g2wMhe0ShHJLmVt9Swkg9CJ5youkSrNu6RNCK_zOYlYXOdyJvWLyR6Z6iYbQVTDgEqzY--jvHKGNv3_Qog-X9XGFPZ4qSfi_bECPG1TDUNb1KsOCJkcqS6yPxeilNwkPeGx1XC4204ImLxZnbwFrWg8cdrvJhYZmdy-k3Anf0odTNRwfXsJqcj51Xk-LOcmaPCdZU5VH8PyPgHsdKia_CFutSNakJycUvwX7es0XsVb1a6zyvUPzqoS9DQEIMMsloW1IXftse5x8fiwdHm0NExYDMK1I1pyoV29xaV4NGbDOn4MBx_VLvMLQYpdvgKrj8tV_LU872Cm5k5r1u16PTCyBECqw9MOj3XO2YKVp5Y05Bbl-R7LAuvw61WQ11uWiGi_zN5nZdUWZFfX_uMX5Lgm9ojzJivqFaPqeaIH9txL9LD_fK3pa35NNgf0LG_qOTVXz_FvZbMZJfpbRGo14wP4Ur-9ILK15_kIsex-muuv-r8JUd90Lm_zvGqbibxWm8h2bVVclf5LNHt2H9XaeJH4yH2fflb5qYRpj2PMtDiS7_B2m2dV3JEu7KnkhW70jW9fFN4fui5q81KM_Yh3-BarM6uIUx9MXr7P-POvrrGZneJ5WeZLnWZWlZ4fzPu_rbtWvUlZ3PGWrocuKrCrzIlulOcuGM3FOE1oklBZJkhVZGtfVKh9okhTZquJ9NZA8wZEJGXurYm32Z-Gt9jylqzIpzyTrUNrwFZbSo5mUFOszcx5odPPekjyRwjr7AuGEk-HT7bKiWJPiIrxSkGINPyt8mpA77P_yt_7Z4Nls5Pmff7M_uuHhnP4nAAD__8vO-J0">