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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR AsmPrinter] Printer should tolerate empty symbols
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir:core
      </td>
    </tr>

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

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

<pre>
    The GenericOp printer should support malformed IR without crashing, but printSymbolReference currently requires a non-null symbol reference.  I think it should gracefully print something like `<<INVALID EMPTY SYMBOL>>` or something instead of crashing.

Example stack trace:

```
Assertion failed: (!symbolRef.empty() && "expected valid symbol reference"), function printSymbolReference, file AsmPrinter.cpp, line 2050.
7                       0x00000001072fb2c4 mlir::AsmPrinter::Impl::printAttributeImpl(mlir::Attribute, mlir::AsmPrinter::Impl::AttrTypeElision) (.cold.29) + 0
8 0x0000000106a6cb28 mlir::AsmPrinter::Impl::printAttributeImpl(mlir::Attribute, mlir::AsmPrinter::Impl::AttrTypeElision) + 4616
9 0x0000000106a6bfe4 mlir::AsmPrinter::Impl::printAttributeImpl(mlir::Attribute, mlir::AsmPrinter::Impl::AttrTypeElision) + 1732
10 0x0000000106a6f3e0 mlir::AsmPrinter::Impl::printNamedAttribute(mlir::NamedAttribute) + 272
11 0x0000000106a6ed4c mlir::AsmPrinter::Impl::printOptionalAttrDict(llvm::ArrayRef<mlir::NamedAttribute>, llvm::ArrayRef<llvm::StringRef>, bool) + 392
12 0x0000000106a77704 (anonymous namespace)::OperationPrinter::printGenericOp(mlir::Operation*, bool) + 1000
13                      0x0000000106a770b4 (anonymous namespace)::OperationPrinter::printCustomOrGenericOp(mlir::Operation*) + 256
14                      0x0000000106a7365c (anonymous namespace)::OperationPrinter::printFullOpWithIndentAndLoc(mlir::Operation*) + 1180
15                      0x0000000106a71f74 mlir::Operation::print(llvm::raw_ostream&, mlir::AsmState&) + 308
16 0x0000000106a71c64 mlir::Operation::print(llvm::raw_ostream&, mlir::OpPrintingFlags const&) + 140

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMls9u4zYQxp-GvgxiUNT_gw9OHBcGknWQBC32VFDUyGJDkSpJ7cZvX1CyE8dNsQa2hxWExKI4nN_3SaMhd07uNOKCpNckXc344FtjF4p7r9HOKlPvF88twm-o0Uqx7aG3Unu04FozqBrc0PfGeui4aoztsIbNI3yXvjWDB2G5a6XeEXYD1eCn2Kd9Vxn1iA1a1AJBDNai9moPFv8epEUHHLTRV3pQCtw4G-xx-hxgA76V-gWkP0LsLBfYDErtpxTgTIdh0g6UfEEgGSXxDYlvNl9-X95tVnB7__D8FZ6-3l9v70h8G86MgrEngVI7j7wG07zJmBO6InQ5_b195V2vEJzn4gV8ICDx8nRGyDqd4-XSObReGg0NlwprEi-BsIKwyB0dmWPX-_04WAJhGWEZEMbwtUfhsYZvXMn6X5YQxggrg8fNoMWY4TOjxwlSISxd9zA9xLno-zCspEZgNKUHhTl8ftBXOh0RzVlTMZFAp6QNuuPl-7LT9abr1fRrpFl6b2U1eBzHWXESeLwTUC5ZLwQ873u8VdJJoyezirkwqp4HI8LlNRxsL06pM56JihW_DvU1JFmUTaTlGWnV4C_k7zVEecwm0oieoTYx0stRv_AO6xOqE9bzW1Nmlh8TR2eJsU7E5Ym3fagOrkKClRSesEKpb90h1lq-f8SGxDf_yRPfjuXyWcz74JO3Uu_G0XF6ZYw6KonLoxL2UUme5zQJrzHXRu87MzjQvEPXh-8KK6eVtz1aHiR8EDlKe_tAf7DzLYCw5TlKROmhRKL4h-UeAGn1M4A3g_Om29pLQA9PPT0URpRcwhdnqfgJvvWg1Lb_Q_p2o2vUfqnrOyN-CBlFxdHF9BLKqMlPi_p9yXeSD2-l5d__NM5b5N3YEM4q-MnzUCbZ2_tFiwNNdp5YZP9b4m0_-if1bq34zoEw2vkTiiihnzbCWb2I6zIu-QwXUZZHNCvSJJu1i7rioqI5q5ImEpyxRhSiZrXgok7TqMSZXDDKWMSilEYJY9k8Z2lZ1UWNDZaYxowkFDsu1TwomBu7m0nnBlykZcrKmeIVKjduchg76BDGjq0zXc3sIkRdVcPOkYQq6bx7X8dLr8b90f3d5vGkeZJ0BQ8fN0PeqOAqwtjHD43azQarFq33vQvusTVh65307VDNhekIW4-eT_-uemv-wvBhWo_4jrD1qOCfAAAA__8EAvJ7">