<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/60671>60671</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[mlir][tablegen] DefaultValuedAttr in TypeDef parameters crashes
</td>
</tr>
<tr>
<th>Labels</th>
<td>
mlir:core,
mlir
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
teqdruid
</td>
</tr>
</table>
<pre>
This may or may not be supported, but it should at least not crash.
Commit f2eb551801d504b43be06c0c70ed377c3445bbc5, Ubuntu 20.04:
```
include "mlir/IR/EnumAttr.td"
def TestDialect : Dialect {
let name = "test";
let cppNamespace = "::test";
}
def TestType : TypeDef<TestDialect, "test_type"> {
let parameters = (ins DefaultValuedAttr<StrAttr, "test">:$test);
}
```
```
$ mlir-tblgen -gen-typedef-defs -typedefs-dialect=test -I llvm/mlir/include/ defaultvalued.td -o test_types.cpp.inc
defaultvalued.td:3:5: warning: Using deprecated def `kEmitRawAttributesFolder`
def TestDialect : Dialect {
^
note: 'useFoldAPI' of 'kEmitRawAttributesFolder' (default) has been deprecated and is pending removal. Please switch to 'kEmitFoldAdaptorFolder'. See https://discourse.llvm.org/t/psa-new-improved-fold-method-signature-has-landed-please-update-your-downstream-projects/67618
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: mlir-tblgen -gen-typedef-defs -typedefs-dialect=test -I llvm/mlir/include/ defaultvalued.td -o test_types.cpp.inc
#0 0x000000000064dbca llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/llvm/lib/Support/Unix/Signals.inc:567:11
#1 0x000000000064dd9b PrintStackTraceSignalHandler(void*) /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/llvm/lib/Support/Unix/Signals.inc:641:1
#2 0x000000000064c31b llvm::sys::RunSignalHandlers() /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/llvm/lib/Support/Signals.cpp:103:5
#3 0x000000000064e491 SignalHandler(int) /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/llvm/lib/Support/Unix/Signals.inc:412:1
#4 0x00007f67ff208420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#5 0x00007f67fede3854 /build/glibc-SzIz7B/glibc-2.31/string/../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:384:0
#6 0x00007f67fefeb1f6 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::__sv_wrapper, std::allocator<char> const&) (/lib/x86_64-linux-gnu/libstdc++.so.6+0x1861f6)
#7 0x00000000003d8e1b std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<llvm::StringRef, void>(llvm::StringRef const&, std::allocator<char> const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h:655:62
#8 0x00000000003dbd28 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > mlir::tblgen::detail::stringifier<llvm::StringRef>::apply<llvm::StringRef>(llvm::StringRef&&) /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/mlir/include/mlir/TableGen/CodeGenHelpers.h:224:5
#9 0x00000000003dbbf6 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > mlir::tblgen::stringify<llvm::StringRef>(llvm::StringRef&&) /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/mlir/include/mlir/TableGen/CodeGenHelpers.h:242:10
#10 0x00000000003e4d9d mlir::tblgen::MethodParameter::MethodParameter<llvm::StringRef, llvm::StringRef, char const (&) [1]>(llvm::StringRef&&, llvm::StringRef&&, char const (&) [1], bool) /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/mlir/include/mlir/TableGen/Class.h:51:14
#11 0x00000000003e4d56 mlir::tblgen::MethodParameter::MethodParameter<llvm::StringRef, llvm::StringRef>(llvm::StringRef&&, llvm::StringRef&&, bool) /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/mlir/include/mlir/TableGen/Class.h:61:57
#12 0x00000000003e4c94 mlir::tblgen::MethodParameter& llvm::SmallVectorTemplateBase<mlir::tblgen::MethodParameter, false>::growAndEmplaceBack<llvm::StringRef, llvm::StringRef>(llvm::StringRef&&, llvm::StringRef&&) /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/llvm/include/llvm/ADT/SmallVector.h:409:25
#13 0x00000000003e4b82 mlir::tblgen::MethodParameter& llvm::SmallVectorImpl<mlir::tblgen::MethodParameter>::emplace_back<llvm::StringRef, llvm::StringRef>(llvm::StringRef&&, llvm::StringRef&&) /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/llvm/include/llvm/ADT/SmallVector.h:943:7
#14 0x00000000003cb5e3 (anonymous namespace)::DefGen::getBuilderParams(std::initializer_list<mlir::tblgen::MethodParameter>) const /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp:316:20
#15 0x00000000003ca921 (anonymous namespace)::DefGen::emitDefaultBuilder() /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp:324:7
#16 0x00000000003c9d9d (anonymous namespace)::DefGen::emitBuilders() /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp:241:5
#17 0x00000000003c69cc (anonymous namespace)::DefGen::DefGen(mlir::tblgen::AttrOrTypeDef const&) /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp:0:5
#18 0x00000000003c56e7 (anonymous namespace)::DefGenerator::emitDefs(llvm::StringRef) /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp:0:14
#19 0x00000000003ce01a $_4::operator()(llvm::RecordKeeper const&, llvm::raw_ostream&) const /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp:924:17
#20 0x00000000003cdea7 std::_Function_handler<bool (llvm::RecordKeeper const&, llvm::raw_ostream&), $_4>::_M_invoke(std::_Any_data const&, llvm::RecordKeeper const&, llvm::raw_ostream&) /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:285:2
#21 0x000000000068e0e0 std::function<bool (llvm::RecordKeeper const&, llvm::raw_ostream&)>::operator()(llvm::RecordKeeper const&, llvm::raw_ostream&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/std_function.h:688:7
#22 0x000000000068c61a mlir::GenInfo::invoke(llvm::RecordKeeper const&, llvm::raw_ostream&) const /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/mlir/include/mlir/TableGen/GenInfo.h:39:5
#23 0x000000000068a56e mlirTableGenMain(llvm::raw_ostream&, llvm::RecordKeeper&) /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/mlir/lib/Tools/mlir-tblgen/MlirTblgenMain.cpp:137:3
#24 0x000000000069277a llvm::TableGenMain(char const*, bool (*)(llvm::raw_ostream&, llvm::RecordKeeper&)) /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/llvm/lib/TableGen/Main.cpp:122:21
#25 0x000000000068a4d3 mlir::MlirTblgenMain(int, char**) /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/mlir/lib/Tools/mlir-tblgen/MlirTblgenMain.cpp:158:1
#26 0x000000000043c4f2 main /home/jodemme/FPGAToolsAndCompilers/CIRCT/circt/llvm/mlir/tools/mlir-tblgen/mlir-tblgen.cpp:27:35
#27 0x00007f67fec7c083 __libc_start_main /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:342:3
#28 0x00000000003c4e0e _start (/home/jodemme/internal_circt_build/bin/mlir-tblgen+0x3c4e0e)
Segmentation fault (core dumped)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzcWt1zozgS_2uUFxUuEJ9-yINjx7Opu7lLTbL7SgmpsbUDiJNEPvavv5LANjDx7nxkkr1LpWyBRav792ta3ZKo1mLXAFyi-ArFmwvamb1Ulwb-w1Un-EUh-fPl_V5oXNNnLJX7aqTBBWDdta1UBjgia1x0BguD9V52FcfU4AqoNq4rU1TvF8jfIH_Vf65lXQuDSwJFHAeZH_DYj4ooLMBPmM9SH3iYpiyMorgoWGzl_1p0jekw8Rd-hMLVWBpK_OHfXYqGVR0HjAipK6EQ2d58QmR73XT1yhi1MBwRMn6eQ4nvQZuNoBUwg1G4wsd2etV3wrgCgxtaA0bhxgo3oI2VFE56sLb9F61Bt5Qde1p9w9W8P0o3L2lx_9yCU8E2NlCicD1SzkIxjJ2b5xacwOu5mi1VtAYDSg8qZKLReAMl7SrzG6064BYKFK7vjHKtk9heolWZRP318gWVp5C_fJNE2BLgmaLaQYO9HTSe1ZlD6XEoNT5caY8P1oUbOyT2bnBVPdSIbAcGB04R2WLeW_HgrFgYjj2Jj3DoBWvbhWjYEdNJXxSuQhSuYgvvI1WNaHa2-asWzQ5zaBUwaoDbMTBK_M_XtTCf6KNFSBSdAb2VFQd1NPErPQdjFF_3F400YHshknYarLjV7Q0iKZalvXd2RJJaFgd7EFniPdW4AGjGatOGY6FxCw23Bimo5QOtFvjWvouA9aMwbI-NPI7kxue0NVIdx1ngOwC8N6bVzgm2iGy50Ex2SsPC0rKQaofI1iCybTX1Gnj0RN0q-QDcK2XFvRrMXnLPRhZqOgXenmqvog0H7rVOF69rOTXgPctOeVw-NtoooLXXKvk7MKMR2SZpEmQ9aLf_vF7dXWPdFTZqUFx01jgbe6wxU1V3wuy7YsGk9Z7BiezXQbR1Jq07sEP0gA3hwuyhj1S4oOyzUZTBELPuDGWfMe_q9hh4_AV2f7dK7hStMVW7robGWD3e2-kxIqGP_Sf_-JdEvGC0l-5CkX7WfeNWicY4--6twYhkp06KPuay5wWRxEYI0TjXQ2S7l7XV63fJoXat7e2H1b2UlV41fC3rVlSgLMTrm0_re0S2TCiH_YgR-yUKRLZ3_TyCyPbXRjzZG9ZxKu1MCldxkqJwFQQn64K5dXxZ4JkpvYxfaMMr69bZgxQckdU76J9EgdX_pD6Zqc_CoHiJnE9dM7FCI5L9XP0PirPWunrg98HyqHg4UxyiZYDnQL-Pk0QBmYIcDbqmZZKWJfGziPg4zxVoIxXkymCH5iD9KUvyJPIq0XRP3q7p-h9as1dA-ULLhY_Ilf8URBHx7YR4HCYeDwMcwiyOrO1FJypuw1ElCubd_XHzR3p1vCSLMEBkq42yExDZLhb26llzaPVRGRsHusoIqtjetqGu5QN4D8C8rqGVzdq4B6rWizs7rWU2K_JPiiUTxUoogjLB2k2BKFzlOXt6CoL-oqBasHzQJlyzPXX5wLGzvZEbRYUNb_3P4fWkB60qyaiR6vQ7HpKImXiSvYsOea4f8kdF2xbUXz7FZGPTnqR3479yEm04Q-QKkSvrJ0nvJ1kSlMnEUdLJuxPyDILib8BHuD4Fnjt36xOUVpaLl1Zs9kKHEUTfhOW203ZiK0Rz8Poe2R1jL-O7PPSbfZymxgH7oW8hXO4wNnGxtzE4tjlfQk58ZDM-Ck6yt-bDZQpDceDShb7NwVBRDZOBG1WUAtQZrg600ratns_3eZFHR0zySuH6i6xluHFPiwo-gKV8Lblt_QJVC0o7ZgiJppPMck5M8faB6wwxBzL-F2GO3Px4LM3CYJoihhDxJT9j90eXz98eisozN89FkjO3Ldx9eOiDbI9PfBWgePOXSJ6RevjxT2WTNS6krN6QjorqnoXYZYLRiYTgCxLi5M1I-EGQ3wvExIIYpycQyRxEtoy-EkSSjG2saVX9BsxIdQ91W1EDV1QDCtdfKWyNS1rZB4aQvFPycdXwayuLwRVln9-QoNdMwU_EDDdWG9t5BJhjJvKXNtTEJ2rCOTVFRn6Qmpu6rb6akgMT0FOQF__3HCwjW7SN3o5oSgErYghtVKSNbJ5r2Wm3qOnWK91SnzVkA-WHA6Q7MFe2mAHlYNXjFF40wghaiT9A5ZXQ5lt4IctjhH6t-GHsE8PlsABjcTJG_VsNq6kfoBmq2zBIrLOOZsR4hhRdkuBbkIJamGGNdUDs9Qr277LQpVYjV0hmBi7tlP-NBg6WveJaxPeYRtyayijQzMorliwZ-xbThjbJXvbfiRrzouY9APCn5s-qGRYnkH6d-aD69HfkwPpcxHtXa8dp06xGYOAHFCMS5VGvs2wHs5yTTsz5BEwq_g-AFtSkjD2_8PnOgWrpXuPg9B6TWerOONB0VCJtu4YZIZt8PyzKhWubq-EfxqHfJXIoH9ZVPuaieZCfYbKws2qec04NPSP3uyh4u8UDbXheDhD2tVMW288T_rP15wx88E_4H559PdgPaP80t34vZJMsm8xQZLY0nrEkoKN88QM0N00pD8nH4Hh_s5f7z6qYwQBnfLicxHAyW13PaJyAs_3w_EdqCfrTHZqXoXj1qap3j_sXo9hHq7G7sPoethLC1O29Ho2dZqXJkqTpeINqZvKpnndbOH3t2Zf2q_mb8G2g_IytihHfYwjcOQASnDCI54RHPBw5-xTIw85Kv7jh7H6tzazvJjXOTnsu1qBpfhmFLCoJrqlofvrUObo6ZIjO4UavVzrZEGEp87MQ53klCpZrQ5XJD5p-zd4N090h6PVN96OTs2B2ZLfeNnL4eYYWgQ-4H3jYZPgCINEYUA2tcodEflCrD9MT-6_8p17iccvhDnY1NIbaUItdSWJHYVKB28gGfux5PLVxwS9DvgyX9AIugyRN_DTwg-Rif1lEScmLOCkCCIoo4iROWRb5yyQLoyVbkgtxSXwS-iTwbZERJwufJ1m8jEhBSMnKYokiH2oqquPxgQu3B3-Z-EkaXFS0gEq7E0jDkZ1wZTVFhCCyPh7jISjeXKhLt5lfdDuNIt_WnPok1AhTuZNM7oF4g-IrY99Fi1G8-fL8CxbN4ZTN-MiMOwUA-qJT1eX3Hy5wtv03AAD__7t9fhI">