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

    <tr>
        <th>Summary</th>
        <td>
            [clang][FE] assert in schema
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang,
            clang:frontend
      </td>
    </tr>

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

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

<pre>
    Hello

I am getting assert in FE with trunk clang.
Small repro:

`#include <cstdint>
typedef int32_t __m256si_u
 __attribute__((__vector_size__(32), __may_alias__, __aligned__(1)));
template <uint8_t width>
void foo(const int* rows) {
auto indices = *reinterpret_cast<const __m256si_u*>(rows) * width;
}`

partial stack:
`#11 0x0000564d2ea190c3 canConvertIntToOtherIntTy(clang::Sema&, clang::ActionResult<clang::Expr*, true>*, clang::QualType) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Sema/SemaExpr.cpp:0:29
#12 0x0000564d2ea190c3 tryGCCVectorConvertAndSplat(clang::Sema&, clang::ActionResult<clang::Expr*, true>*, clang::ActionResult<clang::Expr*, true>*) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Sema/SemaExpr.cpp:10964:9
#13 0x0000564d2ea13d67 clang::Sema::CheckVectorOperands(clang::ActionResult<clang::Expr*, true>&, clang::ActionResult<clang::Expr*, true>&, clang::SourceLocation, bool, bool, bool, bool, bool) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Sema/SemaExpr.cpp:11175:11
#14 0x0000564d2ea19c0e clang::Sema::CheckMultiplyDivideOperands(clang::ActionResult<clang::Expr*, true>&, clang::ActionResult<clang::Expr*, true>&, clang::SourceLocation, bool, bool) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Sema/SemaExpr.cpp:11452:12
#15 0x0000564d2ea060d6 clang::Sema::CreateBuiltinBinOp(clang::SourceLocation, clang::BinaryOperatorKind, clang::Expr*, clang::Expr*) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Sema/SemaExpr.cpp:0:16
#16 0x0000564d2e9f1968 clang::Sema::ActOnBinOp(clang::Scope*, clang::SourceLocation, clang::tok::TokenKind, clang::Expr*, clang::Expr*) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Sema/SemaExpr.cpp:16021:1
#17 0x0000564d2e5055c1 clang::Parser::ParseRHSOfBinaryExpression(clang::ActionResult<clang::Expr*, true>, clang::prec::Level) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseExpr.cpp:632:21
#18 0x0000564d2e504317 clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseExpr.cpp:0:10
#19 0x0000564d2e55639a clang::Parser::ParseInitializer() /home/ayermolo/local/upstream-llvm/llvm-project/clang/include/clang/Parse/Parser.h:0:0
#20 0x0000564d2e55639a clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseDecl.cpp:2614:25
#21 0x0000564d2e553793 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::SourceLocation*, clang::Parser::ForRangeInit*) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseDecl.cpp:2348:21
#22 0x0000564d2e5529b8 clang::Parser::ParseSimpleDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, bool, clang::Parser::ForRangeInit*, clang::SourceLocation*) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseDecl.cpp:0:10
#23 0x0000564d2e55237f clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseDecl.cpp:0:0
#24 0x0000564d2e598637 clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseStmt.cpp:0:16
#25 0x0000564d2e596812 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseStmt.cpp:117:20
#26 0x0000564d2e5a0821 clang::Parser::ParseCompoundStatementBody(bool) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseStmt.cpp:1205:11
#27 0x0000564d2e5a185f clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseStmt.cpp:2468:21
#28 0x0000564d2e4e4f56 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/Parser.cpp:0:0
#29 0x0000564d2e588ce7 clang::Parser::ParseSingleDeclarationAfterTemplate(clang::DeclaratorContext, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseTemplate.cpp:0:0
#30 0x0000564d2e586f0d clang::Parser::ParseTemplateDeclarationOrSpecialization(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseTemplate.cpp:0:0
#31 0x0000564d2e586826 clang::Parser::ParseDeclarationStartingWithTemplate(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseTemplate.cpp:0:0
#32 0x0000564d2e552196 clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseDecl.cpp:1971:10
#33 0x0000564d2e4e1f93 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/Parser.cpp:0:0
#34 0x0000564d2e4e04b6 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/Parser.cpp:742:10
#35 0x0000564d2e4daf1e clang::ParseAST(clang::Sema&, bool, bool) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Parse/ParseAST.cpp:162:5
#36 0x0000564d2cc25a3f clang::FrontendAction::Execute() /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1067:10
#37 0x0000564d2cb9aa1d llvm::Error::getPtr() const /home/ayermolo/local/upstream-llvm/llvm-project/llvm/include/llvm/Support/Error.h:270:42
#38 0x0000564d2cb9aa1d llvm::Error::operator bool() /home/ayermolo/local/upstream-llvm/llvm-project/llvm/include/llvm/Support/Error.h:233:16
#39 0x0000564d2cb9aa1d clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1054:23
#40 0x0000564d2cd032f3 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/ayermolo/local/upstream-llvm/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:272:25`
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsmt1yozgWx59GvqEmhSTAcOELYsczqe2pzLZTu5cuWci2NkJihUi35-m3JLD58EeSbieT3dqqroYAEuf8ztHRX8KkLPlGMjYB4S0IZyNSma3SE7JjOldCjVYq201-Y0Io4M-An9b_33sk9zbMGC43HilLpo3HpTe_875xs_WMruSTRwWRm5u6wSInQniaFVoBnHa7ApEPEOaSiipjHsBTWpqMSwPwXf2A2RUsY2uPS4PR0njLZY7CqOTLqr7vLZfEGM1XlWHLJUAxQPFy-cyoUXpZ8j_rixgBlAA0tc3JbkkEJ6W9YS8QYRFk7jnoHnP_8G1jAMsLQYwzruLSxEvjfeOZ2R5MfFY889ZKARRTJUvLwgCUelp9KwFKPDBuuiKVUR6XGaes9ACeeQClmnFpmC40M0tKSmMRuE46jqLUvgvFhw5Rujeh6RmMZ5ZkB2xBtOFEeKUh9KmF7nBD6Pnffd_3wyjIECMw8Sn2KJFTJZ-ZNvfSPKoHs2Xanu2sXzaYthecLlhOAIosu87VlBqu5FdWVsK50N65-15o6wGa2sRgzpN00PrvFRGPu4LVzs23KmcAzfdZCNBcKEoEQPOqKI1mJP9FiOfcXhfP-S-FVv9i1AA0r7tEc8FXAM1rS93BGnFDiwLg1Ac4RUmDA2GITrEwevfrdPoPl0UNlFRmC5sI70_jza3fHxr0kygAOO1wwwNuOIvG3pCMO5tuGX2qWT4UTBOZlX2Ib3P452APWy9UpSn7oiixvdibK6XEy8cPYA7hOHTHFnowTFbqswvQf6-E4YXYzfgzz9h_H_yPgByEyB5RCznsQ_YjP4vOQNaMGHZbcWG4vOXyoRhUhyP_OjdvuSR654JilP4bl9nggQ7BU1c_plTCqAUT9cAka5hE8WkwKTUPJ4FQZav80KeLnIx6qk8e1ROTn5ETjHwE7bFFNe6hCv0wpLBr3R9El0x3zr_-tnhY1ylhe2Zl6Uj8-EjtwSg0o_XZF_bMrjyynP37YwdLhO3IQh0q8YBKYEFdopI6fZozac5B6TaxEmJKSrMwxFxZS5zz0Q0Rv_Uw6XsYRjghFz28l9zqNP4n0068XsfoRlB3rvQc0DfbxvbWdOS_1fQZo4JoN2TTtWF6_7fSqczSvSgfTDftQ8fTwdEbssdGfN_LtfKcLr7caq70VyI3jurVB38PofWjyQEUQauNUNiyhAOWeJzgF1n-qlVVHGc3lxt7d1Eweux8i3OqpGHfzSk4vWC8NAcP6-hfjxcHcb-OIDTAi5JVfBHvgueF6CbsuaQ8TXHI6GQKXqR85om93Hkt75ci9xHxGJQ8hIfBwOP1a-vGJwnD54DaYdrX-WESR_jyROmmPDtPPuhhWe5VYmdj7WhOhKhXZX0xsTD5Ptkwqk7q9uNCbRu9Lmgn68vbg_ZuQbGenNa_KBxEJYoh-oGofJYwfARCCMe2dndSu7-ICIkfo8vKeKryQlUyO8C8VdkOoPj6S8SzTiB_sBBHA31PYBxeLnrzSjr5PvRiUP4uz7-1YfUa6oPGAAqi4ezbV_EBC9Zh9CrfZ2zNrdw9peEblfN-0vALMaytJF94-c4KRp-u7IMFQhxT9kJl53IjjrT23vu3TaA_TrEJz9f0_v5hVTv_0sz59rk3pZSVpRW6fM3teujdgrN3-2SM8GAlFEdrP7uIcd9dJ0oP2vlhV3Z_idL5LCzhkGWMLheLDsOFIdpwufknN9sfS_j_HY5HSx6YvJrj_1X2fiJPxrC_esF4MJnB9Qsr9bvvhmlJxFm-1-BztO7_-JkKBwMyfrC6nHGPqnC7i7WO6SJ5KMi_K_aHGUjcw6bHV7Y-_X3gsKH8u8oqwe7zQun99t57CqA9knGABvnSXwMEGVlDdkQlXTye_Uz4fl84eh6ki8fD7rT1od2cwj0FTikKCe5p17m2dUFm9X7zfoeZ0cpV3-vavH9X57R-7eHDYzQeRKAnvekqIQRmXrugutNaNVm5YcbmXG1z_VX9ZyxvrrZ7q82FRVXYtARo7t7t9lbR2I6moP2qhONXm62aT0JNivw08TfZjXF_0YuTU3Z3ssUuz7hg-l6WhkjKevnSpFBvLAzS69rjuJNRQ9MOORW6_Vp8cDLoKT6a-Ritcf9jknOn7fD5MHXFl1hcu27vnXt0mTE_a9Z-8TZG9cZ05I-yCc4SnJARm8AoQTiJIESj7SSjsT-GJCAsgSGMs3FIQkpXOMEQByuWjPgE-Qj7MYwR8mEIbxIfRmPqB34Us3VIxiDwWU64uLGm3yi9GfGyrNgkCmKYjARZMVG6Hxgh1HiDAJoe_sLp-hAyBMLZSE8cg1W1KUHgC16asu3acCPcz5XqxuEMhLfzOxDOOj9EKumW5WRUaTHZGlOUNjhoDtB8w822Wt1QlbejYMDbmV4CNHfW_ycAAP__49u06w">