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

    <tr>
        <th>Summary</th>
        <td>
            clang-15: crash on va_arg (arm)
        </td>
    </tr>

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

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

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

<pre>
    repro:

file: x.c
```c
#include <stdarg.h>

struct T {};

struct T A(int x, ...)
{
    va_list args;
    va_start(args, x);

    struct T val = va_arg(args, struct T);

    va_end(args);

    return val;
}
```

command: `clang-15 -target arm-linux-gnu -shared -O2 x.c`

underlying assertion:
> clang: /root/llvm-project/clang/include/clang/AST/Type.h:753: const clang::ExtQualsTypeCommonBase* clang::QualType::getCommonPtr() const: Assertion `!isNull() && "Cannot retrieve a NULL type pointer"' failed.

stdout/stderr in production:
```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /usr/lib/llvm-15/bin/clang -cc1 -triple armv4t-unknown-linux-gnu -emit-obj --mrelax-relocations -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name x.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -target-cpu arm7tdmi -target-feature +soft-float -target-feature +soft-float-abi -target-feature -vfp2 -target-feature -vfp2sp -target-feature -vfp3 -target-feature -vfp3d16 -target-feature -vfp3d16sp -target-feature -vfp3sp -target-feature -fp16 -target-feature -vfp4 -target-feature -vfp4d16 -target-feature -vfp4d16sp -target-feature -vfp4sp -target-feature -fp-armv8 -target-feature -fp-armv8d16 -target-feature -fp-armv8d16sp -target-feature -fp-armv8sp -target-feature -fullfp16 -target-feature -fp64 -target-feature -d32 -target-feature -neon -target-feature -sha2 -target-feature -aes -target-feature -dotprod -target-feature -fp16fml -target-feature -bf16 -target-feature -mve -target-feature -mve.fp -target-feature -fpregs -target-feature +strict-align -target-abi aapcs -msoft-float -mfloat-abi soft -Wunaligned-access -fallow-half-arguments-and-returns -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -fcoverage-compilation-dir=/ -resource-dir /usr/lib/llvm-15/lib/clang/15.0.2 /usr/lib/llvm-15/lib/clang/15.0.2/include -internal-isystem /usr/local/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -fdebug-compilation-dir=/ -ferror-limit 19 -fno-signed-char -fgnuc-version=4.2.1 -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -o /tmp/x-b36e49.o -x c x.c
1.      <eof> parser at end of file
2.      x.c:5:10: LLVM IR generation of declaration 'A'
3.      x.c:5:10: Generating code for declaration 'A'
 #0 0x00007f47821e3451 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xf04451)
 #1 0x00007f47821e118e llvm::sys::RunSignalHandlers() (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xf0218e)
 #2 0x00007f47821e3976 (/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1+0xf04976)
 #3 0x00007f4780dbd520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007f4789fdfac1 clang::CodeGen::CodeGenTypes::ConvertTypeForMem(clang::QualType, bool) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1d0fac1)
 #5 0x00007f478a04f0ba (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1d7f0ba)
 #6 0x00007f4789db9d6d (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1ae9d6d)
 #7 0x00007f4789db1988 (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1ae1988)
 #8 0x00007f4789dae620 clang::CodeGen::CodeGenFunction::EmitAggExpr(clang::Expr const*, clang::CodeGen::AggValueSlot) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1ade620)
 #9 0x00007f4789d78605 clang::CodeGen::CodeGenFunction::EmitExprAsInit(clang::Expr const*, clang::ValueDecl const*, clang::CodeGen::LValue, bool) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1aa8605)
#10 0x00007f4789d75e47 clang::CodeGen::CodeGenFunction::EmitAutoVarInit(clang::CodeGen::CodeGenFunction::AutoVarEmission const&) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1aa5e47)
#11 0x00007f4789d7173e clang::CodeGen::CodeGenFunction::EmitVarDecl(clang::VarDecl const&) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1aa173e)
#12 0x00007f4789d713f5 clang::CodeGen::CodeGenFunction::EmitDecl(clang::Decl const&) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1aa13f5)
#13 0x00007f4789ef570c clang::CodeGen::CodeGenFunction::EmitSimpleStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1c2570c)
#14 0x00007f4789ef4ba1 clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*, llvm::ArrayRef<clang::Attr const*>) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1c24ba1)
#15 0x00007f4789f00e70 clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1c30e70)
#16 0x00007f4789f5ba23 clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::Stmt const*) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1c8ba23)
#17 0x00007f4789f5c685 clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1c8c685)
#18 0x00007f4789f7aaf1 clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1caaaf1)
#19 0x00007f4789f7431c clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1ca431c)
#20 0x00007f4789f780c5 clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1ca80c5)
#21 0x00007f4789f73a1d clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1ca3a1d)
#22 0x00007f478a01aedf (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1d4aedf)
#23 0x00007f4789f51ed0 (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1c81ed0)
#24 0x00007f4788d5ce69 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0xa8ce69)
#25 0x00007f4789f4e775 clang::CodeGenAction::ExecuteAction() (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x1c7e775)
#26 0x00007f478a9840a7 clang::FrontendAction::Execute() (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x26b40a7)
#27 0x00007f478a8f71b6 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x26271b6)
#28 0x00007f478aa0204a clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm-15/bin/../lib/libclang-cpp.so.15+0x273204a)
#29 0x0000555d1eab09e0 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-15/bin/clang+0x139e0)
#30 0x0000555d1eaaebab (/usr/lib/llvm-15/bin/clang+0x11bab)
#31 0x0000555d1eaae9fc clang_main(int, char**) (/usr/lib/llvm-15/bin/clang+0x119fc)
#32 0x00007f4780da4d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#33 0x00007f4780da4e40 call_init ./csu/../csu/libc-start.c:128:20
#34 0x00007f4780da4e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#35 0x0000555d1eaab3b5 _start (/usr/lib/llvm-15/bin/clang+0xe3b5)
clang: error: unable to execute command: Segmentation fault
clang: error: clang frontend command failed due to signal (use -v to see invocation)
Ubuntu clang version 15.0.2-++20220928063118+10a54971b0d3-1~exp1~20220928063158.70
Target: arm-unknown-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/x-b4c378.c
clang: note: diagnostic msg: /tmp/x-b4c378.sh
clang: note: diagnostic msg: 

********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNWltz27gO_jXOC0ceXS35IQ_Ore1M2uY02e1jhpIoW1tK1JBU6pxffwBKskVHbpqs98xmFNsCSQAfAIKQyFTkz-eSNVLMgtXMvZq5_WdRcgYksp1nPXnhdtdw7wdlnfE2Z2QWXCqdU7meb2bB9ZiL0rLNNHkgs_hiFl_NgovJVmCWlLUm25l_Sebz-cxf9v3ifgCBvyf6yEulCQhSO059g9JUauBi2oDJFlnY0rDnTuIT5aD2FQ6FIaOBQ4_p8dCd1fmu-1QXyXQraxSwbwTktg3HgzJRVRSYgrHRupzWa8eLiAOI1gzRVg4v63brrOuWOGpDJcuJ89U3rrFZtXXOJH8u6zWhSjGpS1Hv_RpcE8PdSPJvpBBgsRvOnyoH_P8Xy_C26-Hf9L4dUVb3YJSbh-eGoZtXcRQgo0zU4JKBL1zXW_2flnKFHS8BmqgvqAI-q3En7IEdujuA2fW80xJsC3bt2CL_1YADjTPzvVJ9aTnve838BVzw5V_SuhYajS9L9sQIJV_-uL0lGmSQRkBsMeDsz_yYFBQiO5_bcZiLFsHDDyYlKWsCBskhDiz72c67u71e3V8T1aZVCV4iabsG8Y2QmmhBNlo3Cof6N3CtS71p0zl4ujf4S7uXSrUMQuqGQCyQYWbpDSOZpGpDUpr90JJmDIO0MTM2Y2CbnCjRyo6MI8HvIiuphgbZ1kRlsmx0j_ZeAxOSt1WzA-XOifm7k2ItaYVzq61YrVUfJK2SqGuZDhp7EfxKy3oIDOJkmQfBCmI4w2B9CrXT1j9q8bMexy0DKzki_Ys4TiUZp1sHPkVG0cSKOHmpaMqZU0jGgCVnVDpUaSdlhZDMQfQw8fb9jC5PTJZFyaQhZ1TmDsy6ljk1rRjwrGhZO5jHDAGnCzGye6lOJXLGSVMCGT4cDnHDid_dlAq-QJOqAKswZwih4KoWNZCLiuqNA7FSC7gpGgfiFb0DIXsFoeoUtXCkgOkIU9HBvsDJhDQmFwHQeAmTQg2T3MmaFm0X67wqd8SCUUglkF79CyUKuOeC6l-3OjR9Od55Khp_mqqaSXowTc29xdGGY5ym6EVzhFE4TT0mNzwuN5yW62CAJsdbJiWNGn_FdbINctU02qJZTKDNgwlH1QxD6pAKC8FEXzoKqj1XoTGfTTuiqPjLhrSY0rmCxDpFnBeTZpFs_VIZDFdIFpnGObDe48LApbTJcN6Oo73axzWSifO9rc1Iljs0wxQIoijn4qezobxwdgnMgWzodIsx8sSEgWkK1HAgV_Au25RbYAPTGKekcn5SWePa6eQMsvmaSUe3SIBJvc5TkJMJSDl0zWC6V03JuzSSl5gXMHODuC4ZI-149uzuh2XVi-bu3H9b7_36TByTmMAkkLKelWbViBMkOj7ZlW3xRzYe8ludOr67rlCDOIWx1TGDFJ1teYlrpLfsEqPqvJdBJQMEWB0yzOTKrLVX4dyfe8bUHAbmJV3XQukS4-KJYe4s_wvZX4jGIijeYBjkObAB_wlUVsMy599snTRYsHA5h0S9Jdm-nvX6lQ-KVyYKLI4aKqHWIBB1uNSIgpga2HT2-844OlhF8O-5uELe3v75mXz6RtashsAwZQqMyxm4q7-FkgOKgLhjExxh86EfDrGXwaJEYM07zgTuApe4Wxf-4iKME99jQRh5xBQWpqACj3U_7iS40yz7D13tkOw7SfrzEUwLM6IyddQlVB26q6qSV1Z-rNCHpjJFI0DrXIm5B9Pb3RZuCPrsinhU2DtQ2PMSNqXwt7a-h_Cg_CNMXw5Rsav0_rZOPoi0dPIPjbiMFycBD3wsQcFYkJuneeS7vaCOzzZZPC7CfbnUNWTIdGGYhj4MsXiGY57LIi8olGGjCvsS4gjCyrrBilsNlBrmnEbKjZCfGYRAMlWfQ1SkQvD3uKB7ksmaxtgmMji83EVFLSTRGAl1w8JN6YmExcjLErawzJany3yRn0YYZcjLEhYfCPOWSXIqYcjLEpbYwihbQJC9EhA3bb17xoEnN0jSq_X6ettIOxqQ0j-R-SsMiWNsYfSfWIHfc_GuTDKNNUcoFtaljTVOFm70dqwIa6U-1aX-fbgG3hWk5t-yx63pfvJJRCkC3r8kgfTqHlgkYmH8Du-3WvxJ5UuTvD68HwpcFK7kg3kWJwSNmCzQ3gFoLw7Y20GD1uhQG3BP_CdgoJYWDP8QRlC8I5pfYvjHAIB-FgBrfVuyIord7O0A7suq4exeVwexhxRrtu3LhpWU9Pkbg-rtcjRgpfVo_gbXJ4Oe-YjMgh4eQA9T-uoyPAH9Xw0aMVmgI7v2cF0Wv2OpuYRHBnxFglC_l3ojWn2fCaw57Myz7zUK5iGj_p_XoixArJYx7IqiiFLqB283xkC5EPnzLyPhVEAS1NMCEh8AyRbJG9NQ_xjDsNEG8YGLlPIuRY1jeTf-1-vo5Yeh46e6EKfPaVmCYC1r2OVUEVNavDqxP4u85Wzv1A71oPoVK0pYWA3a37FNR-8riBN6niIUC-vyAGsYeK_m72ms_xqMCGGM0XcPMCZu9mp0T2M8juxk2qNylvbegfYB9fK3av8gmlt8xT1dKJzW_KifBcC3H_LgASYvTvSQFyIvS1hwkMk8lrunShTIyxJmVQBJHmVssRy75g7fKpm9Myurs4oeLGSnfESgCaph6XmwaIcsjqcmwGq8MG1Z1mrWk973ImbajDFKt9SzllG6TEKXWg8wN1LUmtX5hH4n1MxfpCjY0sxaF2lSxF66IAcVSskZPDUpTeuMTdvuOJTTrWP-wkflLO2tdYxS13dDam_XGj33IJ767bGXZZgF8nTpwo8DVMrSeliRoijKPUZTd8mgwsy8R9zTs95ijqthfKFslcBQUVg0IDyJMv9t5fu37hiyAWgwVnH3CrZXkbKUpm9j6cEIi6V3yHJZ9OvwgNu8oe1QGRBvx-EBT0uob7-cpGG-dMnjIzqrO1XxmFHOjQIEfZmpdnCrelY5a3DTum407z18OMgcFogS-PAWe6nBoVQWgoNxDNYPh4K6n8jdMdzN63PPR6a-u2caTjG1oEyhmGQexEtUe887OvBNGqQR6bi-yQEMxu3svzuOYbZJ8Edb48YUniBg3cQko-Mh92yNW1vdnkBBW66Psem25os-0Qw8-rMPJG-NBGVetKP2rcJdU0NjjJSjHNAr-kfa1rrt2fabNaTbi3IAFly-6_vu0k_cReB5YI4Lz6VRuIR85OaB483ia7Zt8GvcMUrmce-_B7MNiLrjgZcXBwj6ThvJaE7Mxj12bYQqt12TSUwc0F2VxgI7h6ADbCvVQpujTfvNJVKp7lRM7-6_cY2OlfQnRFYPD6vLj-Th4zW5-Xp7-_X7py8fyM2n2-t78vDVkC_--EC-Xd99_fYwG85l3E2d8EjwyNHxUx67DpIRc8gBWqnesfwd_KNdszAL4mTYLHvXWLV5q-FPZf7hpM4ZO_cWizhy3SB2z_LzIF8GS3qmS83Z-XDSyswXc8ZG1P15MGJOeFVgzLNW8vP3H-aJkngZnm3Oi6RIsixYRMynfuTRzE3SrMi8aBG4QRT5Z5ymjKvzWQRzya_ZT2JY4JGl6OqsPMdJ43kuPJZCIQeTLo5jtgx9FoeMMt-bhS7UkyWfox5zIddn8tyolLZrBY14bE7tGyF6cAuWGXHAn7Z6I-T5D6oaJn8k3pkRfm6U_x-vlhia">