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

    <tr>
        <th>Summary</th>
        <td>
            SIGSEGV on getTypdefName on invalid type
        </td>
    </tr>

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

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

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

<pre>
    Hi,

am getting the following SIGSEGV when using python clang.cindex, (libclang.so.19.1.7) with python 3.13.1. Am parsing a huge codebase, could not identify exactly the type/typedef context, but likely the exception(al) situation could be handled better in libclang.

only context I can provide is 

```
<clang.cindex.Type object at 0x7fd4c3f67bd0> <class 'clang.cindex.Type'> TypeKind.INVALID
```

while the type object is obviously "invalid", it is returned by one of the other methods on cursor or type. Other methods on this invalid type object do not cause sisgegv, so would expect this one also to return null/none or so.

Thanks and Regards,
Z

```* thread #1, name = 'python3', stop reason = signal SIGSEGV: address not mapped to object (fault address: 0x0)
    frame #0: 0x00007ffff43dd043 libclang.so.19.1.7`clang_getTypedefName + 35
libclang.so.19.1.7`clang_getTypedefName:
->  0x7ffff43dd043 <+35>: movq (%rax), %rdi
    0x7ffff43dd046 <+38>: callq  0x7ffff481a360 ; clang::TypedefType const* clang::Type::getAs<clang::TypedefType>() const
 0x7ffff43dd04b <+43>: testq  %rax, %rax
    0x7ffff43dd04e <+46>: je 0x7ffff43dd0b0 ; <+144>
(lldb) bt
* thread #1, name = 'python3', stop reason = signal SIGSEGV: address not mapped to object (fault address: 0x0)
 * frame #0: 0x00007ffff43dd043 libclang.so.19.1.7`clang_getTypedefName + 35
 frame #1: 0x00007ffff7357056 libffi.so.8`ffi_call_unix64 + 86
    frame #2: 0x00007ffff7355af9 libffi.so.8`ffi_call_int + 489
    frame #3: 0x00007ffff7356363 libffi.so.8`ffi_call + 291
    frame #4: 0x00007ffff736f473 _ctypes.cpython-313-x86_64-linux-gnu.so`_ctypes_callproc.cold + 751
 frame #5: 0x00007ffff73759e0 _ctypes.cpython-313-x86_64-linux-gnu.so`PyCFuncPtr_call + 336

```

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMVk2P2zYT_jX0ZWCBIvV58EG7G-ddvEUaNEEOvSwocSQxoUlFpLx2fn1BSc5m7QRoDwUKGDBFzfMxwxlJwjnVGcQdSe9I-rARk-_tuPtmv4z47aw3tZXn3f8UYfeEVoRW4gAdeq9MB75HaK3W9jlcfXh8--HN20_w3KOByYWt4ex7a6DRwnRRo4zEE2H3QFihVb3sOhvFZRRHOWElPCvfX0A8inkUR1AdYBDjTCegnzqExkqshcNA1dhJSzDWg5JovGrPgCfReH2e3fnzgITtw5_EFhprPJ58ANaTB62-4BqIpwYHr6whrBA6eHHKTyLsrBo1Qi-M1BiW3uMIysD3NJbaWKPPFxF4hEYYGEZ7VBJBOVhiSEbXH60Iv_-xNtHH84Bg68_YeBAe6ClvZdLwNstrSQl_AwvAOSAsv0ESloeYsPy_MjJ6fPep-u3x4VqTVs-90vi9PhdB5cDWR2Unp89AGFPmKLSShLFQLzUHjOin0YQSnMEaBNvONNb3OMIBfW-lg1CyaXR2BDvOChH8fh3ge-VgVXjlQtr5NBsxOQSnXIfdMeg7C8_zOeBpCHEzQbAgtLPg7WoNzKQ1YXszuxvB2fVoPvbCfHEgjIQ_sBOjdEtH_3l9KqwC348oJBDG4yBtxAGB8IdQ9KU5eSh1MOXtACMKZ80cECZJ6MskEF6BkHJE5-acDmIYUAava66EFa2YtL9EBQA9UcJKQisAgHacpRmn6y1Kad62bZtwKWnC4SdjlNF556lD_3Fp-3cLyR3wlNDqb0MID4XZhpaaO_EHWcLvCbvjKeFvgrGDPX4NyRCWjuIU7M9Dno5SrYm8wmcXfLHiG6H115egIhY8o0D43fLkCEZ4tTqbR6SxxvlwUlf3l1WHvnKX0boBB81gtVxZaPXaXb26S_jqzqPzXwEuyd1fVj_JDC_YbMV-xlcB9ZLVEhQnSYiiVXgcalkHS7Wfr_8rLRic_Bs9-EIaX5HmPM1pmgXStlWBsiAZbVv1FJrkaTLqlCUzUZFdDwm75UpFW_6KSxk_EyXFzbjxW6aMZ_wXTDMLK-NrluSGJWuTnMNTEx54LmqWk9zymG9PRfaUJVutzHTadmaKnCUZXSNnlWG0TdRYLWe5PI1f1TG90crTEuk_0Hp_vt9Ppnnvx5ekOM9uX1obueOy5KXY4C7OeZ7kLC2LTb8reVnTOk6wbeK2jrEUSVoWtKWsyMsEcaN2jLKUxiyO0zjjaYR1mRRNnWOJpWhkShKKB6F0pPXxENmx2yjnJtzFjOcZ32hRo3bzhwpjBp9hvhteUOnDZtwF0LaeOkcSqpXz7oXGK69xd_lCsQaWzrw0pjWv3kWbadS73vshjANhe8L2nfL9VEeNPRC2D7Tr33YYbRgkwvazGUfYfnV73LG_AgAA__9hhOLC">