<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/62778>62778</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [flang] crash with "cannot process subprogram that was already processed"
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          k-arrows
      </td>
    </tr>
</table>

<pre>
    It looks like flang-new's behavior for the following test program has changed recently:
https://github.com/gcc-mirror/gcc/blob/master/gcc/testsuite/gfortran.dg/binding_label_tests_21.f90

Here is the result of comparing the older flang-new with the one I built today. I'm reporting as I think it's worse to crash, but please let me know if it's not right.

LLVM-16.0.3 (OK : reporting semantic errors)
```console
$ flang-new -c binding_label_tests_21.f90
error: Semantic errors in binding_label_tests_21.f90
./binding_label_tests_21.f90:6:7: error: Two entities have the same BIND(C) name 'bar'
  entry sub() bind(C, name="bar") ! { dg-error "Global binding name 'bar' at .1. is already being used as a SUBROUTINE at .2." }
 ^^^
./binding_label_tests_21.f90:5:12: Conflicting declaration
 subroutine foo() bind(C, name="bar") ! { dg-error "Global binding name 'bar' at .1. is already being used as a SUBROUTINE at .2." }
 ^^^
$ flang-new --version
flang-new version 16.0.3 (https://github.com/llvm/llvm-project da3cd333bea572fb10470f610a27f22bcb84b08c)
Target: x86_64-unknown-linux-gnu
Thread model: posix
```

LLVM-17.0.0 (NG : crash with "cannot process subprogram that was already processed")
Stack dump:
```console
 #0 0x0000563013928282 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int)
 #1 0x00005630139288c4 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007fcdbb423520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x00007fcdbb477a7c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #4 0x00007fcdbb477a7c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #5 0x00007fcdbb477a7c pthread_kill ./nptl/pthread_kill.c:89:10
 #6 0x00007fcdbb423476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #7 0x00007fcdbb4097f3 abort ./stdlib/abort.c:81:7
 #8 0x00005630138d5fa1 llvm::report_fatal_error(llvm::Twine const&, bool)
 #9 0x00005630138d5e4f llvm::report_fatal_error(llvm::Twine const&, bool)
#10 0x0000563013afd36a mlir::InFlightDiagnostic::~InFlightDiagnostic()
#11 0x0000563013b48c61
#12 0x0000563013b4409f (anonymous namespace)::FirConverter::startNewFunction(Fortran::lower::pft::FunctionLikeUnit&) Bridge.cpp:0:0
#13 0x0000563013b439c8 (anonymous namespace)::FirConverter::lowerFunc(Fortran::lower::pft::FunctionLikeUnit&) Bridge.cpp:0:0
#14 0x0000563013af9de5 Fortran::lower::LoweringBridge::lower(Fortran::parser::Program const&, Fortran::semantics::SemanticsContext const&) 
#15 0x0000563013a66ec3 Fortran::frontend::CodeGenAction::beginSourceFileAction() 
#16 0x000056301394822b Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&)
#17 0x0000563013940c80 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&)
#18 0x000056301394ad56 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*)
#19 0x00005630129e0efd fc1_main(llvm::ArrayRef<char const*>, char const*)
#20 0x00005630129df0d0 main 
#21 0x00007fcdbb40ad90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#22 0x00007fcdbb40ae40 call_init ./csu/../csu/libc-start.c:128:20
#23 0x00007fcdbb40ae40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#24 0x00005630129de655 _start 
flang-new: error: unable to execute command: Aborted
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 17.0.0 (https://github.com/llvm/llvm-project.git e335e8a43287b8258c719d7a21c4264b0550c554)
Target: x86_64-unknown-linux-gnu
Thread model: posix
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUWE1v27jW_jXM5sCCROpzkYWT1J3g7dsZTNu7NSjqyOYNTRokFSeb-9svSMlfaiZtgZnFBZxYInme5_B8kubOyY1GvCXFHSkebvjgt8bePi24tebgblrTvd4-elDGPDlQ8gmhV1xvFhoPhFYOWtzyZ2ks9MaC3yL0RilzkHoDHp2HvTUby3ew5Q7ElusNdmBRoPbqlbAlSR9Iutx6v3fhja4IXW2k3w5tIswuvAix2ElrjR1fCF21yrSErnbceTyPBjY3SI9hpDfWW66TbhPWS91JvVkr3qJax3VrmiV9k47s4__f0CJIF_dg0Q3Kg-lBmN2e27ibLYJRHdqzAeAg_Xac0AiP0A5SefCm468JPBJa7cDi3lgf5LmDR_BbqZ9A-mi6g7EOwRsQlrstoffQDh72CrlDUOhhh_CkzQFkfxTRxoOVm61PLlX_9Olf_7_IyiRNGBBa__5_QNjygtrhjmsvBWCwoyO0maTLdPwIo51ROI3S_GKLCwE_sl9EDYxfrnlA6h_KJu_7hy1LwpZVAD-xfD0YQO2ll-hgy58xesDxHcLd4-cHQut7QhvQYYDQquWW0GpkgyBoX8ENLaF1WBW4R4n7KEHYA6E0ytAwT2gGpLqDbrOICgCh9KMyLVfHrc2IgHtIsiREElcWefcKLYZlg8MuBAGHL9_u_vz929fHzx_iYpoQSoFUD5OOpPgwfX7OQgVhy4wGy9wb3Sspos87FIpb7qXRE64bWmsGL3XIUfM_s_9ZOC6e0brTps4T0zCc0-CdoqLU8_Frsbfm3yg8dJyJjjHWIi8q2rdZmldpX2Ypp1VPaSvaOm_TWpyy5yu3G_TB7i91uS7zxaBDtuqFknp4WWz0MK3bBjPAznSowuq9cfJlloDfZ3OVpEkatvH5Y8zmWCPGgkMoFVyHUrC3RqBzwbXHOuu33MOBn60_rcFu9OjI8cVz8QTdsNufavDbxQAIZSmkL2mapkXJ0ow1tKY1hWhCtiRs6V7d-PCHldpH5K-WCyS0Pi-y_LA2zlvkO0LLEG1S-5M6gSWbs9Qihy9yo7n6jetOhVJfj0LTsEvEPuifxr8TEJ2Aql50bZtTVtBoyOBwGRrH5K6zm-KESJxJSkLv0pecFjS9Uo5dY1YVrwSs13sffbt-kkqt5W6vcIfax6SDkLd67xWhq8tliSBsmeehqpVn_Pxn8LVHq7l6F7mqQzW4sEbxFvKl2LtwdTODK-fGzasSNi76IyKNj4Sukvj26jrcuwAdo56uLJcOIzatYnk_QVfX0GlT9Qx4a6wfgX03ui8OjdplsTmcEOqrEKq7oufZRaCODXHdc8_VemwnlyH69RBKY4h-P4Voa4y6CoNmToB5_7cRhBy4TjXed6zksFPSjgiPeqVC93-QfKON81KM4_95YyLW9zPydXq1eS3K7DxLZ7N52vQhZ7g2-nVnBhervNvHtG5G0pW090Y_ow2nsLESeG79ZzysBi1i46H1ajyIjfPKHI5L972fUKa1n-QTftNytEwDd1Z2G_w-wYOybKYsa0T968pGZQL7P6RlPnNl02EBf0X0KTxKvRkBL6dnyu25dUehP6aSfxlRV4uP576pPh-PZ-7eaI8v_kKwgbPixbXiZYmCXeP2NgDobny7Nx1-RL0cXR6HWtxI_cUMVuBKKlweo-GaqLyu-HlNafse0Wp6e4dpbq65pru9VGgftfNch-j43mZvUz7q_eADwaXNzjupZjtJRZ2-b7KZInEUX1AM_mytnzfFTJ16pg7vivI9dSbis1bPRvAfK_G9OZdXalxVS9pgin0HvcjWOy71VWVcWstf_8SesHux5fZo5CVhH4KDrscuKGh6TdH1aZdCgD-HGc1mfYV3TQrrdWj561ix1oIrFZWKjUa44fv2NTXIt4SSbTiEx75bnlnpnBXzFKKM1NLPicbHgL6I6LG9ZTSA0nNNoewt0KutvLWLN8FZ1cS7wwk7n5kSy6KAERVmh-2r69igeaviNXYKo3Bn3vEYJLAMvRq79-TjKBwj6ygMPZcKO-iGCD0dMAitB4eweI5jiCAvQrX5yyvB6Sz9a1eCZCM9IGMF1jxntK7amha1qLKmqzjNRE7LvE2LIhVFkf8j14Kb7pZ1DWv4Dd5mZZ0zRllZ32xvuypjeVvWZc4FtgwrljWMpiJvaN1UTXEjb2lKWVpkVZanZVonObKqbMu65zUtGookT3HHpUrCjhNjNzfSuQFvS1pV9U28aLr4oxClwZZxMtwgiocbexut1A4bR_JUSefdGcVLr-KvSdEPpHj4e24uN4NVt7_mPkJXUeuQvnFX_w0AAP__U8vEwA">