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

    <tr>
        <th>Summary</th>
        <td>
            Compilation fails when using source-based code coverage 
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          accosmin
      </td>
    </tr>
</table>

<pre>
    Please find the stack trace here:

```
FAILED: test/CMakeFiles/test_core_table.dir/test_core_table.cpp.o 
/usr/bin/clang++-13  -I/home/cosmin/libnano/build/libnano/llvm-coverage -I/home/cosmin/libnano/include -isystem /home/cosmin/libnano/test -isystem /usr/include/eigen3 -Werror -Wall -Wextra -Wconversion -Wsign-conversion -pedantic -fprofile-instr-generate -fcoverage-mapping -O2 -g -DNDEBUG -fvisibility=hidden -fvisibility-inlines-hidden -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -std=c++17 -MD -MT test/CMakeFiles/test_core_table.dir/test_core_table.cpp.o -MF test/CMakeFiles/test_core_table.dir/test_core_table.cpp.o.d -o test/CMakeFiles/test_core_table.dir/test_core_table.cpp.o -c /home/cosmin/libnano/test/test_core_table.cpp
fatal error: error in backend: File exit not handled before popRegions
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /usr/bin/clang++-13 -I/home/cosmin/libnano/build/libnano/llvm-coverage -I/home/cosmin/libnano/include -isystem /home/cosmin/libnano/test -isystem /usr/include/eigen3 -Werror -Wall -Wextra -Wconversion -Wsign-conversion -pedantic -fprofile-instr-generate -fcoverage-mapping -O2 -g -DNDEBUG -fvisibility=hidden -fvisibility-inlines-hidden -DEIGEN_MPL2_ONLY -DEIGEN_DONT_PARALLELIZE -std=c++17 -MD -MT test/CMakeFiles/test_core_table.dir/test_core_table.cpp.o -MF test/CMakeFiles/test_core_table.dir/test_core_table.cpp.o.d -o test/CMakeFiles/test_core_table.dir/test_core_table.cpp.o -c /home/cosmin/libnano/test/test_core_table.cpp
1.      <eof> parser at end of file
2.      Per-file LLVM IR generation
3.      /home/cosmin/libnano/include/nano/core/table.h:407:16: Generating code for declaration 'nano::make_marker_minimum_col()::(anonymous class)::operator()'
 #0 0x00007faa329e1f51 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib/x86_64-linux-gnu/libLLVM-13.so.1+0xde4f51)
 #1 0x00007faa329e0100 llvm::sys::RunSignalHandlers() (/lib/x86_64-linux-gnu/libLLVM-13.so.1+0xde3100)
 #2 0x00007faa329e15db llvm::sys::CleanupOnSignal(unsigned long) (/lib/x86_64-linux-gnu/libLLVM-13.so.1+0xde45db)
 #3 0x00007faa32925a2a (/lib/x86_64-linux-gnu/libLLVM-13.so.1+0xd28a2a)
 #4 0x00007faa329259cb (/lib/x86_64-linux-gnu/libLLVM-13.so.1+0xd289cb)
 #5 0x00007faa329dc947 llvm::sys::Process::Exit(int, bool) (/lib/x86_64-linux-gnu/libLLVM-13.so.1+0xddf947)
 #6 0x0000000000414220 (/usr/bin/clang++-13+0x414220)
 #7 0x00007faa329325db llvm::report_fatal_error(llvm::Twine const&, bool) (/lib/x86_64-linux-gnu/libLLVM-13.so.1+0xd355db)
 #8 0x00007faa329324b6 (/lib/x86_64-linux-gnu/libLLVM-13.so.1+0xd354b6)
 #9 0x00007faa3985ebb2 (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1cbdbb2)
#10 0x00007faa3985dd49 (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1cbcd49)
#11 0x00007faa39864d46 (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1cc3d46)
#12 0x00007faa398639d3 (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1cc29d3)
#13 0x00007faa398613d5 (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1cc03d5)
#14 0x00007faa398639d3 (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1cc29d3)
#15 0x00007faa3985dd33 (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1cbcd33)
#16 0x00007faa3985c155 clang::CodeGen::CoverageMappingGen::emitCounterMapping(clang::Decl const*, llvm::raw_ostream&) (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1cbb155)
#17 0x00007faa3982ff63 clang::CodeGen::CodeGenPGO::emitCounterRegionMapping(clang::Decl const*) (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1c8ef63)
#18 0x00007faa3982fc3c clang::CodeGen::CodeGenPGO::assignRegionCounters(clang::GlobalDecl, llvm::Function*) (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1c8ec3c)
#19 0x00007faa397ee55c clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1c4d55c)
#20 0x00007faa39808038 clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1c67038)
#21 0x00007faa398023bd clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1c613bd)
#22 0x00007faa397f8821 clang::CodeGen::CodeGenModule::EmitDeferred() (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1c57821)
#23 0x00007faa397f883d clang::CodeGen::CodeGenModule::EmitDeferred() (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1c5783d)
#24 0x00007faa397f721a clang::CodeGen::CodeGenModule::Release() (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1c5621a)
#25 0x00007faa3988d374 (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1cec374)
#26 0x00007faa397e4400 (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1c43400)
#27 0x00007faa387bf3f4 clang::ParseAST(clang::Sema&, bool, bool) (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0xc1e3f4)
#28 0x00007faa397e0ee1 clang::CodeGenAction::ExecuteAction() (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x1c3fee1)
#29 0x00007faa3a025d96 clang::FrontendAction::Execute() (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x2484d96)
#30 0x00007faa39fa02f6 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x23ff2f6)
#31 0x00007faa3a099464 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x24f8464)
#32 0x0000000000413e54 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang++-13+0x413e54)
#33 0x0000000000411e46 (/usr/bin/clang++-13+0x411e46)
#34 0x00007faa39c9e382 (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x20fd382)
#35 0x00007faa329259ad llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/lib/x86_64-linux-gnu/libLLVM-13.so.1+0xd289ad)
#36 0x00007faa39c9dc60 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x20fcc60)
#37 0x00007faa39c71760 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x20d0760)
#38 0x00007faa39c71b4a clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x20d0b4a)
#39 0x00007faa39c86d1e clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) (/lib/x86_64-linux-gnu/libclang-cpp.so.13+0x20e5d1e)
#40 0x0000000000411683 main (/usr/bin/clang++-13+0x411683)
#41 0x00007faa316cbd90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#42 0x00007faa316cbe40 call_init ./csu/../csu/libc-start.c:128:20
#43 0x00007faa316cbe40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#44 0x000000000040eed5 _start (/usr/bin/clang++-13+0x40eed5)
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
Ubuntu clang version 13.0.1-2ubuntu2
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/test_core_table-2c628a.cpp
clang: note: diagnostic msg: /tmp/test_core_table-2c628a.sh
clang: note: diagnostic msg: 

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

```

Note that it fails for all clang versions from 11 to 14 as available on Ubuntu 22.04 LTS. 

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWtlu4zgW_RrnhZAhUasf8uD2ksrAWZC4qzHzYlAkZWtaG0Qplfx9X5LyQsWpOHbNDAbowLElLofnXt6FFBWX7O36MeNEcJSkBUPNhiPREPonampCOdrwmg_c8cCeDuztd2B3H3U7H98uZlNogxoumgGeT-7In3yeZlzAjSxb0bLmq4bEGR-ytD5SSqtqWKIOHs9bIRvFaQHfNCPFeoB_g4_luAhZt1C4KXMu60qRq0ZZGhekKGWnNs2YUZJlL7lFyxdekzX_rHta0Kxl0CwVb6LhOfppaymG0VQT70DgiqdrXrjI-oPXdVnDL8kyefcKyoVfWhZAS6RlATciXRfWYUnFGSmalCIrqeoyAYVaaSGa2gJMEKYBlslWLisnVZUWa2Q9YGTBz_R-Ovvt9xto8pKKNE6ztHkbuNNNyhgvjFIAzdKCC2tbN53d3szuV3ePC7x6uF_8c1cyfbhfrh7HT-PFYra4_dcMWaJhAEr19Dghsu6m8L-82BKsu_mlGEOGrPJyIvRzCzjeWRtzQhqSITX70kO0GaQFisHDeMFkmaSF-GvaoKJs0IYULOMMxTwBOFSV1RNfgzkIjfe4mI2fZ0i0cQ4dCIrbNap5VdYNakq0aZpKSG_Fc-UKazGU1j8sa_CgOQJotDVw6ee0JmKjqChfH-AJqgCsLikXAjiIsq11sexJhChpCmbHUN0WSNA6rZqhpvWsIgZr82oXK2yoGj3W5bomOSL1us150Uhyez856uB_-_ff_v3_49-OtPKBO-FlMnBnqCK14DUiDQLnRmWC5Kzqllj5A68tWYQWi-936PYJdVMN9qBbuQrvBAuGq65A0pIUFbENOJhnh_DtBNLXbjp8sBxagt1DUEGMg8vpQUH4UMGA17rjHJS4ykn9J69XMGyatzkInQ1wNMAj3QSuoXnxlpetQAAjxK6qrORIEOd0cxxqiWAI10b2qw1_YUKIi0fcSXwHSb_VPcG_9MVjnRaNiiVLHZCifaOa_FiV4B2c5AMcyKAEbWEgpMaTCoLv1yhYBZ4F9t6-Wuui1RVS2RBahqIcOmDH9ivjHjCQLHcUnR5F27HtYxSf2uIZHJlk31SgroUW9zwWLgxisMB9RfksPsZiAiu2oq0eOi4weFvI-AKxOStlND1XLTCeQcg1CWGfYHIWNNgNJga014ce0fhMaOhpQPsmNKMjLzxubyrV6ZsZpGAYXlnVBMWlNPzz1MgSGM8gFHSE9J_neBjbHfTHqVCB6bYGWGhK52LTSPRyYKVWHiu98jj0o-UPSAYQDAoZ2IJLRXX9vsVEfXZeHJwJDT0N6NEh9CjyeRzjE6CVVi0Z7yW4VqtDYwa9d_AyAtg9eMa8U5TyATyF3ga8Y8IHHvNOUcxxeOpCbwMe9-DdEXPPhwencQ14twfvuMw_H96G3ga8959l77-bWvd8eJha14QPevDU8X2knVmHa0i9kIm3N3pJd6dXdLtyDiv6SdkWDa-7KiB4ADKFtL3127H0249z4wVmGwN1Q7bQlA0nSeD-RDZ183jz8E4mvY05RbLz2UccyBnsoz576tKT2cPqBnKqJt5JIUzmN1kZk0zyNydk3hZULeoulQfoGvKYITDk3Pc_lWdHRlPuNhey8gxhJh-PdrNteFsk5UGGOV9-j4F4h_LjXoy2IxsSzify35WszXiX5MEgtZxbslOewFJXy3eKNnT5d5K1_MLZDUIgb0jXSxE2dmN2nnT_Q6kcIG1IZWamMIkiEPSLUoE8sJTh7OTV9nFyfghjG-Tcd-TcL6v815FzTc15PXIhdshXyD1x9WT3Ul4BDGvw6qXTiLmhdzY8xLjQM-CDXpDzPNs-P4a43sEmS8IbGS0K48RNvEOtPspN_Ph5aXrOM8-JsWD-ysL5GDXqcBjYYBb1BLc5P-Yp44NwPnvltG14V3TZRLsJjGcQMtINsWGnMQoOCc3rErJiwY4wuogL9iIPhjrkYj5EGCXAJglM5eRVCjvyW8g7pKD8uH4-Jn9JqsJukgAdg69j6m408gLDzDpme9ovJSXvWb4T65LwjL0kAhoGT9zbm7rcB57UWeVEbkoPto7juiZvTzwZuBO6IfV-yebO1MLAKIOClzJlBt1P97pybIOc2yPn8N2m6VMw2dYAM8MpHXE3Onf_iO2EQW8D3n_3QIOwgxQ7kU_bn7h6ovs2kab32uyfKZGEZ2-GtpNugbKqlcalMtH2Udzs3P06joCUwTroKYXRwD40U1anQLgTYeKAOeZEHVwYrn7USPaFD5WUhGRG4XNTw1ZANZ2hzobUA2dZuVrR11fH0TcxESldCdW-Mz6jsSxYNTVJ5QGDru7BkSyT3iVPYbb1esjxPpArQ1X2e75RUNCeoV5z-0RDJ_yJepWrk3ehdKtzIy70OsoGxlOd05qOu7B3mdjMDntiR32xY498Vex_lLH4WGaoXaTA-VDmA9vKYca_cwozfptX0u52plCRVFpB95zvVDVt7eWXaAuUYWjL3NXRKGAO_4jZ9ODaSCFHcsdHWv7vautcPXEf1HCoJ8_uZ4MgcpFMUyenBOhgIBpJ2glozEY2Wq0kJ4g3pG5WFFSjUiEaSlQhKQ_lpXgTjFfywKmomqwTpN9JHcj40UCdx-xGxf1ROYim-shNW38gfSnRLYU-pBIOS1Bs70HdY6CGKMekOAruhvJMx99je6biYV3KfKRRT1S96rJT_daO9ifjqgQl3ZIMLElbVEJSeRr-I202-oxcnWKFajvQCo6sF3nuLThH6cH6qRvl97gtmraD3h67Qjq0h46FW1WJdcslqddcZmPUGWhFD2xUN9nUHPJ5DuNnsmFVivRVV6mlWQY8p6mSxVCHKW9RNnJhilhK1kUp5OlvLlTNVtkXfA7e0eneExgvl-PJN7T8NkPzh8Xi4Y_b-xs0v13MntHyQRXLM-Sn2ePD03KwPbl_PPYOQCQP-j5-D2DXoOZIZVqoJc0O8hT58bzJq8G7s1YL0wBHZH_k-guwxOar0_JLJ6f3ApX-vgcKqNmQBoGVS7MX6rBWvlBgGLCQTpIjx5GG73gwHYi8QHMpHwL77owe46HtocXyediJcMWvncCPwgiP3OiKXbts5I7IVZM2Gb8-SA7d2D82vECtkAfH2gQsWIRxpv1v97bFVVtn1-ZbJ2tw1TYeggMP9LsZ3Y8FNvVvSDFwmwrRqpN6Pwgd92pzPYoCynzqeC7lIU1YAvsp7GAWx75H3DC-Aul4Jq4HPsQUXPAfSEHA9cCfXqXX2MbYDrGPHRs73nAU-rCTCEZxxAjEnXgA0QdiX7Z7GeaqvlaU5BsyUJnBOmL_psyVfuzLuRoO8EnbbMr6mlB9Gn-lxr5W3P8C4YzQkg">