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

    <tr>
        <th>Summary</th>
        <td>
            TableGen segmentation fault when using Record::getClass
        </td>
    </tr>

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

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

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

<pre>
    FAILED: python-src/core/tablegen/math.opdef.h.inl /home/olafxiong/workspace/wnr/build-debug/python-src/core/tablegen/math.opdef.h.inl 
cd /home/olafxiong/workspace/wnr/build-debug/python-src/core/tablegen && /home/olafxiong/workspace/wnr/build-debug/python-src/core/tablegen/wnr-tablegen-main /home/olafxiong/workspace/wnr/wnr/dialect/math/math.td --gen-cpp-header -I/home/olafxiong/local/llvm/include -I/home/olafxiong/workspace/wnr -o /home/olafxiong/workspace/wnr/build-debug/python-src/core/tablegen/math.opdef.h.inl --write-if-changed
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/olafxiong/workspace/wnr/build-debug/python-src/core/tablegen/wnr-tablegen-main /home/olafxiong/workspace/wnr/wnr/dialect/math/math.td --gen-cpp-header -I/home/olafxiong/local/llvm/include -I/home/olafxiong/workspace/wnr -o /home/olafxiong/workspace/wnr/build-debug/python-src/core/tablegen/math.opdef.h.inl --write-if-changed
 #0 0x00000000004f4ad8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/olafxiong/workspace/wnr/build-debug/python-src/core/tablegen/wnr-tablegen-main+0x4f4ad8)
 #1 0x00000000004f25cc SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f234cfb3630 __restore_rt sigaction.c:0:0
 #3 0x000000000040e2d2 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_M_data() const /data6/home/olafxiong/local/gcc-7.5.0/include/c++/7.5.0/bits/basic_string.h:176:0
 #4 0x000000000040d4e6 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::data() const /data6/home/olafxiong/local/gcc-7.5.0/include/c++/7.5.0/bits/basic_string.h:2293:0
 #5 0x000000000040c636 llvm::StringRef::StringRef(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&) /home/olafxiong/local/llvm/include/llvm/ADT/StringRef.h:101:0
 #6 0x000000000041aa4c decltype(forward<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&>(fp) < forward<llvm::StringRef const&>(fp0)) std::less<void>::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, llvm::StringRef const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, llvm::StringRef const&) const /data6/home/olafxiong/local/gcc-7.5.0/include/c++/7.5.0/bits/stl_function.h:465:0
 #7 0x0000000000419bdb std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::unique_ptr<llvm::Record, std::default_delete<llvm::Record>>>> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::unique_ptr<llvm::Record, std::default_delete<llvm::Record>>>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::unique_ptr<llvm::Record, std::default_delete<llvm::Record>>>>, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::unique_ptr<llvm::Record, std::default_delete<llvm::Record>>>>>::_M_lower_bound_tr<llvm::StringRef, void>(llvm::StringRef const&) const /data6/home/olafxiong/local/gcc-7.5.0/include/c++/7.5.0/bits/stl_tree.h:1259:0
 #8 0x0000000000418248 std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::unique_ptr<llvm::Record, std::default_delete<llvm::Record>>>> std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::unique_ptr<llvm::Record, std::default_delete<llvm::Record>>>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::unique_ptr<llvm::Record, std::default_delete<llvm::Record>>>>, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::unique_ptr<llvm::Record, std::default_delete<llvm::Record>>>>>::_M_find_tr<llvm::StringRef, void>(llvm::StringRef const&) const /data6/home/olafxiong/local/gcc-7.5.0/include/c++/7.5.0/bits/stl_tree.h:1224:0
 #9 0x000000000041763f decltype((*this)._M_t._M_find_tr(fp)) std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::unique_ptr<llvm::Record, std::default_delete<llvm::Record>>, std::less<void>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::unique_ptr<llvm::Record, std::default_delete<llvm::Record>>>>>::find<llvm::StringRef>(llvm::StringRef const&) const /data6/home/olafxiong/local/gcc-7.5.0/include/c++/7.5.0/bits/stl_map.h:1194:0
#10 0x0000000000416a90 llvm::RecordKeeper::getClass(llvm::StringRef) const /home/olafxiong/local/llvm/include/llvm/TableGen/Record.h:1988:0
#11 0x0000000000416c93 WnrEmiterBase::foreachOperationRun(std::function<void (llvm::Record*)>) /home/olafxiong/workspace/wnr/python-src/core/tablegen/helper.h:72:0
#12 0x0000000000415b7c (anonymous namespace)::CppClassEmitter::emitHeader(llvm::raw_ostream&) /home/olafxiong/workspace/wnr/python-src/core/tablegen/target/cpp_class.cpp:90:0
#13 0x0000000000415efa llvm::EmitCppHeader(llvm::RecordKeeper&, llvm::raw_ostream&) /home/olafxiong/workspace/wnr/python-src/core/tablegen/target/cpp_class.cpp:110:0
#14 0x000000000041149c (anonymous namespace)::WnrTableGenMain(llvm::raw_ostream&, llvm::RecordKeeper&) /home/olafxiong/workspace/wnr/python-src/core/tablegen/tablegen.cpp:28:0
#15 0x0000000000414874 std::_Function_handler<bool (llvm::raw_ostream&, llvm::RecordKeeper&), bool (*)(llvm::raw_ostream&, llvm::RecordKeeper&)>::_M_invoke(std::_Any_data const&, llvm::raw_ostream&, llvm::RecordKeeper&) /data6/home/olafxiong/local/gcc-7.5.0/include/c++/7.5.0/bits/std_function.h:303:0
#16 0x0000000000425b7b llvm::TableGenMain(char const*, std::function<bool (llvm::raw_ostream&, llvm::RecordKeeper&)>) (/home/olafxiong/workspace/wnr/build-debug/python-src/core/tablegen/wnr-tablegen-main+0x425b7b)
#17 0x000000000041157d main /home/olafxiong/workspace/wnr/python-src/core/tablegen/tablegen.cpp:43:0
#18 0x00007f234bf1c555 __libc_start_main (/usr/lib64/libc.so.6+0x22555)
#19 0x000000000040b822 _start (/home/olafxiong/workspace/wnr/build-debug/python-src/core/tablegen/wnr-tablegen-main+0x40b822)
/bin/sh: line 1: 50932 Segmentation fault    
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWlFzmzoW_jXyi8YMCLDhwQ-uG--9s7eznaYz95ER0gG0BYmVRJ38-x0JnGCatNvbNuneJuPWtiSk833n0_HhCGqMqCXADqWvUPp6RQfbKL276TvogNNVqfjt7rj__Y-r1yje4_7WNkqujWaIHJnSgMjR0rKFGiQix47aJlA9hypoAiFbjMixUZ0bpVpa3Qgla0SOJ6U_mJ4y136SGpFjOYiWrzmUg-v_6lXCPeM_YC2MyAaRzY9BcZJ6ff667qiQ__My4_9c0BaYnfg402I5Xq_djKzv1w1QDhqvf3945lYx2rr39mOHyFFI1g4cHh2-MASv1RO5d70-aWFhLao1a6isgaNw__aPq_31FTZD2QmLKS6HGmvolbbYKtxY2xsU7xE5InKshW2GMmCqu0fr3ta9Vv8eORTGDGAQOWIqOT5TYRvATFPT4JKyD1ZTBgEK99eWsg-YD13vlgj3YYD931utak07THU9dCCts-BFPD-heDAicYjDm_DuL6kSyjPs0cR7FO_NrRk_vNVCWu_x99qbld0P0vRUKGM10M6HigMW0iKSY0Syp_E7Iq_Cm9F4RPIJWrSARlLG8LWoJW1_o5K3oBHJJkvHZhOw3ok59P_GWcg0y7YiccKqMt7EIS4KDcYqDYW22IiaMiuUDNji2vjSghAIJ9hYPtJWFOzmJorGLyU1ghXGaiFrFB9YQ7Uj8m6wayispsJtp7E7vroYQVsnRqv0rN-9_FJvCk4t9f7IMVPSWCc817b5vLBrxtbbIA3Ce3U7lyDyyr-O577SGUaOcxhBg-J9tN3MCEkWhPAENs9CyDOxQUgez-hIF3SwTbyZbb5rf-E7qJZfSfa0nI0c-b2dPxKwHg6E9w371-8ROd5BGLURRjMyNpdkRJQmDHNgrb3tXbyplD5RzVF8eC7wbnhW9Z6E-IDvDXrAZZ9cFbrARPL71VowzpCPSvA7WaoetDfAS_MZoZLDQzpcgPpZjfuxm9rYtqgGOUZ8J-Nkk85kvF3IOC95OQtx78rCaoDCG1gIO_l75umeCv1snp8NHKT4zwBFb_WFwt8BU5pfjORQ0aG1BYcWLDw0eoq8fqVPuHhysBdD_tZ0zy8rrsElu5Gxv5DaLq5cRNzH7PxluJllh606gS5KNUheLJaZpR0HfMdd9swR2AWOMYkgaT4Lv9ki_GYkyV7C70v4fQm_L-H3J-NmFn4r8X8Yd0kyi7v5Iu5uN3E1v3vzr71thEEkD4o3hQ1muKfbqov7o472zxuavr_fX3bDl3eDk8Qj--Bn0H9H-1H-UX6WPyJxtCijRhuah3iJ958APeixpQZ7aKkxDyO6APIXqi3vadnCP3ytdFx6tDnPspnN0dJmlsf4T6mvOpcXvaIGJo8oDZQ1__K1CaHku0HOb_7P98KTmPEForMs9r6ccfV4_ejTivAXasANtD1oj2tLZqjIAlVabpmziUolbzs1GCxpB9NS-Wjloe-9Mxxye_YQdML-5qv_ny12fzdAluoarOvq-4I5c6ZqdB7O4MVLeFDRmdAcgkPfP2D3hQSXRZSnBxVFc1SLunAUJfkXnfan1GeZv_FHAJ89kfgMEd8R7Phxgkjmm21R6o2SbJvMksPjtImKZjqZiA-lUi3-BlSu_zzHtAG_YbJZsiLkR_UBLup_e3nrDxgeqdF9vTt-RPDml2W7OIxn_llUn0labsuZlQuluV_IM9b9xY_eLBp-swPP8fJJD9E88vEQzfGyLGdG6Zbjrzpq_bpNk8ydks3P3soqYmma4qJoRemSHaptMVniGBqMW60V5SYZ31lgVLDxqAhJ0_Qe1CJZDcuMEDzO-NR0-7XPlh1L13w0Tp64FRKwy-9wGuYxwddQdyCt_wnGPrPCGOMV38U8j3O6gl20jeMkSjd5tmp2POZRWEK-rSBn2YZlfEvDpErCKCcsDelK7EhIkoiEabQhUZwFEYRlBWVVkSytKA1REkJHRRs4kQZK1yv_eMAuirKMbFctLaE1_okZQiScsO9FhKD09Urv_JMF5VAblIStMNbcT2OFbWF33lLYfArs1IDEgxGyxudUcZ40rQbd7v76ww0TgI878t8AAAD__6t0M5I">