Module:ClangDiags/DiagsLongData0: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 1: Line 1:
local a="";
local a="";
local b="regex2";
local b="regex3";
local c="regex1";
local c="prefix";
local d="prefix";
local d="commit";
local e="type";
local e="type";
local f="title";
local f="title";
local g="commit";
local g="message";
local h="category";
local h="category";
local i="regex3";
local i="regex1";
local j="message";
local j="regex2";
local k="Error";
local k="source";
local l="error: ";
local l="error: ";
local m="(?:error|fatal error)\\: ";
local m="(?:error|fatal error)\\: ";
local n="Semantic Issue";
local n="Error";
local o="Parse Issue";
local o="Semantic Issue";
local p="Update tablegen diagnostic files to be in sync with the def files.";
local p="clang/lib/Sema/SemaDeclAttr.cpp";
local q="5a8987ca5113";
local q="clang/lib/Sema/SemaDecl.cpp";
local r="The basic representation of diagnostics information in tablegen format, plus (uncommented and incomp...";
local r="clang/lib/Sema/SemaType.cpp";
local s="b1c4d5507fad";
local s="clang/lib/Sema/SemaChecking.cpp";
local t="Lexical or Preprocessor Issue";
local t="Update tablegen diagnostic files to be in sync with the def files.";
local u="OpenMP Issue";
local u="5a8987ca5113";
local v="Implement P2361 Unevaluated string literals";
local v="clang/lib/Sema/SemaDeclCXX.cpp";
local w="95f50964fbf5";
local w="clang/lib/Sema/SemaCast.cpp";
local x="Modules Issue";
local x="clang/lib/Sema/SemaExprCXX.cpp";
local y="fatal error: ";
local y="clang/lib/Sema/SemaExpr.cpp";
local z="Fatal";
local z="The basic representation of diagnostics information in tablegen format, plus (uncommented and incomp...";
local A="fatal error\\: ";
local A="b1c4d5507fad";
local B="[WebAssembly] Improve clang diagnostics for wasm attributes";
local B="Parse Issue";
local C="931fcd3ba011";
local C="Inline Assembly Issue";
local D="Inline Assembly Issue";
local D="clang/lib/Parse/ParseDecl.cpp";
local E="Coroutines Issue";
local E="clang/lib/Sema/SemaInit.cpp";
local F="0687578728ea";
local F="clang/lib/Sema/SemaStmtAsm.cpp";
local G="14f6bfcb52e7";
local G="clang/lib/Sema/SemaExprObjC.cpp";
local H="[C++20][Modules][HU 2/5] Support searching Header Units in user or system search paths.";
local H="31168b077c36";
local I="[clang] Implement objc_non_runtime_protocol to remove protocol metadata";
local I="clang/lib/Sema/SemaDeclObjC.cpp";
local J="Automatic Reference Counting.";
local J="Automatic Reference Counting.";
local K="31168b077c36";
local K="clang/lib/Parse/ParseDeclCXX.cpp";
local L="Generics Issue";
local L="ARC Semantic Issue";
local M="AMDGPU: Teach toolchain to link rocm device libs";
local M="Implement P2361 Unevaluated string literals";
local N="4593e4131aff";
local N="95f50964fbf5";
local O="Mass-rename the handful of error_* diagnostics to err_*.";
local O="clang/lib/Frontend/CompilerInvocation.cpp";
local P="f881267db9a9";
local P="clang/lib/Sema/SemaObjCProperty.cpp";
local Q="Lambda Issue";
local Q="clang/lib/Sema/SemaOverload.cpp";
local R="f9c3310d32c6";
local R="clang/lib/Sema/SemaStmt.cpp";
local S="[OPENMP]Fix PR49366: crash on VLAs in task untied regions.";
local S="clang/lib/Sema/SemaAccess.cpp";
local T="ARC Semantic Issue";
local T="14f6bfcb52e7";
local U="AST Deserialization Issue";
local U="[clang] Implement objc_non_runtime_protocol to remove protocol metadata";
local V="e65b086e07a6";
local V="[WebAssembly] Improve clang diagnostics for wasm attributes";
local W="Add clang support for new Objective-C literal syntax for NSDictionary, NSArray,";
local W="931fcd3ba011";
local X="[AMDGPU] Add options -mamdgpu-ieee -mno-amdgpu-ieee";
local X="clang/lib/ARCMigrate/TransProperties.cpp";
local Y="0175999805cf";
local Y="Rename objc_lifetime -> objc_ownership, and modify diagnostics to talk about \'ownership\', not \'lifet...";
local Z="61d065e21ff3";
local Z="cff00d9c127c";
local ab="Let clang atomic builtins fetch add/sub support floating point types";
local ab="eb3c10c248ac";
local bb="c094e7dc4b3f";
local bb="constexpr: semantic checking for constexpr functions and constructors. Based in";
local cb="7c11da0cfd33";
local cb="[OPENMP]Fix PR49366: crash on VLAs in task untied regions.";
local db="[SYCL] Add sycl_kernel attribute for accelerated code outlining";
local db="f9c3310d32c6";
local eb="[clang] New __attribute__((__clang_arm_mve_alias)).";
local eb="Let clang atomic builtins fetch add/sub support floating point types";
local fb="Introduce -Wreserved-identifier";
local fb="61d065e21ff3";
local gb="b83b23275b74";
local gb="Lexical or Preprocessor Issue";
local hb="f60dc3caa673";
local hb="clang/lib/ARCMigrate/TransUnbridgedCasts.cpp";
local ib="A has different definitions in different modules; first difference is ... found ...";
local ib="2a7d481faf54";
local jb="[C++20][Modules] Adjust handling of exports of namespaces and using-decls.";
local jb="ARC Restrictions";
local kb="Parsing, semantic analysis, and AST for Objective-C type parameters.";
local kb="clang/lib/Parse/ParseExpr.cpp";
local lb="[OpenMP][Part 2] Use reusable OpenMP context/traits handling";
local lb="clang/lib/Sema/SemaLambda.cpp";
local mb="1228d42ddab8";
local mb="Emit !callback metadata and introduce the callback attribute";
local nb="85f3f9513dbc";
local nb="ac991bbb4456";
local ob="Handle Objective-C type arguments.";
local ob="clang/lib/AST/Stmt.cpp";
local pb="e9d95f1ecc98";
local pb="Implement most of N3638 (return type deduction for normal functions).";
local qb="Reland [clang] Check unsupported types in expressions";
local qb="1064d7ef2992";
local rb="cb08f4aa4467";
local rb="AMDGPU: Teach toolchain to link rocm device libs";
local sb="Support warn_unused_result on typedefs";
local sb="Perform access control for the implicit base and member destructor calls";
local tb="Basic support for Microsoft property declarations and";
local tb="4593e4131aff";
local ub="3dbcea8b957a";
local ub="f881267db9a9";
local vb="cff00d9c127c";
local vb="Implement the C++0x deduced \'auto\' feature.";
local wb="Rename objc_lifetime -> objc_ownership, and modify diagnostics to talk about \'ownership\', not \'lifet...";
local wb="30482bc78659";
local xb="5e77d76c953d";
local xb="clang/lib/Sema/SemaTemplateDeduction.cpp";
local yb="Implement Attribute Target MultiVersioning";
local yb="Mass-rename the handful of error_* diagnostics to err_*.";
local zb="P0217R3: Perform semantic checks and initialization for the bindings in a";
local zb="clang/lib/Lex/Lexer.cpp";
local Ab="Introduce basic support for parsing module map files.";
local Ab="ARC Weak References";
local Bb="718292f260bf";
local Bb="fatal error\\: ";
local Cb="constexpr: semantic checking for constexpr functions and constructors. Based in";
local Cb="clang/lib/Sema/SemaTemplate.cpp";
local Db="eb3c10c248ac";
local Db="[ObjC] Implement @available in the Parser and AST";
local Eb="281d20b601c8";
local Eb="Fatal";
local Fb="7873de0cf65f";
local Fb="fatal error: ";
local Gb="[C++20][Modules][3/8] Initial handling for module partitions.";
local Gb="29099ded0c15";
local Hb="ec273d3e3a8c";
local Hb="clang/lib/Parse/ParseTemplate.cpp";
local Ib="Add a warning for not packing non-POD members in packed structs";
local Ib="clang/lib/Lex/Pragma.cpp";
local Jb="ARC Restrictions";
local Jb="clang/lib/Parse/Parser.cpp";
local Kb="91147596414d";
local Kb="Reland [clang] Check unsupported types in expressions";
local Lb="69350e569dc4";
local Lb="3dbcea8b957a";
local Mb="ac991bbb4456";
local Nb="30482bc78659";
local Ob="bdb84f374cde";
local Pb="Implement most of N3638 (return type deduction for normal functions).";
local Qb="2a7d481faf54";
local Rb="P0217R3: Parsing support and framework for AST representation of C++1z";
local Sb="C1X: implement generic selections";
local Tb="Implement the C++0x deduced \'auto\' feature.";
local Ub="Emit !callback metadata and introduce the callback attribute";
local Vb="60437620db8e";
local Wb="0bf3140424a0";
local Xb="Fix declare target implementation to support enter.";
local Yb="Implement C++0x scoped enumerations, from Daniel Wallin! (and tweaked a";
local Zb="98bfd7f976f1";
local ac="b9e90b13cfd7";
local bc="[c++1z] P0091R3: Basic support for deducing class template arguments via deduction-guides.";
local cc="Add Diagnostic files for Frontend and move a couple errors over.";
local dc="Fold the six functions checking explicitly-defaulted special member functions";
local ec="for range declaration must declare a variable";
local fc="Perform access control for the implicit base and member destructor calls";
local gc="4f495980c41b";
local hc="ARC Weak References";
local ic="fe17b30a7957";
local jc="[attributes][analyzer] Add annotations for handles.";
local kc="WIP implementation of explicit instantiation of function templates,";
local lc="450f0084a27b";
local mc="1064d7ef2992";
local nc="[c++1z] N4295: fold-expressions.";
local oc="Implement VectorType conditional operator GNU extension.";
local pc="Implement a new \'availability\' attribute, that allows one to specify";
local qc="Nullability Issue";
local rc="[OPENMP50]Add initial support for OpenMP 5.0 iterator.";
local sc="Add support for C++0x\'s range-based for loops, as specified by the C++11 draft standard (N3291).";
local tc="349636d2bfc3";
local uc="Parse inferred submodules in module maps, track their contents in";
local vc="0f0af19b0581";
local wc="734410916a6d";
local xc="29099ded0c15";
local yc="[clang][auto-init] Deprecate -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clan...";
local zc="f08df464ae89";
local Ac="aef03c9b3bed";
local Bc="02e85f3bc5fc";
local Cc="[ObjC] Implement @available in the Parser and AST";
local Dc="20b2ebd78586";
local Ec="Improve diagnostics for ill-formed literal operator declarations.";
local Fc="c28aee6a51a9";
local Gc="3efe00206f0f";
local Hc="Implement cpu_dispatch/cpu_specific Multiversioning";
local Ic="8fb0b8a2cb71";
local Jc="Better diagnostics for covariance when checking overriding return types.";


return {
return {
["backslash_newline_space"]={
["backslash_newline_space"]={
[f]="backslash and newline separated by space [-Wbackslash-newline-escape]",
[f]="backslash and newline separated by space [-Wbackslash-newline-escape]",
[d]="warning: ",
[c]="warning: ",
[e]="Warning",
[e]="Warning",
["groups"]={"backslash-newline-escape"},
["groups"]={"backslash-newline-escape"},
["maingroup"]="backslash-newline-escape",
["maingroup"]="backslash-newline-escape",
[g]="backslash and newline separated by space",
[i]="(?:warning|error|fatal error)\\: ",
[j]="backslash and newline separated by space",
[j]="backslash and newline separated by space",
[c]="(?:warning|error|fatal error)\\: ",
[b]=" \\[(?:\\-Werror,)?\\-Wbackslash\\-newline\\-escape[^\\]]*\\]",
[b]="backslash and newline separated by space",
[h]=gb,
[i]=" \\[(?:\\-Werror,)?\\-Wbackslash\\-newline\\-escape[^\\]]*\\]",
[d]={A,1236199783,z},
[h]=t,
[k]={{zb,1244,"/// getCharAndSizeSlow - Peek a single \'character\' from the specified buffer,\n/// get its size, and return it.  This is tricky in several cases:\n///  1. If currently at the start of a trigraph, we warn about the trigraph,\n///      then either return the trigraph (skipping 3 chars) or the \'?\',\n///      depending on whether trigraphs are enabled or not.\n///  2. If this is an escaped newline (potentially with whitespace between\n///      the backslash and newline), implicitly skip the newline and return\n///      the char after it.\n///\n/// This handles the slow/uncommon case of the getCharAndSize method.  Here we\n/// know that we can accumulate into Size, and that we have already incremented\n/// Ptr by Size bytes.\n///\n/// NOTE: When this method is updated, getCharAndSizeSlowNoWarn (below) should\n/// be updated to match.\nchar Lexer::getCharAndSizeSlow(const char *Ptr, unsigned &Size, Token *Tok) {\n  Slash:\n    // See if we have optional whitespace characters between the slash and\n    // newline.\n    if (unsigned EscapedNewLineSize = getEscapedNewLineSize(Ptr)) {\n      // Warn if there was whitespace between the backslash and newline.\n      if (Ptr[0] != \'\\n\' && Ptr[0] != \'\\r\' && Tok && !isLexingRawMode())\n        Diag(Ptr, diag::backslash_newline_space);"},{zb,2291,"/// We have just read the // characters from input.  Skip until we find the\n/// newline character that terminates the comment.  Then update BufferPtr and\n/// return.\n///\n/// If we\'re in KeepCommentMode or any CommentHandler has inserted\n/// some tokens, this will store the first token and return true.\nbool Lexer::SkipLineComment(Token &Result, const char *CurPtr, bool &TokAtPhysicalStartOfLine) {\n  while (true) {\n    if (C != 0) {\n      // If there was space between the backslash and newline, warn about it.\n      if (HasSpace && !isLexingRawMode())\n        Diag(EscapePtr, diag::backslash_newline_space);"},{zb,2474,"/// isBlockCommentEndOfEscapedNewLine - Return true if the specified newline\n/// character (either \\\\n or \\\\r) is part of an escaped newline sequence.  Issue\n/// a diagnostic if so.  We know that the newline is inside of a block comment.\nstatic bool isEndOfBlockCommentWithEscapedNewLine(const char *CurPtr, Lexer *L, bool Trigraphs) {\n  // If there was space between the backslash and newline, warn about it.\n  if (SpacePos && !L->isLexingRawMode())\n    L->Diag(SpacePos, diag::backslash_newline_space);"}}
[g]={s,1236199783,r}
},
},
["err_32_bit_builtin_64_bit_tgt"]={
["err_32_bit_builtin_64_bit_tgt"]={
[f]="this builtin is only available on 32-bit targets",
[f]="this builtin is only available on 32-bit targets",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="this builtin is only available on 32-bit targets",
[g]="this builtin is only available on 32-bit targets",
[c]=m,
[i]=m,
[b]="this builtin is only available on 32\\-bit targets",
[j]="this builtin is only available on 32\\-bit targets",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"51738f834ed9",1524773686,"[X86] Make __builtin_ia32_readeflags_u32 and __builtin_ia32_writeeflags_u32 only available on 32-bit..."}
[d]={"51738f834ed9",1524773686,"[X86] Make __builtin_ia32_readeflags_u32 and __builtin_ia32_writeeflags_u32 only available on 32-bit..."},
[k]={{s,5653,"bool Sema::CheckX86BuiltinFunctionCall(const TargetInfo &TI, unsigned BuiltinID, CallExpr *TheCall) {\n  if (TT.getArch() != llvm::Triple::x86 && isX86_32Builtin(BuiltinID))\n    return Diag(TheCall->getCallee()->getBeginLoc(), diag::err_32_bit_builtin_64_bit_tgt);"}}
},
},
["err_64_bit_builtin_32_bit_tgt"]={
["err_64_bit_builtin_32_bit_tgt"]={
[f]="this builtin is only available on 64-bit targets",
[f]="this builtin is only available on 64-bit targets",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="this builtin is only available on 64-bit targets",
[g]="this builtin is only available on 64-bit targets",
[c]=m,
[i]=m,
[b]="this builtin is only available on 64\\-bit targets",
[j]="this builtin is only available on 64\\-bit targets",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"239eec732ebf",1428623896,"Add Clang support for remaining integer divide and permute instructions from ISA 2.06"}
[d]={"239eec732ebf",1428623896,"Add Clang support for remaining integer divide and permute instructions from ISA 2.06"},
[k]={{s,3968,"bool Sema::CheckPPCBuiltinFunctionCall(const TargetInfo &TI, unsigned BuiltinID, CallExpr *TheCall) {\n  if (isPPC_64Builtin(BuiltinID) && !IsTarget64Bit)\n    return Diag(TheCall->getBeginLoc(), diag::err_64_bit_builtin_32_bit_tgt) << TheCall->getSourceRange();"}}
},
},
["err__Pragma_malformed"]={
["err__Pragma_malformed"]={
[f]="_Pragma takes a parenthesized string literal",
[f]="_Pragma takes a parenthesized string literal",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="_Pragma takes a parenthesized string literal",
[i]=m,
[j]="_Pragma takes a parenthesized string literal",
[j]="_Pragma takes a parenthesized string literal",
[c]=m,
[b]=a,
[b]="_Pragma takes a parenthesized string literal",
[h]=gb,
[i]=a,
[d]={A,1236199783,z},
[h]=t,
[k]={{Ib,209,"/// Handle_Pragma - Read a _Pragma directive, slice it up, process it, then\n/// return the first token after the directive.  The _Pragma token has just\n/// been read into \'Tok\'.\nvoid Preprocessor::Handle_Pragma(Token &Tok) {\n  if (Tok.isNot(tok::l_paren)) {\n    Diag(PragmaLoc, diag::err__Pragma_malformed);"},{Ib,216,"/// Handle_Pragma - Read a _Pragma directive, slice it up, process it, then\n/// return the first token after the directive.  The _Pragma token has just\n/// been read into \'Tok\'.\nvoid Preprocessor::Handle_Pragma(Token &Tok) {\n  if (!tok::isStringLiteral(Tok.getKind())) {\n    Diag(PragmaLoc, diag::err__Pragma_malformed);"},{Ib,242,"/// Handle_Pragma - Read a _Pragma directive, slice it up, process it, then\n/// return the first token after the directive.  The _Pragma token has just\n/// been read into \'Tok\'.\nvoid Preprocessor::Handle_Pragma(Token &Tok) {\n  if (Tok.isNot(tok::r_paren)) {\n    Diag(PragmaLoc, diag::err__Pragma_malformed);"},{Ib,258,"/// Handle_Pragma - Read a _Pragma directive, slice it up, process it, then\n/// return the first token after the directive.  The _Pragma token has just\n/// been read into \'Tok\'.\nvoid Preprocessor::Handle_Pragma(Token &Tok) {\n  if (Invalid) {\n    Diag(PragmaLoc, diag::err__Pragma_malformed);"},{Ib,352,"/// HandleMicrosoft__pragma - Like Handle_Pragma except the pragma text\n/// is not enclosed within a string literal.\nvoid Preprocessor::HandleMicrosoft__pragma(Token &Tok) {\n  if (Tok.isNot(tok::l_paren)) {\n    Diag(PragmaLoc, diag::err__Pragma_malformed);"}}
[g]={s,1236199783,r}
},
},
["err_abi_tag_on_redeclaration"]={
["err_abi_tag_on_redeclaration"]={
[f]="cannot add \'abi_tag\' attribute in a redeclaration",
[f]="cannot add \'abi_tag\' attribute in a redeclaration",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="cannot add \'abi_tag\' attribute in a redeclaration",
[i]=m,
[j]="cannot add \'abi_tag\' attribute in a redeclaration",
[j]="cannot add \'abi_tag\' attribute in a redeclaration",
[c]=m,
[b]=a,
[b]="cannot add \'abi_tag\' attribute in a redeclaration",
[h]=o,
[i]=a,
[d]={"bf17ecf59a9b",1457537453,"[GCC] PR23529 Sema part of attrbute abi_tag support"},
[h]=n,
[k]={{q,2943,"/// mergeDeclAttributes - Copy attributes from the Old decl to the New one.\nvoid Sema::mergeDeclAttributes(NamedDecl *New, Decl *Old, AvailabilityMergeKind AMK) {\n  // Re-declaration cannot add abi_tag\'s.\n  if (const auto *NewAbiTagAttr = New->getAttr<AbiTagAttr>()) {\n    if (const auto *OldAbiTagAttr = Old->getAttr<AbiTagAttr>()) {\n    } else {\n      Diag(NewAbiTagAttr->getLocation(), diag::err_abi_tag_on_redeclaration);"}}
[g]={"bf17ecf59a9b",1457537453,"[GCC] PR23529 Sema part of attrbute abi_tag support"}
},
},
["err_abstract_type_in_decl"]={
["err_abstract_type_in_decl"]={
[f]="... type A is an abstract class",
[f]="... type A is an abstract class",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{return|parameter|variable|field|instance variable|synthesized instance variable}0 type %1 is an abstract class",
[g]="%select{return|parameter|variable|field|instance variable|synthesized instance variable}0 type %1 is an abstract class",
[c]=m,
[i]=m,
[b]="(?:return|parameter|variable|field|instance variable|synthesized instance variable) type (.*?) is an abstract class",
[j]="(?:return|parameter|variable|field|instance variable|synthesized instance variable) type (.*?) is an abstract class",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"576cc6f725a8",1237753097,"Disallow abstract types where appropriate."}
[d]={"576cc6f725a8",1237753097,"Disallow abstract types where appropriate."},
[k]={{s,14868,"/// CheckParmsForFunctionDef - Check that the parameters of the given\n/// function are appropriate for the definition of a function. This\n/// takes care of any checks that cannot be performed on the\n/// declaration itself, e.g., that the types of each of the function\n/// parameters are complete.\nbool Sema::CheckParmsForFunctionDef(ArrayRef<ParmVarDecl *> Parameters, bool CheckParameterNames) {\n  for (ParmVarDecl *Param : Parameters) {\n    if (!Param->isInvalidDecl() && (RequireCompleteType(Param->getLocation(), Param->getType(), diag::err_typecheck_decl_incomplete_type) || RequireNonAbstractType(Param->getBeginLoc(), Param->getOriginalType(), diag::err_abstract_type_in_decl, AbstractParamType))) {"},{q,11533,"/// AddInitializerToDecl - Adds the initializer Init to the\n/// declaration dcl. If DirectInit is true, this is C++ direct\n/// initialization rather than copy initialization.\nvoid Sema::AddInitializerToDecl(Decl *RealDecl, Expr *Init, bool DirectInit) {\n  if (!VDecl->getType()->isDependentType()) {\n    if (RequireNonAbstractType(VDecl->getLocation(), VDecl->getType(), diag::err_abstract_type_in_decl, AbstractVariableType))"},{q,11915,"/// ActOnInitializerError - Given that there was an error parsing an\n/// initializer for the given declaration, try to at least re-establish\n/// invariants such as whether a variable\'s type is either dependent or\n/// complete.\nvoid Sema::ActOnInitializerError(Decl *D) {\n  if (RequireNonAbstractType(VD->getLocation(), Ty, diag::err_abstract_type_in_decl, AbstractVariableType)) {"},{q,12028,"void Sema::ActOnUninitializedDecl(Decl *RealDecl) {\n  if (VarDecl *Var = dyn_cast<VarDecl>(RealDecl)) {\n    case VarDecl::DeclarationOnly:\n      if (!Type->isDependentType() && !Var->isInvalidDecl() && RequireNonAbstractType(Var->getLocation(), Type, diag::err_abstract_type_in_decl, AbstractVariableType))"},{q,12107,"void Sema::ActOnUninitializedDecl(Decl *RealDecl) {\n  if (VarDecl *Var = dyn_cast<VarDecl>(RealDecl)) {\n    if (RequireNonAbstractType(Var->getLocation(), Type, diag::err_abstract_type_in_decl, AbstractVariableType)) {"},{q,13395,"Decl *Sema::ActOnStartOfFunctionDef(Scope *FnBodyScope, Decl *D, SkipBodyInfo *SkipBody, FnBodyKind BodyKind) {\n  if (!ResultType->isDependentType() && !ResultType->isVoidType() && !FD->isInvalidDecl() && BodyKind != FnBodyKind::Delete && (RequireCompleteType(FD->getLocation(), ResultType, diag::err_func_def_incomplete_result) || RequireNonAbstractType(FD->getLocation(), FD->getReturnType(), diag::err_abstract_type_in_decl, AbstractReturnType)))"},{q,15892,"/// Build a new FieldDecl and check its well-formedness.\n///\n/// This routine builds a new FieldDecl given the fields name, type,\n/// record, etc. \\p PrevDecl should refer to any previous declaration\n/// with the same name and in the same scope as the field to be\n/// created.\n///\n/// \\returns a new FieldDecl.\n///\n/// \\todo The Declarator argument is a hack. It will be removed once\nFieldDecl *Sema::CheckFieldDecl(DeclarationName Name, QualType T, TypeSourceInfo *TInfo, RecordDecl *Record, SourceLocation Loc, bool Mutable, Expr *BitWidth, InClassInitStyle InitStyle, SourceLocation TSSL, AccessSpecifier AS, NamedDecl *PrevDecl, Declarator *D) {\n  if (!InvalidDecl && RequireNonAbstractType(Loc, T, diag::err_abstract_type_in_decl, AbstractFieldType))"},{q,16531,"void Sema::ActOnFields(Scope *S, SourceLocation RecLoc, Decl *EnclosingDecl, ArrayRef<Decl *> Fields, SourceLocation LBrac, SourceLocation RBrac, const ParsedAttributesView &Attrs) {\n  for (ArrayRef<Decl *>::iterator i = Fields.begin(), end = Fields.end(); i != end; ++i) {\n    if (FDTy->isFunctionType()) {\n    } else if (FDTy->isIncompleteArrayType() && (Record || isa<ObjCContainerDecl>(EnclosingDecl))) {\n    } else if (!FDTy->isDependentType() && RequireCompleteSizedType(FD->getLocation(), FD->getType(), diag::err_field_incomplete_or_sizeless)) {\n    } else if (const RecordType *FDTTy = FDTy->getAs<RecordType>()) {\n      if (isa<ObjCContainerDecl>(EnclosingDecl) && RequireNonAbstractType(FD->getLocation(), FD->getType(), diag::err_abstract_type_in_decl, AbstractIvarType)) {"},{v,5185,"#include \"clang/AST/TypeLocNodes.def\"\n  CheckPolymorphic(PointerTypeLoc) CheckPolymorphic(ReferenceTypeLoc) CheckPolymorphic(MemberPointerTypeLoc) CheckPolymorphic(BlockPointerTypeLoc) CheckPolymorphic(AtomicTypeLoc)\n    // It matched; do some magic.\n    // FIXME: These should be at most warnings. See P0929R2, CWG1640, CWG1646.\n    if (Sel == Sema::AbstractArrayType) {\n    } else {\n      Info.S.Diag(Ctx->getLocation(), diag::err_abstract_type_in_decl) << Sel << T << TL.getSourceRange();"},{v,14202,"/// Perform semantic analysis for the variable declaration that\n/// occurs within a C++ catch clause, returning the newly-created\n/// variable.\nVarDecl *Sema::BuildExceptionDeclaration(Scope *S, TypeSourceInfo *TInfo, SourceLocation StartLoc, SourceLocation Loc, IdentifierInfo *Name) {\n  if (!Invalid && !ExDeclType->isDependentType() && RequireNonAbstractType(Loc, ExDeclType, diag::err_abstract_type_in_decl, AbstractVariableType))"},{P,1086,"/// ActOnPropertyImplDecl - This routine performs semantic checks and\n/// builds the AST node for a property implementation declaration; declared\n/// as \\@synthesize or \\@dynamic.\n///\nDecl *Sema::ActOnPropertyImplDecl(Scope *S, SourceLocation AtLoc, SourceLocation PropertyLoc, bool Synthesize, IdentifierInfo *PropertyId, IdentifierInfo *PropertyIvar, SourceLocation PropertyIvarLoc, ObjCPropertyQueryKind QueryKind) {\n  // Check that we have a valid, previously declared ivar for @synthesize\n  if (Synthesize) {\n    if (!Ivar) {\n      if (RequireNonAbstractType(PropertyIvarLoc, PropertyIvarType, diag::err_abstract_type_in_decl, AbstractSynthesizedIvarType)) {"}}
},
},
["err_access"]={
["err_access"]={
[f]="A is a ... member of B",
[f]="A is a ... member of B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%1 is a %select{private|protected}0 member of %3",
[g]="%1 is a %select{private|protected}0 member of %3",
[c]=m,
[i]=m,
[b]="(.*?) is a (?:private|protected) member of (.*?)",
[j]="(.*?) is a (?:private|protected) member of (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={mc,1268716967,fc}
[d]={qb,1268716967,sb},
[k]={{S,1435,"Sema::AccessResult Sema::CheckUnresolvedLookupAccess(UnresolvedLookupExpr *E, DeclAccessPair Found) {\n  Entity.setDiag(diag::err_access) << E->getSourceRange();"},{S,1451,"/// Perform access-control checking on a previously-unresolved member\n/// access which has now been resolved to a member.\nSema::AccessResult Sema::CheckUnresolvedMemberAccess(UnresolvedMemberExpr *E, DeclAccessPair Found) {\n  Entity.setDiag(diag::err_access) << E->getSourceRange();"},{S,1574,"/// Checks access to an overloaded operator new or delete.\nSema::AccessResult Sema::CheckAllocationAccess(SourceLocation OpLoc, SourceRange PlacementRange, CXXRecordDecl *NamingClass, DeclAccessPair Found, bool Diagnose) {\n  if (Diagnose)\n    Entity.setDiag(diag::err_access) << PlacementRange;"},{S,1608,"Sema::AccessResult Sema::CheckMemberOperatorAccess(SourceLocation OpLoc, Expr *ObjectExpr, const SourceRange &Range, DeclAccessPair Found) {\n  Entity.setDiag(diag::err_access) << ObjectExpr->getSourceRange() << Range;"},{S,1666,"Sema::AccessResult Sema::CheckAddressOfMemberAccess(Expr *OvlExpr, DeclAccessPair Found) {\n  Entity.setDiag(diag::err_access) << Ovl->getSourceRange();"},{S,1714,"/// Checks access to all the declarations in the given result set.\nvoid Sema::CheckLookupAccess(const LookupResult &R) {\n  for (LookupResult::iterator I = R.begin(), E = R.end(); I != E; ++I) {\n    if (I.getAccess() != AS_public) {\n      Entity.setDiag(diag::err_access);"}}
},
},
["err_access_base_ctor"]={
["err_access_base_ctor"]={
[f]="... A has ... ...constructor",
[f]="... A has ... ...constructor",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{base class|inherited virtual base class}0 %1 has %select{private|protected}3 %select{default |copy |move |*ERROR* |*ERROR* |*ERROR*|}2constructor",
[g]="%select{base class|inherited virtual base class}0 %1 has %select{private|protected}3 %select{default |copy |move |*ERROR* |*ERROR* |*ERROR*|}2constructor",
[c]=m,
[i]=m,
[b]="(?:base class|inherited virtual base class) (.*?) has (?:private|protected) (?:default |copy |move |)constructor",
[j]="(?:base class|inherited virtual base class) (.*?) has (?:private|protected) (?:default |copy |move |)constructor",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"80f00ff95d3b",1305054494,"Re-do R131114 without breaking code."}
[d]={"80f00ff95d3b",1305054494,"Re-do R131114 without breaking code."},
[k]={{S,1513,"/// Checks access to a constructor.\nSema::AccessResult Sema::CheckConstructorAccess(SourceLocation UseLoc, CXXConstructorDecl *Constructor, DeclAccessPair Found, const InitializedEntity &Entity, bool IsCopyBindingRefToTemp) {\n  case InitializedEntity::EK_Base:\n    PD = PDiag(diag::err_access_base_ctor);"}}
},
},
["err_access_ctor"]={
["err_access_ctor"]={
[f]="calling a ... constructor of class A",
[f]="calling a ... constructor of class A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="calling a %select{private|protected}0 constructor of class %2",
[g]="calling a %select{private|protected}0 constructor of class %2",
[c]=m,
[i]=m,
[b]="calling a (?:private|protected) constructor of class (.*?)",
[j]="calling a (?:private|protected) constructor of class (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={mc,1268716967,fc}
[d]={qb,1268716967,sb},
[k]={{S,1508,"/// Checks access to a constructor.\nSema::AccessResult Sema::CheckConstructorAccess(SourceLocation UseLoc, CXXConstructorDecl *Constructor, DeclAccessPair Found, const InitializedEntity &Entity, bool IsCopyBindingRefToTemp) {\n  default:\n    PD = PDiag(IsCopyBindingRefToTemp ? diag::ext_rvalue_to_reference_access_ctor : diag::err_access_ctor);"}}
},
},
["err_access_decl"]={
["err_access_decl"]={
[f]="ISO C++11 does not allow access declarations; use using declarations instead",
[f]="ISO C++11 does not allow access declarations; use using declarations instead",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="ISO C++11 does not allow access declarations; use using declarations instead",
[g]="ISO C++11 does not allow access declarations; use using declarations instead",
[c]=m,
[i]=m,
[b]="ISO C\\+\\+11 does not allow access declarations; use using declarations instead",
[j]="ISO C\\+\\+11 does not allow access declarations; use using declarations instead",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"f026b600992d",1371089537,"In C++11, promote access declaration diagnostic from warning to error. There"}
[d]={"f026b600992d",1371089537,"In C++11, promote access declaration diagnostic from warning to error. There"},
[k]={{v,10379,"Decl *Sema::ActOnUsingDeclaration(Scope *S, AccessSpecifier AS, SourceLocation UsingLoc, SourceLocation TypenameLoc, CXXScopeSpec &SS, UnqualifiedId &Name, SourceLocation EllipsisLoc, const ParsedAttributesView &AttrList) {\n  // Warn about access declarations.\n  if (UsingLoc.isInvalid()) {\n    Diag(Name.getBeginLoc(), getLangOpts().CPlusPlus11 ? diag::err_access_decl : diag::warn_access_decl_deprecated) << FixItHint::CreateInsertion(SS.getRange().getBegin(), \"using \");"}}
},
},
["err_access_dtor"]={
["err_access_dtor"]={
[f]="calling a ... destructor of class A",
[f]="calling a ... destructor of class A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="calling a %select{private|protected}1 destructor of class %0",
[g]="calling a %select{private|protected}1 destructor of class %0",
[c]=m,
[i]=m,
[b]="calling a (?:private|protected) destructor of class (.*?)",
[j]="calling a (?:private|protected) destructor of class (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"fa7781384ebb",1296575411,"Implement access checking for the \"delete\" operator. Fixes PR9050,"}
[d]={"fa7781384ebb",1296575411,"Implement access checking for the \"delete\" operator. Fixes PR9050,"},
[k]={{x,3204,"/// ActOnCXXDelete - Parsed a C++ \'delete\' expression (C++ 5.3.5), as in:\n/// @code ::delete ptr; @endcode\n/// or\n/// @code delete [] ptr; @endcode\nExprResult Sema::ActOnCXXDelete(SourceLocation StartLoc, bool UseGlobal, bool ArrayForm, Expr *ExE) {\n  if (!Ex.get()->isTypeDependent()) {\n    if (PointeeRD) {\n      if (CXXDestructorDecl *Dtor = LookupDestructor(PointeeRD)) {\n        CheckDestructorAccess(Ex.get()->getExprLoc(), Dtor, PDiag(diag::err_access_dtor) << PointeeElem);"}}
},
},
["err_access_dtor_base"]={
["err_access_dtor_base"]={
[f]="base class A has ... destructor",
[f]="base class A has ... destructor",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="base class %0 has %select{private|protected}1 destructor",
[g]="base class %0 has %select{private|protected}1 destructor",
[c]=m,
[i]=m,
[b]="base class (.*?) has (?:private|protected) destructor",
[j]="base class (.*?) has (?:private|protected) destructor",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={mc,1268716967,fc}
[d]={qb,1268716967,sb},
[k]={{v,4964,"void Sema::MarkBaseAndMemberDestructorsReferenced(SourceLocation Location, CXXRecordDecl *ClassDecl) {\n  // Bases.\n  for (const auto &Base : ClassDecl->bases()) {\n    CheckDestructorAccess(Base.getBeginLoc(), Dtor, PDiag(diag::err_access_dtor_base) << Base.getType() << Base.getSourceRange(), Context.getTypeDeclType(ClassDecl));"}}
},
},
["err_access_dtor_exception"]={
["err_access_dtor_exception"]={
[f]="exception object of type A has ... destructor",
[f]="exception object of type A has ... destructor",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="exception object of type %0 has %select{private|protected}1 destructor",
[g]="exception object of type %0 has %select{private|protected}1 destructor",
[c]=m,
[i]=m,
[b]="exception object of type (.*?) has (?:private|protected) destructor",
[j]="exception object of type (.*?) has (?:private|protected) destructor",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"442612c2853f",1278542113,"Do not use CXXZeroValueInitExpr for class types. Instead, use"}
[d]={"442612c2853f",1278542113,"Do not use CXXZeroValueInitExpr for class types. Instead, use"},
[k]={{x,924,"/// CheckCXXThrowOperand - Validate the operand of a throw.\nbool Sema::CheckCXXThrowOperand(SourceLocation ThrowLoc, QualType ExceptionObjectTy, Expr *E) {\n  // If the class has a destructor, we must be able to call it.\n  if (!RD->hasIrrelevantDestructor()) {\n    if (CXXDestructorDecl *Destructor = LookupDestructor(RD)) {\n      CheckDestructorAccess(E->getExprLoc(), Destructor, PDiag(diag::err_access_dtor_exception) << Ty);"}}
},
},
["err_access_dtor_field"]={
["err_access_dtor_field"]={
[f]="field of type A has ... destructor",
[f]="field of type A has ... destructor",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="field of type %1 has %select{private|protected}2 destructor",
[g]="field of type %1 has %select{private|protected}2 destructor",
[c]=m,
[i]=m,
[b]="field of type (.*?) has (?:private|protected) destructor",
[j]="field of type (.*?) has (?:private|protected) destructor",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={mc,1268716967,fc}
[d]={qb,1268716967,sb},
[k]={{v,4917,"void Sema::MarkBaseAndMemberDestructorsReferenced(SourceLocation Location, CXXRecordDecl *ClassDecl) {\n  // Non-static data members.\n  for (auto *Field : ClassDecl->fields()) {\n    CheckDestructorAccess(Field->getLocation(), Dtor, PDiag(diag::err_access_dtor_field) << Field->getDeclName() << FieldType);"}}
},
},
["err_access_dtor_ivar"]={
["err_access_dtor_ivar"]={
[f]="instance variable of type A has ... destructor",
[f]="instance variable of type A has ... destructor",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="instance variable of type %0 has %select{private|protected}1 destructor",
[g]="instance variable of type %0 has %select{private|protected}1 destructor",
[c]=m,
[i]=m,
[b]="instance variable of type (.*?) has (?:private|protected) destructor",
[j]="instance variable of type (.*?) has (?:private|protected) destructor",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"527786ea3a6a",1274322262,"Various small fixes for construction/destruction of Objective-C++"}
[d]={"527786ea3a6a",1274322262,"Various small fixes for construction/destruction of Objective-C++"},
[k]={{v,15810,"/// SetIvarInitializers - This routine builds initialization ASTs for the\n/// Objective-C implementation whose ivars need be initialized.\nvoid Sema::SetIvarInitializers(ObjCImplementationDecl *ObjCImplementation) {\n  if (ObjCInterfaceDecl *OID = ObjCImplementation->getClassInterface()) {\n    for (unsigned i = 0; i < ivars.size(); i++) {\n      // Be sure that the destructor is accessible and is marked as referenced.\n      if (const RecordType *RecordTy = Context.getBaseElementType(Field->getType())->getAs<RecordType>()) {\n        if (CXXDestructorDecl *Destructor = LookupDestructor(RD)) {\n          CheckDestructorAccess(Field->getLocation(), Destructor, PDiag(diag::err_access_dtor_ivar) << Context.getBaseElementType(Field->getType()));"}}
},
},
["err_access_dtor_temp"]={
["err_access_dtor_temp"]={
[f]="temporary of type A has ... destructor",
[f]="temporary of type A has ... destructor",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="temporary of type %0 has %select{private|protected}1 destructor",
[g]="temporary of type %0 has %select{private|protected}1 destructor",
[c]=m,
[i]=m,
[b]="temporary of type (.*?) has (?:private|protected) destructor",
[j]="temporary of type (.*?) has (?:private|protected) destructor",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"8e36d53e34be",1270600906,"Check access for the implicit calls to destructors that occur when we"}
[d]={"8e36d53e34be",1270600906,"Check access for the implicit calls to destructors that occur when we"},
[k]={{x,6354,"ExprResult Sema::MaybeBindToTemporary(Expr *E) {\n  if (Destructor) {\n    CheckDestructorAccess(E->getExprLoc(), Destructor, PDiag(diag::err_access_dtor_temp) << E->getType());"},{x,6504,"/// Process the expression contained within a decltype. For such expressions,\n/// certain semantic checks on temporaries are delayed until this point, and\n/// are omitted for the \'topmost\' call in the decltype expression. If the\n/// topmost call bound a temporary, strip that temporary off the expression.\nExprResult Sema::ActOnDecltypeExpression(Expr *E) {\n  // Now all relevant types are complete, check the destructors are accessible\n  // and non-deleted, and annotate them on the temporaries.\n  for (unsigned I = 0, N = ExprEvalContexts.back().DelayedDecltypeBinds.size(); I != N; ++I) {\n    CheckDestructorAccess(Bind->getExprLoc(), Destructor, PDiag(diag::err_access_dtor_temp) << Bind->getType());"},{E,1560,"/// Check if the type of a class element has an accessible destructor, and marks\n/// it referenced. Returns true if we shouldn\'t form a reference to the\n/// destructor.\n///\n/// Aggregate initialization requires a class element\'s destructor be\n/// accessible per 11.6.1 [dcl.init.aggr]:\n///\n/// The destructor for each element of class type is potentially invoked\n/// (15.4 [class.dtor]) from the context where the aggregate initialization\n/// occurs.\nstatic bool checkDestructorReference(QualType ElementType, SourceLocation Loc, Sema &SemaRef) {\n  SemaRef.CheckDestructorAccess(Loc, Destructor, SemaRef.PDiag(diag::err_access_dtor_temp) << ElementType);"},{E,7604,"ExprResult InitializationSequence::Perform(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, MultiExprArg Args, QualType *ResultType) {\n  for (step_iterator Step = step_begin(), StepEnd = step_end(); Step != StepEnd; ++Step) {\n    case SK_UserConversion: {\n      if (shouldBindAsTemporary(Entity))\n      else if (CreatedObject && shouldDestroyEntity(Entity)) {\n        if (const RecordType *Record = T->getAs<RecordType>()) {\n          S.CheckDestructorAccess(CurInit.get()->getBeginLoc(), Destructor, S.PDiag(diag::err_access_dtor_temp) << T);"}}
},
},
["err_access_dtor_var"]={
["err_access_dtor_var"]={
[f]="variable of type A has ... destructor",
[f]="variable of type A has ... destructor",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="variable of type %1 has %select{private|protected}2 destructor",
[g]="variable of type %1 has %select{private|protected}2 destructor",
[c]=m,
[i]=m,
[b]="variable of type (.*?) has (?:private|protected) destructor",
[j]="variable of type (.*?) has (?:private|protected) destructor",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={mc,1268716967,fc}
[d]={qb,1268716967,sb},
[k]={{v,13572,"void Sema::FinalizeVarWithDestructor(VarDecl *VD, const RecordType *Record) {\n  // If this is an array, we\'ll require the destructor during initialization, so\n  // we can skip over this. We still want to emit exit-time destructor warnings\n  // though.\n  if (!VD->getType()->isArrayType()) {\n    CheckDestructorAccess(VD->getLocation(), Destructor, PDiag(diag::err_access_dtor_var) << VD->getDeclName() << VD->getType());"}}
},
},
["err_access_dtor_vbase"]={
["err_access_dtor_vbase"]={
[f]="inherited virtual base class A has ... destructor",
[f]="inherited virtual base class A has ... destructor",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="inherited virtual base class %1 has %select{private|protected}2 destructor",
[g]="inherited virtual base class %1 has %select{private|protected}2 destructor",
[c]=m,
[i]=m,
[b]="inherited virtual base class (.*?) has (?:private|protected) destructor",
[j]="inherited virtual base class (.*?) has (?:private|protected) destructor",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={mc,1268716967,fc}
[d]={qb,1268716967,sb},
[k]={{v,4995,"void Sema::MarkVirtualBaseDestructorsReferenced(SourceLocation Location, CXXRecordDecl *ClassDecl, llvm::SmallPtrSetImpl<const RecordType *> *DirectVirtualBases) {\n  // Virtual bases.\n  for (const auto &VBase : ClassDecl->vbases()) {\n    if (CheckDestructorAccess(ClassDecl->getLocation(), Dtor, PDiag(diag::err_access_dtor_vbase) << Context.getTypeDeclType(ClassDecl) << VBase.getType(), Context.getTypeDeclType(ClassDecl)) == AR_accessible) {"},{v,4996,"void Sema::MarkVirtualBaseDestructorsReferenced(SourceLocation Location, CXXRecordDecl *ClassDecl, llvm::SmallPtrSetImpl<const RecordType *> *DirectVirtualBases) {\n  // Virtual bases.\n  for (const auto &VBase : ClassDecl->vbases()) {\n    if (CheckDestructorAccess(ClassDecl->getLocation(), Dtor, PDiag(diag::err_access_dtor_vbase) << Context.getTypeDeclType(ClassDecl) << VBase.getType(), Context.getTypeDeclType(ClassDecl)) == AR_accessible) {\n      CheckDerivedToBaseConversion(Context.getTypeDeclType(ClassDecl), VBase.getType(), diag::err_access_dtor_vbase, 0, ClassDecl->getLocation(), SourceRange(), DeclarationName(), nullptr);"}}
},
},
["err_access_field_ctor"]={
["err_access_field_ctor"]={
[f]="field of type A has ... ...constructor",
[f]="field of type A has ... ...constructor",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="field of type %0 has %select{private|protected}2 %select{default |copy |move |*ERROR* |*ERROR* |*ERROR* |}1constructor",
[g]="field of type %0 has %select{private|protected}2 %select{default |copy |move |*ERROR* |*ERROR* |*ERROR* |}1constructor",
[c]=m,
[i]=m,
[b]="field of type (.*?) has (?:private|protected) (?:default |copy |move |)constructor",
[j]="field of type (.*?) has (?:private|protected) (?:default |copy |move |)constructor",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"80f00ff95d3b",1305054494,"Re-do R131114 without breaking code."}
[d]={"80f00ff95d3b",1305054494,"Re-do R131114 without breaking code."},
[k]={{S,1520,"/// Checks access to a constructor.\nSema::AccessResult Sema::CheckConstructorAccess(SourceLocation UseLoc, CXXConstructorDecl *Constructor, DeclAccessPair Found, const InitializedEntity &Entity, bool IsCopyBindingRefToTemp) {\n  case InitializedEntity::EK_ParenAggInitMember: {\n    PD = PDiag(diag::err_access_field_ctor);"}}
},
},
["err_access_friend_function"]={
["err_access_friend_function"]={
[f]="friend function A is a ... member of B",
[f]="friend function A is a ... member of B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="friend function %1 is a %select{private|protected}0 member of %3",
[g]="friend function %1 is a %select{private|protected}0 member of %3",
[c]=m,
[i]=m,
[b]="friend function (.*?) is a (?:private|protected) member of (.*?)",
[j]="friend function (.*?) is a (?:private|protected) member of (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"a0a96895501e",1344568535,"Check access to friend declarations.  There\'s a number of different"}
[d]={"a0a96895501e",1344568535,"Check access to friend declarations.  There\'s a number of different"},
[k]={{S,1641,"/// Checks access to the target of a friend declaration.\nSema::AccessResult Sema::CheckFriendAccess(NamedDecl *target) {\n  entity.setDiag(diag::err_access_friend_function) << (method->getQualifier() ? method->getQualifierLoc().getSourceRange() : method->getNameInfo().getSourceRange());"}}
},
},
["err_access_lambda_capture"]={
["err_access_lambda_capture"]={
[f]="capture of variable \'A\' as type B calls ... ...constructor",
[f]="capture of variable \'A\' as type B calls ... ...constructor",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="capture of variable \'%0\' as type %1 calls %select{private|protected}3 %select{default |copy |move |*ERROR* |*ERROR* |*ERROR* |}2constructor",
[g]="capture of variable \'%0\' as type %1 calls %select{private|protected}3 %select{default |copy |move |*ERROR* |*ERROR* |*ERROR* |}2constructor",
[c]=m,
[i]=m,
[b]="capture of variable \'(.*?)\' as type (.*?) calls (?:private|protected) (?:default |copy |move |)constructor",
[j]="capture of variable \'(.*?)\' as type (.*?) calls (?:private|protected) (?:default |copy |move |)constructor",
[i]=a,
[b]=a,
[h]=Q,
[h]="Lambda Issue",
[g]={"19666fb1aa7d",1329325046,"Introduce a new initialization entity for lambda captures, and"}
[d]={"19666fb1aa7d",1329325046,"Introduce a new initialization entity for lambda captures, and"},
[k]={{S,1527,"/// Checks access to a constructor.\nSema::AccessResult Sema::CheckConstructorAccess(SourceLocation UseLoc, CXXConstructorDecl *Constructor, DeclAccessPair Found, const InitializedEntity &Entity, bool IsCopyBindingRefToTemp) {\n  case InitializedEntity::EK_LambdaCapture: {\n    PD = PDiag(diag::err_access_lambda_capture);"}}
},
},
["err_access_specifier_interface"]={
["err_access_specifier_interface"]={
[f]="interface types cannot specify \'...\' access",
[f]="interface types cannot specify \'...\' access",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="interface types cannot specify \'%select{private|protected}0\' access",
[g]="interface types cannot specify \'%select{private|protected}0\' access",
[c]=m,
[i]=m,
[b]="interface types cannot specify \'(?:private|protected)\' access",
[j]="interface types cannot specify \'(?:private|protected)\' access",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={"db632ac004ae",1348558359,"Fix for r163013 regression and further __interface enhancement."}
[d]={"db632ac004ae",1348558359,"Fix for r163013 regression and further __interface enhancement."},
[k]={{K,2937,"Parser::DeclGroupPtrTy Parser::ParseCXXClassMemberDeclarationWithPragmas(AccessSpecifier &AS, ParsedAttributes &AccessAttrs, DeclSpec::TST TagType, Decl *TagDecl) {\n  case tok::kw_protected: {\n    // The Microsoft extension __interface does not permit non-public\n    // access specifiers.\n    if (TagType == DeclSpec::TST_interface && AS != AS_public) {\n      Diag(ASLoc, diag::err_access_specifier_interface) << (AS == AS_protected);"}}
},
},
["err_addr_ovl_ambiguous"]={
["err_addr_ovl_ambiguous"]={
[f]="address of overloaded function A is ambiguous",
[f]="address of overloaded function A is ambiguous",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address of overloaded function %0 is ambiguous",
[g]="address of overloaded function %0 is ambiguous",
[c]=m,
[i]=m,
[b]="address of overloaded function (.*?) is ambiguous",
[j]="address of overloaded function (.*?) is ambiguous",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"b257e4fff8a9",1247096032,"Implement the simple form of overload resolution used when taking the"}
[d]={"b257e4fff8a9",1247096032,"Implement the simple form of overload resolution used when taking the"},
[k]={{Q,10700,"// A helper class to help with address of function resolution\n// - allows us to avoid passing around all those ugly parameters\nclass AddressOfFunctionResolver {\n  void EliminateAllExceptMostSpecializedTemplate() {\n    UnresolvedSetIterator Result = S.getMostSpecialized(MatchesCopy.begin(), MatchesCopy.end(), FailedCandidates, SourceExpr->getBeginLoc(), S.PDiag(), S.PDiag(diag::err_addr_ovl_ambiguous) << Matches[0].second->getDeclName(), S.PDiag(diag::note_ovl_candidate) << (unsigned)oc_function << (unsigned)ocs_described_template, Complain, TargetFunctionType);"},{Q,10763,"// A helper class to help with address of function resolution\n// - allows us to avoid passing around all those ugly parameters\nclass AddressOfFunctionResolver {\n  void ComplainMultipleMatchesFound() const {\n    S.Diag(OvlExpr->getBeginLoc(), diag::err_addr_ovl_ambiguous) << OvlExpr->getName() << OvlExpr->getSourceRange();"},{Q,10998,"/// Given an expression that refers to an overloaded function, try to\n/// resolve that overloaded function expression down to a single function.\n///\n/// This routine can only resolve template-ids that refer to a single function\n/// template, where that template-id refers to a single template whose template\n/// arguments are either provided by the template-id or have defaults,\n/// as described in C++0x [temp.arg.explicit]p3.\n///\n/// If no template-ids are found, no diagnostics are emitted and NULL is\n/// returned.\nFunctionDecl *Sema::ResolveSingleFunctionTemplateSpecialization(OverloadExpr *ovl, bool Complain, DeclAccessPair *FoundResult, TemplateSpecCandidateSet *FailedTSC) {\n  for (UnresolvedSetIterator I = ovl->decls_begin(), E = ovl->decls_end(); I != E; ++I) {\n    // Multiple matches; we can\'t resolve to a single declaration.\n    if (Matched) {\n      if (Complain) {\n        Diag(ovl->getExprLoc(), diag::err_addr_ovl_ambiguous) << ovl->getName();"}}
},
},
["err_addr_ovl_no_qualifier"]={
["err_addr_ovl_no_qualifier"]={
[f]="cannot form member pointer of type A without \'&\' and class name",
[f]="cannot form member pointer of type A without \'&\' and class name",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot form member pointer of type %0 without \'&\' and class name",
[g]="cannot form member pointer of type %0 without \'&\' and class name",
[c]=m,
[i]=m,
[b]="cannot form member pointer of type (.*?) without \'&\' and class name",
[j]="cannot form member pointer of type (.*?) without \'&\' and class name",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"24d189484b44",1282690359,"When trying to resolve the address of an overloaded expression,"}
[d]={"24d189484b44",1282690359,"When trying to resolve the address of an overloaded expression,"},
[k]={{Q,10752,"// A helper class to help with address of function resolution\n// - allows us to avoid passing around all those ugly parameters\nclass AddressOfFunctionResolver {\n  void ComplainIsInvalidFormOfPointerToMemberFunction() const {\n    S.Diag(OvlExpr->getNameLoc(), diag::err_addr_ovl_no_qualifier) << TargetType << OvlExpr->getSourceRange();"}}
},
},
["err_addr_ovl_no_viable"]={
["err_addr_ovl_no_viable"]={
[f]="address of overloaded function A does not match required type B",
[f]="address of overloaded function A does not match required type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address of overloaded function %0 does not match required type %1",
[g]="address of overloaded function %0 does not match required type %1",
[c]=m,
[i]=m,
[b]="address of overloaded function (.*?) does not match required type (.*?)",
[j]="address of overloaded function (.*?) does not match required type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"064fdb2fe844",1271286681,"Always diagnose and complain about problems in"}
[d]={"064fdb2fe844",1271286681,"Always diagnose and complain about problems in"},
[k]={{Q,10729,"// A helper class to help with address of function resolution\n// - allows us to avoid passing around all those ugly parameters\nclass AddressOfFunctionResolver {\n  void ComplainNoMatchesFound() const {\n    S.Diag(OvlExpr->getBeginLoc(), diag::err_addr_ovl_no_viable) << OvlExpr->getName() << TargetFunctionType << OvlExpr->getSourceRange();"}}
},
},
["err_addr_ovl_not_func_ptrref"]={
["err_addr_ovl_not_func_ptrref"]={
[f]="address of overloaded function A cannot be converted to type B",
[f]="address of overloaded function A cannot be converted to type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address of overloaded function %0 cannot be converted to type %1",
[g]="address of overloaded function %0 cannot be converted to type %1",
[c]=m,
[i]=m,
[b]="address of overloaded function (.*?) cannot be converted to type (.*?)",
[j]="address of overloaded function (.*?) cannot be converted to type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"064fdb2fe844",1271286681,"Always diagnose and complain about problems in"}
[d]={"064fdb2fe844",1271286681,"Always diagnose and complain about problems in"},
[k]={{Q,10759,"// A helper class to help with address of function resolution\n// - allows us to avoid passing around all those ugly parameters\nclass AddressOfFunctionResolver {\n  void ComplainOfInvalidConversion() const { S.Diag(OvlExpr->getBeginLoc(), diag::err_addr_ovl_not_func_ptrref) << OvlExpr->getName() << TargetType; }"}}
},
},
["err_address_of_function_with_pass_object_size_params"]={
["err_address_of_function_with_pass_object_size_params"]={
[f]="cannot take address of function A because parameter B has pass_object_size attribute",
[f]="cannot take address of function A because parameter B has pass_object_size attribute",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot take address of function %0 because parameter %1 has pass_object_size attribute",
[g]="cannot take address of function %0 because parameter %1 has pass_object_size attribute",
[c]=m,
[i]=m,
[b]="cannot take address of function (.*?) because parameter (.*?) has pass_object_size attribute",
[j]="cannot take address of function (.*?) because parameter (.*?) has pass_object_size attribute",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"3e3bb95b6951",1449093488,"Add the `pass_object_size` attribute to clang."}
[d]={"3e3bb95b6951",1449093488,"Add the `pass_object_size` attribute to clang."},
[k]={{Q,9045,"/// Returns true if we can take the address of the function.\n///\n/// \\param Complain - If true, we\'ll emit a diagnostic\n/// \\param InOverloadResolution - For the purposes of emitting a diagnostic, are\n///  we in overload resolution?\n/// \\param Loc - The location of the statement we\'re complaining about. Ignored\n///  if we\'re not complaining, or if we\'re in overload resolution.\nstatic bool checkAddressOfFunctionIsAvailable(Sema &S, const FunctionDecl *FD, bool Complain, bool InOverloadResolution, SourceLocation Loc) {\n  if (Complain) {\n    if (InOverloadResolution)\n    else\n      S.Diag(Loc, diag::err_address_of_function_with_pass_object_size_params) << FD << ParamNo;"}}
},
},
["err_address_of_label_outside_fn"]={
["err_address_of_label_outside_fn"]={
[f]="use of address-of-label extension outside of a function body",
[f]="use of address-of-label extension outside of a function body",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="use of address-of-label extension outside of a function body",
[g]="use of address-of-label extension outside of a function body",
[c]=m,
[i]=m,
[b]="use of address\\-of\\-label extension outside of a function body",
[j]="use of address\\-of\\-label extension outside of a function body",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={"9ba479bd2c2c",1298063799,"fix rdar://9024687, a crash on invalid that we used to silently ignore."}
[d]={"9ba479bd2c2c",1298063799,"fix rdar://9024687, a crash on invalid that we used to silently ignore."},
[k]={{kb,1321,"#include \"clang/Basic/TransformTypeTraits.def\"\n  case tok::ampamp: { // unary-expression: \'&&\' identifier\n    if (getCurScope()->getFnParent() == nullptr)\n      return ExprError(Diag(Tok, diag::err_address_of_label_outside_fn));"}}
},
},
["err_address_space_mismatch_templ_inst"]={
["err_address_space_mismatch_templ_inst"]={
[f]="conflicting address space qualifiers are provided between types A and B",
[f]="conflicting address space qualifiers are provided between types A and B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="conflicting address space qualifiers are provided between types %0 and %1",
[g]="conflicting address space qualifiers are provided between types %0 and %1",
[c]=m,
[i]=m,
[b]="conflicting address space qualifiers are provided between types (.*?) and (.*?)",
[j]="conflicting address space qualifiers are provided between types (.*?) and (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"12e3a8af81da",1544029342,"[OpenCL] Diagnose conflicting address spaces in templates."}
[d]={"12e3a8af81da",1544029342,"[OpenCL] Diagnose conflicting address spaces in templates."}
},
},
["err_address_space_qualified_delete"]={
["err_address_space_qualified_delete"]={
[f]="\'delete\' cannot delete objects of type A in address space \'B\'",
[f]="\'delete\' cannot delete objects of type A in address space \'B\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'delete\' cannot delete objects of type %0 in address space \'%1\'",
[g]="\'delete\' cannot delete objects of type %0 in address space \'%1\'",
[c]=m,
[i]=m,
[b]="\'delete\' cannot delete objects of type (.*?) in address space \'(.*?)\'",
[j]="\'delete\' cannot delete objects of type (.*?) in address space \'(.*?)\'",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"39d1a0973db9",1302896780,"Forbid the use of C++ new/delete to allocate/free objects within an"}
[d]={"39d1a0973db9",1302896780,"Forbid the use of C++ new/delete to allocate/free objects within an"},
[k]={{x,3127,"/// ActOnCXXDelete - Parsed a C++ \'delete\' expression (C++ 5.3.5), as in:\n/// @code ::delete ptr; @endcode\n/// or\n/// @code delete [] ptr; @endcode\nExprResult Sema::ActOnCXXDelete(SourceLocation StartLoc, bool UseGlobal, bool ArrayForm, Expr *ExE) {\n  if (!Ex.get()->isTypeDependent()) {\n    if (Pointee.getAddressSpace() != LangAS::Default && !getLangOpts().OpenCLCPlusPlus)\n      return Diag(Ex.get()->getBeginLoc(), diag::err_address_space_qualified_delete) << Pointee.getUnqualifiedType() << Pointee.getQualifiers().getAddressSpaceAttributePrintValue();"}}
},
},
["err_address_space_qualified_new"]={
["err_address_space_qualified_new"]={
[f]="\'new\' cannot allocate objects of type A in address space \'B\'",
[f]="\'new\' cannot allocate objects of type A in address space \'B\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'new\' cannot allocate objects of type %0 in address space \'%1\'",
[g]="\'new\' cannot allocate objects of type %0 in address space \'%1\'",
[c]=m,
[i]=m,
[b]="\'new\' cannot allocate objects of type (.*?) in address space \'(.*?)\'",
[j]="\'new\' cannot allocate objects of type (.*?) in address space \'(.*?)\'",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"39d1a0973db9",1302896780,"Forbid the use of C++ new/delete to allocate/free objects within an"}
[d]={"39d1a0973db9",1302896780,"Forbid the use of C++ new/delete to allocate/free objects within an"},
[k]={{x,2086,"/// Checks that a type is suitable as the allocated type\n/// in a new-expression.\nbool Sema::CheckAllocatedType(QualType AllocType, SourceLocation Loc, SourceRange R) {\n  // C++ 5.3.4p1: \"[The] type shall be a complete object type, but not an\n  //  abstract class type or array thereof.\n  if (AllocType->isFunctionType())\n  else if (AllocType->isReferenceType())\n  else if (!AllocType->isDependentType() && RequireCompleteSizedType(Loc, AllocType, diag::err_new_incomplete_or_sizeless_type, R))\n  else if (RequireNonAbstractType(Loc, AllocType, diag::err_allocation_of_abstract_type))\n  else if (AllocType->isVariablyModifiedType())\n  else if (AllocType.getAddressSpace() != LangAS::Default && !getLangOpts().OpenCLCPlusPlus)\n    return Diag(Loc, diag::err_address_space_qualified_new) << AllocType.getUnqualifiedType() << AllocType.getQualifiers().getAddressSpaceAttributePrintValue();"}}
},
},
["err_addrof_function_constraints_not_satisfied"]={
["err_addrof_function_constraints_not_satisfied"]={
[f]="cannot take address of function A because its constraints are not satisfied",
[f]="cannot take address of function A because its constraints are not satisfied",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot take address of function %0 because its constraints are not satisfied",
[g]="cannot take address of function %0 because its constraints are not satisfied",
[c]=m,
[i]=m,
[b]="cannot take address of function (.*?) because its constraints are not satisfied",
[j]="cannot take address of function (.*?) because its constraints are not satisfied",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={tc,1575555459,oc}
[d]={"349636d2bfc3",1575555459,"Implement VectorType conditional operator GNU extension."},
[k]={{Q,9028,"/// Returns true if we can take the address of the function.\n///\n/// \\param Complain - If true, we\'ll emit a diagnostic\n/// \\param InOverloadResolution - For the purposes of emitting a diagnostic, are\n///  we in overload resolution?\n/// \\param Loc - The location of the statement we\'re complaining about. Ignored\n///  if we\'re not complaining, or if we\'re in overload resolution.\nstatic bool checkAddressOfFunctionIsAvailable(Sema &S, const FunctionDecl *FD, bool Complain, bool InOverloadResolution, SourceLocation Loc) {\n  if (FD->getTrailingRequiresClause()) {\n    if (!Satisfaction.IsSatisfied) {\n      if (Complain) {\n        if (InOverloadResolution) {\n        } else\n          S.Diag(Loc, diag::err_addrof_function_constraints_not_satisfied) << FD;"}}
},
},
["err_addrof_function_disabled_by_enable_if_attr"]={
["err_addrof_function_disabled_by_enable_if_attr"]={
[f]="cannot take address of function A because it has one or more non-tautological enable_if conditions",
[f]="cannot take address of function A because it has one or more non-tautological enable_if conditions",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot take address of function %0 because it has one or more non-tautological enable_if conditions",
[g]="cannot take address of function %0 because it has one or more non-tautological enable_if conditions",
[c]=m,
[i]=m,
[b]="cannot take address of function (.*?) because it has one or more non\\-tautological enable_if conditions",
[j]="cannot take address of function (.*?) because it has one or more non\\-tautological enable_if conditions",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"3e3bb95b6951",1449093488,"Add the `pass_object_size` attribute to clang."}
[d]={"3e3bb95b6951",1449093488,"Add the `pass_object_size` attribute to clang."},
[k]={{Q,9008,"/// Returns true if we can take the address of the function.\n///\n/// \\param Complain - If true, we\'ll emit a diagnostic\n/// \\param InOverloadResolution - For the purposes of emitting a diagnostic, are\n///  we in overload resolution?\n/// \\param Loc - The location of the statement we\'re complaining about. Ignored\n///  if we\'re not complaining, or if we\'re in overload resolution.\nstatic bool checkAddressOfFunctionIsAvailable(Sema &S, const FunctionDecl *FD, bool Complain, bool InOverloadResolution, SourceLocation Loc) {\n  if (!isFunctionAlwaysEnabled(S.Context, FD)) {\n    if (Complain) {\n      if (InOverloadResolution)\n      else\n        S.Diag(Loc, diag::err_addrof_function_disabled_by_enable_if_attr) << FD;"}}
},
},
["err_aix_attr_unsupported_tls_model"]={
["err_aix_attr_unsupported_tls_model"]={
[f]="TLS model \'A\' is not yet supported on AIX",
[f]="TLS model \'A\' is not yet supported on AIX",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="TLS model \'%0\' is not yet supported on AIX",
[g]="TLS model \'%0\' is not yet supported on AIX",
[c]=m,
[i]=m,
[b]="TLS model \'(.*?)\' is not yet supported on AIX",
[j]="TLS model \'(.*?)\' is not yet supported on AIX",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={ub,1615397021,qb}
[d]={Lb,1615397021,Kb},
[k]={{p,1831,"static void handleTLSModelAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (S.Context.getTargetInfo().getTriple().isOSAIX() && Model != \"global-dynamic\" && Model != \"local-exec\") {\n    S.Diag(LiteralLoc, diag::err_aix_attr_unsupported_tls_model) << Model;"}}
},
},
["err_aix_unsupported_tls_model"]={
["err_aix_unsupported_tls_model"]={
[f]="TLS model \'A\' is not yet supported on AIX",
[f]="TLS model \'A\' is not yet supported on AIX",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="TLS model \'%0\' is not yet supported on AIX",
[g]="TLS model \'%0\' is not yet supported on AIX",
[c]=m,
[i]=m,
[b]="TLS model \'(.*?)\' is not yet supported on AIX",
[j]="TLS model \'(.*?)\' is not yet supported on AIX",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={F,1610286626,H}
[d]={"0687578728ea",1610286626,"[C++20][Modules][HU 2/5] Support searching Header Units in user or system search paths."},
[k]={{O,1538,"#include \"clang/Driver/Options.inc\"\n  if (Arg *A = Args.getLastArg(OPT_ftlsmodel_EQ)) {\n    if (T.isOSAIX()) {\n      if (Name != \"global-dynamic\" && Name != \"local-exec\")\n        Diags.Report(diag::err_aix_unsupported_tls_model) << Name;"}}
},
},
["err_alias_after_tentative"]={
["err_alias_after_tentative"]={
[f]="alias definition of A after tentative definition",
[f]="alias definition of A after tentative definition",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="alias definition of %0 after tentative definition",
[g]="alias definition of %0 after tentative definition",
[c]=m,
[i]=m,
[b]="alias definition of (.*?) after tentative definition",
[j]="alias definition of (.*?) after tentative definition",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"d53ffa0a70d8",1382477943,"Treat aliases as definitions."}
[d]={"d53ffa0a70d8",1382477943,"Treat aliases as definitions."},
[k]={{q,2749,"/// checkNewAttributesAfterDef - If we already have a definition, check that\n/// there are no new attributes in this declaration.\nstatic void checkNewAttributesAfterDef(Sema &S, Decl *New, const Decl *Old) {\n  for (unsigned I = 0, E = NewAttributes.size(); I != E;) {\n    if (isa<AliasAttr>(NewAttribute) || isa<IFuncAttr>(NewAttribute)) {\n      if (FunctionDecl *FD = dyn_cast<FunctionDecl>(New)) {\n      } else {\n        unsigned Diag = cast<VarDecl>(Def)->isThisDeclarationADefinition() == VarDecl::TentativeDefinition ? diag::err_alias_after_tentative : diag::err_redefinition;"}}
},
},
["err_alias_declaration_not_identifier"]={
["err_alias_declaration_not_identifier"]={
[f]="name defined in alias declaration must be an identifier",
[f]="name defined in alias declaration must be an identifier",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="name defined in alias declaration must be an identifier",
[i]=m,
[j]="name defined in alias declaration must be an identifier",
[j]="name defined in alias declaration must be an identifier",
[c]=m,
[b]=a,
[b]="name defined in alias declaration must be an identifier",
[h]=B,
[i]=a,
[d]={"dda56e4b4a9c",1302877477,"Support for C++11 (non-template) alias declarations."},
[h]=o,
[k]={{K,789,"Decl *Parser::ParseAliasDeclarationAfterDeclarator(const ParsedTemplateInfo &TemplateInfo, SourceLocation UsingLoc, UsingDeclarator &D, SourceLocation &DeclEnd, AccessSpecifier AS, ParsedAttributes &Attrs, Decl **OwnedType) {\n  // Name must be an identifier.\n  if (D.Name.getKind() != UnqualifiedIdKind::IK_Identifier) {\n    Diag(D.Name.StartLocation, diag::err_alias_declaration_not_identifier);"},{K,794,"Decl *Parser::ParseAliasDeclarationAfterDeclarator(const ParsedTemplateInfo &TemplateInfo, SourceLocation UsingLoc, UsingDeclarator &D, SourceLocation &DeclEnd, AccessSpecifier AS, ParsedAttributes &Attrs, Decl **OwnedType) {\n  // Name must be an identifier.\n  if (D.Name.getKind() != UnqualifiedIdKind::IK_Identifier) {\n  } else if (D.TypenameLoc.isValid())\n    Diag(D.TypenameLoc, diag::err_alias_declaration_not_identifier) << FixItHint::CreateRemoval(SourceRange(D.TypenameLoc, D.SS.isNotEmpty() ? D.SS.getEndLoc() : D.TypenameLoc));"},{K,796,"Decl *Parser::ParseAliasDeclarationAfterDeclarator(const ParsedTemplateInfo &TemplateInfo, SourceLocation UsingLoc, UsingDeclarator &D, SourceLocation &DeclEnd, AccessSpecifier AS, ParsedAttributes &Attrs, Decl **OwnedType) {\n  // Name must be an identifier.\n  if (D.Name.getKind() != UnqualifiedIdKind::IK_Identifier) {\n  } else if (D.TypenameLoc.isValid())\n  else if (D.SS.isNotEmpty())\n    Diag(D.SS.getBeginLoc(), diag::err_alias_declaration_not_identifier) << FixItHint::CreateRemoval(D.SS.getRange());"}}
[g]={"dda56e4b4a9c",1302877477,"Support for C++11 (non-template) alias declarations."}
},
},
["err_alias_declaration_pack_expansion"]={
["err_alias_declaration_pack_expansion"]={
[f]="alias declaration cannot be a pack expansion",
[f]="alias declaration cannot be a pack expansion",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="alias declaration cannot be a pack expansion",
[i]=m,
[j]="alias declaration cannot be a pack expansion",
[j]="alias declaration cannot be a pack expansion",
[c]=m,
[b]=a,
[b]="alias declaration cannot be a pack expansion",
[h]=B,
[i]=a,
[d]={"22a250cd5d8e",1482120533,"[c++1z] P0195R2: Support pack-expansion of using-declarations."},
[h]=o,
[k]={{K,798,"Decl *Parser::ParseAliasDeclarationAfterDeclarator(const ParsedTemplateInfo &TemplateInfo, SourceLocation UsingLoc, UsingDeclarator &D, SourceLocation &DeclEnd, AccessSpecifier AS, ParsedAttributes &Attrs, Decl **OwnedType) {\n  if (D.EllipsisLoc.isValid())\n    Diag(D.EllipsisLoc, diag::err_alias_declaration_pack_expansion) << FixItHint::CreateRemoval(SourceRange(D.EllipsisLoc));"}}
[g]={"22a250cd5d8e",1482120533,"[c++1z] P0195R2: Support pack-expansion of using-declarations."}
},
},
["err_alias_declaration_specialization"]={
["err_alias_declaration_specialization"]={
[f]="... of alias templates is not permitted",
[f]="... of alias templates is not permitted",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{partial specialization|explicit specialization|explicit instantiation}0 of alias templates is not permitted",
[g]="%select{partial specialization|explicit specialization|explicit instantiation}0 of alias templates is not permitted",
[c]=m,
[i]=m,
[b]="(?:partial specialization|explicit specialization|explicit instantiation) of alias templates is not permitted",
[j]="(?:partial specialization|explicit specialization|explicit instantiation) of alias templates is not permitted",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={"3f1b5d077b7e",1304632627,"Implement support for C++0x alias templates."}
[d]={"3f1b5d077b7e",1304632627,"Implement support for C++0x alias templates."},
[k]={{K,782,"Decl *Parser::ParseAliasDeclarationAfterDeclarator(const ParsedTemplateInfo &TemplateInfo, SourceLocation UsingLoc, UsingDeclarator &D, SourceLocation &DeclEnd, AccessSpecifier AS, ParsedAttributes &Attrs, Decl **OwnedType) {\n  if (SpecKind != -1) {\n    Diag(Range.getBegin(), diag::err_alias_declaration_specialization) << SpecKind << Range;"}}
},
},
["err_alias_is_definition"]={
["err_alias_is_definition"]={
[f]="definition A cannot also be an ...",
[f]="definition A cannot also be an ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="definition %0 cannot also be an %select{alias|ifunc}1",
[g]="definition %0 cannot also be an %select{alias|ifunc}1",
[c]=m,
[i]=m,
[b]="definition (.*?) cannot also be an (?:alias|ifunc)",
[j]="definition (.*?) cannot also be an (?:alias|ifunc)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"2dc814664385",1421658028,"Sema: Variable definitions cannot be __attribute__((alias))"}
[d]={"2dc814664385",1421658028,"Sema: Variable definitions cannot be __attribute__((alias))"},
[k]={{q,6200,"static void checkAttributesAfterMerging(Sema &S, NamedDecl &ND) {\n  if (auto *VD = dyn_cast<VarDecl>(&ND)) {\n    if (VD->hasInit()) {\n      if (const auto *Attr = VD->getAttr<AliasAttr>()) {\n        S.Diag(Attr->getLocation(), diag::err_alias_is_definition) << VD << 0;"},{q,13321,"Decl *Sema::ActOnStartOfFunctionDef(Scope *FnBodyScope, Decl *D, SkipBodyInfo *SkipBody, FnBodyKind BodyKind) {\n  // Check for defining attributes before the check for redefinition.\n  if (const auto *Attr = FD->getAttr<AliasAttr>()) {\n    Diag(Attr->getLocation(), diag::err_alias_is_definition) << FD << 0;"},{q,13326,"Decl *Sema::ActOnStartOfFunctionDef(Scope *FnBodyScope, Decl *D, SkipBodyInfo *SkipBody, FnBodyKind BodyKind) {\n  if (const auto *Attr = FD->getAttr<IFuncAttr>()) {\n    Diag(Attr->getLocation(), diag::err_alias_is_definition) << FD << 1;"},{p,1769,"static void handleIFuncAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (FD->isThisDeclarationADefinition()) {\n    S.Diag(AL.getLoc(), diag::err_alias_is_definition) << FD << 1;"},{p,1792,"static void handleAliasAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // Aliases should be on declarations, not definitions.\n  if (const auto *FD = dyn_cast<FunctionDecl>(D)) {\n    if (FD->isThisDeclarationADefinition()) {\n      S.Diag(AL.getLoc(), diag::err_alias_is_definition) << FD << 0;"},{p,1798,"static void handleAliasAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // Aliases should be on declarations, not definitions.\n  if (const auto *FD = dyn_cast<FunctionDecl>(D)) {\n  } else {\n    if (VD->isThisDeclarationADefinition() && VD->isExternallyVisible()) {\n      S.Diag(AL.getLoc(), diag::err_alias_is_definition) << VD << 0;"},{p,6753,"static void handleWebAssemblyExportNameAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (FD->isThisDeclarationADefinition()) {\n    S.Diag(D->getLocation(), diag::err_alias_is_definition) << FD << 0;"}}
},
},
["err_alias_not_supported_on_darwin"]={
["err_alias_not_supported_on_darwin"]={
[f]="aliases are not supported on darwin",
[f]="aliases are not supported on darwin",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="aliases are not supported on darwin",
[i]=m,
[j]="aliases are not supported on darwin",
[j]="aliases are not supported on darwin",
[c]=m,
[b]=a,
[b]="aliases are not supported on darwin",
[h]=o,
[i]=a,
[d]={"0017c5fa92ad",1291735403,"Fix PR8720 by printing an error message with a substring that the gcc testsuite searches for."},
[h]=n,
[k]={{p,1782,"static void handleAliasAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (S.Context.getTargetInfo().getTriple().isOSDarwin()) {\n    S.Diag(AL.getLoc(), diag::err_alias_not_supported_on_darwin);"}}
[g]={"0017c5fa92ad",1291735403,"Fix PR8720 by printing an error message with a substring that the gcc testsuite searches for."}
},
},
["err_alias_not_supported_on_nvptx"]={
["err_alias_not_supported_on_nvptx"]={
[f]="CUDA does not support aliases",
[f]="CUDA does not support aliases",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="CUDA does not support aliases",
[i]=m,
[j]="CUDA does not support aliases",
[j]="CUDA does not support aliases",
[c]=m,
[b]=a,
[b]="CUDA does not support aliases",
[h]=o,
[i]=a,
[d]={"a8f0254bc1a4",1453584490,"[CUDA] Reject the alias attribute in CUDA device code."},
[h]=n,
[k]={{p,1786,"static void handleAliasAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (S.Context.getTargetInfo().getTriple().isNVPTX()) {\n    S.Diag(AL.getLoc(), diag::err_alias_not_supported_on_nvptx);"}}
[g]={"a8f0254bc1a4",1453584490,"[CUDA] Reject the alias attribute in CUDA device code."}
},
},
["err_alias_template_extra_headers"]={
["err_alias_template_extra_headers"]={
[f]="extraneous template parameter list in alias template declaration",
[f]="extraneous template parameter list in alias template declaration",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="extraneous template parameter list in alias template declaration",
[i]=m,
[j]="extraneous template parameter list in alias template declaration",
[j]="extraneous template parameter list in alias template declaration",
[c]=m,
[b]=a,
[b]="extraneous template parameter list in alias template declaration",
[h]=o,
[i]=a,
[d]={"3f1b5d077b7e",1304632627,"Implement support for C++0x alias templates."},
[h]=n,
[k]={{v,11427,"Decl *Sema::ActOnAliasDeclaration(Scope *S, AccessSpecifier AS, MultiTemplateParamsArg TemplateParamLists, SourceLocation UsingLoc, UnqualifiedId &Name, const ParsedAttributesView &AttrList, TypeResult Type, Decl *DeclFromDeclSpec) {\n  if (TemplateParamLists.size()) {\n    if (TemplateParamLists.size() != 1) {\n      Diag(UsingLoc, diag::err_alias_template_extra_headers) << SourceRange(TemplateParamLists[1]->getTemplateLoc(), TemplateParamLists[TemplateParamLists.size() - 1]->getRAngleLoc());"}}
[g]={"3f1b5d077b7e",1304632627,"Implement support for C++0x alias templates."}
},
},
["err_alias_to_undefined"]={
["err_alias_to_undefined"]={
[f]="... must point to a defined ...function",
[f]="... must point to a defined ...function",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{alias|ifunc}0 must point to a defined %select{variable or |}1function",
[g]="%select{alias|ifunc}0 must point to a defined %select{variable or |}1function",
[c]=m,
[i]=m,
[b]="(?:alias|ifunc) must point to a defined (?:variable or |)function",
[j]="(?:alias|ifunc) must point to a defined (?:variable or |)function",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={"0fad0d772433",1382449866,"This patch causes clang to reject alias attributes that point to undefined"}
[d]={"0fad0d772433",1382449866,"This patch causes clang to reject alias attributes that point to undefined"},
[k]={{"clang/lib/CodeGen/CodeGenModule.cpp",515,"static bool checkAliasedGlobal(DiagnosticsEngine &Diags, SourceLocation Location, bool IsIFunc, const llvm::GlobalValue *Alias, const llvm::GlobalValue *&GV, const llvm::MapVector<GlobalDecl, StringRef> &MangledDeclNames, SourceRange AliasRange) {\n  if (GV->isDeclaration()) {\n    Diags.Report(Location, diag::err_alias_to_undefined) << IsIFunc << IsIFunc;"},{"clang/lib/CodeGen/CodeGenModule.cpp",533,"static bool checkAliasedGlobal(DiagnosticsEngine &Diags, SourceLocation Location, bool IsIFunc, const llvm::GlobalValue *Alias, const llvm::GlobalValue *&GV, const llvm::MapVector<GlobalDecl, StringRef> &MangledDeclNames, SourceRange AliasRange) {\n  if (IsIFunc) {\n    if (!F) {\n      Diags.Report(Location, diag::err_alias_to_undefined) << IsIFunc << IsIFunc;"}}
},
},
["err_align_value_attribute_argument_not_int"]={
["err_align_value_attribute_argument_not_int"]={
[f]="\'align_value\' attribute requires integer constant",
[f]="\'align_value\' attribute requires integer constant",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'align_value\' attribute requires integer constant",
[i]=m,
[j]="\'align_value\' attribute requires integer constant",
[j]="\'align_value\' attribute requires integer constant",
[c]=m,
[b]=a,
[b]="\'align_value\' attribute requires integer constant",
[h]=o,
[i]=a,
[d]={"1b0d24e03abf",1412284885,"Initial support for the align_value attribute"},
[h]=n,
[k]={{p,3785,"void Sema::AddAlignValueAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E) {\n  if (!E->isValueDependent()) {\n    ExprResult ICE = VerifyIntegerConstantExpression(E, &Alignment, diag::err_align_value_attribute_argument_not_int);"}}
[g]={"1b0d24e03abf",1412284885,"Initial support for the align_value attribute"}
},
},
["err_alignas_attribute_wrong_decl_type"]={
["err_alignas_attribute_wrong_decl_type"]={
[f]="A attribute cannot be applied to ...",
[f]="A attribute cannot be applied to ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute cannot be applied to %select{a function parameter|a variable with \'register\' storage class|a \'catch\' variable|a bit-field|an enumeration}1",
[g]="%0 attribute cannot be applied to %select{a function parameter|a variable with \'register\' storage class|a \'catch\' variable|a bit-field|an enumeration}1",
[c]=m,
[i]=m,
[b]="(.*?) attribute cannot be applied to (?:a function parameter|a variable with \'register\' storage class|a \'catch\' variable|a bit\\-field|an enumeration)",
[j]="(.*?) attribute cannot be applied to (?:a function parameter|a variable with \'register\' storage class|a \'catch\' variable|a bit\\-field|an enumeration)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"1dba27cd4942",1359450129,"Implement C++11 [dcl.align]p1 and C11 6.7.5/2 rules for alignas and _Alignas."}
[d]={"1dba27cd4942",1359450129,"Implement C++11 [dcl.align]p1 and C11 6.7.5/2 rules for alignas and _Alignas."},
[k]={{p,3877,"/// Perform checking of type validity\n///\n/// C++11 [dcl.align]p1:\n///  An alignment-specifier may be applied to a variable or to a class\n///  data member, but it shall not be applied to a bit-field, a function\n///  parameter, the formal parameter of a catch clause, or a variable\n///  declared with the register storage class specifier. An\n///  alignment-specifier may also be applied to the declaration of a class\n///  or enumeration type.\n/// CWG 2354:\n///  CWG agreed to remove permission for alignas to be applied to\n///  enumerations.\n/// C11 6.7.5/2:\n///  An alignment attribute shall not be specified in a declaration of\n///  a typedef, or a bit-field, or a function, or a parameter, or an\n///  object declared with the register storage-class specifier.\nstatic bool validateAlignasAppliedType(Sema &S, Decl *D, const AlignedAttr &Attr, SourceLocation AttrLoc) {\n  if (DiagKind != -1) {\n    return S.Diag(AttrLoc, diag::err_alignas_attribute_wrong_decl_type) << &Attr << DiagKind;"}}
},
},
["err_alignas_mismatch"]={
["err_alignas_mismatch"]={
[f]="redeclaration has different alignment requirement (A vs B)",
[f]="redeclaration has different alignment requirement (A vs B)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="redeclaration has different alignment requirement (%1 vs %0)",
[g]="redeclaration has different alignment requirement (%1 vs %0)",
[c]=m,
[i]=m,
[b]="redeclaration has different alignment requirement \\((.*?) vs (.*?)\\)",
[j]="redeclaration has different alignment requirement \\((.*?) vs (.*?)\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"bc8caaf05f09",1361508939,"Implement C++11 [dcl.align]p6-p8, and C11 6.7.5/7. This had to be split out of"}
[d]={"bc8caaf05f09",1361508939,"Implement C++11 [dcl.align]p6-p8, and C11 6.7.5/7. This had to be split out of"},
[k]={{q,2571,"/// Merge alignment attributes from \\p Old to \\p New, taking into account the\n/// special semantics of C11\'s _Alignas specifier and C++11\'s alignas attribute.\n///\n/// \\return \\c true if any attributes were added to \\p New.\nstatic bool mergeAlignedAttrs(Sema &S, NamedDecl *New, Decl *Old) {\n  if (OldAlignasAttr && NewAlignasAttr && OldAlign != NewAlign) {\n    if (OldAlign != NewAlign) {\n      S.Diag(NewAlignasAttr->getLocation(), diag::err_alignas_mismatch) << (unsigned)S.Context.toCharUnitsFromBits(OldAlign).getQuantity() << (unsigned)S.Context.toCharUnitsFromBits(NewAlign).getQuantity();"}}
},
},
["err_alignas_missing_on_definition"]={
["err_alignas_missing_on_definition"]={
[f]="A must be specified on definition if it is specified on any declaration",
[f]="A must be specified on definition if it is specified on any declaration",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 must be specified on definition if it is specified on any declaration",
[g]="%0 must be specified on definition if it is specified on any declaration",
[c]=m,
[i]=m,
[b]="(.*?) must be specified on definition if it is specified on any declaration",
[j]="(.*?) must be specified on definition if it is specified on any declaration",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"bc8caaf05f09",1361508939,"Implement C++11 [dcl.align]p6-p8, and C11 6.7.5/7. This had to be split out of"}
[d]={"bc8caaf05f09",1361508939,"Implement C++11 [dcl.align]p6-p8, and C11 6.7.5/7. This had to be split out of"},
[k]={{q,2585,"/// Merge alignment attributes from \\p Old to \\p New, taking into account the\n/// special semantics of C11\'s _Alignas specifier and C++11\'s alignas attribute.\n///\n/// \\return \\c true if any attributes were added to \\p New.\nstatic bool mergeAlignedAttrs(Sema &S, NamedDecl *New, Decl *Old) {\n  if (OldAlignasAttr && !NewAlignasAttr && isAttributeTargetADefinition(New)) {\n    S.Diag(New->getLocation(), diag::err_alignas_missing_on_definition) << OldAlignasAttr;"},{q,2792,"/// checkNewAttributesAfterDef - If we already have a definition, check that\n/// there are no new attributes in this declaration.\nstatic void checkNewAttributesAfterDef(Sema &S, Decl *New, const Decl *Old) {\n  for (unsigned I = 0, E = NewAttributes.size(); I != E;) {\n    if (isa<C11NoReturnAttr>(NewAttribute)) {\n    } else if (isa<UuidAttr>(NewAttribute)) {\n    } else if (const AlignedAttr *AA = dyn_cast<AlignedAttr>(NewAttribute)) {\n      if (AA->isAlignas()) {\n        S.Diag(Def->getLocation(), diag::err_alignas_missing_on_definition) << AA;"}}
},
},
["err_alignas_underaligned"]={
["err_alignas_underaligned"]={
[f]="requested alignment is less than minimum alignment of A for type B",
[f]="requested alignment is less than minimum alignment of A for type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="requested alignment is less than minimum alignment of %1 for type %0",
[g]="requested alignment is less than minimum alignment of %1 for type %0",
[c]=m,
[i]=m,
[b]="requested alignment is less than minimum alignment of (.*?) for type (.*?)",
[j]="requested alignment is less than minimum alignment of (.*?) for type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"848e1f19605a",1359706328,"Implement [dcl.align]p5 and C11 6.7.5/4: alignas cannot underalign."}
[d]={"848e1f19605a",1359706328,"Implement [dcl.align]p5 and C11 6.7.5/4: alignas cannot underalign."},
[k]={{p,4039,"void Sema::CheckAlignasUnderalignment(Decl *D) {\n  if (Align && DiagTy->isSizelessType()) {\n  } else if (AlignasAttr && Align) {\n    if (NaturalAlign > RequestedAlign)\n      Diag(AlignasAttr->getLocation(), diag::err_alignas_underaligned) << DiagTy << (unsigned)NaturalAlign.getQuantity();"}}
},
},
["err_aligned_allocation_unavailable"]={
["err_aligned_allocation_unavailable"]={
[f]="aligned ... function of type \'A\' is ... available on B...",
[f]="aligned ... function of type \'A\' is ... available on B...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="aligned %select{allocation|deallocation}0 function of type \'%1\' is %select{only|not}4 available on %2%select{ %3 or newer|}4",
[g]="aligned %select{allocation|deallocation}0 function of type \'%1\' is %select{only|not}4 available on %2%select{ %3 or newer|}4",
[c]=m,
[i]=m,
[b]="aligned (?:allocation|deallocation) function of type \'(.*?)\' is (?:only|not) available on (.*?)(?: (.*?) or newer|)",
[j]="aligned (?:allocation|deallocation) function of type \'(.*?)\' is (?:only|not) available on (.*?)(?: (.*?) or newer|)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e5015abf185b",1533337957,"[Preprocessor] Allow libc++ to detect when aligned allocation is unavailable."}
[d]={"e5015abf185b",1533337957,"[Preprocessor] Allow libc++ to detect when aligned allocation is unavailable."},
[k]={{x,1720,"// Emit a diagnostic if an aligned allocation/deallocation function that is not\n// implemented in the standard library is selected.\nvoid Sema::diagnoseUnavailableAlignedAllocation(const FunctionDecl &FD, SourceLocation Loc) {\n  if (isUnavailableAlignedAllocationFunction(FD)) {\n    Diag(Loc, diag::err_aligned_allocation_unavailable) << IsDelete << FD.getType().getAsString() << OSName << OSVersion.getAsString() << OSVersion.empty();"}}
},
},
["err_aligned_attribute_argument_not_int"]={
["err_aligned_attribute_argument_not_int"]={
[f]="\'aligned\' attribute requires integer constant",
[f]="\'aligned\' attribute requires integer constant",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'aligned\' attribute requires integer constant",
[i]=m,
[j]="\'aligned\' attribute requires integer constant",
[j]="\'aligned\' attribute requires integer constant",
[c]=m,
[b]=a,
[b]="\'aligned\' attribute requires integer constant",
[h]=o,
[i]=a,
[d]={"e2b3744890f6",1336171132,"Move Sema::VerifyIntegerConstantExpression() and"},
[h]=n,
[k]={{p,3910,"void Sema::AddAlignedAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E, bool IsPackExpansion) {\n  ExprResult ICE = VerifyIntegerConstantExpression(E, &Alignment, diag::err_aligned_attribute_argument_not_int);"}}
[g]={"e2b3744890f6",1336171132,"Move Sema::VerifyIntegerConstantExpression() and"}
},
},
["err_alignment_dependent_typedef_name"]={
["err_alignment_dependent_typedef_name"]={
[f]="requested alignment is dependent but declaration is not dependent",
[f]="requested alignment is dependent but declaration is not dependent",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="requested alignment is dependent but declaration is not dependent",
[i]=m,
[j]="requested alignment is dependent but declaration is not dependent",
[j]="requested alignment is dependent but declaration is not dependent",
[c]=m,
[b]=a,
[b]="requested alignment is dependent but declaration is not dependent",
[h]=o,
[i]=a,
[d]={"26a1e0ef760a",1428374229,"[Sema] Don\'t permit dependent alignments on non-dependent typedef-names"},
[h]=n,
[k]={{p,3896,"void Sema::AddAlignedAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E, bool IsPackExpansion) {\n  if (E->isValueDependent()) {\n    // We can\'t support a dependent alignment on a non-dependent type,\n    // because we have no way to model that a type is \"alignment-dependent\"\n    // but not dependent in any other way.\n    if (const auto *TND = dyn_cast<TypedefNameDecl>(D)) {\n      if (!TND->getUnderlyingType()->isDependentType()) {\n        Diag(AttrLoc, diag::err_alignment_dependent_typedef_name) << E->getSourceRange();"},{p,3974,"void Sema::AddAlignedAttr(Decl *D, const AttributeCommonInfo &CI, TypeSourceInfo *TS, bool IsPackExpansion) {\n  if (TS->getType()->isDependentType()) {\n    // We can\'t support a dependent alignment on a non-dependent type,\n    // because we have no way to model that a type is \"type-dependent\"\n    // but not dependent in any other way.\n    if (const auto *TND = dyn_cast<TypedefNameDecl>(D)) {\n      if (!TND->getUnderlyingType()->isDependentType()) {\n        Diag(AttrLoc, diag::err_alignment_dependent_typedef_name) << TS->getTypeLoc().getSourceRange();"}}
[g]={"26a1e0ef760a",1428374229,"[Sema] Don\'t permit dependent alignments on non-dependent typedef-names"}
},
},
["err_alignment_not_power_of_two"]={
["err_alignment_not_power_of_two"]={
[f]="requested alignment is not a power of 2",
[f]="requested alignment is not a power of 2",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="requested alignment is not a power of 2",
[i]=m,
[j]="requested alignment is not a power of 2",
[j]="requested alignment is not a power of 2",
[c]=m,
[b]=a,
[b]="requested alignment is not a power of 2",
[h]=o,
[i]=a,
[d]={"bcc06085a894",1410130694,"Add __builtin_assume and __builtin_assume_aligned using @llvm.assume."},
[h]=n,
[k]={{s,299,"/// Check that the value argument for __builtin_is_aligned(value, alignment) and\n/// __builtin_aligned_{up,down}(value, alignment) is an integer or a pointer\n/// type (but not a function pointer) and that the alignment is a power-of-two.\nstatic bool SemaBuiltinAlignment(Sema &S, CallExpr *TheCall, unsigned ID) {\n  // We can\'t check validity of alignment if it is value dependent.\n  if (!AlignOp->isValueDependent() && AlignOp->EvaluateAsInt(AlignResult, S.Context, Expr::SE_AllowSideEffects)) {\n    if (!AlignValue.isPowerOf2()) {\n      S.Diag(AlignOp->getExprLoc(), diag::err_alignment_not_power_of_two);"},{s,8067,"/// Handle __builtin_alloca_with_align. This is declared\n/// as (size_t, size_t) where the second size_t must be a power of 2 greater\n/// than 8.\nbool Sema::SemaBuiltinAllocaWithAlign(CallExpr *TheCall) {\n  // We can\'t check the value of a dependent argument.\n  if (!Arg->isTypeDependent() && !Arg->isValueDependent()) {\n    if (!Result.isPowerOf2())\n      return Diag(TheCall->getBeginLoc(), diag::err_alignment_not_power_of_two) << Arg->getSourceRange();"},{s,8106,"/// Handle __builtin_assume_aligned. This is declared\n/// as (const void*, size_t, ...) and can take one optional constant int arg.\nbool Sema::SemaBuiltinAssumeAligned(CallExpr *TheCall) {\n  // We can\'t check the value of a dependent argument.\n  if (!SecondArg->isValueDependent()) {\n    if (!Result.isPowerOf2())\n      return Diag(TheCall->getBeginLoc(), diag::err_alignment_not_power_of_two) << SecondArg->getSourceRange();"},{p,1525,"void Sema::AddAssumeAlignedAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E, Expr *OE) {\n  if (!E->isValueDependent()) {\n    if (!I->isPowerOf2()) {\n      Diag(AttrLoc, diag::err_alignment_not_power_of_two) << E->getSourceRange();"},{p,3790,"void Sema::AddAlignValueAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E) {\n  if (!E->isValueDependent()) {\n    if (!Alignment.isPowerOf2()) {\n      Diag(AttrLoc, diag::err_alignment_not_power_of_two) << E->getSourceRange();"},{p,3930,"void Sema::AddAlignedAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E, bool IsPackExpansion) {\n  // C++11 [dcl.align]p2:\n  //  -- if the constant expression evaluates to zero, the alignment\n  //      specifier shall have no effect\n  // C11 6.7.5p6:\n  //  An alignment specification of zero has no effect.\n  if (!(TmpAttr.isAlignas() && !Alignment)) {\n    if (!llvm::isPowerOf2_64(AlignVal)) {\n      Diag(AttrLoc, diag::err_alignment_not_power_of_two) << E->getSourceRange();"}}
[g]={"bcc06085a894",1410130694,"Add __builtin_assume and __builtin_assume_aligned using @llvm.assume."}
},
},
["err_alignment_too_big"]={
["err_alignment_too_big"]={
[f]="requested alignment must be A or smaller",
[f]="requested alignment must be A or smaller",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="requested alignment must be %0 or smaller",
[g]="requested alignment must be %0 or smaller",
[c]=m,
[i]=m,
[b]="requested alignment must be (.*?) or smaller",
[j]="requested alignment must be (.*?) or smaller",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"5116993f8ea7",1477892268,"Add support for __builtin_alloca_with_align"}
[d]={"5116993f8ea7",1477892268,"Add support for __builtin_alloca_with_align"},
[k]={{s,295,"/// Check that the value argument for __builtin_is_aligned(value, alignment) and\n/// __builtin_aligned_{up,down}(value, alignment) is an integer or a pointer\n/// type (but not a function pointer) and that the alignment is a power-of-two.\nstatic bool SemaBuiltinAlignment(Sema &S, CallExpr *TheCall, unsigned ID) {\n  // We can\'t check validity of alignment if it is value dependent.\n  if (!AlignOp->isValueDependent() && AlignOp->EvaluateAsInt(AlignResult, S.Context, Expr::SE_AllowSideEffects)) {\n    if (llvm::APSInt::compareValues(AlignValue, MaxValue) > 0) {\n      S.Diag(AlignOp->getExprLoc(), diag::err_alignment_too_big) << toString(MaxValue, 10);"},{s,8073,"/// Handle __builtin_alloca_with_align. This is declared\n/// as (size_t, size_t) where the second size_t must be a power of 2 greater\n/// than 8.\nbool Sema::SemaBuiltinAllocaWithAlign(CallExpr *TheCall) {\n  // We can\'t check the value of a dependent argument.\n  if (!Arg->isTypeDependent() && !Arg->isValueDependent()) {\n    if (Result > std::numeric_limits<int32_t>::max())\n      return Diag(TheCall->getBeginLoc(), diag::err_alignment_too_big) << std::numeric_limits<int32_t>::max() << Arg->getSourceRange();"}}
},
},
["err_alignment_too_small"]={
["err_alignment_too_small"]={
[f]="requested alignment must be A or greater",
[f]="requested alignment must be A or greater",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="requested alignment must be %0 or greater",
[g]="requested alignment must be %0 or greater",
[c]=m,
[i]=m,
[b]="requested alignment must be (.*?) or greater",
[j]="requested alignment must be (.*?) or greater",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"5116993f8ea7",1477892268,"Add support for __builtin_alloca_with_align"}
[d]={"5116993f8ea7",1477892268,"Add support for __builtin_alloca_with_align"},
[k]={{s,291,"/// Check that the value argument for __builtin_is_aligned(value, alignment) and\n/// __builtin_aligned_{up,down}(value, alignment) is an integer or a pointer\n/// type (but not a function pointer) and that the alignment is a power-of-two.\nstatic bool SemaBuiltinAlignment(Sema &S, CallExpr *TheCall, unsigned ID) {\n  // We can\'t check validity of alignment if it is value dependent.\n  if (!AlignOp->isValueDependent() && AlignOp->EvaluateAsInt(AlignResult, S.Context, Expr::SE_AllowSideEffects)) {\n    if (AlignValue < 1) {\n      S.Diag(AlignOp->getExprLoc(), diag::err_alignment_too_small) << 1;"},{s,8070,"/// Handle __builtin_alloca_with_align. This is declared\n/// as (size_t, size_t) where the second size_t must be a power of 2 greater\n/// than 8.\nbool Sema::SemaBuiltinAllocaWithAlign(CallExpr *TheCall) {\n  // We can\'t check the value of a dependent argument.\n  if (!Arg->isTypeDependent() && !Arg->isValueDependent()) {\n    if (Result < Context.getCharWidth())\n      return Diag(TheCall->getBeginLoc(), diag::err_alignment_too_small) << (unsigned)Context.getCharWidth() << Arg->getSourceRange();"}}
},
},
["err_alignof_member_of_incomplete_type"]={
["err_alignof_member_of_incomplete_type"]={
[f]="invalid application of \'alignof\' to a field of a class still being defined",
[f]="invalid application of \'alignof\' to a field of a class still being defined",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="invalid application of \'alignof\' to a field of a class still being defined",
[i]=m,
[j]="invalid application of \'alignof\' to a field of a class still being defined",
[j]="invalid application of \'alignof\' to a field of a class still being defined",
[c]=m,
[b]=a,
[b]="invalid application of \'alignof\' to a field of a class still being defined",
[h]=o,
[i]=a,
[d]={"768439eb2e7e",1367826034,"Require the containing type to be complete when we see"},
[h]=n,
[k]={{y,3919,"static bool CheckAlignOfExpr(Sema &S, Expr *E, UnaryExprOrTypeTrait ExprKind) {\n  // If it\'s a field, require the containing struct to have a\n  // complete definition so that we can compute the layout.\n  //\n  // This can happen in C++11 onwards, either by naming the member\n  // in a way that is not transformed into a member access expression\n  // (in an unevaluated operand, for instance), or by naming the member\n  // in a trailing-return-type.\n  //\n  // For the record, since __alignof__ on expressions is a GCC\n  // extension, GCC seems to permit this but always gives the\n  // nonsensical answer 0.\n  //\n  // We don\'t really need the layout here --- we could instead just\n  // directly check for all the appropriate alignment-lowing\n  // attributes --- but that would require duplicating a lot of\n  // logic that just isn\'t worth duplicating for such a marginal\n  // use-case.\n  if (FieldDecl *FD = dyn_cast_or_null<FieldDecl>(D)) {\n    // Fast path this check, since we at least know the record has a\n    // definition if we can find a member of it.\n    if (!FD->getParent()->isCompleteDefinition()) {\n      S.Diag(E->getExprLoc(), diag::err_alignof_member_of_incomplete_type) << E->getSourceRange();"}}
[g]={"768439eb2e7e",1367826034,"Require the containing type to be complete when we see"}
},
},
["err_allocation_of_abstract_type"]={
["err_allocation_of_abstract_type"]={
[f]="allocating an object of abstract class type A",
[f]="allocating an object of abstract class type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="allocating an object of abstract class type %0",
[g]="allocating an object of abstract class type %0",
[c]=m,
[i]=m,
[b]="allocating an object of abstract class type (.*?)",
[j]="allocating an object of abstract class type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"0d5ca29b7836",1237830550,"It\'s an error to try to allocate an abstract object using new."}
[d]={"0d5ca29b7836",1237830550,"It\'s an error to try to allocate an abstract object using new."},
[k]={{w,1609,"/// TryStaticImplicitCast - Tests whether a conversion according to C++ 5.2.9p2\n/// is valid:\n///\n///  An expression e can be explicitly converted to a type T using a\n///  @c static_cast if the declaration \"T t(e);\" is well-formed [...].\nTryCastResult TryStaticImplicitCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, Sema::CheckedConversionKind CCK, SourceRange OpRange, unsigned &msg, CastKind &Kind, bool ListInitialization) {\n  if (DestType->isRecordType()) {\n    if (Self.RequireCompleteType(OpRange.getBegin(), DestType, diag::err_bad_cast_incomplete) || Self.RequireNonAbstractType(OpRange.getBegin(), DestType, diag::err_allocation_of_abstract_type)) {"},{x,2081,"/// Checks that a type is suitable as the allocated type\n/// in a new-expression.\nbool Sema::CheckAllocatedType(QualType AllocType, SourceLocation Loc, SourceRange R) {\n  else if (RequireNonAbstractType(Loc, AllocType, diag::err_allocation_of_abstract_type))"},{x,3487,"static ExprResult BuildCXXCastArgument(Sema &S, SourceLocation CastLoc, QualType Ty, CastKind Kind, CXXMethodDecl *Method, DeclAccessPair FoundDecl, bool HadMultipleCandidates, Expr *From) {\n  case CK_ConstructorConversion: {\n    if (S.RequireNonAbstractType(CastLoc, Ty, diag::err_allocation_of_abstract_type))"},{E,7426,"ExprResult InitializationSequence::Perform(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, MultiExprArg Args, QualType *ResultType) {\n  // C++ [class.abstract]p2:\n  //  no objects of an abstract class can be created except as subobjects\n  //  of a class derived from it\n  auto checkAbstractType = [&](QualType T) -> bool {\n    return S.RequireNonAbstractType(Kind.getLocation(), T, diag::err_allocation_of_abstract_type);"}}
},
},
["err_altivec_empty_initializer"]={
["err_altivec_empty_initializer"]={
[f]="expected initializer",
[f]="expected initializer",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="expected initializer",
[i]=m,
[j]="expected initializer",
[j]="expected initializer",
[c]=m,
[b]=a,
[b]="expected initializer",
[h]=o,
[i]=a,
[d]={"a96114ed087b",1249840544,"AltiVec-style vector initializer syntax, vec4 a = (vec4)(a, b, c, d);"},
[h]=n,
[k]={{y,7263,"ExprResult Sema::ActOnCastExpr(Scope *S, SourceLocation LParenLoc, Declarator &D, ParsedType &Ty, SourceLocation RParenLoc, Expr *CastExpr) {\n  if ((getLangOpts().AltiVec || getLangOpts().ZVector || getLangOpts().OpenCL) && castType->isVectorType() && (PE || PLE)) {\n    if (PLE && PLE->getNumExprs() == 0) {\n      Diag(PLE->getExprLoc(), diag::err_altivec_empty_initializer);"}}
[g]={"a96114ed087b",1249840544,"AltiVec-style vector initializer syntax, vec4 a = (vec4)(a, b, c, d);"}
},
},
["err_ambiguous_base_to_derived_cast"]={
["err_ambiguous_base_to_derived_cast"]={
[f]="ambiguous cast from base A to derived B:C",
[f]="ambiguous cast from base A to derived B:C",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="ambiguous cast from base %0 to derived %1:%2",
[g]="ambiguous cast from base %0 to derived %1:%2",
[c]=m,
[i]=m,
[b]="ambiguous cast from base (.*?) to derived (.*?)\\:(.*?)",
[j]="ambiguous cast from base (.*?) to derived (.*?)\\:(.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{w,1470,"/// TryStaticDowncast - Common functionality of TryStaticReferenceDowncast and\n/// TryStaticPointerDowncast. Tests whether a static downcast from SrcType to\n/// DestType is possible and allowed.\nTryCastResult TryStaticDowncast(Sema &Self, CanQualType SrcType, CanQualType DestType, bool CStyle, SourceRange OpRange, QualType OrigSrcType, QualType OrigDestType, unsigned &msg, CastKind &Kind, CXXCastPath &BasePath) {\n  if (Paths.isAmbiguous(SrcType.getUnqualifiedType())) {\n    Self.Diag(OpRange.getBegin(), diag::err_ambiguous_base_to_derived_cast) << QualType(SrcType).getUnqualifiedType() << QualType(DestType).getUnqualifiedType() << PathDisplayStr << OpRange;"}}
},
},
["err_ambiguous_delete_operand"]={
["err_ambiguous_delete_operand"]={
[f]="ambiguous conversion of delete expression of type A to a pointer",
[f]="ambiguous conversion of delete expression of type A to a pointer",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="ambiguous conversion of delete expression of type %0 to a pointer",
[g]="ambiguous conversion of delete expression of type %0 to a pointer",
[c]=m,
[i]=m,
[b]="ambiguous conversion of delete expression of type (.*?) to a pointer",
[j]="ambiguous conversion of delete expression of type (.*?) to a pointer",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"c34c179f4bcd",1253035307,"Perform overload resolution when selecting a pointer conversion"}
[d]={"c34c179f4bcd",1253035307,"Perform overload resolution when selecting a pointer conversion"},
[k]={{x,3107,"/// ActOnCXXDelete - Parsed a C++ \'delete\' expression (C++ 5.3.5), as in:\n/// @code ::delete ptr; @endcode\n/// or\n/// @code delete [] ptr; @endcode\nExprResult Sema::ActOnCXXDelete(SourceLocation StartLoc, bool UseGlobal, bool ArrayForm, Expr *ExE) {\n  if (!Ex.get()->isTypeDependent()) {\n    class DeleteConverter : public ContextualImplicitConverter {\n      SemaDiagnosticBuilder diagnoseAmbiguous(Sema &S, SourceLocation Loc, QualType T) override { return S.Diag(Loc, diag::err_ambiguous_delete_operand) << T; }"}}
},
},
["err_ambiguous_derived_to_base_conv"]={
["err_ambiguous_derived_to_base_conv"]={
[f]="ambiguous conversion from derived class A to base class B:C",
[f]="ambiguous conversion from derived class A to base class B:C",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="ambiguous conversion from derived class %0 to base class %1:%2",
[g]="ambiguous conversion from derived class %0 to base class %1:%2",
[c]=m,
[i]=m,
[b]="ambiguous conversion from derived class (.*?) to base class (.*?)\\:(.*?)",
[j]="ambiguous conversion from derived class (.*?) to base class (.*?)\\:(.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{v,2697,"bool Sema::CheckDerivedToBaseConversion(QualType Derived, QualType Base, SourceLocation Loc, SourceRange Range, CXXCastPath *BasePath, bool IgnoreAccess) { return CheckDerivedToBaseConversion(Derived, Base, diag::err_upcast_to_inaccessible_base, diag::err_ambiguous_derived_to_base_conv, Loc, Range, DeclarationName(), BasePath, IgnoreAccess); }"},{Q,2694,"/// CheckPointerConversion - Check the pointer conversion from the\n/// expression From to the type ToType. This routine checks for\n/// ambiguous or inaccessible derived-to-base pointer\n/// conversions for which IsPointerConversion has already returned\n/// true. It returns true and produces a diagnostic if there was an\n/// error, or returns false otherwise.\nbool Sema::CheckPointerConversion(Expr *From, QualType ToType, CastKind &Kind, CXXCastPath &BasePath, bool IgnoreBaseAccess, bool Diagnose) {\n  if (const PointerType *ToPtrType = ToType->getAs<PointerType>()) {\n    if (const PointerType *FromPtrType = FromType->getAs<PointerType>()) {\n      if (FromPointeeType->isRecordType() && ToPointeeType->isRecordType() && !Context.hasSameUnqualifiedType(FromPointeeType, ToPointeeType)) {\n        if (Diagnose) {\n          AmbiguousID = diag::err_ambiguous_derived_to_base_conv;"}}
},
},
["err_ambiguous_destructor"]={
["err_ambiguous_destructor"]={
[f]="destructor of class A is ambiguous",
[f]="destructor of class A is ambiguous",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="destructor of class %0 is ambiguous",
[g]="destructor of class %0 is ambiguous",
[c]=m,
[i]=m,
[b]="destructor of class (.*?) is ambiguous",
[j]="destructor of class (.*?) is ambiguous",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={w,1625925174,v}
[d]={N,1625925174,M},
[k]={{q,16235,"/// [class.dtor]p4:\n///  At the end of the definition of a class, overload resolution is\n///  performed among the prospective destructors declared in that class with\n///  an empty argument list to select the destructor for the class, also\n///  known as the selected destructor.\n///\n/// We do the overload resolution here, then mark the selected constructor in the AST.\n/// Later CXXRecordDecl::getDestructor() will return the selected constructor.\nstatic void ComputeSelectedDestructor(Sema &S, CXXRecordDecl *Record) {\n  case OR_Ambiguous:\n    Msg = diag::err_ambiguous_destructor;"}}
},
},
["err_ambiguous_inherited_constructor"]={
["err_ambiguous_inherited_constructor"]={
[f]="constructor of A inherited from multiple base class subobjects",
[f]="constructor of A inherited from multiple base class subobjects",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="constructor of %0 inherited from multiple base class subobjects",
[g]="constructor of %0 inherited from multiple base class subobjects",
[c]=m,
[i]=m,
[b]="constructor of (.*?) inherited from multiple base class subobjects",
[j]="constructor of (.*?) inherited from multiple base class subobjects",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"5179eb78210a",1467140637,"P0136R1, DR1573, DR1645, DR1715, DR1736, DR1903, DR1941, DR1959, DR1991:"}
[d]={"5179eb78210a",1467140637,"P0136R1, DR1573, DR1645, DR1715, DR1736, DR1903, DR1941, DR1959, DR1991:"},
[k]={{v,6236,"class Sema::InheritedConstructorInfo {\n  InheritedConstructorInfo(Sema &S, SourceLocation UseLoc, ConstructorUsingShadowDecl *Shadow) : S(S), UseLoc(UseLoc) {\n    // Find the set of such base class subobjects and check that there\'s a\n    // unique constructed subobject.\n    for (auto *D : Shadow->redecls()) {\n      // [class.inhctor.init]p2:\n      //  If the constructor was inherited from multiple base class subobjects\n      //  of type B, the program is ill-formed.\n      if (!ConstructedBase) {\n      } else if (ConstructedBase != DConstructedBase && !Shadow->isInvalidDecl()) {\n        if (!DiagnosedMultipleConstructedBases) {\n          S.Diag(UseLoc, diag::err_ambiguous_inherited_constructor) << Shadow->getTargetDecl();"}}
},
},
["err_ambiguous_member_multiple_subobject_types"]={
["err_ambiguous_member_multiple_subobject_types"]={
[f]="member A found in multiple base classes of different types",
[f]="member A found in multiple base classes of different types",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="member %0 found in multiple base classes of different types",
[g]="member %0 found in multiple base classes of different types",
[c]=m,
[i]=m,
[b]="member (.*?) found in multiple base classes of different types",
[j]="member (.*?) found in multiple base classes of different types",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{"clang/lib/Sema/SemaLookup.cpp",2577,"/// Produce a diagnostic describing the ambiguity that resulted\n/// from name lookup.\n///\n/// \\param Result The result of the ambiguous lookup to be diagnosed.\nvoid Sema::DiagnoseAmbiguousLookup(LookupResult &Result) {\n  case LookupResult::AmbiguousBaseSubobjectTypes: {\n    Diag(NameLoc, diag::err_ambiguous_member_multiple_subobject_types) << Name << LookupRange;"}}
},
},
["err_ambiguous_member_multiple_subobjects"]={
["err_ambiguous_member_multiple_subobjects"]={
[f]="non-static member A found in multiple base-class subobjects of type B:C",
[f]="non-static member A found in multiple base-class subobjects of type B:C",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="non-static member %0 found in multiple base-class subobjects of type %1:%2",
[g]="non-static member %0 found in multiple base-class subobjects of type %1:%2",
[c]=m,
[i]=m,
[b]="non\\-static member (.*?) found in multiple base\\-class subobjects of type (.*?)\\:(.*?)",
[j]="non\\-static member (.*?) found in multiple base\\-class subobjects of type (.*?)\\:(.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{"clang/lib/Sema/SemaLookup.cpp",2566,"/// Produce a diagnostic describing the ambiguity that resulted\n/// from name lookup.\n///\n/// \\param Result The result of the ambiguous lookup to be diagnosed.\nvoid Sema::DiagnoseAmbiguousLookup(LookupResult &Result) {\n  case LookupResult::AmbiguousBaseSubobjects: {\n    Diag(NameLoc, diag::err_ambiguous_member_multiple_subobjects) << Name << SubobjectType << getAmbiguousPathsDisplayString(*Paths) << LookupRange;"}}
},
},
["err_ambiguous_memptr_conv"]={
["err_ambiguous_memptr_conv"]={
[f]="ambiguous conversion from pointer to member of ... class A to pointer to member of ... class B:C",
[f]="ambiguous conversion from pointer to member of ... class A to pointer to member of ... class B:C",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="ambiguous conversion from pointer to member of %select{base|derived}0 class %1 to pointer to member of %select{derived|base}0 class %2:%3",
[g]="ambiguous conversion from pointer to member of %select{base|derived}0 class %1 to pointer to member of %select{derived|base}0 class %2:%3",
[c]=m,
[i]=m,
[b]="ambiguous conversion from pointer to member of (?:base|derived) class (.*?) to pointer to member of (?:derived|base) class (.*?)\\:(.*?)",
[j]="ambiguous conversion from pointer to member of (?:base|derived) class (.*?) to pointer to member of (?:derived|base) class (.*?)\\:(.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{w,1555,"/// TryStaticMemberPointerUpcast - Tests whether a conversion according to\n/// C++ 5.2.9p9 is valid:\n///\n///  An rvalue of type \"pointer to member of D of type cv1 T\" can be\n///  converted to an rvalue of type \"pointer to member of B of type cv2 T\",\n///  where B is a base class of D [...].\n///\nTryCastResult TryStaticMemberPointerUpcast(Sema &Self, ExprResult &SrcExpr, QualType SrcType, QualType DestType, bool CStyle, SourceRange OpRange, unsigned &msg, CastKind &Kind, CXXCastPath &BasePath) {\n  // B is a base of D. But is it an allowed base? If not, it\'s a hard error.\n  if (Paths.isAmbiguous(Self.Context.getCanonicalType(DestClass))) {\n    Self.Diag(OpRange.getBegin(), diag::err_ambiguous_memptr_conv) << 1 << SrcClass << DestClass << PathDisplayStr << OpRange;"},{Q,2802,"/// CheckMemberPointerConversion - Check the member pointer conversion from the\n/// expression From to the type ToType. This routine checks for ambiguous or\n/// virtual or inaccessible base-to-derived member pointer conversions\n/// for which IsMemberPointerConversion has already returned true. It returns\n/// true and produces a diagnostic if there was an error, or returns false\n/// otherwise.\nbool Sema::CheckMemberPointerConversion(Expr *From, QualType ToType, CastKind &Kind, CXXCastPath &BasePath, bool IgnoreBaseAccess) {\n  if (Paths.isAmbiguous(Context.getCanonicalType(FromClass).getUnqualifiedType())) {\n    Diag(From->getExprLoc(), diag::err_ambiguous_memptr_conv) << 0 << FromClass << ToClass << PathDisplayStr << From->getSourceRange();"}}
},
},
["err_ambiguous_reference"]={
["err_ambiguous_reference"]={
[f]="reference to A is ambiguous",
[f]="reference to A is ambiguous",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="reference to %0 is ambiguous",
[g]="reference to %0 is ambiguous",
[c]=m,
[i]=m,
[b]="reference to (.*?) is ambiguous",
[j]="reference to (.*?) is ambiguous",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{"clang/lib/Sema/SemaLookup.cpp",2623,"/// Produce a diagnostic describing the ambiguity that resulted\n/// from name lookup.\n///\n/// \\param Result The result of the ambiguous lookup to be diagnosed.\nvoid Sema::DiagnoseAmbiguousLookup(LookupResult &Result) {\n  case LookupResult::AmbiguousReference: {\n    Diag(NameLoc, diag::err_ambiguous_reference) << Name << LookupRange;"}}
},
},
["err_ambiguous_suitable_delete_member_function_found"]={
["err_ambiguous_suitable_delete_member_function_found"]={
[f]="multiple suitable A functions in B",
[f]="multiple suitable A functions in B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="multiple suitable %0 functions in %1",
[g]="multiple suitable %0 functions in %1",
[c]=m,
[i]=m,
[b]="multiple suitable (.*?) functions in (.*?)",
[j]="multiple suitable (.*?) functions in (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"66a8759400a9",1280881886,"Look through using declarations when deciding whether to use an operator"}
[d]={"66a8759400a9",1280881886,"Look through using declarations when deciding whether to use an operator"},
[k]={{x,2803,"bool Sema::FindDeallocationFunction(SourceLocation StartLoc, CXXRecordDecl *RD, DeclarationName Name, FunctionDecl *&Operator, bool Diagnose, bool WantSize, bool WantAligned) {\n  // We found multiple suitable operators; complain about the ambiguity.\n  // FIXME: The standard doesn\'t say to do this; it appears that the intent\n  // is that this should never happen.\n  if (!Matches.empty()) {\n    if (Diagnose) {\n      Diag(StartLoc, diag::err_ambiguous_suitable_delete_member_function_found) << Name << RD;"}}
},
},
["err_ambiguous_tag_hiding"]={
["err_ambiguous_tag_hiding"]={
[f]="a type named A is hidden by a declaration in a different namespace",
[f]="a type named A is hidden by a declaration in a different namespace",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="a type named %0 is hidden by a declaration in a different namespace",
[g]="a type named %0 is hidden by a declaration in a different namespace",
[c]=m,
[i]=m,
[b]="a type named (.*?) is hidden by a declaration in a different namespace",
[j]="a type named (.*?) is hidden by a declaration in a different namespace",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"6538c930503a",1255153699,"Qualified lookup through using declarations.  Diagnose a new type of ambiguity."}
[d]={"6538c930503a",1255153699,"Qualified lookup through using declarations.  Diagnose a new type of ambiguity."},
[k]={{"clang/lib/Sema/SemaLookup.cpp",2598,"/// Produce a diagnostic describing the ambiguity that resulted\n/// from name lookup.\n///\n/// \\param Result The result of the ambiguous lookup to be diagnosed.\nvoid Sema::DiagnoseAmbiguousLookup(LookupResult &Result) {\n  case LookupResult::AmbiguousTagHiding: {\n    Diag(NameLoc, diag::err_ambiguous_tag_hiding) << Name << LookupRange;"}}
},
},
["err_analyzer_checker_incompatible_analyzer_option"]={
["err_analyzer_checker_incompatible_analyzer_option"]={
[f]="checker cannot be enabled with analyzer option \'A\' == B",
[f]="checker cannot be enabled with analyzer option \'A\' == B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="checker cannot be enabled with analyzer option \'%0\' == %1",
[g]="checker cannot be enabled with analyzer option \'%0\' == %1",
[c]=m,
[i]=m,
[b]="checker cannot be enabled with analyzer option \'(.*?)\' \\=\\= (.*?)",
[j]="checker cannot be enabled with analyzer option \'(.*?)\' \\=\\= (.*?)",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={N,1534346725,M}
[d]={tb,1534346725,rb},
[k]={{"clang/lib/StaticAnalyzer/Checkers/ContainerModeling.cpp",876,"bool ento::shouldRegisterContainerModeling(const CheckerManager &mgr) {\n  if (!mgr.getAnalyzerOptions().ShouldAggressivelySimplifyBinaryOperation) {\n    mgr.getASTContext().getDiagnostics().Report(diag::err_analyzer_checker_incompatible_analyzer_option) << \"aggressive-binary-operation-simplification\""}}
},
},
["err_analyzer_checker_option_invalid_input"]={
["err_analyzer_checker_option_invalid_input"]={
[f]="invalid input for checker option \'A\', that expects B",
[f]="invalid input for checker option \'A\', that expects B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="invalid input for checker option \'%0\', that expects %1",
[g]="invalid input for checker option \'%0\', that expects %1",
[c]=m,
[i]=m,
[b]="invalid input for checker option \'(.*?)\', that expects (.*?)",
[j]="invalid input for checker option \'(.*?)\', that expects (.*?)",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={N,1534346725,M}
[d]={tb,1534346725,rb},
[k]={{"clang/lib/StaticAnalyzer/Core/CheckerManager.cpp",51,"void CheckerManager::reportInvalidCheckerOptionValue(const CheckerBase *C, StringRef OptionName, StringRef ExpectedValueDesc) const { getDiagnostics().Report(diag::err_analyzer_checker_option_invalid_input) << (llvm::Twine() + C->getTagDescription() + \":\" + OptionName).str() << ExpectedValueDesc; }"},{"clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp",301,"/// Insert the checker/package option to AnalyzerOptions\' config table, and\n/// validate it, if the user supplied it on the command line.\nstatic void insertAndValidate(StringRef FullName, const CmdLineOption &Option, AnalyzerOptions &AnOpts, DiagnosticsEngine &Diags) {\n  if (Option.OptionType == \"bool\") {\n    if (SuppliedValue != \"true\" && SuppliedValue != \"false\") {\n      if (AnOpts.ShouldEmitErrorsOnInvalidConfigValue) {\n        Diags.Report(diag::err_analyzer_checker_option_invalid_input) << FullOption << \"a boolean value\";"},{"clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp",314,"/// Insert the checker/package option to AnalyzerOptions\' config table, and\n/// validate it, if the user supplied it on the command line.\nstatic void insertAndValidate(StringRef FullName, const CmdLineOption &Option, AnalyzerOptions &AnOpts, DiagnosticsEngine &Diags) {\n  if (Option.OptionType == \"int\") {\n    if (HasFailed) {\n      if (AnOpts.ShouldEmitErrorsOnInvalidConfigValue) {\n        Diags.Report(diag::err_analyzer_checker_option_invalid_input) << FullOption << \"an integer value\";"}}
},
},
["err_analyzer_checker_option_unknown"]={
["err_analyzer_checker_option_unknown"]={
[f]="checker \'A\' has no option called \'B\'",
[f]="checker \'A\' has no option called \'B\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="checker \'%0\' has no option called \'%1\'",
[g]="checker \'%0\' has no option called \'%1\'",
[c]=m,
[i]=m,
[b]="checker \'(.*?)\' has no option called \'(.*?)\'",
[j]="checker \'(.*?)\' has no option called \'(.*?)\'",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={N,1534346725,M}
[d]={tb,1534346725,rb},
[k]={{"clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp",377,"static void isOptionContainedIn(const CmdLineOptionList &OptionList, StringRef SuppliedChecker, StringRef SuppliedOption, const AnalyzerOptions &AnOpts, DiagnosticsEngine &Diags) {\n  if (llvm::none_of(OptionList, SameOptName)) {\n    Diags.Report(diag::err_analyzer_checker_option_unknown) << SuppliedChecker << SuppliedOption;"}}
},
},
["err_analyzer_config_invalid_input"]={
["err_analyzer_config_invalid_input"]={
[f]="invalid input for analyzer-config option \'A\', that expects B value",
[f]="invalid input for analyzer-config option \'A\', that expects B value",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="invalid input for analyzer-config option \'%0\', that expects %1 value",
[g]="invalid input for analyzer-config option \'%0\', that expects %1 value",
[c]=m,
[i]=m,
[b]="invalid input for analyzer\\-config option \'(.*?)\', that expects (.*?) value",
[j]="invalid input for analyzer\\-config option \'(.*?)\', that expects (.*?) value",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={N,1534346725,M}
[d]={tb,1534346725,rb},
[k]={{O,893,"static void initOption(AnalyzerOptions::ConfigTable &Config, DiagnosticsEngine *Diags, bool &OptionField, StringRef Name, bool DefaultVal) {\n  if (!PossiblyInvalidVal) {\n    if (Diags)\n      Diags->Report(diag::err_analyzer_config_invalid_input) << Name << \"a boolean\";"},{O,905,"static void initOption(AnalyzerOptions::ConfigTable &Config, DiagnosticsEngine *Diags, unsigned &OptionField, StringRef Name, unsigned DefaultVal) {\n  if (Diags && HasFailed)\n    Diags->Report(diag::err_analyzer_config_invalid_input) << Name << \"an unsigned\";"},{O,952,"#include \"clang/StaticAnalyzer/Core/AnalyzerOptions.def\"\n  if (AnOpts.ShouldTrackConditionsDebug && !AnOpts.ShouldTrackConditions)\n    Diags->Report(diag::err_analyzer_config_invalid_input) << \"track-conditions-debug\""},{O,956,"#include \"clang/StaticAnalyzer/Core/AnalyzerOptions.def\"\n  if (!AnOpts.CTUDir.empty() && !llvm::sys::fs::is_directory(AnOpts.CTUDir))\n    Diags->Report(diag::err_analyzer_config_invalid_input) << \"ctu-dir\""},{O,960,"#include \"clang/StaticAnalyzer/Core/AnalyzerOptions.def\"\n  if (!AnOpts.ModelPath.empty() && !llvm::sys::fs::is_directory(AnOpts.ModelPath))\n    Diags->Report(diag::err_analyzer_config_invalid_input) << \"model-path\""}}
},
},
["err_analyzer_config_multiple_values"]={
["err_analyzer_config_multiple_values"]={
[f]="analyzer-config option \'A\' should contain only one \'=\'",
[f]="analyzer-config option \'A\' should contain only one \'=\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="analyzer-config option \'%0\' should contain only one \'=\'",
[g]="analyzer-config option \'%0\' should contain only one \'=\'",
[c]=m,
[i]=m,
[b]="analyzer\\-config option \'(.*?)\' should contain only one \'\\=\'",
[j]="analyzer\\-config option \'(.*?)\' should contain only one \'\\=\'",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={"fb5351eed39a",1346219700,"Add new -cc1 driver option -analyzer-config, which allows one to specify"}
[d]={"fb5351eed39a",1346219700,"Add new -cc1 driver option -analyzer-config, which allows one to specify"},
[k]={{O,846,"#include \"clang/StaticAnalyzer/Core/Analyses.def\"\n  // Go through the analyzer configuration options.\n  for (const auto *A : Args.filtered(OPT_analyzer_config)) {\n    for (const auto &configVal : configVals) {\n      if (val.contains(\'=\')) {\n        Diags.Report(SourceLocation(), diag::err_analyzer_config_multiple_values) << configVal;"}}
},
},
["err_analyzer_config_no_value"]={
["err_analyzer_config_no_value"]={
[f]="analyzer-config option \'A\' has a key but no value",
[f]="analyzer-config option \'A\' has a key but no value",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="analyzer-config option \'%0\' has a key but no value",
[g]="analyzer-config option \'%0\' has a key but no value",
[c]=m,
[i]=m,
[b]="analyzer\\-config option \'(.*?)\' has a key but no value",
[j]="analyzer\\-config option \'(.*?)\' has a key but no value",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={"fb5351eed39a",1346219700,"Add new -cc1 driver option -analyzer-config, which allows one to specify"}
[d]={"fb5351eed39a",1346219700,"Add new -cc1 driver option -analyzer-config, which allows one to specify"},
[k]={{O,842,"#include \"clang/StaticAnalyzer/Core/Analyses.def\"\n  // Go through the analyzer configuration options.\n  for (const auto *A : Args.filtered(OPT_analyzer_config)) {\n    for (const auto &configVal : configVals) {\n      if (val.empty()) {\n        Diags.Report(SourceLocation(), diag::err_analyzer_config_no_value) << configVal;"}}
},
},
["err_analyzer_config_unknown"]={
["err_analyzer_config_unknown"]={
[f]="unknown analyzer-config \'A\'",
[f]="unknown analyzer-config \'A\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="unknown analyzer-config \'%0\'",
[g]="unknown analyzer-config \'%0\'",
[c]=m,
[i]=m,
[b]="unknown analyzer\\-config \'(.*?)\'",
[j]="unknown analyzer\\-config \'(.*?)\'",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={N,1534346725,M}
[d]={tb,1534346725,rb},
[k]={{O,854,"#include \"clang/StaticAnalyzer/Core/Analyses.def\"\n  // Go through the analyzer configuration options.\n  for (const auto *A : Args.filtered(OPT_analyzer_config)) {\n    for (const auto &configVal : configVals) {\n      // TODO: Check checker options too, possibly in CheckerRegistry.\n      // Leave unknown non-checker configs unclaimed.\n      if (!key.contains(\":\") && Opts.isUnknownAnalyzerConfig(key)) {\n        if (Opts.ShouldEmitErrorsOnInvalidConfigValue)\n          Diags.Report(diag::err_analyzer_config_unknown) << key;"}}
},
},
["err_analyzer_not_built_with_z3"]={
["err_analyzer_not_built_with_z3"]={
[f]="analyzer constraint manager \'z3\' is only available if LLVM was built with -DLLVM_ENABLE_Z3_SOLVER=ON",
[f]="analyzer constraint manager \'z3\' is only available if LLVM was built with -DLLVM_ENABLE_Z3_SOLVER=ON",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="analyzer constraint manager \'z3\' is only available if LLVM was built with -DLLVM_ENABLE_Z3_SOLVER=ON",
[g]="analyzer constraint manager \'z3\' is only available if LLVM was built with -DLLVM_ENABLE_Z3_SOLVER=ON",
[c]=m,
[i]=m,
[b]="analyzer constraint manager \'z3\' is only available if LLVM was built with \\-DLLVM_ENABLE_Z3_SOLVER\\=ON",
[j]="analyzer constraint manager \'z3\' is only available if LLVM was built with \\-DLLVM_ENABLE_Z3_SOLVER\\=ON",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={F,1610286626,H}
[d]={"0687578728ea",1610286626,"[C++20][Modules][HU 2/5] Support searching Header Units in user or system search paths."},
[k]={{O,771,"#ifndef LLVM_WITH_Z3\n      if (Value == AnalysisConstraints::Z3ConstraintsModel) {\n        Diags.Report(diag::err_analyzer_not_built_with_z3);"}}
},
},
["err_anon_bitfield_has_negative_width"]={
["err_anon_bitfield_has_negative_width"]={
[f]="anonymous bit-field has negative width (A)",
[f]="anonymous bit-field has negative width (A)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="anonymous bit-field has negative width (%0)",
[g]="anonymous bit-field has negative width (%0)",
[c]=m,
[i]=m,
[b]="anonymous bit\\-field has negative width \\((.*?)\\)",
[j]="anonymous bit\\-field has negative width \\((.*?)\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"f9b00eb7dc88",1240248578,"clean up anonymous bitfield diagnostics, PR4017"}
[d]={"f9b00eb7dc88",1240248578,"clean up anonymous bitfield diagnostics, PR4017"},
[k]={{q,15689,"// Note that FieldName may be null for anonymous bitfields.\nExprResult Sema::VerifyBitField(SourceLocation FieldLoc, IdentifierInfo *FieldName, QualType FieldTy, bool IsMsStruct, Expr *BitWidth) {\n  if (Value.isSigned() && Value.isNegative()) {\n    return Diag(FieldLoc, diag::err_anon_bitfield_has_negative_width) << toString(Value, 10);"}}
},
},
["err_anon_bitfield_member_init"]={
["err_anon_bitfield_member_init"]={
[f]="anonymous bit-field cannot have a default member initializer",
[f]="anonymous bit-field cannot have a default member initializer",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="anonymous bit-field cannot have a default member initializer",
[g]="anonymous bit-field cannot have a default member initializer",
[c]=m,
[i]=m,
[b]="anonymous bit\\-field cannot have a default member initializer",
[j]="anonymous bit\\-field cannot have a default member initializer",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={"2e204e23911b",1601401476,"[clang] Enable support for #pragma STDC FENV_ACCESS"}
[d]={"2e204e23911b",1601401476,"[clang] Enable support for #pragma STDC FENV_ACCESS"},
[k]={{K,2599,"/// ParseCXXClassMemberDeclaration - Parse a C++ class member declaration.\n///\n///      member-declaration:\n///        decl-specifier-seq[opt] member-declarator-list[opt] \';\'\n///        function-definition \';\'[opt]\n///        ::[opt] nested-name-specifier template[opt] unqualified-id \';\'[TODO]\n///        using-declaration                                            [TODO]\n/// [C++0x] static_assert-declaration\n///        template-declaration\n/// [GNU]  \'__extension__\' member-declaration\n///\n///      member-declarator-list:\n///        member-declarator\n///        member-declarator-list \',\' member-declarator\n///\n///      member-declarator:\n///        declarator virt-specifier-seq[opt] pure-specifier[opt]\n/// [C++2a] declarator requires-clause\n///        declarator constant-initializer[opt]\n/// [C++11] declarator brace-or-equal-initializer[opt]\n///        identifier[opt] \':\' constant-expression\n///\n///      virt-specifier-seq:\n///        virt-specifier\n///        virt-specifier-seq virt-specifier\n///\n///      virt-specifier:\n///        override\n///        final\n/// [MS]    sealed\n///\n///      pure-specifier:\n///        \'= 0\'\n///\n///      constant-initializer:\n///        \'=\' constant-expression\n///\nParser::DeclGroupPtrTy Parser::ParseCXXClassMemberDeclaration(AccessSpecifier AS, ParsedAttributes &AccessAttrs, const ParsedTemplateInfo &TemplateInfo, ParsingDeclRAIIObject *TemplateDiags) {\n  while (true) {\n    if (Tok.isOneOf(tok::equal, tok::l_brace) && PureSpecLoc.isInvalid()) {\n      // DRXXXX: Anonymous bit-fields cannot have a brace-or-equal-initializer.\n      if (BitfieldSize.isUsable() && !DeclaratorInfo.hasName()) {\n        Diag(Tok, diag::err_anon_bitfield_member_init);"}}
},
},
["err_anon_bitfield_qualifiers"]={
["err_anon_bitfield_qualifiers"]={
[f]="anonymous bit-field cannot have qualifiers",
[f]="anonymous bit-field cannot have qualifiers",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="anonymous bit-field cannot have qualifiers",
[g]="anonymous bit-field cannot have qualifiers",
[c]=m,
[i]=m,
[b]="anonymous bit\\-field cannot have qualifiers",
[j]="anonymous bit\\-field cannot have qualifiers",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"33e90d160b1b",1521320920,"Implement DR2229, which prohibits unnamed bit-fields from having qualifiers in C++."}
[d]={"33e90d160b1b",1521320920,"Implement DR2229, which prohibits unnamed bit-fields from having qualifiers in C++."},
[k]={{q,15881,"/// Build a new FieldDecl and check its well-formedness.\n///\n/// This routine builds a new FieldDecl given the fields name, type,\n/// record, etc. \\p PrevDecl should refer to any previous declaration\n/// with the same name and in the same scope as the field to be\n/// created.\n///\n/// \\returns a new FieldDecl.\n///\n/// \\todo The Declarator argument is a hack. It will be removed once\nFieldDecl *Sema::CheckFieldDecl(DeclarationName Name, QualType T, TypeSourceInfo *TInfo, RecordDecl *Record, SourceLocation Loc, bool Mutable, Expr *BitWidth, InClassInitStyle InitStyle, SourceLocation TSSL, AccessSpecifier AS, NamedDecl *PrevDecl, Declarator *D) {\n  // Anonymous bit-fields cannot be cv-qualified (CWG 2229).\n  if (!InvalidDecl && getLangOpts().CPlusPlus && !II && BitWidth && T.hasQualifiers()) {\n    Diag(Loc, diag::err_anon_bitfield_qualifiers);"}}
},
},
["err_anon_type_definition"]={
["err_anon_type_definition"]={
[f]="declaration of anonymous A must be a definition",
[f]="declaration of anonymous A must be a definition",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="declaration of anonymous %0 must be a definition",
[g]="declaration of anonymous %0 must be a definition",
[c]=m,
[i]=m,
[b]="declaration of anonymous (.*?) must be a definition",
[j]="declaration of anonymous (.*?) must be a definition",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{K,1669,"#include \"clang/Basic/TransformTypeTraits.def\"\n  if (!Name && !TemplateId && (DS.getTypeSpecType() == DeclSpec::TST_error || TUK != Sema::TUK_Definition)) {\n    if (DS.getTypeSpecType() != DeclSpec::TST_error) {\n      Diag(StartLoc, diag::err_anon_type_definition) << DeclSpec::getSpecifierName(TagType, Policy);"}}
},
},
["err_anonymous_enum_bitfield"]={
["err_anonymous_enum_bitfield"]={
[f]="ISO C++ only allows \':\' in member enumeration declaration to introduce a fixed underlying type, not an anonymous bit-field",
[f]="ISO C++ only allows \':\' in member enumeration declaration to introduce a fixed underlying type, not an anonymous bit-field",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="ISO C++ only allows \':\' in member enumeration declaration to introduce a fixed underlying type, not an anonymous bit-field",
[g]="ISO C++ only allows \':\' in member enumeration declaration to introduce a fixed underlying type, not an anonymous bit-field",
[c]=m,
[i]=m,
[b]="ISO C\\+\\+ only allows \'\\:\' in member enumeration declaration to introduce a fixed underlying type, not an anonymous bit\\-field",
[j]="ISO C\\+\\+ only allows \'\\:\' in member enumeration declaration to introduce a fixed underlying type, not an anonymous bit\\-field",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={"c90e19810743",1588991058,"Fix parsing of enum-base to follow C++11 rules."}
[d]={"c90e19810743",1588991058,"Fix parsing of enum-base to follow C++11 rules."},
[k]={{D,4460,"/// ParseEnumSpecifier\n///      enum-specifier: [C99 6.7.2.2]\n///        \'enum\' identifier[opt] \'{\' enumerator-list \'}\'\n///[C99/C++]\'enum\' identifier[opt] \'{\' enumerator-list \',\' \'}\'\n/// [GNU]  \'enum\' attributes[opt] identifier[opt] \'{\' enumerator-list \',\' [opt]\n///                                                \'}\' attributes[opt]\n/// [MS]    \'enum\' __declspec[opt] identifier[opt] \'{\' enumerator-list \',\' [opt]\n///                                                \'}\'\n///        \'enum\' identifier\n/// [GNU]  \'enum\' attributes[opt] identifier\n///\n/// [C++11] enum-head \'{\' enumerator-list[opt] \'}\'\n/// [C++11] enum-head \'{\' enumerator-list \',\'  \'}\'\n///\n///      enum-head: [C++11]\n///        enum-key attribute-specifier-seq[opt] identifier[opt] enum-base[opt]\n///        enum-key attribute-specifier-seq[opt] nested-name-specifier\n///            identifier enum-base[opt]\n///\n///      enum-key: [C++11]\n///        \'enum\'\n///        \'enum\' \'class\'\n///        \'enum\' \'struct\'\n///\n///      enum-base: [C++11]\n///        \':\' type-specifier-seq\n///\n/// [C++] elaborated-type-specifier:\n/// [C++]  \'enum\' nested-name-specifier[opt] identifier\n///\nvoid Parser::ParseEnumSpecifier(SourceLocation StartLoc, DeclSpec &DS, const ParsedTemplateInfo &TemplateInfo, AccessSpecifier AS, DeclSpecContext DSC) {\n  // Parse the fixed underlying type.\n  if (Tok.is(tok::colon)) {\n    if (CanBeBitfield && !isEnumBase(CanBeOpaqueEnumDeclaration)) {\n      // Outside C++11, do not interpret the tokens as an enum-base if they do\n      // not make sense as one. In C++11, it\'s an error if this happens.\n      if (getLangOpts().CPlusPlus11)\n        Diag(Tok.getLocation(), diag::err_anonymous_enum_bitfield);"}}
},
},
["err_anonymous_property"]={
["err_anonymous_property"]={
[f]="anonymous property is not supported",
[f]="anonymous property is not supported",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="anonymous property is not supported",
[i]=m,
[j]="anonymous property is not supported",
[j]="anonymous property is not supported",
[c]=m,
[b]=a,
[b]="anonymous property is not supported",
[h]=o,
[i]=a,
[d]={"5e77d76c953d",1366097310,"Basic support for Microsoft property declarations and"},
[h]=n,
[k]={{v,16095,"/// HandleMSProperty - Analyze a __delcspec(property) field of a C++ class.\n///\nMSPropertyDecl *Sema::HandleMSProperty(Scope *S, RecordDecl *Record, SourceLocation DeclStart, Declarator &D, Expr *BitWidth, InClassInitStyle InitStyle, AccessSpecifier AS, const ParsedAttr &MSPropertyAttr) {\n  if (!II) {\n    Diag(DeclStart, diag::err_anonymous_property);"}}
[g]={xb,1366097310,tb}
},
},
["err_anonymous_record_bad_member"]={
["err_anonymous_record_bad_member"]={
[f]="anonymous ... can only contain non-static data members",
[f]="anonymous ... can only contain non-static data members",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="anonymous %select{struct|union}0 can only contain non-static data members",
[g]="anonymous %select{struct|union}0 can only contain non-static data members",
[c]=m,
[i]=m,
[b]="anonymous (?:struct|union) can only contain non\\-static data members",
[j]="anonymous (?:struct|union) can only contain non\\-static data members",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{q,5011,"/// BuildAnonymousStructOrUnion - Handle the declaration of an\n/// anonymous structure or union. Anonymous unions are a C++ feature\n/// (C++ [class.union]) and a C11 feature; anonymous structures\n/// are a C11 feature and GNU C++ extension.\nDecl *Sema::BuildAnonymousStructOrUnion(Scope *S, DeclSpec &DS, AccessSpecifier AS, RecordDecl *Record, const PrintingPolicy &Policy) {\n  if (getLangOpts().CPlusPlus) {\n    // C++ [class.union]p2:\n    //  The member-specification of an anonymous union shall only\n    //  define non-static data members. [Note: nested types and\n    //  functions cannot be declared within an anonymous union. ]\n    for (auto *Mem : Record->decls()) {\n      if (auto *FD = dyn_cast<FieldDecl>(Mem)) {\n      } else if (Mem->isImplicit()) {\n      } else if (isa<TagDecl>(Mem) && Mem->getDeclContext() != Record) {\n      } else if (auto *MemRecord = dyn_cast<RecordDecl>(Mem)) {\n      } else if (isa<AccessSpecDecl>(Mem)) {\n      } else if (isa<StaticAssertDecl>(Mem)) {\n      } else {\n        unsigned DK = diag::err_anonymous_record_bad_member;"}}
},
},
["err_anonymous_record_member_redecl"]={
["err_anonymous_record_member_redecl"]={
[f]="member of anonymous ... redeclares A",
[f]="member of anonymous ... redeclares A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="member of anonymous %select{struct|union}0 redeclares %1",
[g]="member of anonymous %select{struct|union}0 redeclares %1",
[c]=m,
[i]=m,
[b]="member of anonymous (?:struct|union) redeclares (.*?)",
[j]="member of anonymous (?:struct|union) redeclares (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"da7b27ff0b98",1447738809,"[Sema] Combine similar diagnostics using %select. NFC"}
[d]={"da7b27ff0b98",1447738809,"[Sema] Combine similar diagnostics using %select. NFC"},
[k]={{q,4764,"/// We are trying to inject an anonymous member into the given scope;\n/// check if there\'s an existing declaration that can\'t be overloaded.\n///\n/// \\return true if this is a forbidden redeclaration\nstatic bool CheckAnonMemberRedeclaration(Sema &SemaRef, Scope *S, DeclContext *Owner, DeclarationName Name, SourceLocation NameLoc, bool IsUnion) {\n  SemaRef.Diag(NameLoc, diag::err_anonymous_record_member_redecl) << IsUnion << Name;"}}
},
},
["err_anonymous_record_nonpublic_member"]={
["err_anonymous_record_nonpublic_member"]={
[f]="anonymous ... cannot contain a ... data member",
[f]="anonymous ... cannot contain a ... data member",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="anonymous %select{struct|union}0 cannot contain a %select{private|protected}1 data member",
[g]="anonymous %select{struct|union}0 cannot contain a %select{private|protected}1 data member",
[c]=m,
[i]=m,
[b]="anonymous (?:struct|union) cannot contain a (?:private|protected) data member",
[j]="anonymous (?:struct|union) cannot contain a (?:private|protected) data member",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{q,4970,"/// BuildAnonymousStructOrUnion - Handle the declaration of an\n/// anonymous structure or union. Anonymous unions are a C++ feature\n/// (C++ [class.union]) and a C11 feature; anonymous structures\n/// are a C11 feature and GNU C++ extension.\nDecl *Sema::BuildAnonymousStructOrUnion(Scope *S, DeclSpec &DS, AccessSpecifier AS, RecordDecl *Record, const PrintingPolicy &Policy) {\n  if (getLangOpts().CPlusPlus) {\n    // C++ [class.union]p2:\n    //  The member-specification of an anonymous union shall only\n    //  define non-static data members. [Note: nested types and\n    //  functions cannot be declared within an anonymous union. ]\n    for (auto *Mem : Record->decls()) {\n      if (auto *FD = dyn_cast<FieldDecl>(Mem)) {\n        if (FD->getAccess() != AS_public) {\n          Diag(FD->getLocation(), diag::err_anonymous_record_nonpublic_member) << Record->isUnion() << (FD->getAccess() == AS_protected);"}}
},
},
["err_anonymous_record_with_function"]={
["err_anonymous_record_with_function"]={
[f]="functions cannot be declared in an anonymous ...",
[f]="functions cannot be declared in an anonymous ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="functions cannot be declared in an anonymous %select{struct|union}0",
[g]="functions cannot be declared in an anonymous %select{struct|union}0",
[c]=m,
[i]=m,
[b]="functions cannot be declared in an anonymous (?:struct|union)",
[j]="functions cannot be declared in an anonymous (?:struct|union)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{q,5015,"/// BuildAnonymousStructOrUnion - Handle the declaration of an\n/// anonymous structure or union. Anonymous unions are a C++ feature\n/// (C++ [class.union]) and a C11 feature; anonymous structures\n/// are a C11 feature and GNU C++ extension.\nDecl *Sema::BuildAnonymousStructOrUnion(Scope *S, DeclSpec &DS, AccessSpecifier AS, RecordDecl *Record, const PrintingPolicy &Policy) {\n  if (getLangOpts().CPlusPlus) {\n    // C++ [class.union]p2:\n    //  The member-specification of an anonymous union shall only\n    //  define non-static data members. [Note: nested types and\n    //  functions cannot be declared within an anonymous union. ]\n    for (auto *Mem : Record->decls()) {\n      if (auto *FD = dyn_cast<FieldDecl>(Mem)) {\n      } else if (Mem->isImplicit()) {\n      } else if (isa<TagDecl>(Mem) && Mem->getDeclContext() != Record) {\n      } else if (auto *MemRecord = dyn_cast<RecordDecl>(Mem)) {\n      } else if (isa<AccessSpecDecl>(Mem)) {\n      } else if (isa<StaticAssertDecl>(Mem)) {\n      } else {\n        if (isa<TypeDecl>(Mem))\n        else if (isa<FunctionDecl>(Mem))\n          DK = diag::err_anonymous_record_with_function;"}}
},
},
["err_anonymous_record_with_static"]={
["err_anonymous_record_with_static"]={
[f]="static members cannot be declared in an anonymous ...",
[f]="static members cannot be declared in an anonymous ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="static members cannot be declared in an anonymous %select{struct|union}0",
[g]="static members cannot be declared in an anonymous %select{struct|union}0",
[c]=m,
[i]=m,
[b]="static members cannot be declared in an anonymous (?:struct|union)",
[j]="static members cannot be declared in an anonymous (?:struct|union)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{q,5017,"/// BuildAnonymousStructOrUnion - Handle the declaration of an\n/// anonymous structure or union. Anonymous unions are a C++ feature\n/// (C++ [class.union]) and a C11 feature; anonymous structures\n/// are a C11 feature and GNU C++ extension.\nDecl *Sema::BuildAnonymousStructOrUnion(Scope *S, DeclSpec &DS, AccessSpecifier AS, RecordDecl *Record, const PrintingPolicy &Policy) {\n  if (getLangOpts().CPlusPlus) {\n    // C++ [class.union]p2:\n    //  The member-specification of an anonymous union shall only\n    //  define non-static data members. [Note: nested types and\n    //  functions cannot be declared within an anonymous union. ]\n    for (auto *Mem : Record->decls()) {\n      if (auto *FD = dyn_cast<FieldDecl>(Mem)) {\n      } else if (Mem->isImplicit()) {\n      } else if (isa<TagDecl>(Mem) && Mem->getDeclContext() != Record) {\n      } else if (auto *MemRecord = dyn_cast<RecordDecl>(Mem)) {\n      } else if (isa<AccessSpecDecl>(Mem)) {\n      } else if (isa<StaticAssertDecl>(Mem)) {\n      } else {\n        if (isa<TypeDecl>(Mem))\n        else if (isa<FunctionDecl>(Mem))\n        else if (isa<VarDecl>(Mem))\n          DK = diag::err_anonymous_record_with_static;"}}
},
},
["err_anonymous_record_with_type"]={
["err_anonymous_record_with_type"]={
[f]="types cannot be declared in an anonymous ...",
[f]="types cannot be declared in an anonymous ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="types cannot be declared in an anonymous %select{struct|union}0",
[g]="types cannot be declared in an anonymous %select{struct|union}0",
[c]=m,
[i]=m,
[b]="types cannot be declared in an anonymous (?:struct|union)",
[j]="types cannot be declared in an anonymous (?:struct|union)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{q,4995,"/// BuildAnonymousStructOrUnion - Handle the declaration of an\n/// anonymous structure or union. Anonymous unions are a C++ feature\n/// (C++ [class.union]) and a C11 feature; anonymous structures\n/// are a C11 feature and GNU C++ extension.\nDecl *Sema::BuildAnonymousStructOrUnion(Scope *S, DeclSpec &DS, AccessSpecifier AS, RecordDecl *Record, const PrintingPolicy &Policy) {\n  if (getLangOpts().CPlusPlus) {\n    // C++ [class.union]p2:\n    //  The member-specification of an anonymous union shall only\n    //  define non-static data members. [Note: nested types and\n    //  functions cannot be declared within an anonymous union. ]\n    for (auto *Mem : Record->decls()) {\n      if (auto *FD = dyn_cast<FieldDecl>(Mem)) {\n      } else if (Mem->isImplicit()) {\n      } else if (isa<TagDecl>(Mem) && Mem->getDeclContext() != Record) {\n      } else if (auto *MemRecord = dyn_cast<RecordDecl>(Mem)) {\n        if (!MemRecord->isAnonymousStructOrUnion() && MemRecord->getDeclName()) {\n          // Visual C++ allows type definition in anonymous struct or union.\n          if (getLangOpts().MicrosoftExt)\n          else {\n            Diag(MemRecord->getLocation(), diag::err_anonymous_record_with_type) << Record->isUnion();"},{q,5013,"/// BuildAnonymousStructOrUnion - Handle the declaration of an\n/// anonymous structure or union. Anonymous unions are a C++ feature\n/// (C++ [class.union]) and a C11 feature; anonymous structures\n/// are a C11 feature and GNU C++ extension.\nDecl *Sema::BuildAnonymousStructOrUnion(Scope *S, DeclSpec &DS, AccessSpecifier AS, RecordDecl *Record, const PrintingPolicy &Policy) {\n  if (getLangOpts().CPlusPlus) {\n    // C++ [class.union]p2:\n    //  The member-specification of an anonymous union shall only\n    //  define non-static data members. [Note: nested types and\n    //  functions cannot be declared within an anonymous union. ]\n    for (auto *Mem : Record->decls()) {\n      if (auto *FD = dyn_cast<FieldDecl>(Mem)) {\n      } else if (Mem->isImplicit()) {\n      } else if (isa<TagDecl>(Mem) && Mem->getDeclContext() != Record) {\n      } else if (auto *MemRecord = dyn_cast<RecordDecl>(Mem)) {\n      } else if (isa<AccessSpecDecl>(Mem)) {\n      } else if (isa<StaticAssertDecl>(Mem)) {\n      } else {\n        if (isa<TypeDecl>(Mem))\n          DK = diag::err_anonymous_record_with_type;"},{q,5020,"/// BuildAnonymousStructOrUnion - Handle the declaration of an\n/// anonymous structure or union. Anonymous unions are a C++ feature\n/// (C++ [class.union]) and a C11 feature; anonymous structures\n/// are a C11 feature and GNU C++ extension.\nDecl *Sema::BuildAnonymousStructOrUnion(Scope *S, DeclSpec &DS, AccessSpecifier AS, RecordDecl *Record, const PrintingPolicy &Policy) {\n  if (getLangOpts().CPlusPlus) {\n    // C++ [class.union]p2:\n    //  The member-specification of an anonymous union shall only\n    //  define non-static data members. [Note: nested types and\n    //  functions cannot be declared within an anonymous union. ]\n    for (auto *Mem : Record->decls()) {\n      if (auto *FD = dyn_cast<FieldDecl>(Mem)) {\n      } else if (Mem->isImplicit()) {\n      } else if (isa<TagDecl>(Mem) && Mem->getDeclContext() != Record) {\n      } else if (auto *MemRecord = dyn_cast<RecordDecl>(Mem)) {\n      } else if (isa<AccessSpecDecl>(Mem)) {\n      } else if (isa<StaticAssertDecl>(Mem)) {\n      } else {\n        if (getLangOpts().MicrosoftExt && DK == diag::err_anonymous_record_with_type)"}}
},
},
["err_anonymous_struct_not_member"]={
["err_anonymous_struct_not_member"]={
[f]="anonymous ... must be ... members",
[f]="anonymous ... must be ... members",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="anonymous %select{structs|structs and classes}0 must be %select{struct or union|class}0 members",
[g]="anonymous %select{structs|structs and classes}0 must be %select{struct or union|class}0 members",
[c]=m,
[i]=m,
[b]="anonymous (?:structs|structs and classes) must be (?:struct or union|class) members",
[j]="anonymous (?:structs|structs and classes) must be (?:struct or union|class) members",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{q,5037,"/// BuildAnonymousStructOrUnion - Handle the declaration of an\n/// anonymous structure or union. Anonymous unions are a C++ feature\n/// (C++ [class.union]) and a C11 feature; anonymous structures\n/// are a C11 feature and GNU C++ extension.\nDecl *Sema::BuildAnonymousStructOrUnion(Scope *S, DeclSpec &DS, AccessSpecifier AS, RecordDecl *Record, const PrintingPolicy &Policy) {\n  if (!Record->isUnion() && !Owner->isRecord()) {\n    Diag(Record->getLocation(), diag::err_anonymous_struct_not_member) << getLangOpts().CPlusPlus;"}}
},
},
["err_anonymous_union_not_static"]={
["err_anonymous_union_not_static"]={
[f]="anonymous unions at namespace or global scope must be declared \'static\'",
[f]="anonymous unions at namespace or global scope must be declared \'static\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="anonymous unions at namespace or global scope must be declared \'static\'",
[i]=m,
[j]="anonymous unions at namespace or global scope must be declared \'static\'",
[j]="anonymous unions at namespace or global scope must be declared \'static\'",
[c]=m,
[b]=a,
[b]="anonymous unions at namespace or global scope must be declared \'static\'",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{q,4923,"/// BuildAnonymousStructOrUnion - Handle the declaration of an\n/// anonymous structure or union. Anonymous unions are a C++ feature\n/// (C++ [class.union]) and a C11 feature; anonymous structures\n/// are a C11 feature and GNU C++ extension.\nDecl *Sema::BuildAnonymousStructOrUnion(Scope *S, DeclSpec &DS, AccessSpecifier AS, RecordDecl *Record, const PrintingPolicy &Policy) {\n  if (getLangOpts().CPlusPlus) {\n    if (Record->isUnion()) {\n      if (DS.getStorageClassSpec() != DeclSpec::SCS_static && (OwnerScope->isTranslationUnit() || (OwnerScope->isNamespace() && !cast<NamespaceDecl>(OwnerScope)->isAnonymousNamespace()))) {\n        Diag(Record->getLocation(), diag::err_anonymous_union_not_static) << FixItHint::CreateInsertion(Record->getLocation(), \"static \");"}}
[g]={q,1237025389,p}
},
},
["err_anonymous_union_with_storage_spec"]={
["err_anonymous_union_with_storage_spec"]={
[f]="anonymous union at class scope must not have a storage specifier",
[f]="anonymous union at class scope must not have a storage specifier",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="anonymous union at class scope must not have a storage specifier",
[i]=m,
[j]="anonymous union at class scope must not have a storage specifier",
[j]="anonymous union at class scope must not have a storage specifier",
[c]=m,
[b]=a,
[b]="anonymous union at class scope must not have a storage specifier",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{q,4932,"/// BuildAnonymousStructOrUnion - Handle the declaration of an\n/// anonymous structure or union. Anonymous unions are a C++ feature\n/// (C++ [class.union]) and a C11 feature; anonymous structures\n/// are a C11 feature and GNU C++ extension.\nDecl *Sema::BuildAnonymousStructOrUnion(Scope *S, DeclSpec &DS, AccessSpecifier AS, RecordDecl *Record, const PrintingPolicy &Policy) {\n  if (getLangOpts().CPlusPlus) {\n    if (Record->isUnion()) {\n      }\n      // C++ [class.union]p6:\n      //  A storage class is not allowed in a declaration of an\n      //  anonymous union in a class scope.\n      else if (DS.getStorageClassSpec() != DeclSpec::SCS_unspecified && isa<RecordDecl>(Owner)) {\n        Diag(DS.getStorageClassSpecLoc(), diag::err_anonymous_union_with_storage_spec) << FixItHint::CreateRemoval(DS.getStorageClassSpecLoc());"}}
[g]={q,1237025389,p}
},
},
["err_anyx86_interrupt_attribute"]={
["err_anyx86_interrupt_attribute"]={
[f]="... \'interrupt\' attribute only applies to functions that have ...",
[f]="... \'interrupt\' attribute only applies to functions that have ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{x86|x86-64}0 \'interrupt\' attribute only applies to functions that have %select{a \'void\' return type|only a pointer parameter optionally followed by an integer parameter|a pointer as the first parameter|a %2 type as the second parameter}1",
[g]="%select{x86|x86-64}0 \'interrupt\' attribute only applies to functions that have %select{a \'void\' return type|only a pointer parameter optionally followed by an integer parameter|a pointer as the first parameter|a %2 type as the second parameter}1",
[c]=m,
[i]=m,
[b]="(?:x86|x86\\-64) \'interrupt\' attribute only applies to functions that have (?:a \'void\' return type|only a pointer parameter optionally followed by an integer parameter|a pointer as the first parameter|a (.*?) type as the second parameter)",
[j]="(?:x86|x86\\-64) \'interrupt\' attribute only applies to functions that have (?:a \'void\' return type|only a pointer parameter optionally followed by an integer parameter|a pointer as the first parameter|a (.*?) type as the second parameter)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"d51e9933b6aa",1452830791,"[X86] Support \'interrupt\' attribute for x86"}
[d]={"d51e9933b6aa",1452830791,"[X86] Support \'interrupt\' attribute for x86"},
[k]={{p,6655,"static void handleAnyX86InterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // Interrupt handler must have void return type.\n  if (!getFunctionOrMethodResultType(D)->isVoidType()) {\n    S.Diag(getFunctionOrMethodResultSourceRange(D).getBegin(), diag::err_anyx86_interrupt_attribute) << (S.Context.getTargetInfo().getTriple().getArch() == llvm::Triple::x86 ? 0 : 1) << 0;"},{p,6661,"static void handleAnyX86InterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (NumParams < 1 || NumParams > 2) {\n    S.Diag(D->getBeginLoc(), diag::err_anyx86_interrupt_attribute) << (S.Context.getTargetInfo().getTriple().getArch() == llvm::Triple::x86 ? 0 : 1) << 1;"},{p,6666,"static void handleAnyX86InterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // The first argument must be a pointer.\n  if (!getFunctionOrMethodParamType(D, 0)->isPointerType()) {\n    S.Diag(getFunctionOrMethodParamRange(D, 0).getBegin(), diag::err_anyx86_interrupt_attribute) << (S.Context.getTargetInfo().getTriple().getArch() == llvm::Triple::x86 ? 0 : 1) << 2;"},{p,6672,"static void handleAnyX86InterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (NumParams == 2 && (!getFunctionOrMethodParamType(D, 1)->isUnsignedIntegerType() || S.Context.getTypeSize(getFunctionOrMethodParamType(D, 1)) != TypeSize)) {\n    S.Diag(getFunctionOrMethodParamRange(D, 1).getBegin(), diag::err_anyx86_interrupt_attribute) << (S.Context.getTargetInfo().getTriple().getArch() == llvm::Triple::x86 ? 0 : 1) << 3 << S.Context.getIntTypeForBitwidth(TypeSize, /*Signed=*/false);"}}
},
},
["err_anyx86_interrupt_called"]={
["err_anyx86_interrupt_called"]={
[f]="interrupt service routine cannot be called directly",
[f]="interrupt service routine cannot be called directly",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="interrupt service routine cannot be called directly",
[i]=m,
[j]="interrupt service routine cannot be called directly",
[j]="interrupt service routine cannot be called directly",
[c]=m,
[b]=a,
[b]="interrupt service routine cannot be called directly",
[h]=o,
[i]=a,
[d]={"d51e9933b6aa",1452830791,"[X86] Support \'interrupt\' attribute for x86"},
[h]=n,
[k]={{y,6321,"/// BuildResolvedCallExpr - Build a call to a resolved expression,\n/// i.e. an expression not of \\p OverloadTy.  The expression should\n/// unary-convert to an expression of function-pointer or\n/// block-pointer type.\n///\n/// \\param NDecl the declaration being called, if available\nExprResult Sema::BuildResolvedCallExpr(Expr *Fn, NamedDecl *NDecl, SourceLocation LParenLoc, ArrayRef<Expr *> Args, SourceLocation RParenLoc, Expr *Config, bool IsExecConfig, ADLCallKind UsesADL) {\n  // Functions with \'interrupt\' attribute cannot be called directly.\n  if (FDecl && FDecl->hasAttr<AnyX86InterruptAttr>()) {\n    Diag(Fn->getExprLoc(), diag::err_anyx86_interrupt_called);"}}
[g]={"d51e9933b6aa",1452830791,"[X86] Support \'interrupt\' attribute for x86"}
},
},
["err_arc_array_param_no_ownership"]={
["err_arc_array_param_no_ownership"]={
[f]="must explicitly describe intended ownership of an object array parameter",
[f]="must explicitly describe intended ownership of an object array parameter",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="must explicitly describe intended ownership of an object array parameter",
[i]=m,
[j]="must explicitly describe intended ownership of an object array parameter",
[j]="must explicitly describe intended ownership of an object array parameter",
[c]=m,
[b]=a,
[b]="must explicitly describe intended ownership of an object array parameter",
[h]=L,
[i]=a,
[d]={Z,1308874139,Y},
[h]=T,
[k]={{q,13010,"ParmVarDecl *Sema::CheckParameter(DeclContext *DC, SourceLocation StartLoc, SourceLocation NameLoc, IdentifierInfo *Name, QualType T, TypeSourceInfo *TSInfo, StorageClass SC) {\n  // In ARC, infer a lifetime qualifier for appropriate parameter types.\n  if (getLangOpts().ObjCAutoRefCount && T.getObjCLifetime() == Qualifiers::OCL_None && T->isObjCLifetimeType()) {\n    // Special cases for arrays:\n    //  - if it\'s const, use __unsafe_unretained\n    //  - otherwise, it\'s an error\n    if (T->isArrayType()) {\n      if (!T.isConstQualified()) {\n        if (DelayedDiagnostics.shouldDelayDiagnostics())\n          DelayedDiagnostics.add(sema::DelayedDiagnostic::makeForbiddenType(NameLoc, diag::err_arc_array_param_no_ownership, T, false));"},{q,13012,"ParmVarDecl *Sema::CheckParameter(DeclContext *DC, SourceLocation StartLoc, SourceLocation NameLoc, IdentifierInfo *Name, QualType T, TypeSourceInfo *TSInfo, StorageClass SC) {\n  // In ARC, infer a lifetime qualifier for appropriate parameter types.\n  if (getLangOpts().ObjCAutoRefCount && T.getObjCLifetime() == Qualifiers::OCL_None && T->isObjCLifetimeType()) {\n    // Special cases for arrays:\n    //  - if it\'s const, use __unsafe_unretained\n    //  - otherwise, it\'s an error\n    if (T->isArrayType()) {\n      if (!T.isConstQualified()) {\n        if (DelayedDiagnostics.shouldDelayDiagnostics())\n        else\n          Diag(NameLoc, diag::err_arc_array_param_no_ownership) << TSInfo->getTypeLoc().getSourceRange();"},{p,8744,"/// Handle a delayed forbidden-type diagnostic.\nstatic void handleDelayedForbiddenType(Sema &S, DelayedDiagnostic &DD, Decl *D) {\n  if (S.getLangOpts().ObjCAutoRefCount)\n    if (const auto *FD = dyn_cast<FunctionDecl>(D)) {\n      if (FD->hasAttr<UnavailableAttr>() && DD.getForbiddenTypeDiagnostic() == diag::err_arc_array_param_no_ownership) {"}}
[g]={vb,1308874139,wb}
},
},
["err_arc_assign_property_ownership"]={
["err_arc_assign_property_ownership"]={
[f]="existing instance variable A for property B with ... attribute must be __unsafe_unretained",
[f]="existing instance variable A for property B with ... attribute must be __unsafe_unretained",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="existing instance variable %1 for property %0 with %select{unsafe_unretained|assign}2 attribute must be __unsafe_unretained",
[g]="existing instance variable %1 for property %0 with %select{unsafe_unretained|assign}2 attribute must be __unsafe_unretained",
[c]=m,
[i]=m,
[b]="existing instance variable (.*?) for property (.*?) with (?:unsafe_unretained|assign) attribute must be __unsafe_unretained",
[j]="existing instance variable (.*?) for property (.*?) with (?:unsafe_unretained|assign) attribute must be __unsafe_unretained",
[i]=a,
[b]=a,
[h]="ARC and @properties",
[h]="ARC and @properties",
[g]={vb,1308874139,wb}
[d]={Z,1308874139,Y},
[k]={{X,186,"class PropertiesRewriter {\n  void removeAssignForDefaultStrong(PropsTy &props, SourceLocation atLoc) const {\n    for (PropsTy::iterator I = props.begin(), E = props.end(); I != E; ++I) {\n      if (I->ImplD)\n        Pass.TA.clearDiagnostic(diag::err_arc_strong_property_ownership, diag::err_arc_assign_property_ownership, diag::err_arc_inconsistent_property_ownership, I->IvarD->getLocation());"},{X,207,"class PropertiesRewriter {\n  void rewriteAssign(PropsTy &props, SourceLocation atLoc) const {\n    for (PropsTy::iterator I = props.begin(), E = props.end(); I != E; ++I) {\n      if (I->ImplD)\n        Pass.TA.clearDiagnostic(diag::err_arc_strong_property_ownership, diag::err_arc_assign_property_ownership, diag::err_arc_inconsistent_property_ownership, I->IvarD->getLocation());"},{X,225,"class PropertiesRewriter {\n  void maybeAddWeakOrUnsafeUnretainedAttr(PropsTy &props, SourceLocation atLoc) const {\n    for (PropsTy::iterator I = props.begin(), E = props.end(); I != E; ++I) {\n      if (I->ImplD) {\n        Pass.TA.clearDiagnostic(diag::err_arc_strong_property_ownership, diag::err_arc_assign_property_ownership, diag::err_arc_inconsistent_property_ownership, I->IvarD->getLocation());"},{P,641,"static void checkARCPropertyImpl(Sema &S, SourceLocation propertyImplLoc, ObjCPropertyDecl *property, ObjCIvarDecl *ivar) {\n  case Qualifiers::OCL_ExplicitNone:\n    S.Diag(ivar->getLocation(), diag::err_arc_assign_property_ownership) << property->getDeclName() << ivar->getDeclName() << ((property->getPropertyAttributesAsWritten() & ObjCPropertyAttribute::kind_assign) != 0);"}}
},
},
["err_arc_atomic_ownership"]={
["err_arc_atomic_ownership"]={
[f]="cannot perform atomic operation on a pointer to type A: type has non-trivial ownership",
[f]="cannot perform atomic operation on a pointer to type A: type has non-trivial ownership",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot perform atomic operation on a pointer to type %0: type has non-trivial ownership",
[g]="cannot perform atomic operation on a pointer to type %0: type has non-trivial ownership",
[c]=m,
[i]=m,
[b]="cannot perform atomic operation on a pointer to type (.*?)\\: type has non\\-trivial ownership",
[j]="cannot perform atomic operation on a pointer to type (.*?)\\: type has non\\-trivial ownership",
[i]=a,
[b]=a,
[h]=T,
[h]=L,
[g]={vb,1308874139,wb}
[d]={Z,1308874139,Y},
[k]={{s,2882,"bool Sema::CheckARMBuiltinExclusiveCall(unsigned BuiltinID, CallExpr *TheCall, unsigned MaxWidth) {\n  case Qualifiers::OCL_Autoreleasing:\n    Diag(DRE->getBeginLoc(), diag::err_arc_atomic_ownership) << ValType << PointerArg->getSourceRange();"},{s,6833,"ExprResult Sema::BuildAtomicExpr(SourceRange CallRange, SourceRange ExprRange, SourceLocation RParenLoc, MultiExprArg Args, AtomicExpr::AtomicOp Op, AtomicArgumentOrder ArgOrder) {\n  case Qualifiers::OCL_Autoreleasing:\n    Diag(ExprRange.getBegin(), diag::err_arc_atomic_ownership) << ValType << Ptr->getSourceRange();"},{s,7136,"/// We have a call to a function like __sync_fetch_and_add, which is an\n/// overloaded function based on the pointer type of its first argument.\n/// The main BuildCallExpr routines have already promoted the types of\n/// arguments because all of these calls are prototyped as void(...).\n///\n/// This function goes through and does final semantic checking for these\n/// builtins, as well as generating any warnings.\nExprResult Sema::SemaBuiltinAtomicOverloaded(ExprResult TheCallResult) {\n  case Qualifiers::OCL_Autoreleasing:\n    Diag(DRE->getBeginLoc(), diag::err_arc_atomic_ownership) << ValType << FirstArg->getSourceRange();"}}
},
},
["err_arc_autoreleasing_capture"]={
["err_arc_autoreleasing_capture"]={
[f]="cannot capture __autoreleasing variable in a ...",
[f]="cannot capture __autoreleasing variable in a ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot capture __autoreleasing variable in a %select{block|lambda by copy}0",
[g]="cannot capture __autoreleasing variable in a %select{block|lambda by copy}0",
[c]=m,
[i]=m,
[b]="cannot capture __autoreleasing variable in a (?:block|lambda by copy)",
[j]="cannot capture __autoreleasing variable in a (?:block|lambda by copy)",
[i]=a,
[b]=a,
[h]=T,
[h]=L,
[g]={"67cd5e094e43",1333085028,"Forbid the block and lambda copy-capture of __autoreleasing variables"}
[d]={"67cd5e094e43",1333085028,"Forbid the block and lambda copy-capture of __autoreleasing variables"},
[k]={{y,16696,"// Returns true if the capture by block was successful.\nstatic bool captureInBlock(BlockScopeInfo *BSI, ValueDecl *Var, SourceLocation Loc, const bool BuildAndDiagnose, QualType &CaptureType, QualType &DeclRefType, const bool Nested, Sema &S, bool Invalid) {\n  // Forbid the block-capture of autoreleasing variables.\n  if (!Invalid && CaptureType.getObjCLifetime() == Qualifiers::OCL_Autoreleasing) {\n    if (BuildAndDiagnose) {\n      S.Diag(Loc, diag::err_arc_autoreleasing_capture) << /*block*/ 0;"},{y,16827,"/// Capture the given variable in the lambda.\nstatic bool captureInLambda(LambdaScopeInfo *LSI, ValueDecl *Var, SourceLocation Loc, const bool BuildAndDiagnose, QualType &CaptureType, QualType &DeclRefType, const bool RefersToCapturedVariable, const Sema::TryCaptureKind Kind, SourceLocation EllipsisLoc, const bool IsTopScope, Sema &S, bool Invalid) {\n  // Compute the type of the field that will capture this variable.\n  if (ByRef) {\n  } else {\n    // Forbid the lambda copy-capture of autoreleasing variables.\n    if (!Invalid && CaptureType.getObjCLifetime() == Qualifiers::OCL_Autoreleasing) {\n      if (BuildAndDiagnose) {\n        S.Diag(Loc, diag::err_arc_autoreleasing_capture) << /*lambda*/ 1;"}}
},
},
["err_arc_autoreleasing_var"]={
["err_arc_autoreleasing_var"]={
[f]="... cannot have __autoreleasing ownership",
[f]="... cannot have __autoreleasing ownership",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{__block variables|global variables|fields|instance variables}0 cannot have __autoreleasing ownership",
[g]="%select{__block variables|global variables|fields|instance variables}0 cannot have __autoreleasing ownership",
[c]=m,
[i]=m,
[b]="(?:__block variables|global variables|fields|instance variables) cannot have __autoreleasing ownership",
[j]="(?:__block variables|global variables|fields|instance variables) cannot have __autoreleasing ownership",
[i]=a,
[b]=a,
[h]=T,
[h]=L,
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{q,6113,"bool Sema::inferObjCARCLifetime(ValueDecl *decl) {\n  if (lifetime == Qualifiers::OCL_Autoreleasing) {\n    if (kind != -1U) {\n      Diag(decl->getLocation(), diag::err_arc_autoreleasing_var) << kind;"}}
},
},
["err_arc_bridge_cast_incompatible"]={
["err_arc_bridge_cast_incompatible"]={
[f]="incompatible types casting A to B with a ... cast",
[f]="incompatible types casting A to B with a ... cast",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="incompatible types casting %0 to %1 with a %select{__bridge|__bridge_transfer|__bridge_retained}2 cast",
[g]="incompatible types casting %0 to %1 with a %select{__bridge|__bridge_transfer|__bridge_retained}2 cast",
[c]=m,
[i]=m,
[b]="incompatible types casting (.*?) to (.*?) with a (?:__bridge|__bridge_transfer|__bridge_retained) cast",
[j]="incompatible types casting (.*?) to (.*?) with a (?:__bridge|__bridge_transfer|__bridge_retained) cast",
[i]=a,
[b]=a,
[h]="ARC Casting Rules",
[h]="ARC Casting Rules",
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{G,3826,"ExprResult Sema::BuildObjCBridgedCast(SourceLocation LParenLoc, ObjCBridgeCastKind Kind, SourceLocation BridgeKeywordLoc, TypeSourceInfo *TSInfo, Expr *SubExpr) {\n  if (T->isDependentType() || SubExpr->isTypeDependent()) {\n  } else if (T->isObjCARCBridgableType() && FromType->isCARCBridgableType()) {\n  } else if (T->isCARCBridgableType() && FromType->isObjCARCBridgableType()) {\n  } else {\n    Diag(LParenLoc, diag::err_arc_bridge_cast_incompatible) << FromType << T << Kind << SubExpr->getSourceRange() << TSInfo->getTypeLoc().getSourceRange();"}}
},
},
["err_arc_bridge_cast_wrong_kind"]={
["err_arc_bridge_cast_wrong_kind"]={
[f]="cast of ... pointer type A to ... pointer type B cannot use ...",
[f]="cast of ... pointer type A to ... pointer type B cannot use ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cast of %select{Objective-C|block|C}0 pointer type %1 to %select{Objective-C|block|C}2 pointer type %3 cannot use %select{__bridge|__bridge_transfer|__bridge_retained}4",
[g]="cast of %select{Objective-C|block|C}0 pointer type %1 to %select{Objective-C|block|C}2 pointer type %3 cannot use %select{__bridge|__bridge_transfer|__bridge_retained}4",
[c]=m,
[i]=m,
[b]="cast of (?:Objective\\-C|block|C) pointer type (.*?) to (?:Objective\\-C|block|C) pointer type (.*?) cannot use (?:__bridge|__bridge_transfer|__bridge_retained)",
[j]="cast of (?:Objective\\-C|block|C) pointer type (.*?) to (?:Objective\\-C|block|C) pointer type (.*?) cannot use (?:__bridge|__bridge_transfer|__bridge_retained)",
[i]=a,
[b]=a,
[h]="ARC Casting Rules",
[h]="ARC Casting Rules",
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{G,3786,"ExprResult Sema::BuildObjCBridgedCast(SourceLocation LParenLoc, ObjCBridgeCastKind Kind, SourceLocation BridgeKeywordLoc, TypeSourceInfo *TSInfo, Expr *SubExpr) {\n  if (T->isDependentType() || SubExpr->isTypeDependent()) {\n  } else if (T->isObjCARCBridgableType() && FromType->isCARCBridgableType()) {\n    case OBC_BridgeRetained: {\n      Diag(BridgeKeywordLoc, diag::err_arc_bridge_cast_wrong_kind) << 2 << FromType << (T->isBlockPointerType() ? 1 : 0) << T << SubExpr->getSourceRange() << Kind;"},{G,3816,"ExprResult Sema::BuildObjCBridgedCast(SourceLocation LParenLoc, ObjCBridgeCastKind Kind, SourceLocation BridgeKeywordLoc, TypeSourceInfo *TSInfo, Expr *SubExpr) {\n  if (T->isDependentType() || SubExpr->isTypeDependent()) {\n  } else if (T->isObjCARCBridgableType() && FromType->isCARCBridgableType()) {\n  } else if (T->isCARCBridgableType() && FromType->isObjCARCBridgableType()) {\n    case OBC_BridgeTransfer: {\n      Diag(BridgeKeywordLoc, diag::err_arc_bridge_cast_wrong_kind) << (FromType->isBlockPointerType() ? 1 : 0) << FromType << 2 << T << SubExpr->getSourceRange() << Kind;"}}
},
},
["err_arc_bridge_retain"]={
["err_arc_bridge_retain"]={
[f]="unknown cast annotation __bridge_retain; did you mean __bridge_retained?",
[f]="unknown cast annotation __bridge_retain; did you mean __bridge_retained?",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="unknown cast annotation __bridge_retain; did you mean __bridge_retained?",
[g]="unknown cast annotation __bridge_retain; did you mean __bridge_retained?",
[c]=m,
[i]=m,
[b]="unknown cast annotation __bridge_retain; did you mean __bridge_retained\\?",
[j]="unknown cast annotation __bridge_retain; did you mean __bridge_retained\\?",
[i]=a,
[b]=a,
[h]="ARC Parse Issue",
[h]="ARC Parse Issue",
[g]={"0c07bee8bd2c",1308347772,"Only accept __bridge_retain in system headers, as Doug suggested."}
[d]={"0c07bee8bd2c",1308347772,"Only accept __bridge_retain in system headers, as Doug suggested."},
[k]={{kb,2708,"/// ParseParenExpression - This parses the unit that starts with a \'(\' token,\n/// based on what is allowed by ExprType.  The actual thing parsed is returned\n/// in ExprType. If stopIfCastExpr is true, it will only return the parsed type,\n/// not the parsed cast-expression.\n///\n/// \\verbatim\n///      primary-expression: [C99 6.5.1]\n///        \'(\' expression \')\'\n/// [GNU]  \'(\' compound-statement \')\'      (if !ParenExprOnly)\n///      postfix-expression: [C99 6.5.2]\n///        \'(\' type-name \')\' \'{\' initializer-list \'}\'\n///        \'(\' type-name \')\' \'{\' initializer-list \',\' \'}\'\n///      cast-expression: [C99 6.5.4]\n///        \'(\' type-name \')\' cast-expression\n/// [ARC]  bridged-cast-expression\n/// [ARC] bridged-cast-expression:\n///        (__bridge type-name) cast-expression\n///        (__bridge_transfer type-name) cast-expression\n///        (__bridge_retained type-name) cast-expression\n///      fold-expression: [C++1z]\n///        \'(\' cast-expression fold-operator \'...\' \')\'\n///        \'(\' \'...\' fold-operator cast-expression \')\'\n///        \'(\' cast-expression fold-operator \'...\'\n///                fold-operator cast-expression \')\'\n/// [OPENMP] Array shaping operation\n///      \'(\' \'[\' expression \']\' { \'[\' expression \']\' } cast-expression\n/// \\endverbatim\nExprResult Parser::ParseParenExpression(ParenParseOption &ExprType, bool stopIfCastExpr, bool isTypeCast, ParsedType &CastTy, SourceLocation &RParenLoc) {\n  // None of these cases should fall through with an invalid Result\n  // unless they\'ve already reported an error.\n  if (ExprType >= CompoundStmt && Tok.is(tok::l_brace)) {\n  } else if (ExprType >= CompoundLiteral && BridgeCast) {\n    if (tokenKind == tok::kw___bridge)\n    else if (tokenKind == tok::kw___bridge_transfer)\n    else if (tokenKind == tok::kw___bridge_retained)\n    else {\n      if (!PP.getSourceManager().isInSystemHeader(BridgeKeywordLoc))\n        Diag(BridgeKeywordLoc, diag::err_arc_bridge_retain) << FixItHint::CreateReplacement(BridgeKeywordLoc, \"__bridge_retained\");"}}
},
},
["err_arc_cast_requires_bridge"]={
["err_arc_cast_requires_bridge"]={
[f]="... of ... pointer type A to ... pointer type B requires a bridged cast",
[f]="... of ... pointer type A to ... pointer type B requires a bridged cast",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{cast|implicit conversion}0 of %select{Objective-C|block|C}1 pointer type %2 to %select{Objective-C|block|C}3 pointer type %4 requires a bridged cast",
[g]="%select{cast|implicit conversion}0 of %select{Objective-C|block|C}1 pointer type %2 to %select{Objective-C|block|C}3 pointer type %4 requires a bridged cast",
[c]=m,
[i]=m,
[b]="(?:cast|implicit conversion) of (?:Objective\\-C|block|C) pointer type (.*?) to (?:Objective\\-C|block|C) pointer type (.*?) requires a bridged cast",
[j]="(?:cast|implicit conversion) of (?:Objective\\-C|block|C) pointer type (.*?) to (?:Objective\\-C|block|C) pointer type (.*?) requires a bridged cast",
[i]=a,
[b]=a,
[h]="ARC Casting Rules",
[h]="ARC Casting Rules",
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{hb,193,"class UnbridgedCastRewriter : public RecursiveASTVisitor<UnbridgedCastRewriter> {\n  void rewriteToBridgedCast(CastExpr *E, ObjCBridgeCastKind Kind, Transaction &Trans) {\n    if (!TA.hasDiagnostic(diag::err_arc_mismatched_cast, diag::err_arc_cast_requires_bridge, E->getBeginLoc())) {"},{hb,211,"class UnbridgedCastRewriter : public RecursiveASTVisitor<UnbridgedCastRewriter> {\n  void rewriteToBridgedCast(CastExpr *E, ObjCBridgeCastKind Kind, Transaction &Trans) {\n    TA.clearDiagnostic(diag::err_arc_mismatched_cast, diag::err_arc_cast_requires_bridge, E->getBeginLoc());"},{hb,285,"class UnbridgedCastRewriter : public RecursiveASTVisitor<UnbridgedCastRewriter> {\n  void rewriteBlockCopyMacro(CastExpr *E) {\n    Pass.TA.clearDiagnostic(diag::err_arc_mismatched_cast, diag::err_arc_cast_requires_bridge, OuterRange);"},{hb,293,"class UnbridgedCastRewriter : public RecursiveASTVisitor<UnbridgedCastRewriter> {\n  void removeBlockReleaseMacro(CastExpr *E) {\n    Pass.TA.clearDiagnostic(diag::err_arc_mismatched_cast, diag::err_arc_cast_requires_bridge, OuterRange);"},{G,3195,"static void diagnoseObjCARCConversion(Sema &S, SourceRange castRange, QualType castType, ARCConversionTypeClass castACTC, Expr *castExpr, Expr *realCast, ARCConversionTypeClass exprACTC, Sema::CheckedConversionKind CCK) {\n  // Bridge from an ARC type to a CF type.\n  if (castACTC == ACTC_retainable && isAnyRetainable(exprACTC)) {\n    S.Diag(loc, diag::err_arc_cast_requires_bridge) << convKindForDiag << 2                                    // of C pointer type"},{G,3218,"static void diagnoseObjCARCConversion(Sema &S, SourceRange castRange, QualType castType, ARCConversionTypeClass castACTC, Expr *castExpr, Expr *realCast, ARCConversionTypeClass exprACTC, Sema::CheckedConversionKind CCK) {\n  // Bridge from a CF type to an ARC type.\n  if (exprACTC == ACTC_retainable && isAnyRetainable(castACTC)) {\n    S.Diag(loc, diag::err_arc_cast_requires_bridge) << convKindForDiag << unsigned(castExprType->isBlockPointerType()) // of ObjC|block type"}}
},
},
["err_arc_collection_forward"]={
["err_arc_collection_forward"]={
[f]="collection expression type A is a forward declaration",
[f]="collection expression type A is a forward declaration",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="collection expression type %0 is a forward declaration",
[g]="collection expression type %0 is a forward declaration",
[c]=m,
[i]=m,
[b]="collection expression type (.*?) is a forward declaration",
[j]="collection expression type (.*?) is a forward declaration",
[i]=a,
[b]=a,
[h]=T,
[h]=L,
[g]={"538482373bba",1311728835,"Clean up the analysis of the collection operand to ObjC"}
[d]={"538482373bba",1311728835,"Clean up the analysis of the collection operand to ObjC"},
[k]={{R,1958,"ExprResult Sema::CheckObjCForCollectionOperand(SourceLocation forLoc, Expr *collection) {\n  if (iface && (getLangOpts().ObjCAutoRefCount ? RequireCompleteType(forLoc, QualType(objectType, 0), diag::err_arc_collection_forward, collection) : !isCompleteType(forLoc, QualType(objectType, 0)))) {"}}
},
},
["err_arc_convesion_of_weak_unavailable"]={
["err_arc_convesion_of_weak_unavailable"]={
[f]="... of weak-unavailable object of type A to a __weak object of type B",
[f]="... of weak-unavailable object of type A to a __weak object of type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{implicit conversion|cast}0 of weak-unavailable object of type %1 to a __weak object of type %2",
[g]="%select{implicit conversion|cast}0 of weak-unavailable object of type %1 to a __weak object of type %2",
[c]=m,
[i]=m,
[b]="(?:implicit conversion|cast) of weak\\-unavailable object of type (.*?) to a __weak object of type (.*?)",
[j]="(?:implicit conversion|cast) of weak\\-unavailable object of type (.*?) to a __weak object of type (.*?)",
[i]=a,
[b]=a,
[h]=hc,
[h]=Ab,
[g]={"f2913401fc81",1310146902,"objc++-arc: more diagnosis of converting a weak-unavailable"}
[d]={"f2913401fc81",1310146902,"objc++-arc: more diagnosis of converting a weak-unavailable"},
[k]={{w,2768,"/// Check the semantics of a C-style cast operation, in C.\nvoid CastOperation::CheckCStyleCast() {\n  // ARC imposes extra restrictions on casts.\n  if (Self.getLangOpts().allowsNonTrivialObjCLifetimeQualifiers()) {\n    if (Self.getLangOpts().ObjCAutoRefCount && CastPtr) {\n    } else if (!Self.CheckObjCARCUnavailableWeakConversion(DestType, SrcType)) {\n      Self.Diag(SrcExpr.get()->getBeginLoc(), diag::err_arc_convesion_of_weak_unavailable) << 1 << SrcType << DestType << SrcExpr.get()->getSourceRange();"},{x,3811,"/// PerformImplicitConversion - Perform an implicit conversion of the\n/// expression From to the type ToType by following the standard\n/// conversion sequence SCS. Returns the converted\n/// expression. Flavor is the context in which we\'re performing this\n/// conversion, for use in error messages.\nExprResult Sema::PerformImplicitConversion(Expr *From, QualType ToType, const StandardConversionSequence &SCS, AssignmentAction Action, CheckedConversionKind CCK) {\n  case ICK_Pointer_Conversion: {\n    if (SCS.IncompatibleObjC && Action != AA_Casting) {\n    } else if (getLangOpts().allowsNonTrivialObjCLifetimeQualifiers() && !CheckObjCARCUnavailableWeakConversion(ToType, From->getType())) {\n      if (Action == AA_Initializing)\n      else\n        Diag(From->getBeginLoc(), diag::err_arc_convesion_of_weak_unavailable) << (Action == AA_Casting) << From->getType() << ToType << From->getSourceRange();"}}
},
},
["err_arc_gained_method_convention"]={
["err_arc_gained_method_convention"]={
[f]="method implementation does not match its declaration",
[f]="method implementation does not match its declaration",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="method implementation does not match its declaration",
[i]=m,
[j]="method implementation does not match its declaration",
[j]="method implementation does not match its declaration",
[c]=m,
[b]=a,
[b]="method implementation does not match its declaration",
[h]=L,
[i]=a,
[d]={H,1308178962,J},
[h]=T,
[k]={{I,2021,"/// In ARC, check whether the conventional meanings of the two methods\n/// match.  If they don\'t, it\'s a hard error.\nstatic bool checkMethodFamilyMismatch(Sema &S, ObjCMethodDecl *impl, ObjCMethodDecl *decl) {\n  if (declFamily == OMF_None) {\n    errorID = diag::err_arc_gained_method_convention;"}}
[g]={K,1308178962,J}
},
},
["err_arc_illegal_explicit_message"]={
["err_arc_illegal_explicit_message"]={
[f]="ARC forbids explicit message send of A",
[f]="ARC forbids explicit message send of A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="ARC forbids explicit message send of %0",
[g]="ARC forbids explicit message send of %0",
[c]=m,
[i]=m,
[b]="ARC forbids explicit message send of (.*?)",
[j]="ARC forbids explicit message send of (.*?)",
[i]=a,
[b]=a,
[h]=Jb,
[h]=jb,
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{"clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp",364,"class RetainReleaseDeallocRemover : public RecursiveASTVisitor<RetainReleaseDeallocRemover> {\n  void clearDiagnostics(SourceLocation loc) const { Pass.TA.clearDiagnostic(diag::err_arc_illegal_explicit_message, diag::err_unavailable, diag::err_unavailable_message, loc); }"},{G,2622,"/// Build an Objective-C instance message expression.\n///\n/// This routine takes care of both normal instance messages and\n/// instance messages to the superclass instance.\n///\n/// \\param Receiver The expression that computes the object that will\n/// receive this message. This may be empty, in which case we are\n/// sending to the superclass instance and \\p SuperLoc must be a valid\n/// source location.\n///\n/// \\param ReceiverType The (static) type of the object receiving the\n/// message. When a \\p Receiver expression is provided, this is the\n/// same type as that expression. For a superclass instance send, this\n/// is a pointer to the type of the superclass.\n///\n/// \\param SuperLoc The location of the \"super\" keyword in a\n/// superclass instance message.\n///\n/// \\param Sel The selector to which the message is being sent.\n///\n/// \\param Method The method that this instance message is invoking, if\n/// already known.\n///\n/// \\param LBracLoc The location of the opening square bracket \']\'.\n///\n/// \\param RBracLoc The location of the closing square bracket \']\'.\n///\n/// \\param ArgsIn The message arguments.\nExprResult Sema::BuildInstanceMessage(Expr *Receiver, QualType ReceiverType, SourceLocation SuperLoc, Selector Sel, ObjCMethodDecl *Method, SourceLocation LBracLoc, ArrayRef<SourceLocation> SelectorLocs, SourceLocation RBracLoc, MultiExprArg ArgsIn, bool isImplicit) {\n  // In ARC, forbid the user from sending messages to\n  // retain/release/autorelease/dealloc/retainCount explicitly.\n  if (getLangOpts().ObjCAutoRefCount) {\n    case OMF_retainCount:\n      Diag(SelLoc, diag::err_arc_illegal_explicit_message) << Sel << RecRange;"}}
},
},
["err_arc_illegal_method_def"]={
["err_arc_illegal_method_def"]={
[f]="ARC forbids ... of A",
[f]="ARC forbids ... of A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="ARC forbids %select{implementation|synthesis}0 of %1",
[g]="ARC forbids %select{implementation|synthesis}0 of %1",
[c]=m,
[i]=m,
[b]="ARC forbids (?:implementation|synthesis) of (.*?)",
[j]="ARC forbids (?:implementation|synthesis) of (.*?)",
[i]=a,
[b]=a,
[h]=Jb,
[h]=jb,
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{I,353,"/// ActOnStartOfObjCMethodDef - This routine sets up parameters; invisible\n/// and user declared, in the method definition\'s AST.\nvoid Sema::ActOnStartOfObjCMethodDef(Scope *FnBodyScope, Decl *D) {\n  // In ARC, disallow definition of retain/release/autorelease/retainCount\n  if (getLangOpts().ObjCAutoRefCount) {\n    case OMF_autorelease:\n      Diag(MDecl->getLocation(), diag::err_arc_illegal_method_def) << 0 << MDecl->getSelector();"},{P,1204,"/// ActOnPropertyImplDecl - This routine performs semantic checks and\n/// builds the AST node for a property implementation declaration; declared\n/// as \\@synthesize or \\@dynamic.\n///\nDecl *Sema::ActOnPropertyImplDecl(Scope *S, SourceLocation AtLoc, SourceLocation PropertyLoc, bool Synthesize, IdentifierInfo *PropertyId, IdentifierInfo *PropertyIvar, SourceLocation PropertyIvarLoc, ObjCPropertyQueryKind QueryKind) {\n  if (ObjCMethodDecl *getterMethod = property->getGetterMethodDecl()) {\n    if (getLangOpts().ObjCAutoRefCount && Synthesize)\n      case OMF_autorelease:\n        Diag(getterMethod->getLocation(), diag::err_arc_illegal_method_def) << 1 << getterMethod->getSelector();"}}
},
},
["err_arc_illegal_selector"]={
["err_arc_illegal_selector"]={
[f]="ARC forbids use of A in a @selector",
[f]="ARC forbids use of A in a @selector",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="ARC forbids use of %0 in a @selector",
[g]="ARC forbids use of %0 in a @selector",
[c]=m,
[i]=m,
[b]="ARC forbids use of (.*?) in a @selector",
[j]="ARC forbids use of (.*?) in a @selector",
[i]=a,
[b]=a,
[h]=Jb,
[h]=jb,
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{G,1097,"ExprResult Sema::ParseObjCSelectorExpression(Selector Sel, SourceLocation AtLoc, SourceLocation SelLoc, SourceLocation LParenLoc, SourceLocation RParenLoc, bool WarnMultipleSelectors) {\n  // In ARC, forbid the user from using @selector for\n  // retain/release/autorelease/dealloc/retainCount.\n  if (getLangOpts().ObjCAutoRefCount) {\n    case OMF_dealloc:\n      Diag(AtLoc, diag::err_arc_illegal_selector) << Sel << SourceRange(LParenLoc, RParenLoc);"}}
},
},
["err_arc_inconsistent_property_ownership"]={
["err_arc_inconsistent_property_ownership"]={
[f]="... property A may not also be declared ...",
[f]="... property A may not also be declared ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{|unsafe_unretained|strong|weak}1 property %0 may not also be declared %select{|__unsafe_unretained|__strong|__weak|__autoreleasing}2",
[g]="%select{|unsafe_unretained|strong|weak}1 property %0 may not also be declared %select{|__unsafe_unretained|__strong|__weak|__autoreleasing}2",
[c]=m,
[i]=m,
[b]="(?:|unsafe_unretained|strong|weak) property (.*?) may not also be declared (?:|__unsafe_unretained|__strong|__weak|__autoreleasing)",
[j]="(?:|unsafe_unretained|strong|weak) property (.*?) may not also be declared (?:|__unsafe_unretained|__strong|__weak|__autoreleasing)",
[i]=a,
[b]=a,
[h]="ARC and @properties",
[h]="ARC and @properties",
[g]={vb,1308874139,wb}
[d]={Z,1308874139,Y},
[k]={{"clang/lib/ARCMigrate/TransGCAttrs.cpp",275,"static void checkAllAtProps(MigrationContext &MigrateCtx, SourceLocation AtLoc, IndivPropsTy &IndProps) {\n  for (unsigned i = 0, e = ATLs.size(); i != e; ++i) {\n    TA.clearDiagnostic(diag::err_arc_inconsistent_property_ownership, ATLs[i].second->getLocation());"},{X,186,"class PropertiesRewriter {\n  void removeAssignForDefaultStrong(PropsTy &props, SourceLocation atLoc) const {\n    for (PropsTy::iterator I = props.begin(), E = props.end(); I != E; ++I) {\n      if (I->ImplD)\n        Pass.TA.clearDiagnostic(diag::err_arc_strong_property_ownership, diag::err_arc_assign_property_ownership, diag::err_arc_inconsistent_property_ownership, I->IvarD->getLocation());"},{X,207,"class PropertiesRewriter {\n  void rewriteAssign(PropsTy &props, SourceLocation atLoc) const {\n    for (PropsTy::iterator I = props.begin(), E = props.end(); I != E; ++I) {\n      if (I->ImplD)\n        Pass.TA.clearDiagnostic(diag::err_arc_strong_property_ownership, diag::err_arc_assign_property_ownership, diag::err_arc_inconsistent_property_ownership, I->IvarD->getLocation());"},{X,225,"class PropertiesRewriter {\n  void maybeAddWeakOrUnsafeUnretainedAttr(PropsTy &props, SourceLocation atLoc) const {\n    for (PropsTy::iterator I = props.begin(), E = props.end(); I != E; ++I) {\n      if (I->ImplD) {\n        Pass.TA.clearDiagnostic(diag::err_arc_strong_property_ownership, diag::err_arc_assign_property_ownership, diag::err_arc_inconsistent_property_ownership, I->IvarD->getLocation());"},{P,92,"/// Check the internal consistency of a property declaration with\n/// an explicit ownership qualifier.\nstatic void checkPropertyDeclWithOwnership(Sema &S, ObjCPropertyDecl *property) {\n  S.Diag(property->getLocation(), diag::err_arc_inconsistent_property_ownership) << property->getDeclName() << expectedLifetime << propertyLifetime;"}}
},
},
["err_arc_indirect_no_ownership"]={
["err_arc_indirect_no_ownership"]={
[f]="... to non-const type A with no explicit ownership",
[f]="... to non-const type A with no explicit ownership",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{pointer|reference}1 to non-const type %0 with no explicit ownership",
[g]="%select{pointer|reference}1 to non-const type %0 with no explicit ownership",
[c]=m,
[i]=m,
[b]="(?:pointer|reference) to non\\-const type (.*?) with no explicit ownership",
[j]="(?:pointer|reference) to non\\-const type (.*?) with no explicit ownership",
[i]=a,
[b]=a,
[h]=T,
[h]=L,
[g]={vb,1308874139,wb}
[d]={Z,1308874139,Y},
[k]={{r,1822,"/// Given that we\'re building a pointer or reference to the given\nstatic QualType inferARCLifetimeForPointee(Sema &S, QualType type, SourceLocation loc, bool isReference) {\n  // If the object type is const-qualified, we can safely use\n  // __unsafe_unretained.  This is safe (because there are no read\n  // barriers), and it\'ll be safe to coerce anything but __weak* to\n  // the resulting type.\n  if (type.isConstQualified()) {\n  } else if (type->isObjCARCImplicitlyUnretainedType()) {\n  } else if (S.isUnevaluatedContext()) {\n  } else {\n    // These types can show up in private ivars in system headers, so\n    // we need this to not be an error in those cases.  Instead we\n    // want to delay.\n    if (S.DelayedDiagnostics.shouldDelayDiagnostics()) {\n      S.DelayedDiagnostics.add(sema::DelayedDiagnostic::makeForbiddenType(loc, diag::err_arc_indirect_no_ownership, type, isReference));"},{r,1824,"/// Given that we\'re building a pointer or reference to the given\nstatic QualType inferARCLifetimeForPointee(Sema &S, QualType type, SourceLocation loc, bool isReference) {\n  // If the object type is const-qualified, we can safely use\n  // __unsafe_unretained.  This is safe (because there are no read\n  // barriers), and it\'ll be safe to coerce anything but __weak* to\n  // the resulting type.\n  if (type.isConstQualified()) {\n  } else if (type->isObjCARCImplicitlyUnretainedType()) {\n  } else if (S.isUnevaluatedContext()) {\n  } else {\n    // These types can show up in private ivars in system headers, so\n    // we need this to not be an error in those cases.  Instead we\n    // want to delay.\n    if (S.DelayedDiagnostics.shouldDelayDiagnostics()) {\n    } else {\n      S.Diag(loc, diag::err_arc_indirect_no_ownership) << type << isReference;"}}
},
},
["err_arc_init_method_unrelated_result_type"]={
["err_arc_init_method_unrelated_result_type"]={
[f]="init methods must return a type related to the receiver type",
[f]="init methods must return a type related to the receiver type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="init methods must return a type related to the receiver type",
[i]=m,
[j]="init methods must return a type related to the receiver type",
[j]="init methods must return a type related to the receiver type",
[c]=m,
[b]=a,
[b]="init methods must return a type related to the receiver type",
[h]=L,
[i]=a,
[d]={H,1308178962,J},
[h]=T,
[k]={{I,103,"/// Check whether the given method, which must be in the \'init\'\n/// family, is a valid member of that family.\n///\n/// \\param receiverTypeIfCall - if null, check this as if declaring it;\n///  if non-null, check this as if making a call to it with the given\n///  receiver type\n///\n/// \\return true to indicate that there was an error and appropriate\n///  actions were taken\nbool Sema::checkInitMethod(ObjCMethodDecl *method, QualType receiverTypeIfCall) {\n  Diag(loc, diag::err_arc_init_method_unrelated_result_type);"}}
[g]={K,1308178962,J}
},
},
["err_arc_lost_method_convention"]={
["err_arc_lost_method_convention"]={
[f]="method was declared as ... method, but its implementation doesn\'t match because ...",
[f]="method was declared as ... method, but its implementation doesn\'t match because ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="method was declared as %select{an \'alloc\'|a \'copy\'|an \'init\'|a \'new\'}0 method, but its implementation doesn\'t match because %select{its result type is not an object pointer|its result type is unrelated to its receiver type}1",
[g]="method was declared as %select{an \'alloc\'|a \'copy\'|an \'init\'|a \'new\'}0 method, but its implementation doesn\'t match because %select{its result type is not an object pointer|its result type is unrelated to its receiver type}1",
[c]=m,
[i]=m,
[b]="method was declared as (?:an \'alloc\'|a \'copy\'|an \'init\'|a \'new\') method, but its implementation doesn\'t match because (?:its result type is not an object pointer|its result type is unrelated to its receiver type)",
[j]="method was declared as (?:an \'alloc\'|a \'copy\'|an \'init\'|a \'new\') method, but its implementation doesn\'t match because (?:its result type is not an object pointer|its result type is unrelated to its receiver type)",
[i]=a,
[b]=a,
[h]=T,
[h]=L,
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{I,2016,"/// In ARC, check whether the conventional meanings of the two methods\n/// match.  If they don\'t, it\'s a hard error.\nstatic bool checkMethodFamilyMismatch(Sema &S, ObjCMethodDecl *impl, ObjCMethodDecl *decl) {\n  unsigned errorID = diag::err_arc_lost_method_convention;"}}
},
},
["err_arc_may_not_respond"]={
["err_arc_may_not_respond"]={
[f]="no visible @interface for A declares the selector B",
[f]="no visible @interface for A declares the selector B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="no visible @interface for %0 declares the selector %1",
[g]="no visible @interface for %0 declares the selector %1",
[c]=m,
[i]=m,
[b]="no visible @interface for (.*?) declares the selector (.*?)",
[j]="no visible @interface for (.*?) declares the selector (.*?)",
[i]=a,
[b]=a,
[h]=T,
[h]=L,
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{G,2481,"/// Build an Objective-C instance message expression.\n///\n/// This routine takes care of both normal instance messages and\n/// instance messages to the superclass instance.\n///\n/// \\param Receiver The expression that computes the object that will\n/// receive this message. This may be empty, in which case we are\n/// sending to the superclass instance and \\p SuperLoc must be a valid\n/// source location.\n///\n/// \\param ReceiverType The (static) type of the object receiving the\n/// message. When a \\p Receiver expression is provided, this is the\n/// same type as that expression. For a superclass instance send, this\n/// is a pointer to the type of the superclass.\n///\n/// \\param SuperLoc The location of the \"super\" keyword in a\n/// superclass instance message.\n///\n/// \\param Sel The selector to which the message is being sent.\n///\n/// \\param Method The method that this instance message is invoking, if\n/// already known.\n///\n/// \\param LBracLoc The location of the opening square bracket \']\'.\n///\n/// \\param RBracLoc The location of the closing square bracket \']\'.\n///\n/// \\param ArgsIn The message arguments.\nExprResult Sema::BuildInstanceMessage(Expr *Receiver, QualType ReceiverType, SourceLocation SuperLoc, Selector Sel, ObjCMethodDecl *Method, SourceLocation LBracLoc, ArrayRef<SourceLocation> SelectorLocs, SourceLocation RBracLoc, MultiExprArg ArgsIn, bool isImplicit) {\n  if (!Method) {\n    if (receiverIsIdLike || ReceiverType->isBlockPointerType() || (Receiver && Context.isObjCNSObjectType(Receiver->getType()))) {\n    } else if (ReceiverType->isObjCClassOrClassKindOfType() || ReceiverType->isObjCQualifiedClassType()) {\n    } else {\n      // We allow sending a message to a qualified ID (\"id<foo>\"), which is ok as\n      // long as one of the protocols implements the selector (if not, warn).\n      // And as long as message is not deprecated/unavailable (warn if it is).\n      if (const ObjCObjectPointerType *QIdTy = ReceiverType->getAsObjCQualifiedIdType()) {\n      } else if (const ObjCObjectPointerType *OCIType = ReceiverType->getAsObjCInterfacePointerType()) {\n        if (!Method) {\n          if (!Method && getLangOpts().ObjCAutoRefCount) {\n            Diag(SelLoc, diag::err_arc_may_not_respond) << OCIType->getPointeeType() << Sel << RecRange << SourceRange(SelectorLocs.front(), SelectorLocs.back());"}}
},
},
["err_arc_method_not_found"]={
["err_arc_method_not_found"]={
[f]="no known ... method for selector A",
[f]="no known ... method for selector A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="no known %select{instance|class}1 method for selector %0",
[g]="no known %select{instance|class}1 method for selector %0",
[c]=m,
[i]=m,
[b]="no known (?:instance|class) method for selector (.*?)",
[j]="no known (?:instance|class) method for selector (.*?)",
[i]=a,
[b]=a,
[h]=T,
[h]=L,
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{G,1413,"bool Sema::CheckMessageArgumentTypes(const Expr *Receiver, QualType ReceiverType, MultiExprArg Args, Selector Sel, ArrayRef<SourceLocation> SelectorLocs, ObjCMethodDecl *Method, bool isClassMessage, bool isSuperMessage, SourceLocation lbrac, SourceLocation rbrac, SourceRange RecRange, QualType &ReturnType, ExprValueKind &VK) {\n  if (!Method) {\n    if (getLangOpts().ObjCAutoRefCount)\n      DiagID = diag::err_arc_method_not_found;"}}
},
},
["err_arc_mismatched_cast"]={
["err_arc_mismatched_cast"]={
[f]="... of ... to A is disallowed with ARC",
[f]="... of ... to A is disallowed with ARC",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{implicit conversion|cast}0 of %select{%2|a non-Objective-C pointer type %2|a block pointer|an Objective-C pointer|an indirect pointer to an Objective-C pointer}1 to %3 is disallowed with ARC",
[g]="%select{implicit conversion|cast}0 of %select{%2|a non-Objective-C pointer type %2|a block pointer|an Objective-C pointer|an indirect pointer to an Objective-C pointer}1 to %3 is disallowed with ARC",
[c]=m,
[i]=m,
[b]="(?:implicit conversion|cast) of (?:(.*?)|a non\\-Objective\\-C pointer type (.*?)|a block pointer|an Objective\\-C pointer|an indirect pointer to an Objective\\-C pointer) to (.*?) is disallowed with ARC",
[j]="(?:implicit conversion|cast) of (?:(.*?)|a non\\-Objective\\-C pointer type (.*?)|a block pointer|an Objective\\-C pointer|an indirect pointer to an Objective\\-C pointer) to (.*?) is disallowed with ARC",
[i]=a,
[b]=a,
[h]=Jb,
[h]=jb,
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{hb,193,"class UnbridgedCastRewriter : public RecursiveASTVisitor<UnbridgedCastRewriter> {\n  void rewriteToBridgedCast(CastExpr *E, ObjCBridgeCastKind Kind, Transaction &Trans) {\n    if (!TA.hasDiagnostic(diag::err_arc_mismatched_cast, diag::err_arc_cast_requires_bridge, E->getBeginLoc())) {"},{hb,211,"class UnbridgedCastRewriter : public RecursiveASTVisitor<UnbridgedCastRewriter> {\n  void rewriteToBridgedCast(CastExpr *E, ObjCBridgeCastKind Kind, Transaction &Trans) {\n    TA.clearDiagnostic(diag::err_arc_mismatched_cast, diag::err_arc_cast_requires_bridge, E->getBeginLoc());"},{hb,285,"class UnbridgedCastRewriter : public RecursiveASTVisitor<UnbridgedCastRewriter> {\n  void rewriteBlockCopyMacro(CastExpr *E) {\n    Pass.TA.clearDiagnostic(diag::err_arc_mismatched_cast, diag::err_arc_cast_requires_bridge, OuterRange);"},{hb,293,"class UnbridgedCastRewriter : public RecursiveASTVisitor<UnbridgedCastRewriter> {\n  void removeBlockReleaseMacro(CastExpr *E) {\n    Pass.TA.clearDiagnostic(diag::err_arc_mismatched_cast, diag::err_arc_cast_requires_bridge, OuterRange);"},{G,3236,"static void diagnoseObjCARCConversion(Sema &S, SourceRange castRange, QualType castType, ARCConversionTypeClass castACTC, Expr *castExpr, Expr *realCast, ARCConversionTypeClass exprACTC, Sema::CheckedConversionKind CCK) {\n  S.Diag(loc, diag::err_arc_mismatched_cast) << !convKindForDiag << srcKind << castExprType << castType << castRange << castExpr->getSourceRange();"}}
},
},
["err_arc_multiple_method_decl"]={
["err_arc_multiple_method_decl"]={
[f]="multiple methods named A found with mismatched result, parameter type or attributes",
[f]="multiple methods named A found with mismatched result, parameter type or attributes",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="multiple methods named %0 found with mismatched result, parameter type or attributes",
[g]="multiple methods named %0 found with mismatched result, parameter type or attributes",
[c]=m,
[i]=m,
[b]="multiple methods named (.*?) found with mismatched result, parameter type or attributes",
[j]="multiple methods named (.*?) found with mismatched result, parameter type or attributes",
[i]=a,
[b]=a,
[h]=T,
[h]=L,
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{I,2973,"void Sema::DiagnoseMultipleMethodInGlobalPool(SmallVectorImpl<ObjCMethodDecl *> &Methods, Selector Sel, SourceRange R, bool receiverIdOrClass) {\n  if (issueDiagnostic) {\n    if (issueError)\n      Diag(R.getBegin(), diag::err_arc_multiple_method_decl) << Sel << R;"}}
},
},
["err_arc_new_array_without_ownership"]={
["err_arc_new_array_without_ownership"]={
[f]="\'new\' cannot allocate an array of A with no explicit ownership",
[f]="\'new\' cannot allocate an array of A with no explicit ownership",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'new\' cannot allocate an array of %0 with no explicit ownership",
[g]="\'new\' cannot allocate an array of %0 with no explicit ownership",
[c]=m,
[i]=m,
[b]="\'new\' cannot allocate an array of (.*?) with no explicit ownership",
[j]="\'new\' cannot allocate an array of (.*?) with no explicit ownership",
[i]=a,
[b]=a,
[h]=T,
[h]=L,
[g]={vb,1308874139,wb}
[d]={Z,1308874139,Y},
[k]={{x,2091,"/// Checks that a type is suitable as the allocated type\n/// in a new-expression.\nbool Sema::CheckAllocatedType(QualType AllocType, SourceLocation Loc, SourceRange R) {\n  // C++ 5.3.4p1: \"[The] type shall be a complete object type, but not an\n  //  abstract class type or array thereof.\n  if (AllocType->isFunctionType())\n  else if (AllocType->isReferenceType())\n  else if (!AllocType->isDependentType() && RequireCompleteSizedType(Loc, AllocType, diag::err_new_incomplete_or_sizeless_type, R))\n  else if (RequireNonAbstractType(Loc, AllocType, diag::err_allocation_of_abstract_type))\n  else if (AllocType->isVariablyModifiedType())\n  else if (AllocType.getAddressSpace() != LangAS::Default && !getLangOpts().OpenCLCPlusPlus)\n  else if (getLangOpts().ObjCAutoRefCount) {\n    if (const ArrayType *AT = Context.getAsArrayType(AllocType)) {\n      if (BaseAllocType.getObjCLifetime() == Qualifiers::OCL_None && BaseAllocType->isObjCLifetimeType())\n        return Diag(Loc, diag::err_arc_new_array_without_ownership) << BaseAllocType;"}}
},
},
["err_arc_nolifetime_behavior"]={
["err_arc_nolifetime_behavior"]={
[f]="explicit ownership qualifier on cast result has no effect",
[f]="explicit ownership qualifier on cast result has no effect",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="explicit ownership qualifier on cast result has no effect",
[i]=m,
[j]="explicit ownership qualifier on cast result has no effect",
[j]="explicit ownership qualifier on cast result has no effect",
[c]=m,
[b]=a,
[b]="explicit ownership qualifier on cast result has no effect",
[h]=jb,
[i]=a,
[d]={"2fa646d59623",1319832367,"objective-c arc: type-casting of an objc pointer to"},
[h]=Jb,
[k]={{G,3575,"Sema::ARCConversionResult Sema::CheckObjCConversion(SourceRange castRange, QualType castType, Expr *&castExpr, CheckedConversionKind CCK, bool Diagnose, bool DiagnoseCFAudited, BinaryOperatorKind Opc) {\n  if (exprACTC == castACTC) {\n    // Check for viability and report error if casting an rvalue to a\n    // life-time qualifier.\n    if (castACTC == ACTC_retainable && (CCK == CCK_CStyleCast || CCK == CCK_OtherCast) && castType != castExprType) {\n      if (QDT != castType && QDT.getObjCLifetime() != Qualifiers::OCL_None) {\n        if (Diagnose) {\n          Diag(loc, diag::err_arc_nolifetime_behavior);"}}
[g]={"2fa646d59623",1319832367,"objective-c arc: type-casting of an objc pointer to"}
},
},
["err_arc_nonlocal_writeback"]={
["err_arc_nonlocal_writeback"]={
[f]="passing address of ... object to __autoreleasing parameter for write-back",
[f]="passing address of ... object to __autoreleasing parameter for write-back",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="passing address of %select{non-local|non-scalar}0 object to __autoreleasing parameter for write-back",
[g]="passing address of %select{non-local|non-scalar}0 object to __autoreleasing parameter for write-back",
[c]=m,
[i]=m,
[b]="passing address of (?:non\\-local|non\\-scalar) object to __autoreleasing parameter for write\\-back",
[j]="passing address of (?:non\\-local|non\\-scalar) object to __autoreleasing parameter for write\\-back",
[i]=a,
[b]=a,
[h]=T,
[h]=L,
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{E,5049,"/// Check whether the given expression is a valid operand for an\n/// indirect copy/restore.\nstatic void checkIndirectCopyRestoreSource(Sema &S, Expr *src) {\n  S.Diag(src->getExprLoc(), diag::err_arc_nonlocal_writeback) << ((unsigned)iik - 1) // shift index into diagnostic explanations"}}
},
},
["err_arc_objc_property_default_assign_on_object"]={
["err_arc_objc_property_default_assign_on_object"]={
[f]="ARC forbids synthesizing a property of an Objective-C object with unspecified ownership or storage attribute",
[f]="ARC forbids synthesizing a property of an Objective-C object with unspecified ownership or storage attribute",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="ARC forbids synthesizing a property of an Objective-C object with unspecified ownership or storage attribute",
[g]="ARC forbids synthesizing a property of an Objective-C object with unspecified ownership or storage attribute",
[c]=m,
[i]=m,
[b]="ARC forbids synthesizing a property of an Objective\\-C object with unspecified ownership or storage attribute",
[j]="ARC forbids synthesizing a property of an Objective\\-C object with unspecified ownership or storage attribute",
[i]=a,
[b]=a,
[h]=Jb,
[h]=jb,
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{X,226,"class PropertiesRewriter {\n  void maybeAddWeakOrUnsafeUnretainedAttr(PropsTy &props, SourceLocation atLoc) const {\n    for (PropsTy::iterator I = props.begin(), E = props.end(); I != E; ++I) {\n      if (I->ImplD) {\n        Pass.TA.clearDiagnostic(diag::err_arc_objc_property_default_assign_on_object, I->ImplD->getLocation());"},{P,1073,"/// ActOnPropertyImplDecl - This routine performs semantic checks and\n/// builds the AST node for a property implementation declaration; declared\n/// as \\@synthesize or \\@dynamic.\n///\nDecl *Sema::ActOnPropertyImplDecl(Scope *S, SourceLocation AtLoc, SourceLocation PropertyLoc, bool Synthesize, IdentifierInfo *PropertyId, IdentifierInfo *PropertyIvar, SourceLocation PropertyIvarLoc, ObjCPropertyQueryKind QueryKind) {\n  // Check that we have a valid, previously declared ivar for @synthesize\n  if (Synthesize) {\n    if (!Ivar) {\n      // In ARC, give the ivar a lifetime qualifier based on the\n      // property attributes.\n      if ((getLangOpts().ObjCAutoRefCount || isARCWeak) && !PropertyIvarType.getObjCLifetime() && PropertyIvarType->isObjCRetainableType()) {\n        // It\'s an error if we have to do this and the user didn\'t\n        // explicitly write an ownership attribute on the property.\n        if (!hasWrittenStorageAttribute(property, QueryKind) && !(kind & ObjCPropertyAttribute::kind_strong)) {\n          Diag(PropertyDiagLoc, diag::err_arc_objc_property_default_assign_on_object);"}}
},
},
["err_arc_perform_selector_retains"]={
["err_arc_perform_selector_retains"]={
[f]="performSelector names a selector which retains the object",
[f]="performSelector names a selector which retains the object",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="performSelector names a selector which retains the object",
[i]=m,
[j]="performSelector names a selector which retains the object",
[j]="performSelector names a selector which retains the object",
[c]=m,
[b]=a,
[b]="performSelector names a selector which retains the object",
[h]=o,
[i]=a,
[d]={"b7a773626fea",1309905539,"objc-arc: enforce performSelector rules in rejecting retaining selectors"},
[h]=n,
[k]={{G,2643,"/// Build an Objective-C instance message expression.\n///\n/// This routine takes care of both normal instance messages and\n/// instance messages to the superclass instance.\n///\n/// \\param Receiver The expression that computes the object that will\n/// receive this message. This may be empty, in which case we are\n/// sending to the superclass instance and \\p SuperLoc must be a valid\n/// source location.\n///\n/// \\param ReceiverType The (static) type of the object receiving the\n/// message. When a \\p Receiver expression is provided, this is the\n/// same type as that expression. For a superclass instance send, this\n/// is a pointer to the type of the superclass.\n///\n/// \\param SuperLoc The location of the \"super\" keyword in a\n/// superclass instance message.\n///\n/// \\param Sel The selector to which the message is being sent.\n///\n/// \\param Method The method that this instance message is invoking, if\n/// already known.\n///\n/// \\param LBracLoc The location of the opening square bracket \']\'.\n///\n/// \\param RBracLoc The location of the closing square bracket \']\'.\n///\n/// \\param ArgsIn The message arguments.\nExprResult Sema::BuildInstanceMessage(Expr *Receiver, QualType ReceiverType, SourceLocation SuperLoc, Selector Sel, ObjCMethodDecl *Method, SourceLocation LBracLoc, ArrayRef<SourceLocation> SelectorLocs, SourceLocation RBracLoc, MultiExprArg ArgsIn, bool isImplicit) {\n  // In ARC, forbid the user from sending messages to\n  // retain/release/autorelease/dealloc/retainCount explicitly.\n  if (getLangOpts().ObjCAutoRefCount) {\n    case OMF_performSelector:\n      if (Method && NumArgs >= 1) {\n        if (const auto *SelExp = dyn_cast<ObjCSelectorExpr>(Args[0]->IgnoreParens())) {\n          if (SelMethod) {\n            case OMF_init:\n              // Issue error, unless ns_returns_not_retained.\n              if (!SelMethod->hasAttr<NSReturnsNotRetainedAttr>()) {\n                Diag(SelLoc, diag::err_arc_perform_selector_retains);"},{G,2651,"/// Build an Objective-C instance message expression.\n///\n/// This routine takes care of both normal instance messages and\n/// instance messages to the superclass instance.\n///\n/// \\param Receiver The expression that computes the object that will\n/// receive this message. This may be empty, in which case we are\n/// sending to the superclass instance and \\p SuperLoc must be a valid\n/// source location.\n///\n/// \\param ReceiverType The (static) type of the object receiving the\n/// message. When a \\p Receiver expression is provided, this is the\n/// same type as that expression. For a superclass instance send, this\n/// is a pointer to the type of the superclass.\n///\n/// \\param SuperLoc The location of the \"super\" keyword in a\n/// superclass instance message.\n///\n/// \\param Sel The selector to which the message is being sent.\n///\n/// \\param Method The method that this instance message is invoking, if\n/// already known.\n///\n/// \\param LBracLoc The location of the opening square bracket \']\'.\n///\n/// \\param RBracLoc The location of the closing square bracket \']\'.\n///\n/// \\param ArgsIn The message arguments.\nExprResult Sema::BuildInstanceMessage(Expr *Receiver, QualType ReceiverType, SourceLocation SuperLoc, Selector Sel, ObjCMethodDecl *Method, SourceLocation LBracLoc, ArrayRef<SourceLocation> SelectorLocs, SourceLocation RBracLoc, MultiExprArg ArgsIn, bool isImplicit) {\n  // In ARC, forbid the user from sending messages to\n  // retain/release/autorelease/dealloc/retainCount explicitly.\n  if (getLangOpts().ObjCAutoRefCount) {\n    case OMF_performSelector:\n      if (Method && NumArgs >= 1) {\n        if (const auto *SelExp = dyn_cast<ObjCSelectorExpr>(Args[0]->IgnoreParens())) {\n          if (SelMethod) {\n            default:\n              // +0 call. OK. unless ns_returns_retained.\n              if (SelMethod->hasAttr<NSReturnsRetainedAttr>()) {\n                Diag(SelLoc, diag::err_arc_perform_selector_retains);"}}
[g]={"b7a773626fea",1309905539,"objc-arc: enforce performSelector rules in rejecting retaining selectors"}
},
},
["err_arc_pseudo_dtor_inconstant_quals"]={
["err_arc_pseudo_dtor_inconstant_quals"]={
[f]="pseudo-destructor destroys object of type A with inconsistently-qualified type B",
[f]="pseudo-destructor destroys object of type A with inconsistently-qualified type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="pseudo-destructor destroys object of type %0 with inconsistently-qualified type %1",
[g]="pseudo-destructor destroys object of type %0 with inconsistently-qualified type %1",
[c]=m,
[i]=m,
[b]="pseudo\\-destructor destroys object of type (.*?) with inconsistently\\-qualified type (.*?)",
[j]="pseudo\\-destructor destroys object of type (.*?) with inconsistently\\-qualified type (.*?)",
[i]=a,
[b]=a,
[h]=T,
[h]=L,
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{x,6777,"ExprResult Sema::BuildPseudoDestructorExpr(Expr *Base, SourceLocation OpLoc, tok::TokenKind OpKind, const CXXScopeSpec &SS, TypeSourceInfo *ScopeTypeInfo, SourceLocation CCLoc, SourceLocation TildeLoc, PseudoDestructorTypeStorage Destructed) {\n  // C++ [expr.pseudo]p2:\n  //  [...] The cv-unqualified versions of the object type and of the type\n  //  designated by the pseudo-destructor-name shall be the same type.\n  if (DestructedTypeInfo) {\n    if (!DestructedType->isDependentType() && !ObjectType->isDependentType()) {\n      if (!Context.hasSameUnqualifiedType(DestructedType, ObjectType)) {\n      } else if (DestructedType.getObjCLifetime() != ObjectType.getObjCLifetime()) {\n        if (DestructedType.getObjCLifetime() == Qualifiers::OCL_None) {\n        } else {\n          Diag(DestructedTypeStart, diag::err_arc_pseudo_dtor_inconstant_quals) << ObjectType << DestructedType << Base->getSourceRange() << DestructedTypeInfo->getTypeLoc().getSourceRange();"}}
},
},
["err_arc_receiver_forward_class"]={
["err_arc_receiver_forward_class"]={
[f]="receiver A for class message is a forward declaration",
[f]="receiver A for class message is a forward declaration",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="receiver %0 for class message is a forward declaration",
[g]="receiver %0 for class message is a forward declaration",
[c]=m,
[i]=m,
[b]="receiver (.*?) for class message is a forward declaration",
[j]="receiver (.*?) for class message is a forward declaration",
[i]=a,
[b]=a,
[h]=T,
[h]=L,
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{G,2139,"/// \\param ReceiverType The type of the object receiving the\n/// message. When \\p ReceiverTypeInfo is non-NULL, this is the same\n/// type as that refers to. For a superclass send, this is the type of\n/// the superclass.\n///\n/// \\param SuperLoc The location of the \"super\" keyword in a\n/// superclass message.\n///\n/// \\param Sel The selector to which the message is being sent.\n///\n/// \\param Method The method that this class message is invoking, if\n/// already known.\n///\n/// \\param LBracLoc The location of the opening square bracket \']\'.\n///\n/// \\param RBracLoc The location of the closing square bracket \']\'.\n///\n/// \\param ArgsIn The message arguments.\nExprResult Sema::BuildClassMessage(TypeSourceInfo *ReceiverTypeInfo, QualType ReceiverType, SourceLocation SuperLoc, Selector Sel, ObjCMethodDecl *Method, SourceLocation LBracLoc, ArrayRef<SourceLocation> SelectorLocs, SourceLocation RBracLoc, MultiExprArg ArgsIn, bool isImplicit) {\n  // Find the method we are messaging.\n  if (!Method) {\n    if (RequireCompleteType(Loc, Context.getObjCInterfaceType(Class), (getLangOpts().ObjCAutoRefCount ? diag::err_arc_receiver_forward_class : diag::warn_receiver_forward_class), TypeRange)) {"}}
},
},
["err_arc_receiver_forward_instance"]={
["err_arc_receiver_forward_instance"]={
[f]="receiver type A for instance message is a forward declaration",
[f]="receiver type A for instance message is a forward declaration",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="receiver type %0 for instance message is a forward declaration",
[g]="receiver type %0 for instance message is a forward declaration",
[c]=m,
[i]=m,
[b]="receiver type (.*?) for instance message is a forward declaration",
[j]="receiver type (.*?) for instance message is a forward declaration",
[i]=a,
[b]=a,
[h]=T,
[h]=L,
[g]={K,1308178962,J}
[d]={H,1308178962,J},
[k]={{G,2461,"/// Build an Objective-C instance message expression.\n///\n/// This routine takes care of both normal instance messages and\n/// instance messages to the superclass instance.\n///\n/// \\param Receiver The expression that computes the object that will\n/// receive this message. This may be empty, in which case we are\n/// sending to the superclass instance and \\p SuperLoc must be a valid\n/// source location.\n///\n/// \\param ReceiverType The (static) type of the object receiving the\n/// message. When a \\p Receiver expression is provided, this is the\n/// same type as that expression. For a superclass instance send, this\n/// is a pointer to the type of the superclass.\n///\n/// \\param SuperLoc The location of the \"super\" keyword in a\n/// superclass instance message.\n///\n/// \\param Sel The selector to which the message is being sent.\n///\n/// \\param Method The method that this instance message is invoking, if\n/// already known.\n///\n/// \\param LBracLoc The location of the opening square bracket \']\'.\n///\n/// \\param RBracLoc The location of the closing square bracket \']\'.\n///\n/// \\param ArgsIn The message arguments.\nExprResult Sema::BuildInstanceMessage(Expr *Receiver, QualType ReceiverType, SourceLocation SuperLoc, Selector Sel, ObjCMethodDecl *Method, SourceLocation LBracLoc, ArrayRef<SourceLocation> SelectorLocs, SourceLocation RBracLoc, MultiExprArg ArgsIn, bool isImplicit) {\n  if (!Method) {\n    if (receiverIsIdLike || ReceiverType->isBlockPointerType() || (Receiver && Context.isObjCNSObjectType(Receiver->getType()))) {\n    } else if (ReceiverType->isObjCClassOrClassKindOfType() || ReceiverType->isObjCQualifiedClassType()) {\n    } else {\n      // We allow sending a message to a qualified ID (\"id<foo>\"), which is ok as\n      // long as one of the protocols implements the selector (if not, warn).\n      // And as long as message is not deprecated/unavailable (warn if it is).\n      if (const ObjCObjectPointerType *QIdTy = ReceiverType->getAsObjCQualifiedIdType()) {\n      } else if (const ObjCObjectPointerType *OCIType = ReceiverType->getAsObjCInterfacePointerType()) {\n        if (RequireCompleteType(Loc, OCIType->getPointeeType(), getLangOpts().ObjCAutoRefCount ? diag::err_arc_receiver_forward_instance : diag::warn_receiver_forward_instance, RecRange)) {"}}
},
},
["err_arc_strong_property_ownership"]={
["err_arc_strong_property_ownership"]={
[f]="existing instance variable A for strong property B may not be ...",
[f]="existing instance variable A for strong property B may not be ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="existing instance variable %1 for strong property %0 may not be %select{|__unsafe_unretained||__weak}2",
[g]="existing instance variable %1 for strong property %0 may not be %select{|__unsafe_unretained||__weak}2",
[c]=m,
[i]=m,
[b]="existing instance variable (.*?) for strong property (.*?) may not be (?:|__unsafe_unretained||__weak)",
[j]="existing instance variable (.*?) for strong property (.*?) may not be (?:|__unsafe_unretained||__weak)",
[i]=a,
[b]=a,
[h]="ARC and @properties",
[h]="ARC and @properties",
[g]={vb,1308874139,wb}
[d]={Z,1308874139,Y},
[k]={{X,186,"class PropertiesRewriter {\n  void removeAssignForDefaultStrong(PropsTy &props, SourceLocation atLoc) const {\n    for (PropsTy::iterator I = props.begin(), E = props.end(); I != E; ++I) {\n      if (I->ImplD)\n        Pass.TA.clearDiagnostic(diag::err_arc_strong_property_ownership, diag::err_arc_assign_property_ownership, diag::err_arc_inconsistent_property_ownership, I->IvarD->getLocation());"},{X,207,"class PropertiesRewriter {\n  void rewriteAssign(PropsTy &props, SourceLocation atLoc) const {\n    for (PropsTy::iterator I = props.begin(), E = props.end(); I != E; ++I) {\n      if (I->ImplD)\n        Pass.TA.clearDiagnostic(diag::err_arc_strong_property_ownership, diag::err_arc_assign_property_ownership, diag::err_arc_inconsistent_property_ownership, I->IvarD->getLocation());"},{X,225,"class PropertiesRewriter {\n  void maybeAddWeakOrUnsafeUnretainedAttr(PropsTy &props, SourceLocation atLoc) const {\n    for (PropsTy::iterator I = props.begin(), E = props.end(); I != E; ++I) {\n      if (I->ImplD) {\n        Pass.TA.clearDiagnostic(diag::err_arc_strong_property_ownership, diag::err_arc_assign_property_ownership, diag::err_arc_inconsistent_property_ownership, I->IvarD->getLocation());"},{P,633,"static void checkARCPropertyImpl(Sema &S, SourceLocation propertyImplLoc, ObjCPropertyDecl *property, ObjCIvarDecl *ivar) {\n  case Qualifiers::OCL_Strong:\n    S.Diag(ivar->getLocation(), diag::err_arc_strong_property_ownership) << property->getDeclName() << ivar->getDeclName() << ivarLifetime;"}}
},
},
["err_arc_thread_ownership"]={
["err_arc_thread_ownership"]={
[f]="thread-local variable has non-trivial ownership: type is A",
[f]="thread-local variable has non-trivial ownership: type is A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="thread-local variable has non-trivial ownership: type is %0",
[g]="thread-local variable has non-trivial ownership: type is %0",
[c]=m,
[i]=m,
[b]="thread\\-local variable has non\\-trivial ownership\\: type is (.*?)",
[j]="thread\\-local variable has non\\-trivial ownership\\: type is (.*?)",
[i]=a,
[b]=a,
[h]=T,
[h]=L,
[g]={vb,1308874139,wb}
[d]={Z,1308874139,Y},
[k]={{q,6128,"bool Sema::inferObjCARCLifetime(ValueDecl *decl) {\n  if (VarDecl *var = dyn_cast<VarDecl>(decl)) {\n    // Thread-local variables cannot have lifetime.\n    if (lifetime && lifetime != Qualifiers::OCL_ExplicitNone && var->getTLSKind()) {\n      Diag(var->getLocation(), diag::err_arc_thread_ownership) << var->getType();"}}
},
},
["err_arc_typecheck_convert_incompatible_pointer"]={
["err_arc_typecheck_convert_incompatible_pointer"]={
[f]="incompatible pointer types passing retainable parameter of type Ato a CF function expecting B type",
[f]="incompatible pointer types passing retainable parameter of type Ato a CF function expecting B type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="incompatible pointer types passing retainable parameter of type %0to a CF function expecting %1 type",
[g]="incompatible pointer types passing retainable parameter of type %0to a CF function expecting %1 type",
[c]=m,
[i]=m,
[b]="incompatible pointer types passing retainable parameter of type (.*?)to a CF function expecting (.*?) type",
[j]="incompatible pointer types passing retainable parameter of type (.*?)to a CF function expecting (.*?) type",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"3a25d0d59395",1375312774,"ObjectiveC ARC: finishing off issuing error when"}
[d]={"3a25d0d59395",1375312774,"ObjectiveC ARC: finishing off issuing error when"},
[k]={{y,15239,"bool Sema::DiagnoseAssignmentResult(AssignConvertType ConvTy, SourceLocation Loc, QualType DstType, QualType SrcType, Expr *SrcExpr, AssignmentAction Action, bool *Complained) {\n  case IncompatiblePointer:\n    if (Action == AA_Passing_CFAudited) {\n      DiagKind = diag::err_arc_typecheck_convert_incompatible_pointer;"}}
},
},
["err_arc_unsupported_on_runtime"]={
["err_arc_unsupported_on_runtime"]={
[f]="-fobjc-arc is not supported on platforms using the legacy runtime",
[f]="-fobjc-arc is not supported on platforms using the legacy runtime",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="-fobjc-arc is not supported on platforms using the legacy runtime",
[g]="-fobjc-arc is not supported on platforms using the legacy runtime",
[c]=m,
[i]=m,
[b]="\\-fobjc\\-arc is not supported on platforms using the legacy runtime",
[j]="\\-fobjc\\-arc is not supported on platforms using the legacy runtime",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={"3deb1ad40ca6",1345517263,"Screw around with ObjCRuntime some more, changing the"}
[d]={"3deb1ad40ca6",1345517263,"Screw around with ObjCRuntime some more, changing the"},
[k]={{O,3075,"#include \"clang/Driver/Options.inc\"\n  if (Opts.ObjC) {\n    if (Args.hasArg(OPT_fobjc_gc_only))\n    else if (Args.hasArg(OPT_fobjc_gc))\n    else if (Args.hasArg(OPT_fobjc_arc)) {\n      if (!Opts.ObjCRuntime.allowsARC())\n        Diags.Report(diag::err_arc_unsupported_on_runtime);"}}
},
},
["err_arc_unsupported_on_toolchain"]={
["err_arc_unsupported_on_toolchain"]={
[f]="-fobjc-arc is not supported on versions of OS X prior to 10.6",
[f]="-fobjc-arc is not supported on versions of OS X prior to 10.6",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="-fobjc-arc is not supported on versions of OS X prior to 10.6",
[g]="-fobjc-arc is not supported on versions of OS X prior to 10.6",
[c]=m,
[i]=m,
[b]="\\-fobjc\\-arc is not supported on versions of OS X prior to 10\\.6",
[j]="\\-fobjc\\-arc is not supported on versions of OS X prior to 10\\.6",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={"3deb1ad40ca6",1345517263,"Screw around with ObjCRuntime some more, changing the"}
[d]={"3deb1ad40ca6",1345517263,"Screw around with ObjCRuntime some more, changing the"},
[k]={{"clang/lib/Driver/ToolChains/Darwin.cpp",2857,"void Darwin::CheckObjCARC() const {\n  getDriver().Diag(diag::err_arc_unsupported_on_toolchain);"}}
},
},
["err_arc_unsupported_weak_class"]={
["err_arc_unsupported_weak_class"]={
[f]="class is incompatible with __weak references",
[f]="class is incompatible with __weak references",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="class is incompatible with __weak references",
[i]=m,
[j]="class is incompatible with __weak references",
[j]="class is incompatible with __weak references",
[c]=m,
[b]=a,
[b]="class is incompatible with __weak references",
[h]=Ab,
[i]=a,
[d]={"1f626d6fd1ca",1309980245,"objc-arc: Support objc_arc_weak_unavailable on those"},
[h]=hc,
[k]={{"clang/lib/ARCMigrate/TransGCAttrs.cpp",204,"static void checkWeakGCAttrs(MigrationContext &MigrateCtx) {\n  for (unsigned i = 0, e = MigrateCtx.GCAttrs.size(); i != e; ++i) {\n    if (Attr.Kind == MigrationContext::GCAttrOccurrence::Weak) {\n      if (!canApplyWeak(MigrateCtx.Pass.Ctx, Attr.ModifiedType,\n        TA.clearDiagnostic(diag::err_arc_weak_no_runtime, diag::err_arc_unsupported_weak_class, Attr.Loc);"},{r,6245,"/// handleObjCOwnershipTypeAttr - Process an objc_ownership\n/// attribute on the specified type.\n///\n/// Returns \'true\' if the attribute was handled.\nstatic bool handleObjCOwnershipTypeAttr(TypeProcessingState &state, ParsedAttr &attr, QualType &type) {\n  // Forbid __weak for class objects marked as\n  // objc_arc_weak_reference_unavailable\n  if (lifetime == Qualifiers::OCL_Weak) {\n    if (const ObjCObjectPointerType *ObjT = type->getAs<ObjCObjectPointerType>()) {\n      if (ObjCInterfaceDecl *Class = ObjT->getInterfaceDecl()) {\n        if (Class->isArcWeakrefUnavailable()) {\n          S.Diag(AttrLoc, diag::err_arc_unsupported_weak_class);"}}
[g]={"1f626d6fd1ca",1309980245,"objc-arc: Support objc_arc_weak_unavailable on those"}
},
},
["err_arc_unused_init_message"]={
["err_arc_unused_init_message"]={
[f]="the result of a delegate init call must be immediately returned or assigned to \'self\'",
[f]="the result of a delegate init call must be immediately returned or assigned to \'self\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="the result of a delegate init call must be immediately returned or assigned to \'self\'",
[i]=m,
[j]="the result of a delegate init call must be immediately returned or assigned to \'self\'",
[j]="the result of a delegate init call must be immediately returned or assigned to \'self\'",
[c]=m,
[b]=a,
[b]="the result of a delegate init call must be immediately returned or assigned to \'self\'",
[h]=jb,
[i]=a,
[d]={H,1308178962,J},
[h]=Jb,
[k]={{"clang/lib/ARCMigrate/TransUnusedInitDelegate.cpp",49,"class UnusedInitRewriter : public RecursiveASTVisitor<UnusedInitRewriter> {\n  bool VisitObjCMessageExpr(ObjCMessageExpr *ME) {\n    if (ME->isDelegateInitCall() && isRemovable(ME) && Pass.TA.hasDiagnostic(diag::err_arc_unused_init_message, ME->getExprLoc())) {"},{"clang/lib/ARCMigrate/TransUnusedInitDelegate.cpp",51,"class UnusedInitRewriter : public RecursiveASTVisitor<UnusedInitRewriter> {\n  bool VisitObjCMessageExpr(ObjCMessageExpr *ME) {\n    if (ME->isDelegateInitCall() && isRemovable(ME) && Pass.TA.hasDiagnostic(diag::err_arc_unused_init_message, ME->getExprLoc())) {\n      Pass.TA.clearDiagnostic(diag::err_arc_unused_init_message, ME->getExprLoc());"},{R,311,"void Sema::DiagnoseUnusedExprResult(const Stmt *S, unsigned DiagID) {\n  if (const ObjCMessageExpr *ME = dyn_cast<ObjCMessageExpr>(E)) {\n    if (getLangOpts().ObjCAutoRefCount && ME->isDelegateInitCall()) {\n      Diag(Loc, diag::err_arc_unused_init_message) << R1;"}}
[g]={K,1308178962,J}
},
},
["err_arc_weak_disabled"]={
["err_arc_weak_disabled"]={
[f]="cannot create __weak reference in file using manual reference counting",
[f]="cannot create __weak reference in file using manual reference counting",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="cannot create __weak reference in file using manual reference counting",
[i]=m,
[j]="cannot create __weak reference in file using manual reference counting",
[j]="cannot create __weak reference in file using manual reference counting",
[c]=m,
[b]=a,
[b]="cannot create __weak reference in file using manual reference counting",
[h]=Ab,
[i]=a,
[d]={"460ce58fa6a1",1445539097,"Define weak and __weak to mean ARC-style weak references, even in MRC."},
[h]=hc,
[k]={{p,8715,"/// Is the given declaration allowed to use a forbidden type?\n/// If so, it\'ll still be annotated with an attribute that makes it\n/// illegal to actually use.\nstatic bool isForbiddenTypeAllowed(Sema &S, Decl *D, const DelayedDiagnostic &diag, UnavailableAttr::ImplicitReason &reason) {\n  // Silently accept unsupported uses of __weak in both user and system\n  // declarations when it\'s been disabled, for ease of integration with\n  // -fno-objc-arc files.  We do have to take some care against attempts\n  // to define such things;  for now, we\'ve only done that for ivars\n  // and properties.\n  if ((isa<ObjCIvarDecl>(D) || isa<ObjCPropertyDecl>(D))) {\n    if (diag.getForbiddenTypeDiagnostic() == diag::err_arc_weak_disabled || diag.getForbiddenTypeDiagnostic() == diag::err_arc_weak_no_runtime) {"},{I,3103,"/// Diagnose attempts to define ARC-__weak ivars when __weak is disabled.\nstatic void DiagnoseWeakIvars(Sema &S, ObjCImplementationDecl *ID) {\n  for (auto ivar = ID->getClassInterface()->all_declared_ivar_begin(); ivar; ivar = ivar->getNextIvar()) {\n    if (ivar->getType().getObjCLifetime() == Qualifiers::OCL_Weak) {\n      if (S.getLangOpts().ObjCWeakRuntime) {\n        S.Diag(ivar->getLocation(), diag::err_arc_weak_disabled);"},{r,6230,"/// handleObjCOwnershipTypeAttr - Process an objc_ownership\n/// attribute on the specified type.\n///\n/// Returns \'true\' if the attribute was handled.\nstatic bool handleObjCOwnershipTypeAttr(TypeProcessingState &state, ParsedAttr &attr, QualType &type) {\n  // Sometimes, __weak isn\'t allowed.\n  if (lifetime == Qualifiers::OCL_Weak && !S.getLangOpts().ObjCWeak && !NonObjCPointer) {\n    unsigned diagnostic = (S.getLangOpts().ObjCWeakRuntime ? diag::err_arc_weak_disabled : diag::err_arc_weak_no_runtime);"}}
[g]={"460ce58fa6a1",1445539097,"Define weak and __weak to mean ARC-style weak references, even in MRC."}
},
},
["err_arc_weak_ivar_access"]={
["err_arc_weak_ivar_access"]={
[f]="dereferencing a __weak pointer is not allowed due to possible null value caused by race condition, assign it to strong variable first",
[f]="dereferencing a __weak pointer is not allowed due to possible null value caused by race condition, assign it to strong variable first",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="dereferencing a __weak pointer is not allowed due to possible null value caused by race condition, assign it to strong variable first",
[i]=m,
[j]="dereferencing a __weak pointer is not allowed due to possible null value caused by race condition, assign it to strong variable first",
[j]="dereferencing a __weak pointer is not allowed due to possible null value caused by race condition, assign it to strong variable first",
[c]=m,
[b]=a,
[b]="dereferencing a __weak pointer is not allowed due to possible null value caused by race condition, assign it to strong variable first",
[h]=o,
[i]=a,
[d]={ub,1480718311,yb},
[h]=n,
[k]={{"clang/lib/Sema/SemaExprMember.cpp",1200,"/// Look up the given member of the given non-type-dependent\n/// expression.  This can return in one of two ways:\n///  * If it returns a sentinel null-but-valid result, the caller will\n///    assume that lookup was performed and the results written into\n///    the provided structure.  It will take over from there.\n///  * Otherwise, the returned expression will be produced in place of\n///    an ordinary member expression.\n///\n/// The ObjCImpDecl bit is a gross hack that will need to be properly\n/// fixed for ObjC++.\nstatic ExprResult LookupMemberExpr(Sema &S, LookupResult &R, ExprResult &BaseExpr, bool &IsArrow, SourceLocation OpLoc, CXXScopeSpec &SS, Decl *ObjCImpDecl, bool HasTemplateArgs, SourceLocation TemplateKWLoc) {\n  // Handle ivar access to Objective-C objects.\n  if (const ObjCObjectType *OTy = BaseType->getAs<ObjCObjectType>()) {\n    if (S.getLangOpts().ObjCWeak) {\n      if (DeclRefExpr *DE = dyn_cast<DeclRefExpr>(BaseExp))\n        if (DE->getType().getObjCLifetime() == Qualifiers::OCL_Weak) {\n          S.Diag(DE->getLocation(), diag::err_arc_weak_ivar_access);"}}
[g]={P,1480718311,O}
},
},
["err_arc_weak_no_runtime"]={
["err_arc_weak_no_runtime"]={
[f]="cannot create __weak reference because the current deployment target does not support weak references",
[f]="cannot create __weak reference because the current deployment target does not support weak references",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="cannot create __weak reference because the current deployment target does not support weak references",
[i]=m,
[j]="cannot create __weak reference because the current deployment target does not support weak references",
[j]="cannot create __weak reference because the current deployment target does not support weak references",
[c]=m,
[b]=a,
[b]="cannot create __weak reference because the current deployment target does not support weak references",
[h]=Ab,
[i]=a,
[d]={H,1308178962,J},
[h]=hc,
[k]={{"clang/lib/ARCMigrate/TransGCAttrs.cpp",204,"static void checkWeakGCAttrs(MigrationContext &MigrateCtx) {\n  for (unsigned i = 0, e = MigrateCtx.GCAttrs.size(); i != e; ++i) {\n    if (Attr.Kind == MigrationContext::GCAttrOccurrence::Weak) {\n      if (!canApplyWeak(MigrateCtx.Pass.Ctx, Attr.ModifiedType,\n        TA.clearDiagnostic(diag::err_arc_weak_no_runtime, diag::err_arc_unsupported_weak_class, Attr.Loc);"},{p,8715,"/// Is the given declaration allowed to use a forbidden type?\n/// If so, it\'ll still be annotated with an attribute that makes it\n/// illegal to actually use.\nstatic bool isForbiddenTypeAllowed(Sema &S, Decl *D, const DelayedDiagnostic &diag, UnavailableAttr::ImplicitReason &reason) {\n  // Silently accept unsupported uses of __weak in both user and system\n  // declarations when it\'s been disabled, for ease of integration with\n  // -fno-objc-arc files.  We do have to take some care against attempts\n  // to define such things;  for now, we\'ve only done that for ivars\n  // and properties.\n  if ((isa<ObjCIvarDecl>(D) || isa<ObjCPropertyDecl>(D))) {\n    if (diag.getForbiddenTypeDiagnostic() == diag::err_arc_weak_disabled || diag.getForbiddenTypeDiagnostic() == diag::err_arc_weak_no_runtime) {"},{I,3105,"/// Diagnose attempts to define ARC-__weak ivars when __weak is disabled.\nstatic void DiagnoseWeakIvars(Sema &S, ObjCImplementationDecl *ID) {\n  for (auto ivar = ID->getClassInterface()->all_declared_ivar_begin(); ivar; ivar = ivar->getNextIvar()) {\n    if (ivar->getType().getObjCLifetime() == Qualifiers::OCL_Weak) {\n      if (S.getLangOpts().ObjCWeakRuntime) {\n      } else {\n        S.Diag(ivar->getLocation(), diag::err_arc_weak_no_runtime);"},{r,6230,"/// handleObjCOwnershipTypeAttr - Process an objc_ownership\n/// attribute on the specified type.\n///\n/// Returns \'true\' if the attribute was handled.\nstatic bool handleObjCOwnershipTypeAttr(TypeProcessingState &state, ParsedAttr &attr, QualType &type) {\n  // Sometimes, __weak isn\'t allowed.\n  if (lifetime == Qualifiers::OCL_Weak && !S.getLangOpts().ObjCWeak && !NonObjCPointer) {\n    unsigned diagnostic = (S.getLangOpts().ObjCWeakRuntime ? diag::err_arc_weak_disabled : diag::err_arc_weak_no_runtime);"}}
[g]={K,1308178962,J}
},
},
["err_arc_weak_unavailable_assign"]={
["err_arc_weak_unavailable_assign"]={
[f]="assignment of a weak-unavailable object to a __weak object",
[f]="assignment of a weak-unavailable object to a __weak object",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="assignment of a weak-unavailable object to a __weak object",
[g]="assignment of a weak-unavailable object to a __weak object",
[c]=m,
[i]=m,
[b]="assignment of a weak\\-unavailable object to a __weak object",
[j]="assignment of a weak\\-unavailable object to a __weak object",
[i]=a,
[b]=a,
[h]=hc,
[h]=Ab,
[g]={"6f472e803bf8",1310064947,"objc-arc: diagnose assignment/cast of a weak-unavailable"}
[d]={"6f472e803bf8",1310064947,"objc-arc: diagnose assignment/cast of a weak-unavailable"},
[k]={{y,15367,"bool Sema::DiagnoseAssignmentResult(AssignConvertType ConvTy, SourceLocation Loc, QualType DstType, QualType SrcType, Expr *SrcExpr, AssignmentAction Action, bool *Complained) {\n  case IncompatibleObjCWeakRef:\n    DiagKind = diag::err_arc_weak_unavailable_assign;"},{x,3809,"/// PerformImplicitConversion - Perform an implicit conversion of the\n/// expression From to the type ToType by following the standard\n/// conversion sequence SCS. Returns the converted\n/// expression. Flavor is the context in which we\'re performing this\n/// conversion, for use in error messages.\nExprResult Sema::PerformImplicitConversion(Expr *From, QualType ToType, const StandardConversionSequence &SCS, AssignmentAction Action, CheckedConversionKind CCK) {\n  case ICK_Pointer_Conversion: {\n    if (SCS.IncompatibleObjC && Action != AA_Casting) {\n    } else if (getLangOpts().allowsNonTrivialObjCLifetimeQualifiers() && !CheckObjCARCUnavailableWeakConversion(ToType, From->getType())) {\n      if (Action == AA_Initializing)\n        Diag(From->getBeginLoc(), diag::err_arc_weak_unavailable_assign);"}}
},
},
["err_arc_weak_unavailable_property"]={
["err_arc_weak_unavailable_property"]={
[f]="synthesizing __weak instance variable of type A, which does not support weak references",
[f]="synthesizing __weak instance variable of type A, which does not support weak references",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="synthesizing __weak instance variable of type %0, which does not support weak references",
[g]="synthesizing __weak instance variable of type %0, which does not support weak references",
[c]=m,
[i]=m,
[b]="synthesizing __weak instance variable of type (.*?), which does not support weak references",
[j]="synthesizing __weak instance variable of type (.*?), which does not support weak references",
[i]=a,
[b]=a,
[h]=hc,
[h]=Ab,
[g]={"e283346d0bf4",1323460511,"objc-arc: diagnose synthesis of a \'weak unavailable\' property."}
[d]={"e283346d0bf4",1323460511,"objc-arc: diagnose synthesis of a \'weak unavailable\' property."},
[k]={{P,1043,"/// ActOnPropertyImplDecl - This routine performs semantic checks and\n/// builds the AST node for a property implementation declaration; declared\n/// as \\@synthesize or \\@dynamic.\n///\nDecl *Sema::ActOnPropertyImplDecl(Scope *S, SourceLocation AtLoc, SourceLocation PropertyLoc, bool Synthesize, IdentifierInfo *PropertyId, IdentifierInfo *PropertyIvar, SourceLocation PropertyIvarLoc, ObjCPropertyQueryKind QueryKind) {\n  // Check that we have a valid, previously declared ivar for @synthesize\n  if (Synthesize) {\n    if (kind & ObjCPropertyAttribute::kind_weak) {\n      // Add GC __weak to the ivar type if the property is weak.\n      if (getLangOpts().getGC() != LangOptions::NonGC) {\n      } else {\n        if (!getLangOpts().ObjCWeak) {\n        } else {\n          if (const ObjCObjectPointerType *ObjT = PropertyIvarType->getAs<ObjCObjectPointerType>()) {\n            if (ObjI && ObjI->isArcWeakrefUnavailable()) {\n              Diag(property->getLocation(), diag::err_arc_weak_unavailable_property) << PropertyIvarType;"}}
},
},
["err_arch_unsupported_isa"]={
["err_arch_unsupported_isa"]={
[f]="architecture \'A\' does not support \'B\' execution mode",
[f]="architecture \'A\' does not support \'B\' execution mode",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="architecture \'%0\' does not support \'%1\' execution mode",
[g]="architecture \'%0\' does not support \'%1\' execution mode",
[c]=m,
[i]=m,
[b]="architecture \'(.*?)\' does not support \'(.*?)\' execution mode",
[j]="architecture \'(.*?)\' does not support \'(.*?)\' execution mode",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={"83e57c232702",1501843218,"[Driver] Error if ARM mode was selected explicitly for M-profile CPUs."}
[d]={"83e57c232702",1501843218,"[Driver] Error if ARM mode was selected explicitly for M-profile CPUs."},
[k]={{"clang/lib/Driver/ToolChains/Arch/ARM.cpp",210,"void arm::setArchNameInTriple(const Driver &D, const ArgList &Args, types::ID InputType, llvm::Triple &Triple) {\n  if (IsMProfile && ARMModeRequested) {\n    if (MCPU.size())\n    else\n      D.Diag(diag::err_arch_unsupported_isa) << tools::arm::getARMArch(MArch, Triple) << \"ARM\";"}}
},
},
["err_arcmt_nsinvocation_ownership"]={
["err_arcmt_nsinvocation_ownership"]={
[f]="NSInvocation\'s A is not safe to be used with an object with ownership other than __unsafe_unretained",
[f]="NSInvocation\'s A is not safe to be used with an object with ownership other than __unsafe_unretained",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="NSInvocation\'s %0 is not safe to be used with an object with ownership other than __unsafe_unretained",
[g]="NSInvocation\'s %0 is not safe to be used with an object with ownership other than __unsafe_unretained",
[c]=m,
[i]=m,
[b]="NSInvocation\'s (.*?) is not safe to be used with an object with ownership other than __unsafe_unretained",
[j]="NSInvocation\'s (.*?) is not safe to be used with an object with ownership other than __unsafe_unretained",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={"42aa21222d37",1390712852,"ARCMigrate: Introduce proper diagnostics for TransformActions"}
[d]={"42aa21222d37",1390712852,"ARCMigrate: Introduce proper diagnostics for TransformActions"},
[k]={{"clang/lib/ARCMigrate/TransAPIUses.cpp",76,"class APIChecker : public RecursiveASTVisitor<APIChecker> {\n  bool VisitObjCMessageExpr(ObjCMessageExpr *E) {\n    // NSInvocation.\n    if (E->isInstanceMessage() && E->getReceiverInterface() && E->getReceiverInterface()->getName() == \"NSInvocation\") {\n      if (pointee.getObjCLifetime() > Qualifiers::OCL_ExplicitNone)\n        Pass.TA.report(parm->getBeginLoc(), diag::err_arcmt_nsinvocation_ownership, parm->getSourceRange()) << selName;"}}
},
},
["err_arg_with_address_space"]={
["err_arg_with_address_space"]={
[f]="parameter may not be qualified with an address space",
[f]="parameter may not be qualified with an address space",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="parameter may not be qualified with an address space",
[i]=m,
[j]="parameter may not be qualified with an address space",
[j]="parameter may not be qualified with an address space",
[c]=m,
[b]=a,
[b]="parameter may not be qualified with an address space",
[h]=o,
[i]=a,
[d]={"fd2dcba7f3a6",1254343663,"Add an error for function parameters that have a qualified address space since this is not allowed b..."},
[h]=n,
[k]={{q,13053,"ParmVarDecl *Sema::CheckParameter(DeclContext *DC, SourceLocation StartLoc, SourceLocation NameLoc, IdentifierInfo *Name, QualType T, TypeSourceInfo *TSInfo, StorageClass SC) {\n  // ISO/IEC TR 18037 S6.7.3: \"The type of an object with automatic storage\n  // duration shall not be qualified by an address-space qualifier.\"\n  // Since all parameters have automatic store duration, they can not have\n  // an address space.\n  if (T.getAddressSpace() != LangAS::Default &&\n    Diag(NameLoc, diag::err_arg_with_address_space);"},{I,4286,"/// Build a type-check a new Objective-C exception variable declaration.\nVarDecl *Sema::BuildObjCExceptionDecl(TypeSourceInfo *TInfo, QualType T, SourceLocation StartLoc, SourceLocation IdLoc, IdentifierInfo *Id, bool Invalid) {\n  // ISO/IEC TR 18037 S6.7.3: \"The type of an object with automatic storage\n  // duration shall not be qualified by an address-space qualifier.\"\n  // Since all parameters have automatic store duration, they can not have\n  // an address space.\n  if (T.getAddressSpace() != LangAS::Default) {\n    Diag(IdLoc, diag::err_arg_with_address_space);"}}
[g]={"fd2dcba7f3a6",1254343663,"Add an error for function parameters that have a qualified address space since this is not allowed b..."}
},
},
["err_argument_invalid_range"]={
["err_argument_invalid_range"]={
[f]="argument value A is outside the valid range [B, C]",
[f]="argument value A is outside the valid range [B, C]",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="argument value %0 is outside the valid range [%1, %2]",
[g]="argument value %0 is outside the valid range [%1, %2]",
[c]=m,
[i]=m,
[b]="argument value (.*?) is outside the valid range \\[(.*?), (.*?)\\]",
[j]="argument value (.*?) is outside the valid range \\[(.*?), (.*?)\\]",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{s,8224,"/// SemaBuiltinConstantArgRange - Handle a check if argument ArgNum of CallExpr\n/// TheCall is a constant expression in the range [Low, High].\nbool Sema::SemaBuiltinConstantArgRange(CallExpr *TheCall, int ArgNum, int Low, int High, bool RangeIsError) {\n  if (Result.getSExtValue() < Low || Result.getSExtValue() > High) {\n    if (RangeIsError)\n      return Diag(TheCall->getBeginLoc(), diag::err_argument_invalid_range) << toString(Result, 10) << Low << High << Arg->getSourceRange();"}}
},
},
["err_argument_not_contiguous_bit_field"]={
["err_argument_not_contiguous_bit_field"]={
[f]="argument A value should represent a contiguous bit field",
[f]="argument A value should represent a contiguous bit field",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="argument %0 value should represent a contiguous bit field",
[g]="argument %0 value should represent a contiguous bit field",
[c]=m,
[i]=m,
[b]="argument (.*?) value should represent a contiguous bit field",
[j]="argument (.*?) value should represent a contiguous bit field",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={ub,1615397021,qb}
[d]={Lb,1615397021,Kb},
[k]={{s,3959,"/// Returns true if the argument consists of one contiguous run of 1s with any\n/// number of 0s on either side. The 1s are allowed to wrap from LSB to MSB, so\n/// 0x000FFF0, 0x0000FFFF, 0xFF0000FF, 0x0 are all runs. 0x0F0F0000 is not,\n/// since all 1s are not contiguous.\nbool Sema::SemaValueIsRunOfOnes(CallExpr *TheCall, unsigned ArgNum) {\n  return Diag(TheCall->getBeginLoc(), diag::err_argument_not_contiguous_bit_field) << ArgNum << Arg->getSourceRange();"}}
},
},
["err_argument_not_multiple"]={
["err_argument_not_multiple"]={
[f]="argument should be a multiple of A",
[f]="argument should be a multiple of A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="argument should be a multiple of %0",
[g]="argument should be a multiple of %0",
[c]=m,
[i]=m,
[b]="argument should be a multiple of (.*?)",
[j]="argument should be a multiple of (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"1f90f2d33f72",1476899452,"[mips][msa] Range check MSA intrinsics with immediates"}
[d]={"1f90f2d33f72",1476899452,"[mips][msa] Range check MSA intrinsics with immediates"},
[k]={{s,8249,"/// SemaBuiltinConstantArgMultiple - Handle a check if argument ArgNum of CallExpr\n/// TheCall is a constant expression is a multiple of Num..\nbool Sema::SemaBuiltinConstantArgMultiple(CallExpr *TheCall, int ArgNum, unsigned Num) {\n  if (Result.getSExtValue() % Num != 0)\n    return Diag(TheCall->getBeginLoc(), diag::err_argument_not_multiple) << Num << Arg->getSourceRange();"}}
},
},
["err_argument_not_power_of_2"]={
["err_argument_not_power_of_2"]={
[f]="argument should be a power of 2",
[f]="argument should be a power of 2",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="argument should be a power of 2",
[i]=m,
[j]="argument should be a power of 2",
[j]="argument should be a power of 2",
[c]=m,
[b]=a,
[b]="argument should be a power of 2",
[h]=o,
[i]=a,
[d]={"08074cc96557",1567435850,"[clang,ARM] Initial ACLE intrinsics for MVE."},
[h]=n,
[k]={{s,8273,"/// SemaBuiltinConstantArgPower2 - Check if argument ArgNum of TheCall is a\n/// constant expression representing a power of 2.\nbool Sema::SemaBuiltinConstantArgPower2(CallExpr *TheCall, int ArgNum) {\n  return Diag(TheCall->getBeginLoc(), diag::err_argument_not_power_of_2) << Arg->getSourceRange();"}}
[g]={"08074cc96557",1567435850,"[clang,ARM] Initial ACLE intrinsics for MVE."}
},
},
["err_argument_not_shifted_byte"]={
["err_argument_not_shifted_byte"]={
[f]="argument should be an 8-bit value shifted by a multiple of 8 bits",
[f]="argument should be an 8-bit value shifted by a multiple of 8 bits",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="argument should be an 8-bit value shifted by a multiple of 8 bits",
[g]="argument should be an 8-bit value shifted by a multiple of 8 bits",
[c]=m,
[i]=m,
[b]="argument should be an 8\\-bit value shifted by a multiple of 8 bits",
[j]="argument should be an 8\\-bit value shifted by a multiple of 8 bits",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"08074cc96557",1567435850,"[clang,ARM] Initial ACLE intrinsics for MVE."}
[d]={"08074cc96557",1567435850,"[clang,ARM] Initial ACLE intrinsics for MVE."},
[k]={{s,8320,"/// SemaBuiltinConstantArgShiftedByte - Check if argument ArgNum of TheCall is\n/// a constant expression representing an arbitrary byte value shifted left by\n/// a multiple of 8 bits.\nbool Sema::SemaBuiltinConstantArgShiftedByte(CallExpr *TheCall, int ArgNum, unsigned ArgBits) {\n  return Diag(TheCall->getBeginLoc(), diag::err_argument_not_shifted_byte) << Arg->getSourceRange();"}}
},
},
["err_argument_not_shifted_byte_or_xxff"]={
["err_argument_not_shifted_byte_or_xxff"]={
[f]="argument should be an 8-bit value shifted by a multiple of 8 bits, or in the form 0x??FF",
[f]="argument should be an 8-bit value shifted by a multiple of 8 bits, or in the form 0x??FF",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="argument should be an 8-bit value shifted by a multiple of 8 bits, or in the form 0x??FF",
[g]="argument should be an 8-bit value shifted by a multiple of 8 bits, or in the form 0x??FF",
[c]=m,
[i]=m,
[b]="argument should be an 8\\-bit value shifted by a multiple of 8 bits, or in the form 0x\\?\\?FF",
[j]="argument should be an 8\\-bit value shifted by a multiple of 8 bits, or in the form 0x\\?\\?FF",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"08074cc96557",1567435850,"[clang,ARM] Initial ACLE intrinsics for MVE."}
[d]={"08074cc96557",1567435850,"[clang,ARM] Initial ACLE intrinsics for MVE."},
[k]={{s,8348,"/// SemaBuiltinConstantArgShiftedByteOr0xFF - Check if argument ArgNum of\n/// TheCall is a constant expression representing either a shifted byte value,\n/// or a value of the form 0x??FF (i.e. a member of the arithmetic progression\n/// 0x00FF, 0x01FF, ..., 0xFFFF). This strange range check is needed for some\n/// Arm MVE intrinsics.\nbool Sema::SemaBuiltinConstantArgShiftedByteOrXXFF(CallExpr *TheCall, int ArgNum, unsigned ArgBits) {\n  return Diag(TheCall->getBeginLoc(), diag::err_argument_not_shifted_byte_or_xxff) << Arg->getSourceRange();"}}
},
},
["err_argument_required_after_attribute"]={
["err_argument_required_after_attribute"]={
[f]="argument required after attribute",
[f]="argument required after attribute",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="argument required after attribute",
[i]=m,
[j]="argument required after attribute",
[j]="argument required after attribute",
[c]=m,
[b]=a,
[b]="argument required after attribute",
[h]=B,
[i]=a,
[d]={A,1236199783,z},
[h]=o,
[k]={{D,1420,"void Parser::ParseSwiftNewTypeAttribute(IdentifierInfo &AttrName, SourceLocation AttrNameLoc, ParsedAttributes &Attrs, SourceLocation *EndLoc, IdentifierInfo *ScopeName, SourceLocation ScopeLoc, ParsedAttr::Form Form) {\n  if (Tok.is(tok::r_paren)) {\n    Diag(Tok.getLocation(), diag::err_argument_required_after_attribute);"},{D,6343,"/// ParseFunctionDeclarator - We are after the identifier and have parsed the\n/// declarator D up to a paren, which indicates that we are parsing function\n/// arguments.\n///\n/// If FirstArgAttrs is non-null, then the caller parsed those attributes\n/// immediately after the open paren - they will be applied to the DeclSpec\n/// of the first parameter.\n///\n/// If RequiresArg is true, then the first argument of the function is required\n/// to be present and required to not be an identifier list.\n///\n/// For C++, after the parameter-list, it also parses the cv-qualifier-seq[opt],\n/// (C++11) ref-qualifier[opt], exception-specification[opt],\n/// (C++11) attribute-specifier-seq[opt], (C++11) trailing-return-type[opt] and\n/// (C++2a) the trailing requires-clause.\n///\n/// [C++11] exception-specification:\n///          dynamic-exception-specification\n///          noexcept-specification\n///\nvoid Parser::ParseFunctionDeclarator(Declarator &D, ParsedAttributes &FirstArgAttrs, BalancedDelimiterTracker &Tracker, bool IsAmbiguous, bool RequiresArg) {\n  if (isFunctionDeclaratorIdentifierList()) {\n    if (RequiresArg)\n      Diag(Tok, diag::err_argument_required_after_attribute);"},{D,6360,"/// ParseFunctionDeclarator - We are after the identifier and have parsed the\n/// declarator D up to a paren, which indicates that we are parsing function\n/// arguments.\n///\n/// If FirstArgAttrs is non-null, then the caller parsed those attributes\n/// immediately after the open paren - they will be applied to the DeclSpec\n/// of the first parameter.\n///\n/// If RequiresArg is true, then the first argument of the function is required\n/// to be present and required to not be an identifier list.\n///\n/// For C++, after the parameter-list, it also parses the cv-qualifier-seq[opt],\n/// (C++11) ref-qualifier[opt], exception-specification[opt],\n/// (C++11) attribute-specifier-seq[opt], (C++11) trailing-return-type[opt] and\n/// (C++2a) the trailing requires-clause.\n///\n/// [C++11] exception-specification:\n///          dynamic-exception-specification\n///          noexcept-specification\n///\nvoid Parser::ParseFunctionDeclarator(Declarator &D, ParsedAttributes &FirstArgAttrs, BalancedDelimiterTracker &Tracker, bool IsAmbiguous, bool RequiresArg) {\n  if (isFunctionDeclaratorIdentifierList()) {\n  } else {\n    if (Tok.isNot(tok::r_paren))\n    else if (RequiresArg)\n      Diag(Tok, diag::err_argument_required_after_attribute);"}}
[g]={s,1236199783,r}
},
},
["err_arithmetic_nonfragile_interface"]={
["err_arithmetic_nonfragile_interface"]={
[f]="arithmetic on pointer to interface A, which is not a constant size for this architecture and platform",
[f]="arithmetic on pointer to interface A, which is not a constant size for this architecture and platform",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="arithmetic on pointer to interface %0, which is not a constant size for this architecture and platform",
[g]="arithmetic on pointer to interface %0, which is not a constant size for this architecture and platform",
[c]=m,
[i]=m,
[b]="arithmetic on pointer to interface (.*?), which is not a constant size for this architecture and platform",
[j]="arithmetic on pointer to interface (.*?), which is not a constant size for this architecture and platform",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"12bdebbbf7ff",1240617008,"reject explicit pointer arithmetic on interface pointers in 64-bit objc ABI"}
[d]={"12bdebbbf7ff",1240617008,"reject explicit pointer arithmetic on interface pointers in 64-bit objc ABI"},
[k]={{y,4298,"/// Diagnose if arithmetic on the given ObjC pointer is illegal.\n///\n/// \\return true on error\nstatic bool checkArithmeticOnObjCPointer(Sema &S, SourceLocation opLoc, Expr *op) {\n  S.Diag(opLoc, diag::err_arithmetic_nonfragile_interface) << op->getType()->castAs<ObjCObjectPointerType>()->getPointeeType() << op->getSourceRange();"}}
},
},
["err_arm_invalid_coproc"]={
["err_arm_invalid_coproc"]={
[f]="coprocessor A must be configured as ...",
[f]="coprocessor A must be configured as ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="coprocessor %0 must be configured as %select{GCP|CDE}1",
[g]="coprocessor %0 must be configured as %select{GCP|CDE}1",
[c]=m,
[i]=m,
[b]="coprocessor (.*?) must be configured as (?:GCP|CDE)",
[j]="coprocessor (.*?) must be configured as (?:GCP|CDE)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={C,1576908663,B}
[d]={W,1576908663,V},
[k]={{s,2805,"bool Sema::CheckARMCoprocessorImmediate(const TargetInfo &TI, const Expr *CoprocArg, bool WantCDE) {\n  if (IsCDECoproc != WantCDE)\n    return Diag(CoprocArg->getBeginLoc(), diag::err_arm_invalid_coproc) << (int)CoprocNo << (int)WantCDE << CoprocArg->getSourceRange();"}}
},
},
["err_arm_invalid_specialreg"]={
["err_arm_invalid_specialreg"]={
[f]="invalid special register for builtin",
[f]="invalid special register for builtin",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="invalid special register for builtin",
[i]=m,
[j]="invalid special register for builtin",
[j]="invalid special register for builtin",
[c]=m,
[b]=a,
[b]="invalid special register for builtin",
[h]=o,
[i]=a,
[d]={"59b2d8390941",1434390661,"This patch implements clang support for the ACLE special register intrinsics"},
[h]=n,
[k]={{s,8510,"/// SemaBuiltinARMSpecialReg - Handle a check if argument ArgNum of CallExpr\n/// TheCall is an ARM/AArch64 special register string literal.\nbool Sema::SemaBuiltinARMSpecialReg(unsigned BuiltinID, CallExpr *TheCall, int ArgNum, unsigned ExpectedFieldNum, bool AllowName) {\n  if (Fields.size() != ExpectedFieldNum && !(AllowName && Fields.size() == 1))\n    return Diag(TheCall->getBeginLoc(), diag::err_arm_invalid_specialreg) << Arg->getSourceRange();"},{s,8549,"/// SemaBuiltinARMSpecialReg - Handle a check if argument ArgNum of CallExpr\n/// TheCall is an ARM/AArch64 special register string literal.\nbool Sema::SemaBuiltinARMSpecialReg(unsigned BuiltinID, CallExpr *TheCall, int ArgNum, unsigned ExpectedFieldNum, bool AllowName) {\n  // If the string is the name of a register then we cannot check that it is\n  // valid here but if the string is of one the forms described in ACLE then we\n  // can check that the supplied fields are integers and within the valid\n  // ranges.\n  if (Fields.size() > 1) {\n    if (!ValidString)\n      return Diag(TheCall->getBeginLoc(), diag::err_arm_invalid_specialreg) << Arg->getSourceRange();"}}
[g]={"59b2d8390941",1434390661,"This patch implements clang support for the ACLE special register intrinsics"}
},
},
["err_array_designator_empty_range"]={
["err_array_designator_empty_range"]={
[f]="array designator range [A, B] is empty",
[f]="array designator range [A, B] is empty",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="array designator range [%0, %1] is empty",
[g]="array designator range [%0, %1] is empty",
[c]=m,
[i]=m,
[b]="array designator range \\[(.*?), (.*?)\\] is empty",
[j]="array designator range \\[(.*?), (.*?)\\] is empty",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{E,2828,"ExprResult Sema::ActOnDesignatedInitializer(Designation &Desig, SourceLocation EqualOrColonLoc, bool GNUSyntax, ExprResult Init) {\n  // Build designators and check array designator expressions.\n  for (unsigned Idx = 0; Idx < Desig.getNumDesignators(); ++Idx) {\n    if (D.isFieldDesignator()) {\n    } else if (D.isArrayDesignator()) {\n    } else if (D.isArrayRangeDesignator()) {\n      if (!StartIndex || !EndIndex)\n      else {\n        if (!StartDependent && !EndDependent && EndValue < StartValue) {\n          Diag(D.getEllipsisLoc(), diag::err_array_designator_empty_range) << toString(StartValue, 10) << toString(EndValue, 10) << StartIndex->getSourceRange() << EndIndex->getSourceRange();"}}
},
},
["err_array_designator_negative"]={
["err_array_designator_negative"]={
[f]="array designator value \'A\' is negative",
[f]="array designator value \'A\' is negative",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="array designator value \'%0\' is negative",
[g]="array designator value \'%0\' is negative",
[c]=m,
[i]=m,
[b]="array designator value \'(.*?)\' is negative",
[j]="array designator value \'(.*?)\' is negative",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{E,2774,"/// Check that the given Index expression is a valid array designator\n/// value. This is essentially just a wrapper around\n/// VerifyIntegerConstantExpression that also checks for negative values\n/// and produces a reasonable diagnostic if there is a\n/// failure. Returns the index expression, possibly with an implicit cast\n/// added, on success.  If everything went okay, Value will receive the\n/// value of the constant expression.\nstatic ExprResult CheckArrayDesignatorExpr(Sema &S, Expr *Index, llvm::APSInt &Value) {\n  if (Value.isSigned() && Value.isNegative())\n    return S.Diag(Loc, diag::err_array_designator_negative) << toString(Value, 10) << Index->getSourceRange();"}}
},
},
["err_array_designator_non_array"]={
["err_array_designator_non_array"]={
[f]="array designator cannot initialize non-array type A",
[f]="array designator cannot initialize non-array type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="array designator cannot initialize non-array type %0",
[g]="array designator cannot initialize non-array type %0",
[c]=m,
[i]=m,
[b]="array designator cannot initialize non\\-array type (.*?)",
[j]="array designator cannot initialize non\\-array type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{E,2483,"/// Check the well-formedness of a C99 designated initializer.\n///\n/// Determines whether the designated initializer @p DIE, which\n/// resides at the given @p Index within the initializer list @p\n/// IList, is well-formed for a current object of type @p DeclType\n/// (C99 6.7.8). The actual subobject that this designator refers to\n/// within the current subobject is returned in either\n/// @p NextField or @p NextElementIndex (whichever is appropriate).\n///\n/// @param IList  The initializer list in which this designated\n/// initializer occurs.\n///\n/// @param DIE The designated initializer expression.\n///\n/// @param DesigIdx  The index of the current designator.\n///\n/// @param CurrentObjectType The type of the \"current object\" (C99 6.7.8p17),\n/// into which the designation in @p DIE should refer.\n///\n/// @param NextField  If non-NULL and the first designator in @p DIE is\n/// a field, this will be set to the field declaration corresponding\n/// to the field named by the designator. On input, this is expected to be\n/// the next field that would be initialized in the absence of designation,\n/// if the complete object being initialized is a struct.\n///\n/// @param NextElementIndex  If non-NULL and the first designator in @p\n/// DIE is an array designator or GNU array-range designator, this\n/// will be set to the last index initialized by this designator.\n///\n/// @param Index  Index into @p IList where the designated initializer\n/// @p DIE occurs.\n///\n/// @param StructuredList  The initializer list expression that\n/// describes all of the subobject initializers in the order they\'ll\n/// actually be initialized.\n///\n/// @returns true if there was an error, false otherwise.\nbool InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity, InitListExpr *IList, DesignatedInitExpr *DIE, unsigned DesigIdx, QualType &CurrentObjectType, RecordDecl::field_iterator *NextField, llvm::APSInt *NextElementIndex, unsigned &Index, InitListExpr *StructuredList, unsigned &StructuredIndex, bool FinishSubobjectInit, bool TopLevelObject) {\n  if (!AT) {\n    if (!VerifyOnly)\n      SemaRef.Diag(D->getLBracketLoc(), diag::err_array_designator_non_array) << CurrentObjectType;"}}
},
},
["err_array_designator_too_large"]={
["err_array_designator_too_large"]={
[f]="array designator index (A) exceeds array bounds (B)",
[f]="array designator index (A) exceeds array bounds (B)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="array designator index (%0) exceeds array bounds (%1)",
[g]="array designator index (%0) exceeds array bounds (%1)",
[c]=m,
[i]=m,
[b]="array designator index \\((.*?)\\) exceeds array bounds \\((.*?)\\)",
[j]="array designator index \\((.*?)\\) exceeds array bounds \\((.*?)\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{E,2518,"/// Check the well-formedness of a C99 designated initializer.\n///\n/// Determines whether the designated initializer @p DIE, which\n/// resides at the given @p Index within the initializer list @p\n/// IList, is well-formed for a current object of type @p DeclType\n/// (C99 6.7.8). The actual subobject that this designator refers to\n/// within the current subobject is returned in either\n/// @p NextField or @p NextElementIndex (whichever is appropriate).\n///\n/// @param IList  The initializer list in which this designated\n/// initializer occurs.\n///\n/// @param DIE The designated initializer expression.\n///\n/// @param DesigIdx  The index of the current designator.\n///\n/// @param CurrentObjectType The type of the \"current object\" (C99 6.7.8p17),\n/// into which the designation in @p DIE should refer.\n///\n/// @param NextField  If non-NULL and the first designator in @p DIE is\n/// a field, this will be set to the field declaration corresponding\n/// to the field named by the designator. On input, this is expected to be\n/// the next field that would be initialized in the absence of designation,\n/// if the complete object being initialized is a struct.\n///\n/// @param NextElementIndex  If non-NULL and the first designator in @p\n/// DIE is an array designator or GNU array-range designator, this\n/// will be set to the last index initialized by this designator.\n///\n/// @param Index  Index into @p IList where the designated initializer\n/// @p DIE occurs.\n///\n/// @param StructuredList  The initializer list expression that\n/// describes all of the subobject initializers in the order they\'ll\n/// actually be initialized.\n///\n/// @returns true if there was an error, false otherwise.\nbool InitListChecker::CheckDesignatedInitializer(const InitializedEntity &Entity, InitListExpr *IList, DesignatedInitExpr *DIE, unsigned DesigIdx, QualType &CurrentObjectType, RecordDecl::field_iterator *NextField, llvm::APSInt *NextElementIndex, unsigned &Index, InitListExpr *StructuredList, unsigned &StructuredIndex, bool FinishSubobjectInit, bool TopLevelObject) {\n  if (isa<ConstantArrayType>(AT)) {\n    if (DesignatedEndIndex >= MaxElements) {\n      if (!VerifyOnly)\n        SemaRef.Diag(IndexExpr->getBeginLoc(), diag::err_array_designator_too_large) << toString(DesignatedEndIndex, 10) << toString(MaxElements, 10) << IndexExpr->getSourceRange();"}}
},
},
["err_array_element_alignment"]={
["err_array_element_alignment"]={
[f]="size of array element of type A (B bytes) isn\'t a multiple of its alignment (C bytes)",
[f]="size of array element of type A (B bytes) isn\'t a multiple of its alignment (C bytes)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="size of array element of type %0 (%1 bytes) isn\'t a multiple of its alignment (%2 bytes)",
[g]="size of array element of type %0 (%1 bytes) isn\'t a multiple of its alignment (%2 bytes)",
[c]=m,
[i]=m,
[b]="size of array element of type (.*?) \\((.*?) bytes\\) isn\'t a multiple of its alignment \\((.*?) bytes\\)",
[j]="size of array element of type (.*?) \\((.*?) bytes\\) isn\'t a multiple of its alignment \\((.*?) bytes\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={w,1625925174,v}
[d]={N,1625925174,M},
[k]={{r,2156,"bool Sema::checkArrayElementAlignment(QualType EltTy, SourceLocation Loc) {\n  Diag(Loc, diag::err_array_element_alignment) << EltTy << Size.getQuantity() << Alignment.getQuantity();"}}
},
},
["err_array_incomplete_or_sizeless_type"]={
["err_array_incomplete_or_sizeless_type"]={
[f]="array has ... element type A",
[f]="array has ... element type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="array has %select{incomplete|sizeless}0 element type %1",
[g]="array has %select{incomplete|sizeless}0 element type %1",
[c]=m,
[i]=m,
[b]="array has (?:incomplete|sizeless) element type (.*?)",
[j]="array has (?:incomplete|sizeless) element type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={C,1576908663,B}
[d]={W,1576908663,V},
[k]={{q,12048,"void Sema::ActOnUninitializedDecl(Decl *RealDecl) {\n  if (VarDecl *Var = dyn_cast<VarDecl>(RealDecl)) {\n    case VarDecl::TentativeDefinition:\n      // File scope. C99 6.9.2p2: A declaration of an identifier for an\n      // object that has file scope without an initializer, and without a\n      // storage-class specifier or with the storage-class specifier \"static\",\n      // constitutes a tentative definition. Note: A tentative definition with\n      // external linkage is valid (C99 6.2.2p5).\n      if (!Var->isInvalidDecl()) {\n        if (const IncompleteArrayType *ArrayT = Context.getAsIncompleteArrayType(Type)) {\n          if (RequireCompleteSizedType(Var->getLocation(), ArrayT->getElementType(), diag::err_array_incomplete_or_sizeless_type))"},{y,6598,"ExprResult Sema::BuildCompoundLiteralExpr(SourceLocation LParenLoc, TypeSourceInfo *TInfo, SourceLocation RParenLoc, Expr *LiteralExpr) {\n  if (literalType->isArrayType()) {\n    if (RequireCompleteSizedType(LParenLoc, Context.getBaseElementType(literalType), diag::err_array_incomplete_or_sizeless_type, SourceRange(LParenLoc, LiteralExpr->getSourceRange().getEnd())))"},{r,2196,"/// Build an array type.\n///\n/// \\param T The type of each element in the array.\n///\n/// \\param ASM C99 array size modifier (e.g., \'*\', \'static\').\n///\n/// \\param ArraySize Expression describing the size of the array.\n///\n/// \\param Brackets The range from the opening \'[\' to the closing \']\'.\n///\n/// \\param Entity The name of the entity that involves the array\n/// type, if known.\n///\n/// \\returns A suitable array type, if there are no errors. Otherwise,\n/// returns a NULL type.\nQualType Sema::BuildArrayType(QualType T, ArrayType::ArraySizeModifier ASM, Expr *ArraySize, unsigned Quals, SourceRange Brackets, DeclarationName Entity) {\n  if (getLangOpts().CPlusPlus) {\n    if (T->isVoidType() || T->isIncompleteArrayType()) {\n      Diag(Loc, diag::err_array_incomplete_or_sizeless_type) << 0 << T;"},{r,2213,"/// Build an array type.\n///\n/// \\param T The type of each element in the array.\n///\n/// \\param ASM C99 array size modifier (e.g., \'*\', \'static\').\n///\n/// \\param ArraySize Expression describing the size of the array.\n///\n/// \\param Brackets The range from the opening \'[\' to the closing \']\'.\n///\n/// \\param Entity The name of the entity that involves the array\n/// type, if known.\n///\n/// \\returns A suitable array type, if there are no errors. Otherwise,\n/// returns a NULL type.\nQualType Sema::BuildArrayType(QualType T, ArrayType::ArraySizeModifier ASM, Expr *ArraySize, unsigned Quals, SourceRange Brackets, DeclarationName Entity) {\n  if (getLangOpts().CPlusPlus) {\n  } else {\n    if (!T.isWebAssemblyReferenceType() && RequireCompleteSizedType(Loc, T, diag::err_array_incomplete_or_sizeless_type))"},{r,2227,"/// Build an array type.\n///\n/// \\param T The type of each element in the array.\n///\n/// \\param ASM C99 array size modifier (e.g., \'*\', \'static\').\n///\n/// \\param ArraySize Expression describing the size of the array.\n///\n/// \\param Brackets The range from the opening \'[\' to the closing \']\'.\n///\n/// \\param Entity The name of the entity that involves the array\n/// type, if known.\n///\n/// \\returns A suitable array type, if there are no errors. Otherwise,\n/// returns a NULL type.\nQualType Sema::BuildArrayType(QualType T, ArrayType::ArraySizeModifier ASM, Expr *ArraySize, unsigned Quals, SourceRange Brackets, DeclarationName Entity) {\n  if (T->isSizelessType() && !T.isWebAssemblyReferenceType()) {\n    Diag(Loc, diag::err_array_incomplete_or_sizeless_type) << 1 << T;"}}
},
},
["err_array_init_different_type"]={
["err_array_init_different_type"]={
[f]="cannot initialize array of type A with array of type B",
[f]="cannot initialize array of type A with array of type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot initialize array %diff{of type $ with array of type $|with different type of array}0,1",
[g]="cannot initialize array %diff{of type $ with array of type $|with different type of array}0,1",
[c]=m,
[i]=m,
[b]="cannot initialize array (?:of type (.*?) with array of type (.*?)|with different type of array)",
[j]="cannot initialize array (?:of type (.*?) with array of type (.*?)|with different type of array)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e2f943b5cb44",1298399391,"Implement the GNU C extension which permits the initialization of an"}
[d]={"e2f943b5cb44",1298399391,"Implement the GNU C extension which permits the initialization of an"},
[k]={{E,8149,"bool InitializationSequence::Diagnose(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, ArrayRef<Expr *> Args) {\n  case FK_NonConstantArrayInit:\n    S.Diag(Kind.getLocation(), (Failure == FK_ArrayTypeMismatch ? diag::err_array_init_different_type : diag::err_array_init_non_constant_array)) << DestType.getNonReferenceType() << OnlyArg->getType() << Args[0]->getSourceRange();"}}
},
},
["err_array_init_incompat_wide_string_into_wchar"]={
["err_array_init_incompat_wide_string_into_wchar"]={
[f]="initializing wide char array with incompatible wide string literal",
[f]="initializing wide char array with incompatible wide string literal",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="initializing wide char array with incompatible wide string literal",
[i]=m,
[j]="initializing wide char array with incompatible wide string literal",
[j]="initializing wide char array with incompatible wide string literal",
[c]=m,
[b]=a,
[b]="initializing wide char array with incompatible wide string literal",
[h]=o,
[i]=a,
[d]={"8f62c5ca22f4",1368615784,"Better diagnostics for string initialization."},
[h]=n,
[k]={{E,8138,"bool InitializationSequence::Diagnose(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, ArrayRef<Expr *> Args) {\n  case FK_IncompatWideStringIntoWideChar:\n    S.Diag(Kind.getLocation(), diag::err_array_init_incompat_wide_string_into_wchar);"}}
[g]={"8f62c5ca22f4",1368615784,"Better diagnostics for string initialization."}
},
},
["err_array_init_narrow_string_into_wchar"]={
["err_array_init_narrow_string_into_wchar"]={
[f]="initializing wide char array with non-wide string literal",
[f]="initializing wide char array with non-wide string literal",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="initializing wide char array with non-wide string literal",
[g]="initializing wide char array with non-wide string literal",
[c]=m,
[i]=m,
[b]="initializing wide char array with non\\-wide string literal",
[j]="initializing wide char array with non\\-wide string literal",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"8f62c5ca22f4",1368615784,"Better diagnostics for string initialization."}
[d]={"8f62c5ca22f4",1368615784,"Better diagnostics for string initialization."},
[k]={{E,8132,"bool InitializationSequence::Diagnose(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, ArrayRef<Expr *> Args) {\n  case FK_NarrowStringIntoWideCharArray:\n    S.Diag(Kind.getLocation(), diag::err_array_init_narrow_string_into_wchar);"}}
},
},
["err_array_init_non_constant_array"]={
["err_array_init_non_constant_array"]={
[f]="cannot initialize array of type A with non-constant array of type B",
[f]="cannot initialize array of type A with non-constant array of type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot initialize array %diff{of type $ with non-constant array of type $|with different type of array}0,1",
[g]="cannot initialize array %diff{of type $ with non-constant array of type $|with different type of array}0,1",
[c]=m,
[i]=m,
[b]="cannot initialize array (?:of type (.*?) with non\\-constant array of type (.*?)|with different type of array)",
[j]="cannot initialize array (?:of type (.*?) with non\\-constant array of type (.*?)|with different type of array)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e2f943b5cb44",1298399391,"Implement the GNU C extension which permits the initialization of an"}
[d]={"e2f943b5cb44",1298399391,"Implement the GNU C extension which permits the initialization of an"},
[k]={{E,8149,"bool InitializationSequence::Diagnose(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, ArrayRef<Expr *> Args) {\n  case FK_NonConstantArrayInit:\n    S.Diag(Kind.getLocation(), (Failure == FK_ArrayTypeMismatch ? diag::err_array_init_different_type : diag::err_array_init_non_constant_array)) << DestType.getNonReferenceType() << OnlyArg->getType() << Args[0]->getSourceRange();"}}
},
},
["err_array_init_not_init_list"]={
["err_array_init_not_init_list"]={
[f]="array initializer must be an initializer list...",
[f]="array initializer must be an initializer list...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="array initializer must be an initializer list%select{| or string literal| or wide string literal}0",
[g]="array initializer must be an initializer list%select{| or string literal| or wide string literal}0",
[c]=m,
[i]=m,
[b]="array initializer must be an initializer list(?:| or string literal| or wide string literal)",
[j]="array initializer must be an initializer list(?:| or string literal| or wide string literal)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"3e1e52782604",1260399737,"Reimplement reference initialization (C++ [dcl.init.ref]) using the"}
[d]={"3e1e52782604",1260399737,"Reimplement reference initialization (C++ [dcl.init.ref]) using the"},
[k]={{E,8123,"bool InitializationSequence::Diagnose(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, ArrayRef<Expr *> Args) {\n  case FK_ArrayNeedsInitList:\n    S.Diag(Kind.getLocation(), diag::err_array_init_not_init_list) << 0;"},{E,8126,"bool InitializationSequence::Diagnose(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, ArrayRef<Expr *> Args) {\n  case FK_ArrayNeedsInitListOrStringLiteral:\n    S.Diag(Kind.getLocation(), diag::err_array_init_not_init_list) << 1;"},{E,8129,"bool InitializationSequence::Diagnose(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, ArrayRef<Expr *> Args) {\n  case FK_ArrayNeedsInitListOrWideStringLiteral:\n    S.Diag(Kind.getLocation(), diag::err_array_init_not_init_list) << 2;"}}
},
},
["err_array_init_plain_string_into_char8_t"]={
["err_array_init_plain_string_into_char8_t"]={
[f]="initializing \'char8_t\' array with plain string literal",
[f]="initializing \'char8_t\' array with plain string literal",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="initializing \'char8_t\' array with plain string literal",
[i]=m,
[j]="initializing \'char8_t\' array with plain string literal",
[j]="initializing \'char8_t\' array with plain string literal",
[c]=m,
[b]=a,
[b]="initializing \'char8_t\' array with plain string literal",
[h]=o,
[i]=a,
[d]={"3a8244df6fb8",1525150965,"Implement P0482R2, support for char8_t type."},
[h]=n,
[k]={{E,8141,"bool InitializationSequence::Diagnose(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, ArrayRef<Expr *> Args) {\n  case FK_PlainStringIntoUTF8Char:\n    S.Diag(Kind.getLocation(), diag::err_array_init_plain_string_into_char8_t);"}}
[g]={"3a8244df6fb8",1525150965,"Implement P0482R2, support for char8_t type."}
},
},
["err_array_init_utf8_string_into_char"]={
["err_array_init_utf8_string_into_char"]={
[f]="initialization of ...char array with UTF-8 string literal is not permitted by ...",
[f]="initialization of ...char array with UTF-8 string literal is not permitted by ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="initialization of %select{|signed }0char array with UTF-8 string literal is not permitted by %select{\'-fchar8_t\'|C++20}1",
[g]="initialization of %select{|signed }0char array with UTF-8 string literal is not permitted by %select{\'-fchar8_t\'|C++20}1",
[c]=m,
[i]=m,
[b]="initialization of (?:|signed )char array with UTF\\-8 string literal is not permitted by (?:\'\\-fchar8_t\'|C\\+\\+20)",
[j]="initialization of (?:|signed )char array with UTF\\-8 string literal is not permitted by (?:\'\\-fchar8_t\'|C\\+\\+20)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"3a8244df6fb8",1525150965,"Implement P0482R2, support for char8_t type."}
[d]={"3a8244df6fb8",1525150965,"Implement P0482R2, support for char8_t type."},
[k]={{E,8145,"bool InitializationSequence::Diagnose(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, ArrayRef<Expr *> Args) {\n  case FK_UTF8StringIntoPlainChar:\n    S.Diag(Kind.getLocation(), diag::err_array_init_utf8_string_into_char) << DestType->isSignedIntegerType() << S.getLangOpts().CPlusPlus20;"}}
},
},
["err_array_init_wide_string_into_char"]={
["err_array_init_wide_string_into_char"]={
[f]="initializing char array with wide string literal",
[f]="initializing char array with wide string literal",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="initializing char array with wide string literal",
[i]=m,
[j]="initializing char array with wide string literal",
[j]="initializing char array with wide string literal",
[c]=m,
[b]=a,
[b]="initializing char array with wide string literal",
[h]=o,
[i]=a,
[d]={"8f62c5ca22f4",1368615784,"Better diagnostics for string initialization."},
[h]=n,
[k]={{E,8135,"bool InitializationSequence::Diagnose(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, ArrayRef<Expr *> Args) {\n  case FK_WideStringIntoCharArray:\n    S.Diag(Kind.getLocation(), diag::err_array_init_wide_string_into_char);"}}
[g]={"8f62c5ca22f4",1368615784,"Better diagnostics for string initialization."}
},
},
["err_array_new_needs_size"]={
["err_array_new_needs_size"]={
[f]="array size must be specified in new expression with no initializer",
[f]="array size must be specified in new expression with no initializer",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="array size must be specified in new expression with no initializer",
[i]=m,
[j]="array size must be specified in new expression with no initializer",
[j]="array size must be specified in new expression with no initializer",
[c]=m,
[b]=a,
[b]="array size must be specified in new expression with no initializer",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{x,1638,"/// Parsed a C++ \'new\' expression (C++ 5.3.4).\n///\n/// E.g.:\n/// @code new (memory) int[size][4] @endcode\n/// or\n/// @code ::new Foo(23, \"hello\") @endcode\n///\n/// \\param StartLoc The first location of the expression.\n/// \\param UseGlobal True if \'new\' was prefixed with \'::\'.\n/// \\param PlacementLParen Opening paren of the placement arguments.\n/// \\param PlacementArgs Placement new arguments.\n/// \\param PlacementRParen Closing paren of the placement arguments.\n/// \\param TypeIdParens If the type is in parens, the source range.\n/// \\param D The type to be allocated, as well as array dimensions.\n/// \\param Initializer The initializing expression or initializer-list, or null\n///  if there is none.\nExprResult Sema::ActOnCXXNew(SourceLocation StartLoc, bool UseGlobal, SourceLocation PlacementLParen, MultiExprArg PlacementArgs, SourceLocation PlacementRParen, SourceRange TypeIdParens, Declarator &D, Expr *Initializer) {\n  // If the specified type is an array, unwrap it and save the expression.\n  if (D.getNumTypeObjects() > 0 && D.getTypeObject(0).Kind == DeclaratorChunk::Array) {\n    if (!Chunk.Arr.NumElts && !Initializer)\n      return ExprError(Diag(Chunk.Loc, diag::err_array_new_needs_size) << D.getSourceRange());"}}
[g]={q,1237025389,p}
},
},
["err_array_of_abstract_type"]={
["err_array_of_abstract_type"]={
[f]="array of abstract class type A",
[f]="array of abstract class type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="array of abstract class type %0",
[g]="array of abstract class type %0",
[c]=m,
[i]=m,
[b]="array of abstract class type (.*?)",
[j]="array of abstract class type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"7d8072e03860",1272397094,"Diagnose the use of abstract types as array element types. Previously,"}
[d]={"7d8072e03860",1272397094,"Diagnose the use of abstract types as array element types. Previously,"},
[k]={{v,5183,"#include \"clang/AST/TypeLocNodes.def\"\n  CheckPolymorphic(PointerTypeLoc) CheckPolymorphic(ReferenceTypeLoc) CheckPolymorphic(MemberPointerTypeLoc) CheckPolymorphic(BlockPointerTypeLoc) CheckPolymorphic(AtomicTypeLoc)\n    // It matched; do some magic.\n    // FIXME: These should be at most warnings. See P0929R2, CWG1640, CWG1646.\n    if (Sel == Sema::AbstractArrayType) {\n      Info.S.Diag(Ctx->getLocation(), diag::err_array_of_abstract_type) << T << TL.getSourceRange();"},{r,2200,"/// Build an array type.\n///\n/// \\param T The type of each element in the array.\n///\n/// \\param ASM C99 array size modifier (e.g., \'*\', \'static\').\n///\n/// \\param ArraySize Expression describing the size of the array.\n///\n/// \\param Brackets The range from the opening \'[\' to the closing \']\'.\n///\n/// \\param Entity The name of the entity that involves the array\n/// type, if known.\n///\n/// \\returns A suitable array type, if there are no errors. Otherwise,\n/// returns a NULL type.\nQualType Sema::BuildArrayType(QualType T, ArrayType::ArraySizeModifier ASM, Expr *ArraySize, unsigned Quals, SourceRange Brackets, DeclarationName Entity) {\n  if (getLangOpts().CPlusPlus) {\n    if (RequireNonAbstractType(Brackets.getBegin(), T, diag::err_array_of_abstract_type))"}}
},
},
["err_array_section_does_not_specify_contiguous_storage"]={
["err_array_section_does_not_specify_contiguous_storage"]={
[f]="array section does not specify contiguous storage",
[f]="array section does not specify contiguous storage",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="array section does not specify contiguous storage",
[i]=m,
[j]="array section does not specify contiguous storage",
[j]="array section does not specify contiguous storage",
[c]=m,
[b]=a,
[b]="array section does not specify contiguous storage",
[h]="OpenMP Issue",
[i]=a,
[d]={"a9f35cb7d665",1457538365,"[OpenMP] Add support for multidimensional array sections in map clause SEMA."},
[h]=u,
[k]={{"clang/lib/Sema/SemaOpenMP.cpp",17457,"class MapBaseChecker final : public StmtVisitor<MapBaseChecker, bool> {\n  bool VisitOMPArraySectionExpr(OMPArraySectionExpr *OASE) {\n    if (AllowWholeSizeArraySection) {\n    } else if (DKind == OMPD_target_update && SemaRef.getLangOpts().OpenMP >= 50) {\n    } else if (AllowUnitySizeArraySection && NotUnity) {\n      SemaRef.Diag(ELoc, diag::err_array_section_does_not_specify_contiguous_storage) << OASE->getSourceRange();"}}
[g]={"a9f35cb7d665",1457538365,"[OpenMP] Add support for multidimensional array sections in map clause SEMA."}
},
},
["err_array_section_does_not_specify_length"]={
["err_array_section_does_not_specify_length"]={
[f]="array section does not specify length for outermost dimension",
[f]="array section does not specify length for outermost dimension",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="array section does not specify length for outermost dimension",
[i]=m,
[j]="array section does not specify length for outermost dimension",
[j]="array section does not specify length for outermost dimension",
[c]=m,
[b]=a,
[b]="array section does not specify length for outermost dimension",
[h]="OpenMP Issue",
[i]=a,
[d]={fb,1590001902,eb},
[h]=u,
[k]={{"clang/lib/Sema/SemaOpenMP.cpp",17568,"/// Return the expression of the base of the mappable expression or null if it\n/// cannot be determined and do all the necessary checks to see if the\n/// expression is valid as a standalone mappable expression. In the process,\n/// record all the components of the expression.\nstatic const Expr *checkMapClauseExpressionBase(Sema &SemaRef, Expr *E, OMPClauseMappableExprCommon::MappableExprComponentList &CurComponents, OpenMPClauseKind CKind, OpenMPDirectiveKind DKind, bool NoDiagnose) {\n  if (Checker.Visit(E->IgnoreParens())) {\n    // Check if the highest dimension array section has length specified\n    if (SemaRef.getLangOpts().OpenMP >= 50 && !CurComponents.empty() && (CKind == OMPC_to || CKind == OMPC_from)) {\n      for (; CI != CE; ++CI) {\n        SemaRef.Diag(ELoc, diag::err_array_section_does_not_specify_length) << ERange;"}}
[g]={Z,1590001902,ab}
},
},
["err_array_size_ambiguous_conversion"]={
["err_array_size_ambiguous_conversion"]={
[f]="ambiguous conversion of array size expression of type A to an integral or enumeration type",
[f]="ambiguous conversion of array size expression of type A to an integral or enumeration type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="ambiguous conversion of array size expression of type %0 to an integral or enumeration type",
[g]="ambiguous conversion of array size expression of type %0 to an integral or enumeration type",
[c]=m,
[i]=m,
[b]="ambiguous conversion of array size expression of type (.*?) to an integral or enumeration type",
[j]="ambiguous conversion of array size expression of type (.*?) to an integral or enumeration type",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"4799d03ce841",1277857243,"Implement C++ DR299, which allows an implicit conversion from a class"}
[d]={"4799d03ce841",1277857243,"Implement C++ DR299, which allows an implicit conversion from a class"},
[k]={{x,1862,"ExprResult Sema::BuildCXXNew(SourceRange Range, bool UseGlobal, SourceLocation PlacementLParen, MultiExprArg PlacementArgs, SourceLocation PlacementRParen, SourceRange TypeIdParens, QualType AllocType, TypeSourceInfo *AllocTypeInfo, std::optional<Expr *> ArraySize, SourceRange DirectInitRange, Expr *Initializer) {\n  if (ArraySize && *ArraySize && !(*ArraySize)->isTypeDependent()) {\n    if (getLangOpts().CPlusPlus14) {\n    } else {\n      class SizeConvertDiagnoser : public ICEConvertDiagnoser {\n        SemaDiagnosticBuilder diagnoseAmbiguous(Sema &S, SourceLocation Loc, QualType T) override { return S.Diag(Loc, diag::err_array_size_ambiguous_conversion) << T; }"}}
},
},
["err_array_size_explicit_conversion"]={
["err_array_size_explicit_conversion"]={
[f]="array size expression of type A requires explicit conversion to type B",
[f]="array size expression of type A requires explicit conversion to type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="array size expression of type %0 requires explicit conversion to type %1",
[g]="array size expression of type %0 requires explicit conversion to type %1",
[c]=m,
[i]=m,
[b]="array size expression of type (.*?) requires explicit conversion to type (.*?)",
[j]="array size expression of type (.*?) requires explicit conversion to type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"4799d03ce841",1277857243,"Implement C++ DR299, which allows an implicit conversion from a class"}
[d]={"4799d03ce841",1277857243,"Implement C++ DR299, which allows an implicit conversion from a class"},
[k]={{x,1858,"ExprResult Sema::BuildCXXNew(SourceRange Range, bool UseGlobal, SourceLocation PlacementLParen, MultiExprArg PlacementArgs, SourceLocation PlacementRParen, SourceRange TypeIdParens, QualType AllocType, TypeSourceInfo *AllocTypeInfo, std::optional<Expr *> ArraySize, SourceRange DirectInitRange, Expr *Initializer) {\n  if (ArraySize && *ArraySize && !(*ArraySize)->isTypeDependent()) {\n    if (getLangOpts().CPlusPlus14) {\n    } else {\n      class SizeConvertDiagnoser : public ICEConvertDiagnoser {\n        SemaDiagnosticBuilder diagnoseExplicitConv(Sema &S, SourceLocation Loc, QualType T, QualType ConvTy) override { return S.Diag(Loc, diag::err_array_size_explicit_conversion) << T << ConvTy; }"}}
},
},
["err_array_size_incomplete_type"]={
["err_array_size_incomplete_type"]={
[f]="array size expression has incomplete class type A",
[f]="array size expression has incomplete class type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="array size expression has incomplete class type %0",
[g]="array size expression has incomplete class type %0",
[c]=m,
[i]=m,
[b]="array size expression has incomplete class type (.*?)",
[j]="array size expression has incomplete class type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"4799d03ce841",1277857243,"Implement C++ DR299, which allows an implicit conversion from a class"}
[d]={"4799d03ce841",1277857243,"Implement C++ DR299, which allows an implicit conversion from a class"},
[k]={{x,1856,"ExprResult Sema::BuildCXXNew(SourceRange Range, bool UseGlobal, SourceLocation PlacementLParen, MultiExprArg PlacementArgs, SourceLocation PlacementRParen, SourceRange TypeIdParens, QualType AllocType, TypeSourceInfo *AllocTypeInfo, std::optional<Expr *> ArraySize, SourceRange DirectInitRange, Expr *Initializer) {\n  if (ArraySize && *ArraySize && !(*ArraySize)->isTypeDependent()) {\n    if (getLangOpts().CPlusPlus14) {\n    } else {\n      class SizeConvertDiagnoser : public ICEConvertDiagnoser {\n        SemaDiagnosticBuilder diagnoseIncomplete(Sema &S, SourceLocation Loc, QualType T) override { return S.Diag(Loc, diag::err_array_size_incomplete_type) << T << ArraySize->getSourceRange(); }"}}
},
},
["err_array_size_non_int"]={
["err_array_size_non_int"]={
[f]="size of array has non-integer type A",
[f]="size of array has non-integer type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="size of array has non-integer type %0",
[g]="size of array has non-integer type %0",
[c]=m,
[i]=m,
[b]="size of array has non\\-integer type (.*?)",
[j]="size of array has non\\-integer type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{r,2129,"/// Check whether the specified array bound can be evaluated using the relevant\n/// language rules. If so, returns the possibly-converted expression and sets\n/// SizeVal to the size. If not, but the expression might be a VLA bound,\n/// returns ExprResult(). Otherwise, produces a diagnostic and returns\n/// ExprError().\nstatic ExprResult checkArraySize(Sema &S, Expr *&ArraySize, llvm::APSInt &SizeVal, unsigned VLADiag, bool VLAIsError) {\n  // If the size is an ICE, it certainly isn\'t a VLA. If we\'re in a GNU mode\n  // (like gnu99, but not c99) accept any evaluatable value as an extension.\n  class VLADiagnoser : public Sema::VerifyICEDiagnoser {\n    Sema::SemaDiagnosticBuilder diagnoseNotICEType(Sema &S, SourceLocation Loc, QualType T) override { return S.Diag(Loc, diag::err_array_size_non_int) << T; }"},{r,2269,"/// Build an array type.\n///\n/// \\param T The type of each element in the array.\n///\n/// \\param ASM C99 array size modifier (e.g., \'*\', \'static\').\n///\n/// \\param ArraySize Expression describing the size of the array.\n///\n/// \\param Brackets The range from the opening \'[\' to the closing \']\'.\n///\n/// \\param Entity The name of the entity that involves the array\n/// type, if known.\n///\n/// \\returns A suitable array type, if there are no errors. Otherwise,\n/// returns a NULL type.\nQualType Sema::BuildArrayType(QualType T, ArrayType::ArraySizeModifier ASM, Expr *ArraySize, unsigned Quals, SourceRange Brackets, DeclarationName Entity) {\n  // C99 6.7.5.2p1: The size expression shall have integer type.\n  // C++11 allows contextual conversions to such types.\n  if (!getLangOpts().CPlusPlus11 && ArraySize && !ArraySize->isTypeDependent() && !ArraySize->getType()->isIntegralOrUnscopedEnumerationType()) {\n    Diag(ArraySize->getBeginLoc(), diag::err_array_size_non_int) << ArraySize->getType() << ArraySize->getSourceRange();"}}
},
},
["err_array_size_not_integral"]={
["err_array_size_not_integral"]={
[f]="array size expression must have integral or ...enumeration type, not A",
[f]="array size expression must have integral or ...enumeration type, not A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="array size expression must have integral or %select{|unscoped }0enumeration type, not %1",
[g]="array size expression must have integral or %select{|unscoped }0enumeration type, not %1",
[c]=m,
[i]=m,
[b]="array size expression must have integral or (?:|unscoped )enumeration type, not (.*?)",
[j]="array size expression must have integral or (?:|unscoped )enumeration type, not (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{x,1854,"ExprResult Sema::BuildCXXNew(SourceRange Range, bool UseGlobal, SourceLocation PlacementLParen, MultiExprArg PlacementArgs, SourceLocation PlacementRParen, SourceRange TypeIdParens, QualType AllocType, TypeSourceInfo *AllocTypeInfo, std::optional<Expr *> ArraySize, SourceRange DirectInitRange, Expr *Initializer) {\n  if (ArraySize && *ArraySize && !(*ArraySize)->isTypeDependent()) {\n    if (getLangOpts().CPlusPlus14) {\n    } else {\n      class SizeConvertDiagnoser : public ICEConvertDiagnoser {\n        SemaDiagnosticBuilder diagnoseNotInt(Sema &S, SourceLocation Loc, QualType T) override { return S.Diag(Loc, diag::err_array_size_not_integral) << S.getLangOpts().CPlusPlus11 << T; }"}}
},
},
["err_array_star_in_function_definition"]={
["err_array_star_in_function_definition"]={
[f]="variable length array must be bound in function definition",
[f]="variable length array must be bound in function definition",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="variable length array must be bound in function definition",
[i]=m,
[j]="variable length array must be bound in function definition",
[j]="variable length array must be bound in function definition",
[c]=m,
[b]=a,
[b]="variable length array must be bound in function definition",
[h]=o,
[i]=a,
[d]={"deb55d512333",1265000569,"Fix for PR5185. C99 [*] VLA notation should be disallowed in function definitions."},
[h]=n,
[k]={{s,14848,"static void diagnoseArrayStarInParamType(Sema &S, QualType PType, SourceLocation Loc) {\n  S.Diag(Loc, diag::err_array_star_in_function_definition);"}}
[g]={"deb55d512333",1265000569,"Fix for PR5185. C99 [*] VLA notation should be disallowed in function definitions."}
},
},
["err_array_star_outside_prototype"]={
["err_array_star_outside_prototype"]={
[f]="star modifier used outside of function prototype",
[f]="star modifier used outside of function prototype",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="star modifier used outside of function prototype",
[i]=m,
[j]="star modifier used outside of function prototype",
[j]="star modifier used outside of function prototype",
[c]=m,
[b]=a,
[b]="star modifier used outside of function prototype",
[h]=o,
[i]=a,
[d]={"4e2ab5550284",1240783071,"Add a bit more handling for declarations like \"int a[*]\"."},
[h]=n,
[k]={{r,4541,"static TypeSourceInfo *GetFullTypeForDeclarator(TypeProcessingState &state, QualType declSpecType, TypeSourceInfo *TInfo) {\n  for (unsigned i = 0, e = D.getNumTypeObjects(); i != e; ++i) {\n    case DeclaratorChunk::Array: {\n      if (ASM == ArrayType::Star && !D.isPrototypeContext()) {\n        S.Diag(DeclType.Loc, diag::err_array_star_outside_prototype);"}}
[g]={"4e2ab5550284",1240783071,"Add a bit more handling for declarations like \"int a[*]\"."}
},
},
["err_array_static_not_outermost"]={
["err_array_static_not_outermost"]={
[f]="A used in non-outermost array type derivation",
[f]="A used in non-outermost array type derivation",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 used in non-outermost array type derivation",
[g]="%0 used in non-outermost array type derivation",
[c]=m,
[i]=m,
[b]="(.*?) used in non\\-outermost array type derivation",
[j]="(.*?) used in non\\-outermost array type derivation",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"420052640f7c",1345016550,"Check for improper use of \'static\' and type qualifiers in array"}
[d]={"420052640f7c",1345016550,"Check for improper use of \'static\' and type qualifiers in array"},
[k]={{r,4562,"static TypeSourceInfo *GetFullTypeForDeclarator(TypeProcessingState &state, QualType declSpecType, TypeSourceInfo *TInfo) {\n  for (unsigned i = 0, e = D.getNumTypeObjects(); i != e; ++i) {\n    case DeclaratorChunk::Array: {\n      // C99 6.7.5.2p1: The optional type qualifiers and the keyword static\n      // shall appear only in a declaration of a function parameter with an\n      // array type, ...\n      if (ASM == ArrayType::Static || ATI.TypeQuals) {\n        // C99 6.7.5.2p1: ... and then only in the outermost array type\n        // derivation.\n        if (hasOuterPointerLikeChunk(D, chunkIndex)) {\n          S.Diag(DeclType.Loc, diag::err_array_static_not_outermost) << (ASM == ArrayType::Static ? \"\'static\'\" : \"type qualifier\");"}}
},
},
["err_array_static_outside_prototype"]={
["err_array_static_outside_prototype"]={
[f]="A used in array declarator outside of function prototype",
[f]="A used in array declarator outside of function prototype",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 used in array declarator outside of function prototype",
[g]="%0 used in array declarator outside of function prototype",
[c]=m,
[i]=m,
[b]="(.*?) used in array declarator outside of function prototype",
[j]="(.*?) used in array declarator outside of function prototype",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"420052640f7c",1345016550,"Check for improper use of \'static\' and type qualifiers in array"}
[d]={"420052640f7c",1345016550,"Check for improper use of \'static\' and type qualifiers in array"},
[k]={{r,4551,"static TypeSourceInfo *GetFullTypeForDeclarator(TypeProcessingState &state, QualType declSpecType, TypeSourceInfo *TInfo) {\n  for (unsigned i = 0, e = D.getNumTypeObjects(); i != e; ++i) {\n    case DeclaratorChunk::Array: {\n      // C99 6.7.5.2p1: The optional type qualifiers and the keyword static\n      // shall appear only in a declaration of a function parameter with an\n      // array type, ...\n      if (ASM == ArrayType::Static || ATI.TypeQuals) {\n        if (!(D.isPrototypeContext() || D.getContext() == DeclaratorContext::KNRTypeList)) {\n          S.Diag(DeclType.Loc, diag::err_array_static_outside_prototype) << (ASM == ArrayType::Static ? \"\'static\'\" : \"type qualifier\");"}}
},
},
["err_array_too_large"]={
["err_array_too_large"]={
[f]="array is too large (A elements)",
[f]="array is too large (A elements)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="array is too large (%0 elements)",
[g]="array is too large (%0 elements)",
[c]=m,
[i]=m,
[b]="array is too large \\((.*?) elements\\)",
[j]="array is too large \\((.*?) elements\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"caa1bf434d93",1282091940,"Emit an error if an array is too large. We\'re slightly more strict"}
[d]={"caa1bf434d93",1282091940,"Emit an error if an array is too large. We\'re slightly more strict"},
[k]={{q,5869,"/// Attempt to fold a variable-sized type to a constant-sized type, returning\n/// true if we were successful.\nbool Sema::tryToFixVariablyModifiedVarType(TypeSourceInfo *&TInfo, QualType &T, SourceLocation Loc, unsigned FailedFoldDiagID) {\n  if (SizeIsNegative)\n  else if (Oversized.getBoolValue())\n    Diag(Loc, diag::err_array_too_large) << toString(Oversized, 10);"},{q,5972,"void Sema::CheckTypedefForVariablyModifiedType(Scope *S, TypedefNameDecl *NewTD) {\n  if (T->isVariablyModifiedType()) {\n    if (S->getFnParent() == nullptr) {\n      if (FixedTInfo) {\n      } else {\n        if (SizeIsNegative)\n        else if (T->isVariableArrayType())\n        else if (Oversized.getBoolValue())\n          Diag(NewTD->getLocation(), diag::err_array_too_large) << toString(Oversized, 10);"},{x,1901,"ExprResult Sema::BuildCXXNew(SourceRange Range, bool UseGlobal, SourceLocation PlacementLParen, MultiExprArg PlacementArgs, SourceLocation PlacementRParen, SourceRange TypeIdParens, QualType AllocType, TypeSourceInfo *AllocTypeInfo, std::optional<Expr *> ArraySize, SourceRange DirectInitRange, Expr *Initializer) {\n  if (ArraySize && *ArraySize && !(*ArraySize)->isTypeDependent()) {\n    // We\'ve already performed any required implicit conversion to integer or\n    // unscoped enumeration type.\n    // FIXME: Per CWG1464, we are required to check the value prior to\n    // converting to size_t. This will never find a negative array size in\n    // C++14 onwards, because Value is always unsigned here!\n    if (std::optional<llvm::APSInt> Value = (*ArraySize)->getIntegerConstantExpr(Context)) {\n      if (!AllocType->isDependentType()) {\n        if (ActiveSizeBits > ConstantArrayType::getMaxSizeBits(Context))\n          return ExprError(Diag((*ArraySize)->getBeginLoc(), diag::err_array_too_large) << toString(*Value, 10) << (*ArraySize)->getSourceRange());"},{r,2345,"/// Build an array type.\n///\n/// \\param T The type of each element in the array.\n///\n/// \\param ASM C99 array size modifier (e.g., \'*\', \'static\').\n///\n/// \\param ArraySize Expression describing the size of the array.\n///\n/// \\param Brackets The range from the opening \'[\' to the closing \']\'.\n///\n/// \\param Entity The name of the entity that involves the array\n/// type, if known.\n///\n/// \\returns A suitable array type, if there are no errors. Otherwise,\n/// returns a NULL type.\nQualType Sema::BuildArrayType(QualType T, ArrayType::ArraySizeModifier ASM, Expr *ArraySize, unsigned Quals, SourceRange Brackets, DeclarationName Entity) {\n  if (!ArraySize) {\n  } else if (ArraySize->isTypeDependent() || ArraySize->isValueDependent()) {\n  } else {\n    if (!R.isUsable()) {\n    } else if (!T->isDependentType() && !T->isIncompleteType() && !T->isConstantSizeType()) {\n    } else {\n      if (ActiveSizeBits > ConstantArrayType::getMaxSizeBits(Context)) {\n        Diag(ArraySize->getBeginLoc(), diag::err_array_too_large) << toString(ConstVal, 10) << ArraySize->getSourceRange();"}}
},
},
["err_as_qualified_auto_decl"]={
["err_as_qualified_auto_decl"]={
[f]="automatic variable qualified with an... address space",
[f]="automatic variable qualified with an... address space",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="automatic variable qualified with an%select{| invalid}0 address space",
[g]="automatic variable qualified with an%select{| invalid}0 address space",
[c]=m,
[i]=m,
[b]="automatic variable qualified with an(?:| invalid) address space",
[j]="automatic variable qualified with an(?:| invalid) address space",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{q,7539,"void Sema::CheckVariableDeclarationType(VarDecl *NewVD) {\n  // Emit an error if an address space was applied to decl with local storage.\n  // This includes arrays of objects with address space qualifiers, but not\n  // automatic variables that point to other address spaces.\n  // ISO/IEC TR 18037 S5.1.2\n  if (!getLangOpts().OpenCL && NewVD->hasLocalStorage() && T.getAddressSpace() != LangAS::Default) {\n    Diag(NewVD->getLocation(), diag::err_as_qualified_auto_decl) << 0;"},{q,7623,"void Sema::CheckVariableDeclarationType(VarDecl *NewVD) {\n  if (getLangOpts().OpenCL) {\n    // FIXME: Adding local AS in C++ for OpenCL might make sense.\n    if (NewVD->isFileVarDecl() || NewVD->isStaticLocal() || NewVD->hasExternalStorage()) {\n    } else {\n      if (T.getAddressSpace() == LangAS::opencl_constant || T.getAddressSpace() == LangAS::opencl_local) {\n      } else if (T.getAddressSpace() != LangAS::opencl_private &&\n        Diag(NewVD->getLocation(), diag::err_as_qualified_auto_decl) << 1;"}}
},
},
["err_asm_bad_register_type"]={
["err_asm_bad_register_type"]={
[f]="bad type for named register variable",
[f]="bad type for named register variable",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="bad type for named register variable",
[i]=m,
[j]="bad type for named register variable",
[j]="bad type for named register variable",
[c]=m,
[b]=a,
[b]="bad type for named register variable",
[h]=C,
[i]=a,
[d]={"2e31e4e47b09",1401986722,"Add pointer types to global named register"},
[h]=D,
[k]={{q,7048,"NamedDecl *Sema::ActOnVariableDeclarator(Scope *S, Declarator &D, DeclContext *DC, TypeSourceInfo *TInfo, LookupResult &Previous, MultiTemplateParamsArg TemplateParamLists, bool &AddToScope, ArrayRef<BindingDecl *> Bindings) {\n  // Handle GNU asm-label extension (encoded as an attribute).\n  if (Expr *E = (Expr *)D.getAsmLabel()) {\n    if (S->getFnParent() != nullptr) {\n    } else if (SC == SC_Register) {\n      if (!R->isIntegralType(Context) && !R->isPointerType()) {\n        Diag(D.getBeginLoc(), diag::err_asm_bad_register_type);"}}
[g]={"2e31e4e47b09",1401986722,"Add pointer types to global named register"}
},
},
["err_asm_duplicate_qual"]={
["err_asm_duplicate_qual"]={
[f]="duplicate asm qualifier \'A\'",
[f]="duplicate asm qualifier \'A\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="duplicate asm qualifier \'%0\'",
[g]="duplicate asm qualifier \'%0\'",
[c]=m,
[i]=m,
[b]="duplicate asm qualifier \'(.*?)\'",
[j]="duplicate asm qualifier \'(.*?)\'",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={zc,1582039343,rc}
[d]={"f08df464ae89",1582039343,"[OPENMP50]Add initial support for OpenMP 5.0 iterator."},
[k]={{"clang/lib/Parse/ParseStmtAsm.cpp",623,"/// parseGNUAsmQualifierListOpt - Parse a GNU extended asm qualifier list.\n///      asm-qualifier:\n///        volatile\n///        inline\n///        goto\n///\n///      asm-qualifier-list:\n///        asm-qualifier\n///        asm-qualifier-list asm-qualifier\nbool Parser::parseGNUAsmQualifierListOpt(GNUAsmQualifiers &AQ) {\n  while (true) {\n    if (AQ.setAsmQualifier(A))\n      Diag(Tok.getLocation(), diag::err_asm_duplicate_qual) << GNUAsmQualifiers::getQualifierName(A);"}}
},
},
["err_asm_empty"]={
["err_asm_empty"]={
[f]="__asm used with no assembly instructions",
[f]="__asm used with no assembly instructions",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="__asm used with no assembly instructions",
[i]=m,
[j]="__asm used with no assembly instructions",
[j]="__asm used with no assembly instructions",
[c]=m,
[b]=a,
[b]="__asm used with no assembly instructions",
[h]=C,
[i]=a,
[d]={"317be45091d7",1348516679,"Replace an assertion with an error for empty __asm statements."},
[h]=D,
[k]={{"clang/lib/Parse/ParseStmtAsm.cpp",287,"/// Turn a sequence of our tokens back into a string that we can hand\n/// to the MC asm parser.\nstatic bool buildMSAsmString(Preprocessor &PP, SourceLocation AsmLoc, ArrayRef<Token> AsmToks, SmallVectorImpl<unsigned> &TokOffsets, SmallString<512> &Asm) {\n  for (unsigned i = 0, e = AsmToks.size(); i < e; ++i) {\n    // Don\'t actually write \'__asm\' into the assembly stream.\n    if (Tok.is(tok::kw_asm)) {\n      // Complain about __asm at the end of the stream.\n      if (i + 1 == e) {\n        PP.Diag(AsmLoc, diag::err_asm_empty);"}}
[g]={"317be45091d7",1348516679,"Replace an assertion with an error for empty __asm statements."}
},
},
["err_asm_empty_symbolic_operand_name"]={
["err_asm_empty_symbolic_operand_name"]={
[f]="empty symbolic operand name in inline assembly string",
[f]="empty symbolic operand name in inline assembly string",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="empty symbolic operand name in inline assembly string",
[i]=m,
[j]="empty symbolic operand name in inline assembly string",
[j]="empty symbolic operand name in inline assembly string",
[c]=m,
[b]=a,
[b]="empty symbolic operand name in inline assembly string",
[h]=C,
[i]=a,
[d]={u,1237025389,t},
[h]=D,
[k]={{ob,670,"/// AnalyzeAsmString - Analyze the asm string of the current asm, decomposing\n/// it into pieces.  If the asm string is erroneous, emit errors and return\n/// true, otherwise return false.\nunsigned GCCAsmStmt::AnalyzeAsmString(SmallVectorImpl<AsmStringPiece> &Pieces, const ASTContext &C, unsigned &DiagOffs) const {\n  while (true) {\n    // Handle operands that have asmSymbolicName (e.g., %x[foo]).\n    if (EscapedChar == \'[\') {\n      if (NameEnd == CurPtr)\n        return diag::err_asm_empty_symbolic_operand_name;"}}
[g]={q,1237025389,p}
},
},
["err_asm_incomplete_type"]={
["err_asm_incomplete_type"]={
[f]="asm operand has incomplete type A",
[f]="asm operand has incomplete type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="asm operand has incomplete type %0",
[g]="asm operand has incomplete type %0",
[c]=m,
[i]=m,
[b]="asm operand has incomplete type (.*?)",
[j]="asm operand has incomplete type (.*?)",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={"f413f5ed44dd",1367539813,"Move parsing of identifiers in MS-style inline assembly into"}
[d]={"f413f5ed44dd",1367539813,"Move parsing of identifiers in MS-style inline assembly into"},
[k]={{F,696,"ExprResult Sema::LookupInlineAsmIdentifier(CXXScopeSpec &SS, SourceLocation TemplateKWLoc, UnqualifiedId &Id, bool IsUnevaluatedContext) {\n  if (RequireCompleteExprType(Result.get(), diag::err_asm_incomplete_type)) {"},{F,741,"bool Sema::LookupInlineAsmField(StringRef Base, StringRef Member, unsigned &Offset, SourceLocation AsmLoc) {\n  for (StringRef NextMember : Members) {\n    if (RequireCompleteType(AsmLoc, QualType(RT, 0), diag::err_asm_incomplete_type))"}}
},
},
["err_asm_input_duplicate_match"]={
["err_asm_input_duplicate_match"]={
[f]="more than one input constraint matches the same output \'A\'",
[f]="more than one input constraint matches the same output \'A\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="more than one input constraint matches the same output \'%0\'",
[g]="more than one input constraint matches the same output \'%0\'",
[c]=m,
[i]=m,
[b]="more than one input constraint matches the same output \'(.*?)\'",
[j]="more than one input constraint matches the same output \'(.*?)\'",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={"8e261be91106",1442846460,"Fix assertion in inline assembler IR gen"}
[d]={"8e261be91106",1442846460,"Fix assertion in inline assembler IR gen"},
[k]={{F,514,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  for (unsigned i = 0, e = InputConstraintInfos.size(); i != e; ++i) {\n    if (InputMatchedToOutput[TiedTo] != ~0U) {\n      targetDiag(NS->getInputExpr(i)->getBeginLoc(), diag::err_asm_input_duplicate_match) << TiedTo;"}}
},
},
["err_asm_invalid_escape"]={
["err_asm_invalid_escape"]={
[f]="invalid % escape in inline assembly string",
[f]="invalid % escape in inline assembly string",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="invalid %% escape in inline assembly string",
[g]="invalid %% escape in inline assembly string",
[c]=m,
[i]=m,
[b]="invalid % escape in inline assembly string",
[j]="invalid % escape in inline assembly string",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{ob,588,"/// AnalyzeAsmString - Analyze the asm string of the current asm, decomposing\n/// it into pieces.  If the asm string is erroneous, emit errors and return\n/// true, otherwise return false.\nunsigned GCCAsmStmt::AnalyzeAsmString(SmallVectorImpl<AsmStringPiece> &Pieces, const ASTContext &C, unsigned &DiagOffs) const {\n  while (true) {\n    // Escaped \"%\" character in asm string.\n    if (CurPtr == StrEnd) {\n      return diag::err_asm_invalid_escape;"},{ob,626,"/// AnalyzeAsmString - Analyze the asm string of the current asm, decomposing\n/// it into pieces.  If the asm string is erroneous, emit errors and return\n/// true, otherwise return false.\nunsigned GCCAsmStmt::AnalyzeAsmString(SmallVectorImpl<AsmStringPiece> &Pieces, const ASTContext &C, unsigned &DiagOffs) const {\n  while (true) {\n    if (isLetter(EscapedChar)) {\n      if (CurPtr == StrEnd) { // Premature end.\n        return diag::err_asm_invalid_escape;"},{ob,696,"/// AnalyzeAsmString - Analyze the asm string of the current asm, decomposing\n/// it into pieces.  If the asm string is erroneous, emit errors and return\n/// true, otherwise return false.\nunsigned GCCAsmStmt::AnalyzeAsmString(SmallVectorImpl<AsmStringPiece> &Pieces, const ASTContext &C, unsigned &DiagOffs) const {\n  while (true) {\n    return diag::err_asm_invalid_escape;"}}
},
},
["err_asm_invalid_global_var_reg"]={
["err_asm_invalid_global_var_reg"]={
[f]="register \'A\' unsuitable for global register variables on this target",
[f]="register \'A\' unsuitable for global register variables on this target",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="register \'%0\' unsuitable for global register variables on this target",
[g]="register \'%0\' unsuitable for global register variables on this target",
[c]=m,
[i]=m,
[b]="register \'(.*?)\' unsuitable for global register variables on this target",
[j]="register \'(.*?)\' unsuitable for global register variables on this target",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={"8c26ea663d43",1447805728,"Produce a better diagnostic for global register variables."}
[d]={"8c26ea663d43",1447805728,"Produce a better diagnostic for global register variables."},
[k]={{q,7042,"NamedDecl *Sema::ActOnVariableDeclarator(Scope *S, Declarator &D, DeclContext *DC, TypeSourceInfo *TInfo, LookupResult &Previous, MultiTemplateParamsArg TemplateParamLists, bool &AddToScope, ArrayRef<BindingDecl *> Bindings) {\n  // Handle GNU asm-label extension (encoded as an attribute).\n  if (Expr *E = (Expr *)D.getAsmLabel()) {\n    if (S->getFnParent() != nullptr) {\n    } else if (SC == SC_Register) {\n      // Global Named register\n      if (DeclAttrsMatchCUDAMode(getLangOpts(), NewVD)) {\n        if (!TI.isValidGCCRegisterName(Label))\n        else if (!TI.validateGlobalRegisterVariable(Label, Context.getTypeSize(R), HasSizeMismatch))\n          Diag(E->getExprLoc(), diag::err_asm_invalid_global_var_reg) << Label;"}}
},
},
["err_asm_invalid_input_constraint"]={
["err_asm_invalid_input_constraint"]={
[f]="invalid input constraint \'A\' in asm",
[f]="invalid input constraint \'A\' in asm",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="invalid input constraint \'%0\' in asm",
[g]="invalid input constraint \'%0\' in asm",
[c]=m,
[i]=m,
[b]="invalid input constraint \'(.*?)\' in asm",
[j]="invalid input constraint \'(.*?)\' in asm",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{F,321,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  for (unsigned i = NumOutputs, e = NumOutputs + NumInputs; i != e; i++) {\n    if (!Context.getTargetInfo().validateInputConstraint(OutputConstraintInfos, Info)) {\n      targetDiag(Literal->getBeginLoc(), diag::err_asm_invalid_input_constraint) << Info.getConstraintStr();"}}
},
},
["err_asm_invalid_input_size"]={
["err_asm_invalid_input_size"]={
[f]="invalid input size for constraint \'A\'",
[f]="invalid input size for constraint \'A\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="invalid input size for constraint \'%0\'",
[g]="invalid input size for constraint \'%0\'",
[c]=m,
[i]=m,
[b]="invalid input size for constraint \'(.*?)\'",
[j]="invalid input size for constraint \'(.*?)\'",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={"887b485dbe3d",1352702571,"Check that the input size is correct for the given constraint."}
[d]={"887b485dbe3d",1352702571,"Check that the input size is correct for the given constraint."},
[k]={{F,391,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  for (unsigned i = NumOutputs, e = NumOutputs + NumInputs; i != e; i++) {\n    if (!Context.getTargetInfo().validateInputSize(FeatureMap, Literal->getString(), Size))\n      return targetDiag(InputExpr->getBeginLoc(), diag::err_asm_invalid_input_size) << Info.getConstraintStr();"}}
},
},
["err_asm_invalid_lvalue_in_input"]={
["err_asm_invalid_lvalue_in_input"]={
[f]="invalid lvalue in asm input for constraint \'A\'",
[f]="invalid lvalue in asm input for constraint \'A\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="invalid lvalue in asm input for constraint \'%0\'",
[g]="invalid lvalue in asm input for constraint \'%0\'",
[c]=m,
[i]=m,
[b]="invalid lvalue in asm input for constraint \'(.*?)\'",
[j]="invalid lvalue in asm input for constraint \'(.*?)\'",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{F,346,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  for (unsigned i = NumOutputs, e = NumOutputs + NumInputs; i != e; i++) {\n    // Only allow void types for memory constraints.\n    if (Info.allowsMemory() && !Info.allowsRegister()) {\n      if (CheckAsmLValue(InputExpr, *this))\n        return StmtError(Diag(InputExpr->getBeginLoc(), diag::err_asm_invalid_lvalue_in_input) << Info.getConstraintStr() << InputExpr->getSourceRange());"}}
},
},
["err_asm_invalid_lvalue_in_output"]={
["err_asm_invalid_lvalue_in_output"]={
[f]="invalid lvalue in asm output",
[f]="invalid lvalue in asm output",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="invalid lvalue in asm output",
[i]=m,
[j]="invalid lvalue in asm output",
[j]="invalid lvalue in asm output",
[c]=m,
[b]=a,
[b]="invalid lvalue in asm output",
[h]=C,
[i]=a,
[d]={u,1237025389,t},
[h]=D,
[k]={{F,299,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  for (unsigned i = 0; i != NumOutputs; i++) {\n    default:\n      return StmtError(Diag(OutputExpr->getBeginLoc(), diag::err_asm_invalid_lvalue_in_output) << OutputExpr->getSourceRange());"}}
[g]={q,1237025389,p}
},
},
["err_asm_invalid_operand_number"]={
["err_asm_invalid_operand_number"]={
[f]="invalid operand number in inline asm string",
[f]="invalid operand number in inline asm string",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="invalid operand number in inline asm string",
[i]=m,
[j]="invalid operand number in inline asm string",
[j]="invalid operand number in inline asm string",
[c]=m,
[b]=a,
[b]="invalid operand number in inline asm string",
[h]=C,
[i]=a,
[d]={u,1237025389,t},
[h]=D,
[k]={{ob,646,"/// AnalyzeAsmString - Analyze the asm string of the current asm, decomposing\n/// it into pieces.  If the asm string is erroneous, emit errors and return\n/// true, otherwise return false.\nunsigned GCCAsmStmt::AnalyzeAsmString(SmallVectorImpl<AsmStringPiece> &Pieces, const ASTContext &C, unsigned &DiagOffs) const {\n  while (true) {\n    // Handle operands that don\'t have asmSymbolicName (e.g., %x4).\n    if (isDigit(EscapedChar)) {\n      if (N >= NumOperands) {\n        return diag::err_asm_invalid_operand_number;"}}
[g]={q,1237025389,p}
},
},
["err_asm_invalid_output_constraint"]={
["err_asm_invalid_output_constraint"]={
[f]="invalid output constraint \'A\' in asm",
[f]="invalid output constraint \'A\' in asm",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="invalid output constraint \'%0\' in asm",
[g]="invalid output constraint \'%0\' in asm",
[c]=m,
[i]=m,
[b]="invalid output constraint \'(.*?)\' in asm",
[j]="invalid output constraint \'(.*?)\' in asm",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{F,247,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  for (unsigned i = 0; i != NumOutputs; i++) {\n    if (!Context.getTargetInfo().validateOutputConstraint(Info)) {\n      targetDiag(Literal->getBeginLoc(), diag::err_asm_invalid_output_constraint) << Info.getConstraintStr();"}}
},
},
["err_asm_invalid_output_size"]={
["err_asm_invalid_output_size"]={
[f]="invalid output size for constraint \'A\'",
[f]="invalid output size for constraint \'A\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="invalid output size for constraint \'%0\'",
[g]="invalid output size for constraint \'%0\'",
[c]=m,
[i]=m,
[b]="invalid output size for constraint \'(.*?)\'",
[j]="invalid output size for constraint \'(.*?)\'",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={"974131ea8825",1411064238,"[X86, inlineasm] Check that the output size is correct for the given constraint."}
[d]={"974131ea8825",1411064238,"[X86, inlineasm] Check that the output size is correct for the given constraint."},
[k]={{F,304,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  for (unsigned i = 0; i != NumOutputs; i++) {\n    if (!Context.getTargetInfo().validateOutputSize(FeatureMap, Literal->getString(), Size)) {\n      targetDiag(OutputExpr->getBeginLoc(), diag::err_asm_invalid_output_size) << Info.getConstraintStr();"}}
},
},
["err_asm_invalid_type"]={
["err_asm_invalid_type"]={
[f]="invalid type A in asm ...",
[f]="invalid type A in asm ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="invalid type %0 in asm %select{input|output}1",
[g]="invalid type %0 in asm %select{input|output}1",
[c]=m,
[i]=m,
[b]="invalid type (.*?) in asm (?:input|output)",
[j]="invalid type (.*?) in asm (?:input|output)",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={"60ee88599098",1589228634,"[clang][asm goto][slh] Warn if asm goto + SLH"}
[d]={"60ee88599098",1589228634,"[clang][asm goto][slh] Warn if asm goto + SLH"},
[k]={{F,270,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  for (unsigned i = 0; i != NumOutputs; i++) {\n    // Disallow bit-precise integer types, since the backends tend to have\n    // difficulties with abnormal sizes.\n    if (OutputExpr->getType()->isBitIntType())\n      return StmtError(Diag(OutputExpr->getBeginLoc(), diag::err_asm_invalid_type) << OutputExpr->getType() << 0 /*Input*/"},{F,376,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  for (unsigned i = NumOutputs, e = NumOutputs + NumInputs; i != e; i++) {\n    if (InputExpr->getType()->isBitIntType())\n      return StmtError(Diag(InputExpr->getBeginLoc(), diag::err_asm_invalid_type) << InputExpr->getType() << 1 /*Output*/"},{F,810,"StmtResult Sema::ActOnMSAsmStmt(SourceLocation AsmLoc, SourceLocation LBraceLoc, ArrayRef<Token> AsmToks, StringRef AsmString, unsigned NumOutputs, unsigned NumInputs, ArrayRef<StringRef> Constraints, ArrayRef<StringRef> Clobbers, ArrayRef<Expr *> Exprs, SourceLocation EndLoc) {\n  for (uint64_t I = 0; I < NumOutputs + NumInputs; ++I) {\n    if (E->getType()->isBitIntType()) {\n      Diag(E->getBeginLoc(), diag::err_asm_invalid_type) << E->getType() << (I < NumOutputs) << E->getSourceRange();"}}
},
},
["err_asm_invalid_type_in_input"]={
["err_asm_invalid_type_in_input"]={
[f]="invalid type A in asm input for constraint \'B\'",
[f]="invalid type A in asm input for constraint \'B\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="invalid type %0 in asm input for constraint \'%1\'",
[g]="invalid type %0 in asm input for constraint \'%1\'",
[c]=m,
[i]=m,
[b]="invalid type (.*?) in asm input for constraint \'(.*?)\'",
[j]="invalid type (.*?) in asm input for constraint \'(.*?)\'",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{"clang/lib/CodeGen/CGStmt.cpp",2408,"void CodeGenFunction::EmitAsmStmt(const AsmStmt &S) {\n  for (unsigned i = 0, e = S.getNumOutputs(); i != e; i++) {\n    if (!Info.allowsMemory() && IsScalarOrAggregate) {\n      if (llvm::Type *AdjTy = getTargetHooks().adjustInlineAsmType(*this, OutputConstraint, ResultRegTypes.back()))\n      else {\n        CGM.getDiags().Report(S.getAsmLoc(), diag::err_asm_invalid_type_in_input) << OutExpr->getType() << OutputConstraint;"},{"clang/lib/CodeGen/CGStmt.cpp",2520,"void CodeGenFunction::EmitAsmStmt(const AsmStmt &S) {\n  for (unsigned i = 0, e = S.getNumInputs(); i != e; i++) {\n    if (llvm::Type *AdjTy = getTargetHooks().adjustInlineAsmType(*this, ReplaceConstraint, Arg->getType()))\n    else\n      CGM.getDiags().Report(S.getAsmLoc(), diag::err_asm_invalid_type_in_input) << InputExpr->getType() << InputConstraint;"},{"clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp",111,"#endif\n    if (RDO & IsLate) {\n      Instance.getDiagnostics().Report(diag::err_asm_invalid_type_in_input) << \"Generating Interface Stubs is not supported with \""},{"clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp",213,"#endif\n  bool HandleNamedDecl(const NamedDecl *ND, MangledSymbols &Symbols, int RDO) {\n    Instance.getDiagnostics().Report(diag::err_asm_invalid_type_in_input) << \"Expected a function or function template decl.\";"},{F,371,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  for (unsigned i = NumOutputs, e = NumOutputs + NumInputs; i != e; i++) {\n    if (Info.allowsRegister()) {\n      if (InputExpr->getType()->isVoidType()) {\n        return StmtError(Diag(InputExpr->getBeginLoc(), diag::err_asm_invalid_type_in_input) << InputExpr->getType() << Info.getConstraintStr() << InputExpr->getSourceRange());"}}
},
},
["err_asm_naked_parm_ref"]={
["err_asm_naked_parm_ref"]={
[f]="parameter references not allowed in naked functions",
[f]="parameter references not allowed in naked functions",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="parameter references not allowed in naked functions",
[i]=m,
[j]="parameter references not allowed in naked functions",
[j]="parameter references not allowed in naked functions",
[c]=m,
[b]=a,
[b]="parameter references not allowed in naked functions",
[h]=o,
[i]=a,
[d]={"93dbeae0f734",1409869008,"Don\'t allow inline asm statements to reference parameters in naked functions"},
[h]=n,
[k]={{F,142,"static bool CheckNakedParmReference(Expr *E, Sema &S) {\n  while (WorkList.size()) {\n    if (DeclRefExpr *DRE = dyn_cast<DeclRefExpr>(E)) {\n      if (isa<ParmVarDecl>(DRE->getDecl())) {\n        S.Diag(DRE->getBeginLoc(), diag::err_asm_naked_parm_ref);"}}
[g]={"93dbeae0f734",1409869008,"Don\'t allow inline asm statements to reference parameters in naked functions"}
},
},
["err_asm_naked_this_ref"]={
["err_asm_naked_this_ref"]={
[f]="\'this\' pointer references not allowed in naked functions",
[f]="\'this\' pointer references not allowed in naked functions",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'this\' pointer references not allowed in naked functions",
[i]=m,
[j]="\'this\' pointer references not allowed in naked functions",
[j]="\'this\' pointer references not allowed in naked functions",
[c]=m,
[b]=a,
[b]="\'this\' pointer references not allowed in naked functions",
[h]=o,
[i]=a,
[d]={"71ac240620c4",1423002958,"Diagnose CXX \'this\' pointer reference in funcs with naked attr"},
[h]=n,
[k]={{F,136,"static bool CheckNakedParmReference(Expr *E, Sema &S) {\n  while (WorkList.size()) {\n    if (isa<CXXThisExpr>(E)) {\n      S.Diag(E->getBeginLoc(), diag::err_asm_naked_this_ref);"}}
[g]={"71ac240620c4",1423002958,"Diagnose CXX \'this\' pointer reference in funcs with naked attr"}
},
},
["err_asm_non_addr_value_in_memory_constraint"]={
["err_asm_non_addr_value_in_memory_constraint"]={
[f]="reference to a ... in asm ... with a memory constraint \'A\'",
[f]="reference to a ... in asm ... with a memory constraint \'A\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="reference to a %select{bit-field|vector element|global register variable}0 in asm %select{input|output}1 with a memory constraint \'%2\'",
[g]="reference to a %select{bit-field|vector element|global register variable}0 in asm %select{input|output}1 with a memory constraint \'%2\'",
[c]=m,
[i]=m,
[b]="reference to a (?:bit\\-field|vector element|global register variable) in asm (?:input|output) with a memory constraint \'(.*?)\'",
[j]="reference to a (?:bit\\-field|vector element|global register variable) in asm (?:input|output) with a memory constraint \'(.*?)\'",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={"d9eab9cc130d",1438598290,"Additional fix for PR14269: Crash on vector elements / global register vars in inline assembler."}
[d]={"d9eab9cc130d",1438598290,"Additional fix for PR14269: Crash on vector elements / global register vars in inline assembler."},
[k]={{F,170,"/// Returns true if given expression is not compatible with inline\n/// assembly\'s memory constraint; false otherwise.\nstatic bool checkExprMemoryConstraintCompat(Sema &S, Expr *E, TargetInfo::ConstraintInfo &Info, bool is_input_expr) {\n  if (EType != ExprSafeType) {\n    S.Diag(E->getBeginLoc(), diag::err_asm_non_addr_value_in_memory_constraint) << EType << is_input_expr << Info.getConstraintStr() << E->getSourceRange();"}}
},
},
["err_asm_operand_wide_string_literal"]={
["err_asm_operand_wide_string_literal"]={
[f]="cannot use ... string literal in \'asm\'",
[f]="cannot use ... string literal in \'asm\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot use %select{unicode|wide|an empty}0 string literal in \'asm\'",
[g]="cannot use %select{unicode|wide|an empty}0 string literal in \'asm\'",
[c]=m,
[i]=m,
[b]="cannot use (?:unicode|wide|an empty) string literal in \'asm\'",
[j]="cannot use (?:unicode|wide|an empty) string literal in \'asm\'",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={"65cdbf58a7dc",1322786146,"Diagnose use of wide string literal in \'asm\' instead of crashing.  Fixes <rdar://problem/10465079>."}
[d]={"65cdbf58a7dc",1322786146,"Diagnose use of wide string literal in \'asm\' instead of crashing.  Fixes <rdar://problem/10465079>."},
[k]={{Jb,1486,"/// ParseAsmStringLiteral - This is just a normal string-literal, but is not\n/// allowed to be a wide string, and is not subject to character translation.\n/// Unlike GCC, we also diagnose an empty string literal when parsing for an\n/// asm label as opposed to an asm statement, because such a construct does not\n/// behave well.\n///\n/// [GNU] asm-string-literal:\n///        string-literal\n///\nExprResult Parser::ParseAsmStringLiteral(bool ForAsmLabel) {\n  if (!AsmString.isInvalid()) {\n    if (!SL->isOrdinary()) {\n      Diag(Tok, diag::err_asm_operand_wide_string_literal) << SL->isWide() << SL->getSourceRange();"},{Jb,1490,"/// ParseAsmStringLiteral - This is just a normal string-literal, but is not\n/// allowed to be a wide string, and is not subject to character translation.\n/// Unlike GCC, we also diagnose an empty string literal when parsing for an\n/// asm label as opposed to an asm statement, because such a construct does not\n/// behave well.\n///\n/// [GNU] asm-string-literal:\n///        string-literal\n///\nExprResult Parser::ParseAsmStringLiteral(bool ForAsmLabel) {\n  if (!AsmString.isInvalid()) {\n    if (ForAsmLabel && SL->getString().empty()) {\n      Diag(Tok, diag::err_asm_operand_wide_string_literal) << 2 /* an empty */ << SL->getSourceRange();"}}
},
},
["err_asm_pmf_through_constraint_not_permitted"]={
["err_asm_pmf_through_constraint_not_permitted"]={
[f]="cannot pass a pointer-to-member through register-constrained inline assembly parameter",
[f]="cannot pass a pointer-to-member through register-constrained inline assembly parameter",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot pass a pointer-to-member through register-constrained inline assembly parameter",
[g]="cannot pass a pointer-to-member through register-constrained inline assembly parameter",
[c]=m,
[i]=m,
[b]="cannot pass a pointer\\-to\\-member through register\\-constrained inline assembly parameter",
[j]="cannot pass a pointer\\-to\\-member through register\\-constrained inline assembly parameter",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={w,1625925174,v}
[d]={N,1625925174,M},
[k]={{F,333,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  for (unsigned i = NumOutputs, e = NumOutputs + NumInputs; i != e; i++) {\n    if (InputExpr->getType()->isMemberPointerType())\n      return StmtError(Diag(InputExpr->getBeginLoc(), diag::err_asm_pmf_through_constraint_not_permitted) << InputExpr->getSourceRange());"}}
},
},
["err_asm_qualifier_ignored"]={
["err_asm_qualifier_ignored"]={
[f]="expected \'volatile\', \'inline\', \'goto\', or \'(\'",
[f]="expected \'volatile\', \'inline\', \'goto\', or \'(\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="expected \'volatile\', \'inline\', \'goto\', or \'(\'",
[g]="expected \'volatile\', \'inline\', \'goto\', or \'(\'",
[c]=m,
[i]=m,
[b]="expected \'volatile\', \'inline\', \'goto\', or \'\\(\'",
[j]="expected \'volatile\', \'inline\', \'goto\', or \'\\(\'",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={zc,1582039343,rc}
[d]={"f08df464ae89",1582039343,"[OPENMP50]Add initial support for OpenMP 5.0 iterator."},
[k]={{"clang/lib/Parse/ParseStmtAsm.cpp",616,"/// parseGNUAsmQualifierListOpt - Parse a GNU extended asm qualifier list.\n///      asm-qualifier:\n///        volatile\n///        inline\n///        goto\n///\n///      asm-qualifier-list:\n///        asm-qualifier\n///        asm-qualifier-list asm-qualifier\nbool Parser::parseGNUAsmQualifierListOpt(GNUAsmQualifiers &AQ) {\n  while (true) {\n    if (A == GNUAsmQualifiers::AQ_unspecified) {\n      if (Tok.isNot(tok::l_paren)) {\n        Diag(Tok.getLocation(), diag::err_asm_qualifier_ignored);"}}
},
},
["err_asm_register_size_mismatch"]={
["err_asm_register_size_mismatch"]={
[f]="size of register \'A\' does not match variable size",
[f]="size of register \'A\' does not match variable size",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="size of register \'%0\' does not match variable size",
[g]="size of register \'%0\' does not match variable size",
[c]=m,
[i]=m,
[b]="size of register \'(.*?)\' does not match variable size",
[j]="size of register \'(.*?)\' does not match variable size",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={"8c26ea663d43",1447805728,"Produce a better diagnostic for global register variables."}
[d]={"8c26ea663d43",1447805728,"Produce a better diagnostic for global register variables."},
[k]={{q,7044,"NamedDecl *Sema::ActOnVariableDeclarator(Scope *S, Declarator &D, DeclContext *DC, TypeSourceInfo *TInfo, LookupResult &Previous, MultiTemplateParamsArg TemplateParamLists, bool &AddToScope, ArrayRef<BindingDecl *> Bindings) {\n  // Handle GNU asm-label extension (encoded as an attribute).\n  if (Expr *E = (Expr *)D.getAsmLabel()) {\n    if (S->getFnParent() != nullptr) {\n    } else if (SC == SC_Register) {\n      // Global Named register\n      if (DeclAttrsMatchCUDAMode(getLangOpts(), NewVD)) {\n        if (!TI.isValidGCCRegisterName(Label))\n        else if (!TI.validateGlobalRegisterVariable(Label, Context.getTypeSize(R), HasSizeMismatch))\n        else if (HasSizeMismatch)\n          Diag(E->getExprLoc(), diag::err_asm_register_size_mismatch) << Label;"}}
},
},
["err_asm_tying_incompatible_types"]={
["err_asm_tying_incompatible_types"]={
[f]="unsupported inline asm: input with type A matching output with type B",
[f]="unsupported inline asm: input with type A matching output with type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="unsupported inline asm: input with type %diff{$ matching output with type $|}0,1",
[g]="unsupported inline asm: input with type %diff{$ matching output with type $|}0,1",
[c]=m,
[i]=m,
[b]="unsupported inline asm\\: input with type (?:(.*?) matching output with type (.*?)|)",
[j]="unsupported inline asm\\: input with type (?:(.*?) matching output with type (.*?)|)",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={"574428e4db41",1240770144,"implement PR4077: [Linux kernel] inscrutable error on inline asm input/output constraint mismatch"}
[d]={"574428e4db41",1240770144,"implement PR4077: [Linux kernel] inscrutable error on inline asm input/output constraint mismatch"},
[k]={{F,602,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  for (unsigned i = 0, e = InputConstraintInfos.size(); i != e; ++i) {\n    targetDiag(InputExpr->getBeginLoc(), diag::err_asm_tying_incompatible_types) << InTy << OutTy << OutputExpr->getSourceRange() << InputExpr->getSourceRange();"}}
},
},
["err_asm_unexpected_constraint_alternatives"]={
["err_asm_unexpected_constraint_alternatives"]={
[f]="asm constraint has an unexpected number of alternatives: A vs B",
[f]="asm constraint has an unexpected number of alternatives: A vs B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="asm constraint has an unexpected number of alternatives: %0 vs %1",
[g]="asm constraint has an unexpected number of alternatives: %0 vs %1",
[c]=m,
[i]=m,
[b]="asm constraint has an unexpected number of alternatives\\: (.*?) vs (.*?)",
[j]="asm constraint has an unexpected number of alternatives\\: (.*?) vs (.*?)",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={"c63fa612e46e",1419826199,"Sema: Forbid inconsistent constraint alternatives"}
[d]={"c63fa612e46e",1419826199,"Sema: Forbid inconsistent constraint alternatives"},
[k]={{F,484,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  for (unsigned i = 0, e = OutputConstraintInfos.size(); i != e; ++i) {\n    if (NumAlternatives == ~0U) {\n    } else if (NumAlternatives != AltCount) {\n      targetDiag(NS->getOutputExpr(i)->getBeginLoc(), diag::err_asm_unexpected_constraint_alternatives) << NumAlternatives << AltCount;"},{F,496,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  for (unsigned i = 0, e = InputConstraintInfos.size(); i != e; ++i) {\n    if (NumAlternatives == ~0U) {\n    } else if (NumAlternatives != AltCount) {\n      targetDiag(NS->getInputExpr(i)->getBeginLoc(), diag::err_asm_unexpected_constraint_alternatives) << NumAlternatives << AltCount;"}}
},
},
["err_asm_unknown_register_name"]={
["err_asm_unknown_register_name"]={
[f]="unknown register name \'A\' in asm",
[f]="unknown register name \'A\' in asm",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="unknown register name \'%0\' in asm",
[g]="unknown register name \'%0\' in asm",
[c]=m,
[i]=m,
[b]="unknown register name \'(.*?)\' in asm",
[j]="unknown register name \'(.*?)\' in asm",
[i]=a,
[b]=a,
[h]=D,
[h]=C,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{q,7026,"NamedDecl *Sema::ActOnVariableDeclarator(Scope *S, Declarator &D, DeclContext *DC, TypeSourceInfo *TInfo, LookupResult &Previous, MultiTemplateParamsArg TemplateParamLists, bool &AddToScope, ArrayRef<BindingDecl *> Bindings) {\n  // Handle GNU asm-label extension (encoded as an attribute).\n  if (Expr *E = (Expr *)D.getAsmLabel()) {\n    if (S->getFnParent() != nullptr) {\n      case SC_Register:\n        // Local Named register\n        if (!Context.getTargetInfo().isValidGCCRegisterName(Label) && DeclAttrsMatchCUDAMode(getLangOpts(), getCurFunctionDecl()))\n          Diag(E->getExprLoc(), diag::err_asm_unknown_register_name) << Label;"},{q,7040,"NamedDecl *Sema::ActOnVariableDeclarator(Scope *S, Declarator &D, DeclContext *DC, TypeSourceInfo *TInfo, LookupResult &Previous, MultiTemplateParamsArg TemplateParamLists, bool &AddToScope, ArrayRef<BindingDecl *> Bindings) {\n  // Handle GNU asm-label extension (encoded as an attribute).\n  if (Expr *E = (Expr *)D.getAsmLabel()) {\n    if (S->getFnParent() != nullptr) {\n    } else if (SC == SC_Register) {\n      // Global Named register\n      if (DeclAttrsMatchCUDAMode(getLangOpts(), NewVD)) {\n        if (!TI.isValidGCCRegisterName(Label))\n          Diag(E->getExprLoc(), diag::err_asm_unknown_register_name) << Label;"},{F,404,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  // Check that the clobbers are valid.\n  for (unsigned i = 0; i != NumClobbers; i++) {\n    if (!Context.getTargetInfo().isValidClobber(Clobber)) {\n      targetDiag(Literal->getBeginLoc(), diag::err_asm_unknown_register_name) << Clobber;"}}
},
},
["err_asm_unknown_symbolic_operand_name"]={
["err_asm_unknown_symbolic_operand_name"]={
[f]="unknown symbolic operand name in inline assembly string",
[f]="unknown symbolic operand name in inline assembly string",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="unknown symbolic operand name in inline assembly string",
[i]=m,
[j]="unknown symbolic operand name in inline assembly string",
[j]="unknown symbolic operand name in inline assembly string",
[c]=m,
[b]=a,
[b]="unknown symbolic operand name in inline assembly string",
[h]=C,
[i]=a,
[d]={u,1237025389,t},
[h]=D,
[k]={{ob,678,"/// AnalyzeAsmString - Analyze the asm string of the current asm, decomposing\n/// it into pieces.  If the asm string is erroneous, emit errors and return\n/// true, otherwise return false.\nunsigned GCCAsmStmt::AnalyzeAsmString(SmallVectorImpl<AsmStringPiece> &Pieces, const ASTContext &C, unsigned &DiagOffs) const {\n  while (true) {\n    // Handle operands that have asmSymbolicName (e.g., %x[foo]).\n    if (EscapedChar == \'[\') {\n      if (N == -1) {\n        return diag::err_asm_unknown_symbolic_operand_name;"}}
[g]={q,1237025389,p}
},
},
["err_asm_unterminated_symbolic_operand_name"]={
["err_asm_unterminated_symbolic_operand_name"]={
[f]="unterminated symbolic operand name in inline assembly string",
[f]="unterminated symbolic operand name in inline assembly string",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="unterminated symbolic operand name in inline assembly string",
[i]=m,
[j]="unterminated symbolic operand name in inline assembly string",
[j]="unterminated symbolic operand name in inline assembly string",
[c]=m,
[b]=a,
[b]="unterminated symbolic operand name in inline assembly string",
[h]=C,
[i]=a,
[d]={u,1237025389,t},
[h]=D,
[k]={{ob,668,"/// AnalyzeAsmString - Analyze the asm string of the current asm, decomposing\n/// it into pieces.  If the asm string is erroneous, emit errors and return\n/// true, otherwise return false.\nunsigned GCCAsmStmt::AnalyzeAsmString(SmallVectorImpl<AsmStringPiece> &Pieces, const ASTContext &C, unsigned &DiagOffs) const {\n  while (true) {\n    // Handle operands that have asmSymbolicName (e.g., %x[foo]).\n    if (EscapedChar == \'[\') {\n      if (NameEnd == nullptr)\n        return diag::err_asm_unterminated_symbolic_operand_name;"}}
[g]={q,1237025389,p}
},
},
["err_asm_unwind_and_goto"]={
["err_asm_unwind_and_goto"]={
[f]="unwind clobber can\'t be used with asm goto",
[f]="unwind clobber can\'t be used with asm goto",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="unwind clobber can\'t be used with asm goto",
[i]=m,
[j]="unwind clobber can\'t be used with asm goto",
[j]="unwind clobber can\'t be used with asm goto",
[c]=m,
[b]=a,
[b]="unwind clobber can\'t be used with asm goto",
[h]=C,
[i]=a,
[d]={Lb,1615397021,Kb},
[h]=D,
[k]={{F,415,"StmtResult Sema::ActOnGCCAsmStmt(SourceLocation AsmLoc, bool IsSimple, bool IsVolatile, unsigned NumOutputs, unsigned NumInputs, IdentifierInfo **Names, MultiExprArg constraints, MultiExprArg Exprs, Expr *asmString, MultiExprArg clobbers, unsigned NumLabels, SourceLocation RParenLoc) {\n  // Using unwind clobber and asm-goto together is not supported right now.\n  if (UnwindClobberLoc && NumLabels > 0) {\n    targetDiag(*UnwindClobberLoc, diag::err_asm_unwind_and_goto);"}}
[g]={ub,1615397021,qb}
},
},
["err_assoc_compatible_types"]={
["err_assoc_compatible_types"]={
[f]="type A in generic association compatible with previously specified type B",
[f]="type A in generic association compatible with previously specified type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="type %0 in generic association compatible with previously specified type %1",
[g]="type %0 in generic association compatible with previously specified type %1",
[c]=m,
[i]=m,
[b]="type (.*?) in generic association compatible with previously specified type (.*?)",
[j]="type (.*?) in generic association compatible with previously specified type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Kb,1302827748,Sb}
[d]={"91147596414d",1302827748,"C1X: implement generic selections"},
[k]={{y,1541,"ExprResult Sema::CreateGenericSelectionExpr(SourceLocation KeyLoc, SourceLocation DefaultLoc, SourceLocation RParenLoc, bool PredicateIsExpr, void *ControllingExprOrType, ArrayRef<TypeSourceInfo *> Types, ArrayRef<Expr *> Exprs) {\n  for (unsigned i = 0; i < NumAssocs; ++i) {\n    if (Types[i]) {\n      if (Types[i]->getType()->isDependentType()) {\n      } else {\n        // C11 6.5.1.1p2 \"No two generic associations in the same generic\n        // selection shall specify compatible types.\"\n        for (unsigned j = i + 1; j < NumAssocs; ++j)\n          if (Types[j] && !Types[j]->getType()->isDependentType() && Context.typesAreCompatible(Types[i]->getType(), Types[j]->getType())) {\n            Diag(Types[j]->getTypeLoc().getBeginLoc(), diag::err_assoc_compatible_types) << Types[j]->getTypeLoc().getSourceRange() << Types[j]->getType() << Types[i]->getType();"}}
},
},
["err_assoc_type_incomplete"]={
["err_assoc_type_incomplete"]={
[f]="type A in generic association incomplete",
[f]="type A in generic association incomplete",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="type %0 in generic association incomplete",
[g]="type %0 in generic association incomplete",
[c]=m,
[i]=m,
[b]="type (.*?) in generic association incomplete",
[j]="type (.*?) in generic association incomplete",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Kb,1302827748,Sb}
[d]={"91147596414d",1302827748,"C1X: implement generic selections"},
[k]={{y,1497,"ExprResult Sema::CreateGenericSelectionExpr(SourceLocation KeyLoc, SourceLocation DefaultLoc, SourceLocation RParenLoc, bool PredicateIsExpr, void *ControllingExprOrType, ArrayRef<TypeSourceInfo *> Types, ArrayRef<Expr *> Exprs) {\n  for (unsigned i = 0; i < NumAssocs; ++i) {\n    if (Types[i]) {\n      if (Types[i]->getType()->isDependentType()) {\n      } else {\n        if (ControllingExpr && Types[i]->getType()->isIncompleteType())\n          D = diag::err_assoc_type_incomplete;"}}
},
},
["err_assoc_type_nonobject"]={
["err_assoc_type_nonobject"]={
[f]="type A in generic association not an object type",
[f]="type A in generic association not an object type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="type %0 in generic association not an object type",
[g]="type %0 in generic association not an object type",
[c]=m,
[i]=m,
[b]="type (.*?) in generic association not an object type",
[j]="type (.*?) in generic association not an object type",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Kb,1302827748,Sb}
[d]={"91147596414d",1302827748,"C1X: implement generic selections"},
[k]={{y,1499,"ExprResult Sema::CreateGenericSelectionExpr(SourceLocation KeyLoc, SourceLocation DefaultLoc, SourceLocation RParenLoc, bool PredicateIsExpr, void *ControllingExprOrType, ArrayRef<TypeSourceInfo *> Types, ArrayRef<Expr *> Exprs) {\n  for (unsigned i = 0; i < NumAssocs; ++i) {\n    if (Types[i]) {\n      if (Types[i]->getType()->isDependentType()) {\n      } else {\n        if (ControllingExpr && Types[i]->getType()->isIncompleteType())\n        else if (ControllingExpr && !Types[i]->getType()->isObjectType())\n          D = diag::err_assoc_type_nonobject;"}}
},
},
["err_assoc_type_variably_modified"]={
["err_assoc_type_variably_modified"]={
[f]="type A in generic association is a variably modified type",
[f]="type A in generic association is a variably modified type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="type %0 in generic association is a variably modified type",
[g]="type %0 in generic association is a variably modified type",
[c]=m,
[i]=m,
[b]="type (.*?) in generic association is a variably modified type",
[j]="type (.*?) in generic association is a variably modified type",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Kb,1302827748,Sb}
[d]={"91147596414d",1302827748,"C1X: implement generic selections"},
[k]={{y,1501,"ExprResult Sema::CreateGenericSelectionExpr(SourceLocation KeyLoc, SourceLocation DefaultLoc, SourceLocation RParenLoc, bool PredicateIsExpr, void *ControllingExprOrType, ArrayRef<TypeSourceInfo *> Types, ArrayRef<Expr *> Exprs) {\n  for (unsigned i = 0; i < NumAssocs; ++i) {\n    if (Types[i]) {\n      if (Types[i]->getType()->isDependentType()) {\n      } else {\n        if (ControllingExpr && Types[i]->getType()->isIncompleteType())\n        else if (ControllingExpr && !Types[i]->getType()->isObjectType())\n        else if (Types[i]->getType()->isVariablyModifiedType())\n          D = diag::err_assoc_type_variably_modified;"}}
},
},
["err_ast_file_invalid"]={
["err_ast_file_invalid"]={
[f]="file \'A\' is not a valid precompiled ... file",
[f]="file \'A\' is not a valid precompiled ... file",
[d]=y,
[c]=Fb,
[e]=z,
[e]=Eb,
[j]="file \'%1\' is not a valid precompiled %select{PCH|module|AST}0 file",
[g]="file \'%1\' is not a valid precompiled %select{PCH|module|AST}0 file",
[c]=A,
[i]=Bb,
[b]="file \'(.*?)\' is not a valid precompiled (?:PCH|module|AST) file",
[j]="file \'(.*?)\' is not a valid precompiled (?:PCH|module|AST) file",
[i]=a,
[b]=a,
[h]=U,
[h]="AST Deserialization Issue",
[g]={"a2f2c2f3a463",1605203629,"Serialization: Merge three diagnostics to simplify ASTReader::getInputFile, NFC"}
[d]={"a2f2c2f3a463",1605203629,"Serialization: Merge three diagnostics to simplify ASTReader::getInputFile, NFC"},
[k]={{"clang/lib/Serialization/ASTReader.cpp",4123,"ASTReader::ASTReadResult ASTReader::ReadASTCore(StringRef FileName, ModuleKind Type, SourceLocation ImportLoc, ModuleFile *ImportedBy, SmallVectorImpl<ImportedModule> &Loaded, off_t ExpectedSize, time_t ExpectedModTime, ASTFileSignature ExpectedSignature, unsigned ClientLoadCapabilities) {\n  // Sniff for the signature.\n  if (llvm::Error Err = doesntStartWithASTFileMagic(Stream)) {\n    Diag(diag::err_ast_file_invalid) << moduleKindForDiagnostic(Type) << FileName << std::move(Err);"}}
},
},
["err_ast_file_not_found"]={
["err_ast_file_not_found"]={
[f]="... file \'A\' not found...",
[f]="... file \'A\' not found...",
[d]=y,
[c]=Fb,
[e]=z,
[e]=Eb,
[j]="%select{PCH|module|AST}0 file \'%1\' not found%select{|: %3}2",
[g]="%select{PCH|module|AST}0 file \'%1\' not found%select{|: %3}2",
[c]=A,
[i]=Bb,
[b]="(?:PCH|module|AST) file \'(.*?)\' not found(?:|\\: (.*?))",
[j]="(?:PCH|module|AST) file \'(.*?)\' not found(?:|\\: (.*?))",
[i]=a,
[b]=a,
[h]=U,
[h]="AST Deserialization Issue",
[g]={"a2f2c2f3a463",1605203629,"Serialization: Merge three diagnostics to simplify ASTReader::getInputFile, NFC"}
[d]={"a2f2c2f3a463",1605203629,"Serialization: Merge three diagnostics to simplify ASTReader::getInputFile, NFC"},
[k]={{"clang/lib/Serialization/ASTReader.cpp",4092,"ASTReader::ASTReadResult ASTReader::ReadASTCore(StringRef FileName, ModuleKind Type, SourceLocation ImportLoc, ModuleFile *ImportedBy, SmallVectorImpl<ImportedModule> &Loaded, off_t ExpectedSize, time_t ExpectedModTime, ASTFileSignature ExpectedSignature, unsigned ClientLoadCapabilities) {\n  case ModuleManager::Missing:\n    Diag(diag::err_ast_file_not_found) << moduleKindForDiagnostic(Type) << FileName << !ErrorStr.empty() << ErrorStr;"}}
},
},
["err_ast_file_out_of_date"]={
["err_ast_file_out_of_date"]={
[f]="... file \'A\' is out of date and needs to be rebuilt...",
[f]="... file \'A\' is out of date and needs to be rebuilt...",
[d]=y,
[c]=Fb,
[e]=z,
[e]=Eb,
[j]="%select{PCH|module|AST}0 file \'%1\' is out of date and needs to be rebuilt%select{|: %3}2",
[g]="%select{PCH|module|AST}0 file \'%1\' is out of date and needs to be rebuilt%select{|: %3}2",
[c]=A,
[i]=Bb,
[b]="(?:PCH|module|AST) file \'(.*?)\' is out of date and needs to be rebuilt(?:|\\: (.*?))",
[j]="(?:PCH|module|AST) file \'(.*?)\' is out of date and needs to be rebuilt(?:|\\: (.*?))",
[i]=a,
[b]=a,
[h]=U,
[h]="AST Deserialization Issue",
[g]={"a2f2c2f3a463",1605203629,"Serialization: Merge three diagnostics to simplify ASTReader::getInputFile, NFC"}
[d]={"a2f2c2f3a463",1605203629,"Serialization: Merge three diagnostics to simplify ASTReader::getInputFile, NFC"},
[k]={{"clang/lib/Serialization/ASTReader.cpp",4102,"ASTReader::ASTReadResult ASTReader::ReadASTCore(StringRef FileName, ModuleKind Type, SourceLocation ImportLoc, ModuleFile *ImportedBy, SmallVectorImpl<ImportedModule> &Loaded, off_t ExpectedSize, time_t ExpectedModTime, ASTFileSignature ExpectedSignature, unsigned ClientLoadCapabilities) {\n  case ModuleManager::OutOfDate:\n    Diag(diag::err_ast_file_out_of_date) << moduleKindForDiagnostic(Type) << FileName << !ErrorStr.empty() << ErrorStr;"}}
},
},
["err_at_defs_cxx"]={
["err_at_defs_cxx"]={
[f]="@defs is not supported in Objective-C++",
[f]="@defs is not supported in Objective-C++",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="@defs is not supported in Objective-C++",
[g]="@defs is not supported in Objective-C++",
[c]=m,
[i]=m,
[b]="@defs is not supported in Objective\\-C\\+\\+",
[j]="@defs is not supported in Objective\\-C\\+\\+",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={"23c84767484c",1302801679,"Parse an \'@\' in an Objective-C++ class member specification,"}
[d]={"23c84767484c",1302801679,"Parse an \'@\' in an Objective-C++ class member specification,"},
[k]={{K,2291,"/// ParseCXXClassMemberDeclaration - Parse a C++ class member declaration.\n///\n///      member-declaration:\n///        decl-specifier-seq[opt] member-declarator-list[opt] \';\'\n///        function-definition \';\'[opt]\n///        ::[opt] nested-name-specifier template[opt] unqualified-id \';\'[TODO]\n///        using-declaration                                            [TODO]\n/// [C++0x] static_assert-declaration\n///        template-declaration\n/// [GNU]  \'__extension__\' member-declaration\n///\n///      member-declarator-list:\n///        member-declarator\n///        member-declarator-list \',\' member-declarator\n///\n///      member-declarator:\n///        declarator virt-specifier-seq[opt] pure-specifier[opt]\n/// [C++2a] declarator requires-clause\n///        declarator constant-initializer[opt]\n/// [C++11] declarator brace-or-equal-initializer[opt]\n///        identifier[opt] \':\' constant-expression\n///\n///      virt-specifier-seq:\n///        virt-specifier\n///        virt-specifier-seq virt-specifier\n///\n///      virt-specifier:\n///        override\n///        final\n/// [MS]    sealed\n///\n///      pure-specifier:\n///        \'= 0\'\n///\n///      constant-initializer:\n///        \'=\' constant-expression\n///\nParser::DeclGroupPtrTy Parser::ParseCXXClassMemberDeclaration(AccessSpecifier AS, ParsedAttributes &AccessAttrs, const ParsedTemplateInfo &TemplateInfo, ParsingDeclRAIIObject *TemplateDiags) {\n  if (Tok.is(tok::at)) {\n    if (getLangOpts().ObjC && NextToken().isObjCAtKeyword(tok::objc_defs))\n      Diag(Tok, diag::err_at_defs_cxx);"}}
},
},
["err_at_in_class"]={
["err_at_in_class"]={
[f]="unexpected \'@\' in member specification",
[f]="unexpected \'@\' in member specification",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="unexpected \'@\' in member specification",
[i]=m,
[j]="unexpected \'@\' in member specification",
[j]="unexpected \'@\' in member specification",
[c]=m,
[b]=a,
[b]="unexpected \'@\' in member specification",
[h]=B,
[i]=a,
[d]={"23c84767484c",1302801679,"Parse an \'@\' in an Objective-C++ class member specification,"},
[h]=o,
[k]={{K,2293,"/// ParseCXXClassMemberDeclaration - Parse a C++ class member declaration.\n///\n///      member-declaration:\n///        decl-specifier-seq[opt] member-declarator-list[opt] \';\'\n///        function-definition \';\'[opt]\n///        ::[opt] nested-name-specifier template[opt] unqualified-id \';\'[TODO]\n///        using-declaration                                            [TODO]\n/// [C++0x] static_assert-declaration\n///        template-declaration\n/// [GNU]  \'__extension__\' member-declaration\n///\n///      member-declarator-list:\n///        member-declarator\n///        member-declarator-list \',\' member-declarator\n///\n///      member-declarator:\n///        declarator virt-specifier-seq[opt] pure-specifier[opt]\n/// [C++2a] declarator requires-clause\n///        declarator constant-initializer[opt]\n/// [C++11] declarator brace-or-equal-initializer[opt]\n///        identifier[opt] \':\' constant-expression\n///\n///      virt-specifier-seq:\n///        virt-specifier\n///        virt-specifier-seq virt-specifier\n///\n///      virt-specifier:\n///        override\n///        final\n/// [MS]    sealed\n///\n///      pure-specifier:\n///        \'= 0\'\n///\n///      constant-initializer:\n///        \'=\' constant-expression\n///\nParser::DeclGroupPtrTy Parser::ParseCXXClassMemberDeclaration(AccessSpecifier AS, ParsedAttributes &AccessAttrs, const ParsedTemplateInfo &TemplateInfo, ParsingDeclRAIIObject *TemplateDiags) {\n  if (Tok.is(tok::at)) {\n    if (getLangOpts().ObjC && NextToken().isObjCAtKeyword(tok::objc_defs))\n    else\n      Diag(Tok, diag::err_at_in_class);"}}
[g]={"23c84767484c",1302801679,"Parse an \'@\' in an Objective-C++ class member specification,"}
},
},
["err_atdef_nonfragile_interface"]={
["err_atdef_nonfragile_interface"]={
[f]="use of @defs is not supported on this architecture and platform",
[f]="use of @defs is not supported on this architecture and platform",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="use of @defs is not supported on this architecture and platform",
[i]=m,
[j]="use of @defs is not supported on this architecture and platform",
[j]="use of @defs is not supported on this architecture and platform",
[c]=m,
[b]=a,
[b]="use of @defs is not supported on this architecture and platform",
[h]=o,
[i]=a,
[d]={"ece1b2b0e156",1240345721,"Patch to diagnose use of objc\'s @defs in nonfragile abi."},
[h]=n,
[k]={{I,4253,"/// Called whenever \\@defs(ClassName) is encountered in the source.  Inserts the\n/// instance variables of ClassName into Decls.\nvoid Sema::ActOnDefs(Scope *S, Decl *TagD, SourceLocation DeclStart, IdentifierInfo *ClassName, SmallVectorImpl<Decl *> &Decls) {\n  if (LangOpts.ObjCRuntime.isNonFragile()) {\n    Diag(DeclStart, diag::err_atdef_nonfragile_interface);"}}
[g]={"ece1b2b0e156",1240345721,"Patch to diagnose use of objc\'s @defs in nonfragile abi."}
},
},
["err_atimport"]={
["err_atimport"]={
[f]="use of \'@import\' when modules are disabled",
[f]="use of \'@import\' when modules are disabled",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="use of \'@import\' when modules are disabled",
[i]=m,
[j]="use of \'@import\' when modules are disabled",
[j]="use of \'@import\' when modules are disabled",
[c]=m,
[b]=a,
[b]="use of \'@import\' when modules are disabled",
[h]=B,
[i]=a,
[d]={"a773d0861800",1395871363,"Objective-C. Improve diagnostic error for \'@import\' "},
[h]=o,
[k]={{"clang/lib/Parse/ParseObjc.cpp",99,"/// ParseObjCAtDirectives - Handle parts of the external-declaration production:\n///      external-declaration: [C99 6.9]\n/// [OBJC]  objc-class-definition\n/// [OBJC]  objc-class-declaration\n/// [OBJC]  objc-alias-declaration\n/// [OBJC]  objc-protocol-definition\n/// [OBJC]  objc-method-definition\n/// [OBJC]  \'@\' \'end\'\nParser::DeclGroupPtrTy Parser::ParseObjCAtDirectives(ParsedAttributes &DeclAttrs, ParsedAttributes &DeclSpecAttrs) {\n  case tok::objc_import:\n    Diag(AtLoc, diag::err_atimport);"}}
[g]={"a773d0861800",1395871363,"Objective-C. Improve diagnostic error for \'@import\' "}
},
},
["err_atomic_builtin_bit_int_prohibit"]={
["err_atomic_builtin_bit_int_prohibit"]={
[f]="argument to atomic builtin of type \'_BitInt\' is not supported",
[f]="argument to atomic builtin of type \'_BitInt\' is not supported",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="argument to atomic builtin of type \'_BitInt\' is not supported",
[i]=m,
[j]="argument to atomic builtin of type \'_BitInt\' is not supported",
[j]="argument to atomic builtin of type \'_BitInt\' is not supported",
[c]=m,
[b]=a,
[b]="argument to atomic builtin of type \'_BitInt\' is not supported",
[h]=o,
[i]=a,
[d]={db,1616787805,cb},
[h]=n,
[k]={{s,7023,"ExprResult Sema::BuildAtomicExpr(SourceRange CallRange, SourceRange ExprRange, SourceLocation RParenLoc, MultiExprArg Args, AtomicExpr::AtomicOp Op, AtomicArgumentOrder ArgOrder) {\n  if (ValType->isBitIntType()) {\n    Diag(Ptr->getExprLoc(), diag::err_atomic_builtin_bit_int_prohibit);"}}
[g]={R,1616787805,S}
},
},
["err_atomic_builtin_cannot_be_const"]={
["err_atomic_builtin_cannot_be_const"]={
[f]="address argument to atomic builtin cannot be const-qualified (A invalid)",
[f]="address argument to atomic builtin cannot be const-qualified (A invalid)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address argument to atomic builtin cannot be const-qualified (%0 invalid)",
[g]="address argument to atomic builtin cannot be const-qualified (%0 invalid)",
[c]=m,
[i]=m,
[b]="address argument to atomic builtin cannot be const\\-qualified \\((.*?) invalid\\)",
[j]="address argument to atomic builtin cannot be const\\-qualified \\((.*?) invalid\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"a383c94ccd63",1525541922,"Disallow pointers to const in __sync_fetch_and_xxx."}
[d]={"a383c94ccd63",1525541922,"Disallow pointers to const in __sync_fetch_and_xxx."},
[k]={{s,7123,"/// We have a call to a function like __sync_fetch_and_add, which is an\n/// overloaded function based on the pointer type of its first argument.\n/// The main BuildCallExpr routines have already promoted the types of\n/// arguments because all of these calls are prototyped as void(...).\n///\n/// This function goes through and does final semantic checking for these\n/// builtins, as well as generating any warnings.\nExprResult Sema::SemaBuiltinAtomicOverloaded(ExprResult TheCallResult) {\n  if (ValType.isConstQualified()) {\n    Diag(DRE->getBeginLoc(), diag::err_atomic_builtin_cannot_be_const) << FirstArg->getType() << FirstArg->getSourceRange();"}}
},
},
["err_atomic_builtin_ext_int_size"]={
["err_atomic_builtin_ext_int_size"]={
[f]="Atomic memory operand must have a power-of-two size",
[f]="Atomic memory operand must have a power-of-two size",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="Atomic memory operand must have a power-of-two size",
[g]="Atomic memory operand must have a power-of-two size",
[c]=m,
[i]=m,
[b]="Atomic memory operand must have a power\\-of\\-two size",
[j]="Atomic memory operand must have a power\\-of\\-two size",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={G,1582847864,I}
[d]={T,1582847864,U},
[k]={{s,7428,"/// We have a call to a function like __sync_fetch_and_add, which is an\n/// overloaded function based on the pointer type of its first argument.\n/// The main BuildCallExpr routines have already promoted the types of\n/// arguments because all of these calls are prototyped as void(...).\n///\n/// This function goes through and does final semantic checking for these\n/// builtins, as well as generating any warnings.\nExprResult Sema::SemaBuiltinAtomicOverloaded(ExprResult TheCallResult) {\n  if (BitIntValType && !llvm::isPowerOf2_64(BitIntValType->getNumBits())) {\n    Diag(FirstArg->getExprLoc(), diag::err_atomic_builtin_ext_int_size);"}}
},
},
["err_atomic_builtin_must_be_pointer"]={
["err_atomic_builtin_must_be_pointer"]={
[f]="address argument to atomic builtin must be a pointer (A invalid)",
[f]="address argument to atomic builtin must be a pointer (A invalid)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address argument to atomic builtin must be a pointer (%0 invalid)",
[g]="address argument to atomic builtin must be a pointer (%0 invalid)",
[c]=m,
[i]=m,
[b]="address argument to atomic builtin must be a pointer \\((.*?) invalid\\)",
[j]="address argument to atomic builtin must be a pointer \\((.*?) invalid\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"dc04654697fb",1241765902,"reimplement __sync_* builtins to be variadic and to follow the same"}
[d]={"dc04654697fb",1241765902,"reimplement __sync_* builtins to be variadic and to follow the same"},
[k]={{s,2832,"bool Sema::CheckARMBuiltinExclusiveCall(unsigned BuiltinID, CallExpr *TheCall, unsigned MaxWidth) {\n  if (!pointerType) {\n    Diag(DRE->getBeginLoc(), diag::err_atomic_builtin_must_be_pointer) << PointerArg->getType() << PointerArg->getSourceRange();"},{s,6758,"ExprResult Sema::BuildAtomicExpr(SourceRange CallRange, SourceRange ExprRange, SourceLocation RParenLoc, MultiExprArg Args, AtomicExpr::AtomicOp Op, AtomicArgumentOrder ArgOrder) {\n  if (!pointerType) {\n    Diag(ExprRange.getBegin(), diag::err_atomic_builtin_must_be_pointer) << Ptr->getType() << Ptr->getSourceRange();"},{s,7112,"/// We have a call to a function like __sync_fetch_and_add, which is an\n/// overloaded function based on the pointer type of its first argument.\n/// The main BuildCallExpr routines have already promoted the types of\n/// arguments because all of these calls are prototyped as void(...).\n///\n/// This function goes through and does final semantic checking for these\n/// builtins, as well as generating any warnings.\nExprResult Sema::SemaBuiltinAtomicOverloaded(ExprResult TheCallResult) {\n  if (!pointerType) {\n    Diag(DRE->getBeginLoc(), diag::err_atomic_builtin_must_be_pointer) << FirstArg->getType() << FirstArg->getSourceRange();"}}
},
},
["err_atomic_builtin_must_be_pointer_intfltptr"]={
["err_atomic_builtin_must_be_pointer_intfltptr"]={
[f]="address argument to atomic builtin must be a pointer to integer, floating-point or pointer (A invalid)",
[f]="address argument to atomic builtin must be a pointer to integer, floating-point or pointer (A invalid)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address argument to atomic builtin must be a pointer to integer, floating-point or pointer (%0 invalid)",
[g]="address argument to atomic builtin must be a pointer to integer, floating-point or pointer (%0 invalid)",
[c]=m,
[i]=m,
[b]="address argument to atomic builtin must be a pointer to integer, floating\\-point or pointer \\((.*?) invalid\\)",
[j]="address argument to atomic builtin must be a pointer to integer, floating\\-point or pointer \\((.*?) invalid\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"6aacd49094bc",1373968073,"ARM: implement low-level intrinsics for the atomic exclusive operations."}
[d]={"6aacd49094bc",1373968073,"ARM: implement low-level intrinsics for the atomic exclusive operations."},
[k]={{s,2862,"bool Sema::CheckARMBuiltinExclusiveCall(unsigned BuiltinID, CallExpr *TheCall, unsigned MaxWidth) {\n  // In general, we allow ints, floats and pointers to be loaded and stored.\n  if (!ValType->isIntegerType() && !ValType->isAnyPointerType() && !ValType->isBlockPointerType() && !ValType->isFloatingType()) {\n    Diag(DRE->getBeginLoc(), diag::err_atomic_builtin_must_be_pointer_intfltptr) << PointerArg->getType() << PointerArg->getSourceRange();"}}
},
},
["err_atomic_builtin_must_be_pointer_intptr"]={
["err_atomic_builtin_must_be_pointer_intptr"]={
[f]="address argument to atomic builtin must be a pointer to integer or pointer (A invalid)",
[f]="address argument to atomic builtin must be a pointer to integer or pointer (A invalid)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address argument to atomic builtin must be a pointer to integer or pointer (%0 invalid)",
[g]="address argument to atomic builtin must be a pointer to integer or pointer (%0 invalid)",
[c]=m,
[i]=m,
[b]="address argument to atomic builtin must be a pointer to integer or pointer \\((.*?) invalid\\)",
[j]="address argument to atomic builtin must be a pointer to integer or pointer \\((.*?) invalid\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"dc04654697fb",1241765902,"reimplement __sync_* builtins to be variadic and to follow the same"}
[d]={"dc04654697fb",1241765902,"reimplement __sync_* builtins to be variadic and to follow the same"},
[k]={{s,7118,"/// We have a call to a function like __sync_fetch_and_add, which is an\n/// overloaded function based on the pointer type of its first argument.\n/// The main BuildCallExpr routines have already promoted the types of\n/// arguments because all of these calls are prototyped as void(...).\n///\n/// This function goes through and does final semantic checking for these\n/// builtins, as well as generating any warnings.\nExprResult Sema::SemaBuiltinAtomicOverloaded(ExprResult TheCallResult) {\n  if (!ValType->isIntegerType() && !ValType->isAnyPointerType() && !ValType->isBlockPointerType()) {\n    Diag(DRE->getBeginLoc(), diag::err_atomic_builtin_must_be_pointer_intptr) << FirstArg->getType() << FirstArg->getSourceRange();"}}
},
},
["err_atomic_builtin_pointer_size"]={
["err_atomic_builtin_pointer_size"]={
[f]="address argument to atomic builtin must be a pointer to 1,2,4,8 or 16 byte type (A invalid)",
[f]="address argument to atomic builtin must be a pointer to 1,2,4,8 or 16 byte type (A invalid)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address argument to atomic builtin must be a pointer to 1,2,4,8 or 16 byte type (%0 invalid)",
[g]="address argument to atomic builtin must be a pointer to 1,2,4,8 or 16 byte type (%0 invalid)",
[c]=m,
[i]=m,
[b]="address argument to atomic builtin must be a pointer to 1,2,4,8 or 16 byte type \\((.*?) invalid\\)",
[j]="address argument to atomic builtin must be a pointer to 1,2,4,8 or 16 byte type \\((.*?) invalid\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"dc04654697fb",1241765902,"reimplement __sync_* builtins to be variadic and to follow the same"}
[d]={"dc04654697fb",1241765902,"reimplement __sync_* builtins to be variadic and to follow the same"},
[k]={{s,7179,"/// We have a call to a function like __sync_fetch_and_add, which is an\n/// overloaded function based on the pointer type of its first argument.\n/// The main BuildCallExpr routines have already promoted the types of\n/// arguments because all of these calls are prototyped as void(...).\n///\n/// This function goes through and does final semantic checking for these\n/// builtins, as well as generating any warnings.\nExprResult Sema::SemaBuiltinAtomicOverloaded(ExprResult TheCallResult) {\n  default:\n    Diag(DRE->getBeginLoc(), diag::err_atomic_builtin_pointer_size) << FirstArg->getType() << FirstArg->getSourceRange();"}}
},
},
["err_atomic_exclusive_builtin_pointer_size"]={
["err_atomic_exclusive_builtin_pointer_size"]={
[f]="address argument to load or store exclusive builtin must be a pointer to 1,2,4 or 8 byte type (A invalid)",
[f]="address argument to load or store exclusive builtin must be a pointer to 1,2,4 or 8 byte type (A invalid)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address argument to load or store exclusive builtin must be a pointer to 1,2,4 or 8 byte type (%0 invalid)",
[g]="address argument to load or store exclusive builtin must be a pointer to 1,2,4 or 8 byte type (%0 invalid)",
[c]=m,
[i]=m,
[b]="address argument to load or store exclusive builtin must be a pointer to 1,2,4 or 8 byte type \\((.*?) invalid\\)",
[j]="address argument to load or store exclusive builtin must be a pointer to 1,2,4 or 8 byte type \\((.*?) invalid\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"6aacd49094bc",1373968073,"ARM: implement low-level intrinsics for the atomic exclusive operations."}
[d]={"6aacd49094bc",1373968073,"ARM: implement low-level intrinsics for the atomic exclusive operations."},
[k]={{s,2869,"bool Sema::CheckARMBuiltinExclusiveCall(unsigned BuiltinID, CallExpr *TheCall, unsigned MaxWidth) {\n  // But ARM doesn\'t have instructions to deal with 128-bit versions.\n  if (Context.getTypeSize(ValType) > MaxWidth) {\n    Diag(DRE->getBeginLoc(), diag::err_atomic_exclusive_builtin_pointer_size) << PointerArg->getType() << PointerArg->getSourceRange();"}}
},
},
["err_atomic_load_store_uses_lib"]={
["err_atomic_load_store_uses_lib"]={
[f]="atomic ... requires runtime support that is not available for this target",
[f]="atomic ... requires runtime support that is not available for this target",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="atomic %select{load|store}0 requires runtime support that is not available for this target",
[g]="atomic %select{load|store}0 requires runtime support that is not available for this target",
[c]=m,
[i]=m,
[b]="atomic (?:load|store) requires runtime support that is not available for this target",
[j]="atomic (?:load|store) requires runtime support that is not available for this target",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"615de765abde",1369762659,"Patch to issue error when target of MacOS and iOS "}
[d]={"615de765abde",1369762659,"Patch to issue error when target of MacOS and iOS "},
[k]={{s,7020,"ExprResult Sema::BuildAtomicExpr(SourceRange CallRange, SourceRange ExprRange, SourceLocation RParenLoc, MultiExprArg Args, AtomicExpr::AtomicOp Op, AtomicArgumentOrder ArgOrder) {\n  if ((Op == AtomicExpr::AO__c11_atomic_load || Op == AtomicExpr::AO__c11_atomic_store || Op == AtomicExpr::AO__opencl_atomic_load || Op == AtomicExpr::AO__hip_atomic_load || Op == AtomicExpr::AO__opencl_atomic_store || Op == AtomicExpr::AO__hip_atomic_store) && Context.AtomicUsesUnsupportedLibcall(AE))\n    Diag(AE->getBeginLoc(), diag::err_atomic_load_store_uses_lib) << ((Op == AtomicExpr::AO__c11_atomic_load || Op == AtomicExpr::AO__opencl_atomic_load || Op == AtomicExpr::AO__hip_atomic_load) ? 0 : 1);"}}
},
},
["err_atomic_op_has_invalid_synch_scope"]={
["err_atomic_op_has_invalid_synch_scope"]={
[f]="synchronization scope argument to atomic operation is invalid",
[f]="synchronization scope argument to atomic operation is invalid",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="synchronization scope argument to atomic operation is invalid",
[i]=m,
[j]="synchronization scope argument to atomic operation is invalid",
[j]="synchronization scope argument to atomic operation is invalid",
[c]=m,
[b]=a,
[b]="synchronization scope argument to atomic operation is invalid",
[h]=o,
[i]=a,
[d]={"39195062c20c",1501870591,"Add OpenCL 2.0 atomic builtin functions as Clang builtin"},
[h]=n,
[k]={{s,7012,"ExprResult Sema::BuildAtomicExpr(SourceRange CallRange, SourceRange ExprRange, SourceLocation RParenLoc, MultiExprArg Args, AtomicExpr::AtomicOp Op, AtomicArgumentOrder ArgOrder) {\n  if (auto ScopeModel = AtomicExpr::getScopeModel(Op)) {\n    if (std::optional<llvm::APSInt> Result = Scope->getIntegerConstantExpr(Context)) {\n      if (!ScopeModel->isValid(Result->getZExtValue()))\n        Diag(Scope->getBeginLoc(), diag::err_atomic_op_has_invalid_synch_scope) << Scope->getSourceRange();"}}
[g]={"39195062c20c",1501870591,"Add OpenCL 2.0 atomic builtin functions as Clang builtin"}
},
},
["err_atomic_op_needs_atomic"]={
["err_atomic_op_needs_atomic"]={
[f]="address argument to atomic operation must be a pointer to _Atomic type (A invalid)",
[f]="address argument to atomic operation must be a pointer to _Atomic type (A invalid)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address argument to atomic operation must be a pointer to _Atomic type (%0 invalid)",
[g]="address argument to atomic operation must be a pointer to _Atomic type (%0 invalid)",
[c]=m,
[i]=m,
[b]="address argument to atomic operation must be a pointer to _Atomic type \\((.*?) invalid\\)",
[j]="address argument to atomic operation must be a pointer to _Atomic type \\((.*?) invalid\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"df14b3a8377f",1318299601,"Initial implementation of __atomic_* (everything except __atomic_is_lock_free)."}
[d]={"df14b3a8377f",1318299601,"Initial implementation of __atomic_* (everything except __atomic_is_lock_free)."},
[k]={{s,6767,"ExprResult Sema::BuildAtomicExpr(SourceRange CallRange, SourceRange ExprRange, SourceLocation RParenLoc, MultiExprArg Args, AtomicExpr::AtomicOp Op, AtomicArgumentOrder ArgOrder) {\n  if (IsC11) {\n    if (!AtomTy->isAtomicType()) {\n      Diag(ExprRange.getBegin(), diag::err_atomic_op_needs_atomic) << Ptr->getType() << Ptr->getSourceRange();"}}
},
},
["err_atomic_op_needs_atomic_int"]={
["err_atomic_op_needs_atomic_int"]={
[f]="address argument to atomic operation must be a pointer to ...integer (A invalid)",
[f]="address argument to atomic operation must be a pointer to ...integer (A invalid)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address argument to atomic operation must be a pointer to %select{|atomic }0integer (%1 invalid)",
[g]="address argument to atomic operation must be a pointer to %select{|atomic }0integer (%1 invalid)",
[c]=m,
[i]=m,
[b]="address argument to atomic operation must be a pointer to (?:|atomic )integer \\((.*?) invalid\\)",
[j]="address argument to atomic operation must be a pointer to (?:|atomic )integer \\((.*?) invalid\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={bb,1573050950,db}
[d]={"c094e7dc4b3f",1573050950,"[SYCL] Add sycl_kernel attribute for accelerated code outlining"},
[k]={{s,6799,"ExprResult Sema::BuildAtomicExpr(SourceRange CallRange, SourceRange ExprRange, SourceLocation RParenLoc, MultiExprArg Args, AtomicExpr::AtomicOp Op, AtomicArgumentOrder ArgOrder) {\n  // For an arithmetic operation, the implied arithmetic must be well-formed.\n  if (Form == Arithmetic) {\n    if (!IsAllowedValueType(ValType, ArithAllows)) {\n      auto DID = ArithAllows & AOEVT_FP ? (ArithAllows & AOEVT_Pointer ? diag::err_atomic_op_needs_atomic_int_ptr_or_fp : diag::err_atomic_op_needs_atomic_int_or_fp) : diag::err_atomic_op_needs_atomic_int;"}}
},
},
["err_atomic_op_needs_atomic_int_or_fp"]={
["err_atomic_op_needs_atomic_int_or_fp"]={
[f]="address argument to atomic operation must be a pointer to ...integer or supported floating point type (A invalid)",
[f]="address argument to atomic operation must be a pointer to ...integer or supported floating point type (A invalid)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address argument to atomic operation must be a pointer to %select{|atomic }0integer or supported floating point type (%1 invalid)",
[g]="address argument to atomic operation must be a pointer to %select{|atomic }0integer or supported floating point type (%1 invalid)",
[c]=m,
[i]=m,
[b]="address argument to atomic operation must be a pointer to (?:|atomic )integer or supported floating point type \\((.*?) invalid\\)",
[j]="address argument to atomic operation must be a pointer to (?:|atomic )integer or supported floating point type \\((.*?) invalid\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={w,1625925174,v}
[d]={N,1625925174,M},
[k]={{s,6799,"ExprResult Sema::BuildAtomicExpr(SourceRange CallRange, SourceRange ExprRange, SourceLocation RParenLoc, MultiExprArg Args, AtomicExpr::AtomicOp Op, AtomicArgumentOrder ArgOrder) {\n  // For an arithmetic operation, the implied arithmetic must be well-formed.\n  if (Form == Arithmetic) {\n    if (!IsAllowedValueType(ValType, ArithAllows)) {\n      auto DID = ArithAllows & AOEVT_FP ? (ArithAllows & AOEVT_Pointer ? diag::err_atomic_op_needs_atomic_int_ptr_or_fp : diag::err_atomic_op_needs_atomic_int_or_fp) : diag::err_atomic_op_needs_atomic_int;"}}
},
},
["err_atomic_op_needs_atomic_int_or_ptr"]={
["err_atomic_op_needs_atomic_int_or_ptr"]={
[f]="address argument to atomic operation must be a pointer to ...integer or pointer (A invalid)",
[f]="address argument to atomic operation must be a pointer to ...integer or pointer (A invalid)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address argument to atomic operation must be a pointer to %select{|atomic }0integer or pointer (%1 invalid)",
[g]="address argument to atomic operation must be a pointer to %select{|atomic }0integer or pointer (%1 invalid)",
[c]=m,
[i]=m,
[b]="address argument to atomic operation must be a pointer to (?:|atomic )integer or pointer \\((.*?) invalid\\)",
[j]="address argument to atomic operation must be a pointer to (?:|atomic )integer or pointer \\((.*?) invalid\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"df14b3a8377f",1318299601,"Initial implementation of __atomic_* (everything except __atomic_is_lock_free)."}
[d]={"df14b3a8377f",1318299601,"Initial implementation of __atomic_* (everything except __atomic_is_lock_free)."},
[k]={{s,6809,"ExprResult Sema::BuildAtomicExpr(SourceRange CallRange, SourceRange ExprRange, SourceLocation RParenLoc, MultiExprArg Args, AtomicExpr::AtomicOp Op, AtomicArgumentOrder ArgOrder) {\n  // For an arithmetic operation, the implied arithmetic must be well-formed.\n  if (Form == Arithmetic) {\n  } else if (IsN && !ValType->isIntegerType() && !ValType->isPointerType()) {\n    Diag(ExprRange.getBegin(), diag::err_atomic_op_needs_atomic_int_or_ptr) << IsC11 << Ptr->getType() << Ptr->getSourceRange();"}}
},
},
["err_atomic_op_needs_atomic_int_ptr_or_fp"]={
["err_atomic_op_needs_atomic_int_ptr_or_fp"]={
[f]="address argument to atomic operation must be a pointer to ...integer, pointer or supported floating point type (A invalid)",
[f]="address argument to atomic operation must be a pointer to ...integer, pointer or supported floating point type (A invalid)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address argument to atomic operation must be a pointer to %select{|atomic }0integer, pointer or supported floating point type (%1 invalid)",
[g]="address argument to atomic operation must be a pointer to %select{|atomic }0integer, pointer or supported floating point type (%1 invalid)",
[c]=m,
[i]=m,
[b]="address argument to atomic operation must be a pointer to (?:|atomic )integer, pointer or supported floating point type \\((.*?) invalid\\)",
[j]="address argument to atomic operation must be a pointer to (?:|atomic )integer, pointer or supported floating point type \\((.*?) invalid\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Z,1590001902,ab}
[d]={fb,1590001902,eb},
[k]={{s,6799,"ExprResult Sema::BuildAtomicExpr(SourceRange CallRange, SourceRange ExprRange, SourceLocation RParenLoc, MultiExprArg Args, AtomicExpr::AtomicOp Op, AtomicArgumentOrder ArgOrder) {\n  // For an arithmetic operation, the implied arithmetic must be well-formed.\n  if (Form == Arithmetic) {\n    if (!IsAllowedValueType(ValType, ArithAllows)) {\n      auto DID = ArithAllows & AOEVT_FP ? (ArithAllows & AOEVT_Pointer ? diag::err_atomic_op_needs_atomic_int_ptr_or_fp : diag::err_atomic_op_needs_atomic_int_or_fp) : diag::err_atomic_op_needs_atomic_int;"}}
},
},
["err_atomic_op_needs_non_const_atomic"]={
["err_atomic_op_needs_non_const_atomic"]={
[f]="address argument to atomic operation must be a pointer to non-... _Atomic type (A invalid)",
[f]="address argument to atomic operation must be a pointer to non-... _Atomic type (A invalid)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address argument to atomic operation must be a pointer to non-%select{const|constant}0 _Atomic type (%1 invalid)",
[g]="address argument to atomic operation must be a pointer to non-%select{const|constant}0 _Atomic type (%1 invalid)",
[c]=m,
[i]=m,
[b]="address argument to atomic operation must be a pointer to non\\-(?:const|constant) _Atomic type \\((.*?) invalid\\)",
[j]="address argument to atomic operation must be a pointer to non\\-(?:const|constant) _Atomic type \\((.*?) invalid\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e00921a0a448",1347689398,"const _Atomic(T) is not an atomic type, so do not allow it as the type \'A\' in"}
[d]={"e00921a0a448",1347689398,"const _Atomic(T) is not an atomic type, so do not allow it as the type \'A\' in"},
[k]={{s,6771,"ExprResult Sema::BuildAtomicExpr(SourceRange CallRange, SourceRange ExprRange, SourceLocation RParenLoc, MultiExprArg Args, AtomicExpr::AtomicOp Op, AtomicArgumentOrder ArgOrder) {\n  if (IsC11) {\n    if ((Form != Load && Form != LoadCopy && AtomTy.isConstQualified()) || AtomTy.getAddressSpace() == LangAS::opencl_constant) {\n      Diag(ExprRange.getBegin(), diag::err_atomic_op_needs_non_const_atomic) << (AtomTy.isConstQualified() ? 0 : 1) << Ptr->getType() << Ptr->getSourceRange();"}}
},
},
["err_atomic_op_needs_non_const_pointer"]={
["err_atomic_op_needs_non_const_pointer"]={
[f]="address argument to atomic operation must be a pointer to non-const type (A invalid)",
[f]="address argument to atomic operation must be a pointer to non-const type (A invalid)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address argument to atomic operation must be a pointer to non-const type (%0 invalid)",
[g]="address argument to atomic operation must be a pointer to non-const type (%0 invalid)",
[c]=m,
[i]=m,
[b]="address argument to atomic operation must be a pointer to non\\-const type \\((.*?) invalid\\)",
[j]="address argument to atomic operation must be a pointer to non\\-const type \\((.*?) invalid\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"a3a7c56143f4",1443917462,"Diagnose const atomics in __atomic builtins."}
[d]={"a3a7c56143f4",1443917462,"Diagnose const atomics in __atomic builtins."},
[k]={{s,6777,"ExprResult Sema::BuildAtomicExpr(SourceRange CallRange, SourceRange ExprRange, SourceLocation RParenLoc, MultiExprArg Args, AtomicExpr::AtomicOp Op, AtomicArgumentOrder ArgOrder) {\n  if (IsC11) {\n  } else if (Form != Load && Form != LoadCopy) {\n    if (ValType.isConstQualified()) {\n      Diag(ExprRange.getBegin(), diag::err_atomic_op_needs_non_const_pointer) << Ptr->getType() << Ptr->getSourceRange();"}}
},
},
["err_atomic_op_needs_trivial_copy"]={
["err_atomic_op_needs_trivial_copy"]={
[f]="address argument to atomic operation must be a pointer to a trivially-copyable type (A invalid)",
[f]="address argument to atomic operation must be a pointer to a trivially-copyable type (A invalid)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address argument to atomic operation must be a pointer to a trivially-copyable type (%0 invalid)",
[g]="address argument to atomic operation must be a pointer to a trivially-copyable type (%0 invalid)",
[c]=m,
[i]=m,
[b]="address argument to atomic operation must be a pointer to a trivially\\-copyable type \\((.*?) invalid\\)",
[j]="address argument to atomic operation must be a pointer to a trivially\\-copyable type \\((.*?) invalid\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"feea883de4e5",1334207297,"Implement support for 18 of the GNU-compatible __atomic builtins."}
[d]={"feea883de4e5",1334207297,"Implement support for 18 of the GNU-compatible __atomic builtins."},
[k]={{s,6818,"ExprResult Sema::BuildAtomicExpr(SourceRange CallRange, SourceRange ExprRange, SourceLocation RParenLoc, MultiExprArg Args, AtomicExpr::AtomicOp Op, AtomicArgumentOrder ArgOrder) {\n  if (!IsC11 && !AtomTy.isTriviallyCopyableType(Context) && !AtomTy->isScalarType()) {\n    Diag(ExprRange.getBegin(), diag::err_atomic_op_needs_trivial_copy) << Ptr->getType() << Ptr->getSourceRange();"}}
},
},
["err_atomic_property_nontrivial_assign_op"]={
["err_atomic_property_nontrivial_assign_op"]={
[f]="atomic property of reference type A cannot have non-trivial assignment operator",
[f]="atomic property of reference type A cannot have non-trivial assignment operator",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="atomic property of reference type %0 cannot have non-trivial assignment operator",
[g]="atomic property of reference type %0 cannot have non-trivial assignment operator",
[c]=m,
[i]=m,
[b]="atomic property of reference type (.*?) cannot have non\\-trivial assignment operator",
[j]="atomic property of reference type (.*?) cannot have non\\-trivial assignment operator",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"a08a74705bb0",1326155821,"objc++: patch for IRgen for atomic properties of"}
[d]={"a08a74705bb0",1326155821,"objc++: patch for IRgen for atomic properties of"},
[k]={{P,1242,"/// ActOnPropertyImplDecl - This routine performs semantic checks and\n/// builds the AST node for a property implementation declaration; declared\n/// as \\@synthesize or \\@dynamic.\n///\nDecl *Sema::ActOnPropertyImplDecl(Scope *S, SourceLocation AtLoc, SourceLocation PropertyLoc, bool Synthesize, IdentifierInfo *PropertyId, IdentifierInfo *PropertyIvar, SourceLocation PropertyIvarLoc, ObjCPropertyQueryKind QueryKind) {\n  if (ObjCMethodDecl *setterMethod = property->getSetterMethodDecl()) {\n    if (getLangOpts().CPlusPlus && Synthesize && !CompleteTypeErr && Ivar->getType()->isRecordType()) {\n      if (property->getPropertyAttributes() & ObjCPropertyAttribute::kind_atomic) {\n        if (const CXXOperatorCallExpr *CXXCE = dyn_cast_or_null<CXXOperatorCallExpr>(callExpr))\n          if (const FunctionDecl *FuncDecl = CXXCE->getDirectCallee())\n            if (!FuncDecl->isTrivial())\n              if (property->getType()->isReferenceType()) {\n                Diag(PropertyDiagLoc, diag::err_atomic_property_nontrivial_assign_op) << property->getType();"}}
},
},
["err_atomic_specifier_bad_type"]={
["err_atomic_specifier_bad_type"]={
[f]="_Atomic cannot be applied to ...type A ...",
[f]="_Atomic cannot be applied to ...type A ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="_Atomic cannot be applied to %select{incomplete |array |function |reference |atomic |qualified |sizeless ||integer }0type %1 %select{|||||||which is not trivially copyable|}0",
[g]="_Atomic cannot be applied to %select{incomplete |array |function |reference |atomic |qualified |sizeless ||integer }0type %1 %select{|||||||which is not trivially copyable|}0",
[c]=m,
[i]=m,
[b]="_Atomic cannot be applied to (?:incomplete |array |function |reference |atomic |qualified |sizeless ||integer )type (.*?) (?:|||||||which is not trivially copyable|)",
[j]="_Atomic cannot be applied to (?:incomplete |array |function |reference |atomic |qualified |sizeless ||integer )type (.*?) (?:|||||||which is not trivially copyable|)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"0dfb889575a6",1317942033,"Support for C1x _Atomic specifier (see testcase).  This is primarily being committed at the moment t..."}
[d]={"0dfb889575a6",1317942033,"Support for C1x _Atomic specifier (see testcase).  This is primarily being committed at the moment t..."},
[k]={{r,8625,"QualType Sema::BuildAtomicType(QualType T, SourceLocation Loc) {\n  if (!isDependentOrGNUAutoType(T)) {\n    if (RequireCompleteType(Loc, T, diag::err_atomic_specifier_bad_type, 0))"},{r,8648,"QualType Sema::BuildAtomicType(QualType T, SourceLocation Loc) {\n  if (!isDependentOrGNUAutoType(T)) {\n    if (DisallowedKind != -1) {\n      Diag(Loc, diag::err_atomic_specifier_bad_type) << DisallowedKind << T;"}}
},
},
["err_atprotocol_protocol"]={
["err_atprotocol_protocol"]={
[f]="@protocol is using a forward protocol declaration of A",
[f]="@protocol is using a forward protocol declaration of A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="@protocol is using a forward protocol declaration of %0",
[g]="@protocol is using a forward protocol declaration of %0",
[c]=m,
[i]=m,
[b]="@protocol is using a forward protocol declaration of (.*?)",
[j]="@protocol is using a forward protocol declaration of (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"b111da14ada1",1534544288,"[ObjC] Error out when using forward-declared protocol in a @protocol"}
[d]={"b111da14ada1",1534544288,"[ObjC] Error out when using forward-declared protocol in a @protocol"},
[k]={{G,1126,"ExprResult Sema::ParseObjCProtocolExpression(IdentifierInfo *ProtocolId, SourceLocation AtLoc, SourceLocation ProtoLoc, SourceLocation LParenLoc, SourceLocation ProtoIdLoc, SourceLocation RParenLoc) {\n  if (!PDecl->hasDefinition()) {\n    Diag(ProtoLoc, diag::err_atprotocol_protocol) << PDecl;"}}
},
},
["err_attr_cond_never_constant_expr"]={
["err_attr_cond_never_constant_expr"]={
[f]="A attribute expression never produces a constant expression",
[f]="A attribute expression never produces a constant expression",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute expression never produces a constant expression",
[g]="%0 attribute expression never produces a constant expression",
[c]=m,
[i]=m,
[b]="(.*?) attribute expression never produces a constant expression",
[j]="(.*?) attribute expression never produces a constant expression",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"177399e2277c",1483935134,"Add the diagnose_if attribute to clang."}
[d]={"177399e2277c",1483935134,"Add the diagnose_if attribute to clang."},
[k]={{p,831,"static bool checkFunctionConditionAttr(Sema &S, Decl *D, const ParsedAttr &AL, Expr *&Cond, StringRef &Msg) {\n  if (isa<FunctionDecl>(D) && !Cond->isValueDependent() && !Expr::isPotentialConstantExprUnevaluated(Cond, cast<FunctionDecl>(D), Diags)) {\n    S.Diag(AL.getLoc(), diag::err_attr_cond_never_constant_expr) << AL;"},{"clang/lib/Sema/SemaTemplateInstantiateDecl.cpp",201,"static Expr *instantiateDependentFunctionAttrCondition(Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs, const Attr *A, Expr *OldCond, const Decl *Tmpl, FunctionDecl *New) {\n  if (OldCond->isValueDependent() && !Cond->isValueDependent() && !Expr::isPotentialConstantExprUnevaluated(Cond, New, Diags)) {\n    S.Diag(A->getLocation(), diag::err_attr_cond_never_constant_expr) << A;"}}
},
},
["err_attr_objc_ownership_redundant"]={
["err_attr_objc_ownership_redundant"]={
[f]="the type A is already explicitly ownership-qualified",
[f]="the type A is already explicitly ownership-qualified",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="the type %0 is already explicitly ownership-qualified",
[g]="the type %0 is already explicitly ownership-qualified",
[c]=m,
[i]=m,
[b]="the type (.*?) is already explicitly ownership\\-qualified",
[j]="the type (.*?) is already explicitly ownership\\-qualified",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={vb,1308874139,wb}
[d]={Z,1308874139,Y},
[k]={{r,6153,"/// handleObjCOwnershipTypeAttr - Process an objc_ownership\n/// attribute on the specified type.\n///\n/// Returns \'true\' if the attribute was handled.\nstatic bool handleObjCOwnershipTypeAttr(TypeProcessingState &state, ParsedAttr &attr, QualType &type) {\n  // Check for redundant/conflicting ownership qualifiers.\n  if (Qualifiers::ObjCLifetime previousLifetime = type.getQualifiers().getObjCLifetime()) {\n    // If it\'s written directly, that\'s an error.\n    if (S.Context.hasDirectOwnershipQualifier(type)) {\n      S.Diag(AttrLoc, diag::err_attr_objc_ownership_redundant) << type;"}}
},
},
["err_attr_swift_error_no_error_parameter"]={
["err_attr_swift_error_no_error_parameter"]={
[f]="A attribute can only be applied to a ... with an error parameter",
[f]="A attribute can only be applied to a ... with an error parameter",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute can only be applied to a %select{function|method}1 with an error parameter",
[g]="%0 attribute can only be applied to a %select{function|method}1 with an error parameter",
[c]=m,
[i]=m,
[b]="(.*?) attribute can only be applied to a (?:function|method) with an error parameter",
[j]="(.*?) attribute can only be applied to a (?:function|method) with an error parameter",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={G,1582847864,I}
[d]={T,1582847864,U},
[k]={{p,5627,"static void handleSwiftError(Sema &S, Decl *D, const ParsedAttr &AL) {\n  auto hasErrorParameter = [](Sema &S, Decl *D, const ParsedAttr &AL) -> bool {\n    S.Diag(AL.getLoc(), diag::err_attr_swift_error_no_error_parameter) << AL << isa<ObjCMethodDecl>(D);"}}
},
},
["err_attr_swift_error_return_type"]={
["err_attr_swift_error_return_type"]={
[f]="A attribute with \'B\' convention can only be applied to a ... returning ...",
[f]="A attribute with \'B\' convention can only be applied to a ... returning ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute with \'%1\' convention can only be applied to a %select{function|method}2 returning %select{an integral type|a pointer}3",
[g]="%0 attribute with \'%1\' convention can only be applied to a %select{function|method}2 returning %select{an integral type|a pointer}3",
[c]=m,
[i]=m,
[b]="(.*?) attribute with \'(.*?)\' convention can only be applied to a (?:function|method) returning (?:an integral type|a pointer)",
[j]="(.*?) attribute with \'(.*?)\' convention can only be applied to a (?:function|method) returning (?:an integral type|a pointer)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={G,1582847864,I}
[d]={T,1582847864,U},
[k]={{p,5639,"static void handleSwiftError(Sema &S, Decl *D, const ParsedAttr &AL) {\n  auto hasPointerResult = [](Sema &S, Decl *D, const ParsedAttr &AL) -> bool {\n    S.Diag(AL.getLoc(), diag::err_attr_swift_error_return_type) << AL << AL.getArgAsIdent(0)->Ident->getName() << isa<ObjCMethodDecl>(D) << /*pointer*/ 1;"},{p,5648,"static void handleSwiftError(Sema &S, Decl *D, const ParsedAttr &AL) {\n  auto hasIntegerResult = [](Sema &S, Decl *D, const ParsedAttr &AL) -> bool {\n    S.Diag(AL.getLoc(), diag::err_attr_swift_error_return_type) << AL << AL.getArgAsIdent(0)->Ident->getName() << isa<ObjCMethodDecl>(D) << /*integral*/ 0;"}}
},
},
["err_attr_tlsmodel_arg"]={
["err_attr_tlsmodel_arg"]={
[f]="tls_model must be \"global-dynamic\", \"local-dynamic\", \"initial-exec\" or \"local-exec\"",
[f]="tls_model must be \"global-dynamic\", \"local-dynamic\", \"initial-exec\" or \"local-exec\"",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="tls_model must be \"global-dynamic\", \"local-dynamic\", \"initial-exec\" or \"local-exec\"",
[g]="tls_model must be \"global-dynamic\", \"local-dynamic\", \"initial-exec\" or \"local-exec\"",
[c]=m,
[i]=m,
[b]="tls_model must be \"global\\-dynamic\", \"local\\-dynamic\", \"initial\\-exec\" or \"local\\-exec\"",
[j]="tls_model must be \"global\\-dynamic\", \"local\\-dynamic\", \"initial\\-exec\" or \"local\\-exec\"",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"d3b01bc7c673",1340452306,"Support the tls_model attribute (PR9788)"}
[d]={"d3b01bc7c673",1340452306,"Support the tls_model attribute (PR9788)"},
[k]={{p,1826,"static void handleTLSModelAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // Check that the value.\n  if (Model != \"global-dynamic\" && Model != \"local-dynamic\" && Model != \"initial-exec\" && Model != \"local-exec\") {\n    S.Diag(LiteralLoc, diag::err_attr_tlsmodel_arg);"}}
},
},
["err_attribute_address_function_type"]={
["err_attribute_address_function_type"]={
[f]="function type may not be qualified with an address space",
[f]="function type may not be qualified with an address space",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="function type may not be qualified with an address space",
[i]=m,
[j]="function type may not be qualified with an address space",
[j]="function type may not be qualified with an address space",
[c]=m,
[b]=a,
[b]="function type may not be qualified with an address space",
[h]=o,
[i]=a,
[d]={"8f5f520653f5",1311798605,"Forbid address-space-qualified function types, per TR 18037"},
[h]=n,
[k]={{r,6018,"/// HandleAddressSpaceTypeAttribute - Process an address_space attribute on the\n/// specified type.  The attribute contains 1 argument, the id of the address\n/// space for the type.\nstatic void HandleAddressSpaceTypeAttribute(QualType &Type, const ParsedAttr &Attr, TypeProcessingState &State) {\n  // ISO/IEC TR 18037 S5.3 (amending C99 6.7.3): \"A function type shall not be\n  // qualified by an address-space qualifier.\"\n  if (Type->isFunctionType()) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_address_function_type);"}}
[g]={"8f5f520653f5",1311798605,"Forbid address-space-qualified function types, per TR 18037"}
},
},
["err_attribute_address_multiple_qualifiers"]={
["err_attribute_address_multiple_qualifiers"]={
[f]="multiple address spaces specified for type",
[f]="multiple address spaces specified for type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="multiple address spaces specified for type",
[i]=m,
[j]="multiple address spaces specified for type",
[j]="multiple address spaces specified for type",
[c]=m,
[b]=a,
[b]="multiple address spaces specified for type",
[h]=o,
[i]=a,
[d]={A,1236199783,z},
[h]=n,
[k]={{r,4081,"// Diagnose whether this is a case with the multiple addr spaces.\n// Returns true if this is an invalid case.\n// ISO/IEC TR 18037 S5.3 (amending C99 6.7.3): \"No type shall be qualified\n// by qualifiers for two or more different address spaces.\"\nstatic bool DiagnoseMultipleAddrSpaceAttributes(Sema &S, LangAS ASOld, LangAS ASNew, SourceLocation AttrLoc) {\n  if (ASOld != LangAS::Default) {\n    if (ASOld != ASNew) {\n      S.Diag(AttrLoc, diag::err_attribute_address_multiple_qualifiers);"},{r,5972,"/// BuildAddressSpaceAttr - Builds a DependentAddressSpaceType if an expression\n/// is uninstantiated. If instantiated it will apply the appropriate address\n/// space to the type. This function allows dependent template variables to be\n/// used in conjunction with the address_space attribute\nQualType Sema::BuildAddressSpaceAttr(QualType &T, LangAS ASIdx, Expr *AddrSpace, SourceLocation AttrLoc) {\n  // A check with similar intentions as checking if a type already has an\n  // address space except for on a dependent types, basically if the\n  // current type is already a DependentAddressSpaceType then its already\n  // lined up to have another address space on it and we can\'t have\n  // multiple address spaces on the one pointer indirection\n  if (T->getAs<DependentAddressSpaceType>()) {\n    Diag(AttrLoc, diag::err_attribute_address_multiple_qualifiers);"}}
[g]={s,1236199783,r}
},
},
["err_attribute_address_space_negative"]={
["err_attribute_address_space_negative"]={
[f]="address space is negative",
[f]="address space is negative",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="address space is negative",
[i]=m,
[j]="address space is negative",
[j]="address space is negative",
[c]=m,
[b]=a,
[b]="address space is negative",
[h]=o,
[i]=a,
[d]={"8945266f3d02",1248763938,"Bounds checking for address spaces."},
[h]=n,
[k]={{r,5931,"/// Build an AddressSpace index from a constant expression and diagnose any\n/// errors related to invalid address_spaces. Returns true on successfully\n/// building an AddressSpace index.\nstatic bool BuildAddressSpaceIndex(Sema &S, LangAS &ASIdx, const Expr *AddrSpace, SourceLocation AttrLoc) {\n  if (!AddrSpace->isValueDependent()) {\n    // Bounds checking.\n    if (addrSpace.isSigned()) {\n      if (addrSpace.isNegative()) {\n        S.Diag(AttrLoc, diag::err_attribute_address_space_negative) << AddrSpace->getSourceRange();"}}
[g]={"8945266f3d02",1248763938,"Bounds checking for address spaces."}
},
},
["err_attribute_address_space_too_high"]={
["err_attribute_address_space_too_high"]={
[f]="address space is larger than the maximum supported (A)",
[f]="address space is larger than the maximum supported (A)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address space is larger than the maximum supported (%0)",
[g]="address space is larger than the maximum supported (%0)",
[c]=m,
[i]=m,
[b]="address space is larger than the maximum supported \\((.*?)\\)",
[j]="address space is larger than the maximum supported \\((.*?)\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"8945266f3d02",1248763938,"Bounds checking for address spaces."}
[d]={"8945266f3d02",1248763938,"Bounds checking for address spaces."},
[k]={{r,5941,"/// Build an AddressSpace index from a constant expression and diagnose any\n/// errors related to invalid address_spaces. Returns true on successfully\n/// building an AddressSpace index.\nstatic bool BuildAddressSpaceIndex(Sema &S, LangAS &ASIdx, const Expr *AddrSpace, SourceLocation AttrLoc) {\n  if (!AddrSpace->isValueDependent()) {\n    if (addrSpace > max) {\n      S.Diag(AttrLoc, diag::err_attribute_address_space_too_high) << (unsigned)max.getZExtValue() << AddrSpace->getSourceRange();"}}
},
},
["err_attribute_aligned_too_great"]={
["err_attribute_aligned_too_great"]={
[f]="requested alignment must be A bytes or smaller",
[f]="requested alignment must be A bytes or smaller",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="requested alignment must be %0 bytes or smaller",
[g]="requested alignment must be %0 bytes or smaller",
[c]=m,
[i]=m,
[b]="requested alignment must be (.*?) bytes or smaller",
[j]="requested alignment must be (.*?) bytes or smaller",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"abecae741cb7",1392237370,"Sema: Restrict alignment to 2**28."}
[d]={"abecae741cb7",1392237370,"Sema: Restrict alignment to 2**28."},
[k]={{p,3918,"void Sema::AddAlignedAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E, bool IsPackExpansion) {\n  if (Alignment > MaximumAlignment) {\n    Diag(AttrLoc, diag::err_attribute_aligned_too_great) << MaximumAlignment << E->getSourceRange();"}}
},
},
["err_attribute_argument_invalid"]={
["err_attribute_argument_invalid"]={
[f]="A attribute argument is invalid: ...",
[f]="A attribute argument is invalid: ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute argument is invalid: %select{max must be 0 since min is 0|min must not be greater than max}1",
[g]="%0 attribute argument is invalid: %select{max must be 0 since min is 0|min must not be greater than max}1",
[c]=m,
[i]=m,
[b]="(.*?) attribute argument is invalid\\: (?:max must be 0 since min is 0|min must not be greater than max)",
[j]="(.*?) attribute argument is invalid\\: (?:max must be 0 since min is 0|min must not be greater than max)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"5b48d725a0bc",1474851777,"[AMDGPU] Expose flat work group size, register and wave control attributes"}
[d]={"5b48d725a0bc",1474851777,"[AMDGPU] Expose flat work group size, register and wave control attributes"},
[k]={{p,6927,"static bool checkAMDGPUFlatWorkGroupSizeArguments(Sema &S, Expr *MinExpr, Expr *MaxExpr, const AMDGPUFlatWorkGroupSizeAttr &Attr) {\n  if (Min == 0 && Max != 0) {\n    S.Diag(Attr.getLocation(), diag::err_attribute_argument_invalid) << &Attr << 0;"},{p,6931,"static bool checkAMDGPUFlatWorkGroupSizeArguments(Sema &S, Expr *MinExpr, Expr *MaxExpr, const AMDGPUFlatWorkGroupSizeAttr &Attr) {\n  if (Min > Max) {\n    S.Diag(Attr.getLocation(), diag::err_attribute_argument_invalid) << &Attr << 1;"},{p,6972,"static bool checkAMDGPUWavesPerEUArguments(Sema &S, Expr *MinExpr, Expr *MaxExpr, const AMDGPUWavesPerEUAttr &Attr) {\n  if (Min == 0 && Max != 0) {\n    S.Diag(Attr.getLocation(), diag::err_attribute_argument_invalid) << &Attr << 0;"},{p,6976,"static bool checkAMDGPUWavesPerEUArguments(Sema &S, Expr *MinExpr, Expr *MaxExpr, const AMDGPUWavesPerEUAttr &Attr) {\n  if (Max != 0 && Min > Max) {\n    S.Diag(Attr.getLocation(), diag::err_attribute_argument_invalid) << &Attr << 1;"}}
},
},
["err_attribute_argument_is_zero"]={
["err_attribute_argument_is_zero"]={
[f]="A attribute must be greater than 0",
[f]="A attribute must be greater than 0",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute must be greater than 0",
[g]="%0 attribute must be greater than 0",
[c]=m,
[i]=m,
[b]="(.*?) attribute must be greater than 0",
[j]="(.*?) attribute must be greater than 0",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"b1d23a8db36c",1400510498,"[OpenCL] Reject reqd_work_group_size(X, Y, Z) where X, Y or Z == 0."}
[d]={"b1d23a8db36c",1400510498,"[OpenCL] Reject reqd_work_group_size(X, Y, Z) where X, Y or Z == 0."},
[k]={{p,2824,"// Handles reqd_work_group_size and work_group_size_hint.\ntemplate <typename WorkGroupAttr> static void handleWorkGroupSize(Sema &S, Decl *D, const ParsedAttr &AL) {\n  for (unsigned i = 0; i < 3; ++i) {\n    if (WGSize[i] == 0) {\n      S.Diag(AL.getLoc(), diag::err_attribute_argument_is_zero) << AL << E->getSourceRange();"},{p,2843,"// Handles intel_reqd_sub_group_size.\nstatic void handleSubGroupSize(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (SGSize == 0) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_is_zero) << AL << E->getSourceRange();"}}
},
},
["err_attribute_argument_n_type"]={
["err_attribute_argument_n_type"]={
[f]="A attribute requires parameter B to be ...",
[f]="A attribute requires parameter B to be ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute requires parameter %1 to be %select{int or bool|an integer constant|a string|an identifier|a constant expression|a builtin function}2",
[g]="%0 attribute requires parameter %1 to be %select{int or bool|an integer constant|a string|an identifier|a constant expression|a builtin function}2",
[c]=m,
[i]=m,
[b]="(.*?) attribute requires parameter (.*?) to be (?:int or bool|an integer constant|a string|an identifier|a constant expression|a builtin function)",
[j]="(.*?) attribute requires parameter (.*?) to be (?:int or bool|an integer constant|a string|an identifier|a constant expression|a builtin function)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"29982275012f",1374588237,"Consolidate several attribute argument diagnostics into a single, selectable diagnostic.  This makes..."}
[d]={"29982275012f",1374588237,"Consolidate several attribute argument diagnostics into a single, selectable diagnostic.  This makes..."},
[k]={{"clang/lib/Sema/SemaAttr.cpp",353,"bool Sema::ConstantFoldAttrArgs(const AttributeCommonInfo &CI, MutableArrayRef<Expr *> Args) {\n  for (unsigned Idx = 0; Idx < Args.size(); Idx++) {\n    /// Result means the expression can be folded to a constant.\n    /// Note.empty() means the expression is a valid constant expression in the\n    /// current language mode.\n    if (!Result || !Notes.empty()) {\n      Diag(E->getBeginLoc(), diag::err_attribute_argument_n_type) << CI << (Idx + 1) << AANT_ArgumentConstantExpr;"},{p,203,"/// If Expr is a valid integer constant, get the value of the integer\n/// expression and return success or failure. May output an error.\n///\n/// Negative argument is implicitly converted to unsigned, unless\n/// \\p StrictlyUnsigned is true.\ntemplate <typename AttrInfo> static bool checkUInt32Argument(Sema &S, const AttrInfo &AI, const Expr *Expr, uint32_t &Val, unsigned Idx = UINT_MAX, bool StrictlyUnsigned = false) {\n  if (Expr->isTypeDependent() || !(I = Expr->getIntegerConstantExpr(S.Context))) {\n    if (Idx != UINT_MAX)\n      S.Diag(getAttrLoc(AI), diag::err_attribute_argument_n_type) << &AI << Idx << AANT_ArgumentIntegerConstant << Expr->getSourceRange();"},{p,278,"/// Check if IdxExpr is a valid parameter index for a function or\n/// instance method D.  May output an error.\n///\n/// \\returns true if IdxExpr is a valid index.\ntemplate <typename AttrInfo> static bool checkFunctionOrMethodParameterIndex(Sema &S, const Decl *D, const AttrInfo &AI, unsigned AttrArgNum, const Expr *IdxExpr, ParamIdx &Idx, bool CanIndexImplicitThis = false) {\n  if (IdxExpr->isTypeDependent() || !(IdxInt = IdxExpr->getIntegerConstantExpr(S.Context))) {\n    S.Diag(getAttrLoc(AI), diag::err_attribute_argument_n_type) << &AI << AttrArgNum << AANT_ArgumentIntegerConstant << IdxExpr->getSourceRange();"},{p,762,"static bool checkTryLockFunAttrCommon(Sema &S, Decl *D, const ParsedAttr &AL, SmallVectorImpl<Expr *> &Args) {\n  if (!isIntOrBool(AL.getArgAsExpr(0))) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_n_type) << AL << 1 << AANT_ArgumentIntOrBool;"},{p,917,"static void handleDiagnoseAsBuiltinAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  auto DiagnoseType = [&](unsigned Index, AttributeArgumentNType T) {\n    S.Diag(Loc, diag::err_attribute_argument_n_type) << AL << Index << T;"},{p,1518,"void Sema::AddAssumeAlignedAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E, Expr *OE) {\n  if (!E->isValueDependent()) {\n    if (!(I = E->getIntegerConstantExpr(Context))) {\n      if (OE)\n        Diag(AttrLoc, diag::err_attribute_argument_n_type) << &TmpAttr << 1 << AANT_ArgumentIntegerConstant << E->getSourceRange();"},{p,1534,"void Sema::AddAssumeAlignedAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E, Expr *OE) {\n  if (OE && !OE->isValueDependent() && !OE->isIntegerConstantExpr(Context)) {\n    Diag(AttrLoc, diag::err_attribute_argument_n_type) << &TmpAttr << 2 << AANT_ArgumentIntegerConstant << OE->getSourceRange();"},{p,1620,"static void handleOwnershipAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.isArgIdent(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_n_type) << AL << 1 << AANT_ArgumentIdentifier;"},{p,2600,"static void handleObjCMethodFamilyAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.isArgIdent(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_n_type) << AL << 1 << AANT_ArgumentIdentifier;"},{p,2661,"static void handleBlocksAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.isArgIdent(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_n_type) << AL << 1 << AANT_ArgumentIdentifier;"},{p,2681,"static void handleSentinelAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.getNumArgs() > 0) {\n    if (E->isTypeDependent() || !(Idx = E->getIntegerConstantExpr(S.Context))) {\n      S.Diag(AL.getLoc(), diag::err_attribute_argument_n_type) << AL << 1 << AANT_ArgumentIntegerConstant << E->getSourceRange();"},{p,2698,"static void handleSentinelAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.getNumArgs() > 1) {\n    if (E->isTypeDependent() || !(Idx = E->getIntegerConstantExpr(S.Context))) {\n      S.Diag(AL.getLoc(), diag::err_attribute_argument_n_type) << AL << 2 << AANT_ArgumentIntegerConstant << E->getSourceRange();"},{p,3288,"static void handleEnumExtensibilityAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.isArgIdent(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_n_type) << AL << 0 << AANT_ArgumentIdentifier;"},{p,3439,"/// Handle __attribute__((format(type,idx,firstarg))) attributes based on\n/// http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html\nstatic void handleFormatAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.isArgIdent(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_n_type) << AL << 1 << AANT_ArgumentIdentifier;"},{p,4956,"// Checks whether an argument of launch_bounds attribute is\n// acceptable, performs implicit conversion to Rvalue, and returns\n// non-nullptr Expr result on success. Otherwise, it returns nullptr\n// and may output an error.\nstatic Expr *makeLaunchBoundsArgExpr(Sema &S, Expr *E, const CUDALaunchBoundsAttr &AL, const unsigned Idx) {\n  if (!(I = E->getIntegerConstantExpr(S.Context))) {\n    S.Diag(E->getExprLoc(), diag::err_attribute_argument_n_type) << &AL << Idx << AANT_ArgumentIntegerConstant << E->getSourceRange();"},{p,4999,"static void handleArgumentWithTypeTagAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.isArgIdent(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_n_type) << AL << /* arg num = */ 1 << AANT_ArgumentIdentifier;"},{p,5024,"static void handleTypeTagForDatatypeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.isArgIdent(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_n_type) << AL << 1 << AANT_ArgumentIdentifier;"},{p,5120,"static void handleArmBuiltinAliasAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.isArgIdent(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_n_type) << AL << 1 << AANT_ArgumentIdentifier;"},{p,5141,"static void handleBuiltinAliasAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.isArgIdent(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_n_type) << AL << 1 << AANT_ArgumentIdentifier;"},{p,6096,"static void handleSwiftAsyncAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.isArgIdent(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_n_type) << AL << 1 << AANT_ArgumentIdentifier;"}}
},
},
["err_attribute_argument_out_of_bounds"]={
["err_attribute_argument_out_of_bounds"]={
[f]="A attribute parameter B is out of bounds",
[f]="A attribute parameter B is out of bounds",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute parameter %1 is out of bounds",
[g]="%0 attribute parameter %1 is out of bounds",
[c]=m,
[i]=m,
[b]="(.*?) attribute parameter (.*?) is out of bounds",
[j]="(.*?) attribute parameter (.*?) is out of bounds",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{p,284,"/// Check if IdxExpr is a valid parameter index for a function or\n/// instance method D.  May output an error.\n///\n/// \\returns true if IdxExpr is a valid index.\ntemplate <typename AttrInfo> static bool checkFunctionOrMethodParameterIndex(Sema &S, const Decl *D, const AttrInfo &AI, unsigned AttrArgNum, const Expr *IdxExpr, ParamIdx &Idx, bool CanIndexImplicitThis = false) {\n  if (IdxSource < 1 || (!IV && IdxSource > NumParams)) {\n    S.Diag(getAttrLoc(AI), diag::err_attribute_argument_out_of_bounds) << &AI << AttrArgNum << IdxExpr->getSourceRange();"},{p,3474,"/// Handle __attribute__((format(type,idx,firstarg))) attributes based on\n/// http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html\nstatic void handleFormatAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (Idx < 1 || Idx > NumArgs) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_out_of_bounds) << AL << 2 << IdxExpr->getSourceRange();"},{p,3515,"/// Handle __attribute__((format(type,idx,firstarg))) attributes based on\n/// http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html\nstatic void handleFormatAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // FirstArg == 0 is is always valid.\n  if (FirstArg != 0) {\n    if (Kind == StrftimeFormat) {\n    } else if (isFunctionOrMethodVariadic(D)) {\n      // Else, if the function is variadic, then FirstArg must be 0 or the\n      // \"position\" of the ... parameter. It\'s unusual to use 0 with variadic\n      // functions, so the fixit proposes the latter.\n      if (FirstArg != NumArgs + 1) {\n        S.Diag(AL.getLoc(), diag::err_attribute_argument_out_of_bounds) << AL << 3 << FirstArgExpr->getSourceRange() << FixItHint::CreateReplacement(FirstArgExpr->getSourceRange(), std::to_string(NumArgs + 1));"},{p,3525,"/// Handle __attribute__((format(type,idx,firstarg))) attributes based on\n/// http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html\nstatic void handleFormatAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // FirstArg == 0 is is always valid.\n  if (FirstArg != 0) {\n    if (Kind == StrftimeFormat) {\n    } else if (isFunctionOrMethodVariadic(D)) {\n    } else {\n      if (FirstArg <= Idx) {\n        S.Diag(AL.getLoc(), diag::err_attribute_argument_out_of_bounds) << AL << 3 << FirstArgExpr->getSourceRange();"},{p,3581,"/// Handle __attribute__((callback(CalleeIdx, PayloadIdx0, ...))) attributes.\nstatic void handleCallbackAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  for (unsigned I = 0, E = AL.getNumArgs(); I < E; ++I) {\n    if (AL.isArgIdent(I)) {\n    } else if (AL.isArgExpr(I)) {\n      // If the expression is not parseable as an int32_t we have a problem.\n      if (!checkUInt32Argument(S, AL, IdxExpr, (uint32_t &)ArgIdx, I + 1, false)) {\n        S.Diag(AL.getLoc(), diag::err_attribute_argument_out_of_bounds) << AL << (I + 1) << IdxExpr->getSourceRange();"},{p,3587,"/// Handle __attribute__((callback(CalleeIdx, PayloadIdx0, ...))) attributes.\nstatic void handleCallbackAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  for (unsigned I = 0, E = AL.getNumArgs(); I < E; ++I) {\n    if (AL.isArgIdent(I)) {\n    } else if (AL.isArgExpr(I)) {\n      // Check oob, excluding the special values, 0 and -1.\n      if (ArgIdx < -1 || ArgIdx > NumArgs) {\n        S.Diag(AL.getLoc(), diag::err_attribute_argument_out_of_bounds) << AL << (I + 1) << IdxExpr->getSourceRange();"},{p,5708,"static void checkSwiftAsyncErrorBlock(Sema &S, Decl *D, const SwiftAsyncErrorAttr *ErrorAttr, const SwiftAsyncAttr *AsyncAttr) {\n  case SwiftAsyncErrorAttr::NonZeroArgument: {\n    if (ParamIdx == 0 || ParamIdx > BlockParams.size()) {\n      S.Diag(ErrorAttr->getLocation(), diag::err_attribute_argument_out_of_bounds) << ErrorAttr << 2;"},{p,6553,"static void handleMSP430InterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (Num > 63) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_out_of_bounds) << AL << (int)NumParams->getSExtValue() << NumParamsExpr->getSourceRange();"},{p,6634,"static void handleM68kInterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if ((Num & 1) || Num > 30) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_out_of_bounds) << AL << (int)MaybeNumParams->getSExtValue() << NumParamsExpr->getSourceRange();"},{p,7048,"static void handleLayoutVersion(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // TODO: Investigate what happens with the next major version of MSVC.\n  if (Version != LangOptions::MSVC2015 / 100) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_out_of_bounds) << AL << Version << VersionExpr->getSourceRange();"}}
},
},
["err_attribute_argument_out_of_bounds_extra_info"]={
["err_attribute_argument_out_of_bounds_extra_info"]={
[f]="A attribute parameter B is out of bounds: no parameters to index into",
[f]="A attribute parameter B is out of bounds: no parameters to index into",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute parameter %1 is out of bounds: %plural{0:no parameters to index into|1:can only be 1, since there is one parameter|:must be between 1 and %2}2",
[g]="%0 attribute parameter %1 is out of bounds: %plural{0:no parameters to index into|1:can only be 1, since there is one parameter|:must be between 1 and %2}2",
[c]=m,
[i]=m,
[b]="(.*?) attribute parameter (.*?) is out of bounds\\: (?:no parameters to index into|can only be 1, since there is one parameter|must be between 1 and (.*?))",
[j]="(.*?) attribute parameter (.*?) is out of bounds\\: (?:no parameters to index into|can only be 1, since there is one parameter|must be between 1 and (.*?))",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"ce667f6df971",1549977542,"Renaming yet another diagnostic to not conflict; NFC."}
[d]={"ce667f6df971",1549977542,"Renaming yet another diagnostic to not conflict; NFC."},
[k]={{p,574,"/// Checks that all attribute arguments, starting from Sidx, resolve to\n/// a capability object.\n/// \\param Sidx The attribute argument index to start checking with.\n/// \\param ParamIdxOk Whether an argument can be indexing into a function\n/// parameter list.\nstatic void checkAttrArgsAreCapabilityObjs(Sema &S, Decl *D, const ParsedAttr &AL, SmallVectorImpl<Expr *> &Args, unsigned Sidx = 0, bool ParamIdxOk = false) {\n  for (unsigned Idx = Sidx; Idx < AL.getNumArgs(); ++Idx) {\n    // Now check if we index into a record type function param.\n    if (!RT && ParamIdxOk) {\n      if (FD && IL) {\n        if (!ArgValue.isStrictlyPositive() || ParamIdxFromOne > NumParams) {\n          S.Diag(AL.getLoc(), diag::err_attribute_argument_out_of_bounds_extra_info) << AL << Idx + 1 << NumParams;"}}
},
},
["err_attribute_argument_out_of_range"]={
["err_attribute_argument_out_of_range"]={
[f]="A attribute requires integer constant between B and C inclusive",
[f]="A attribute requires integer constant between B and C inclusive",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute requires integer constant between %1 and %2 inclusive",
[g]="%0 attribute requires integer constant between %1 and %2 inclusive",
[c]=m,
[i]=m,
[b]="(.*?) attribute requires integer constant between (.*?) and (.*?) inclusive",
[j]="(.*?) attribute requires integer constant between (.*?) and (.*?) inclusive",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"4b1e8399c22e",1312912771,"Thread Safety: Added basic argument parsing for all new attributes."}
[d]={"4b1e8399c22e",1312912771,"Thread Safety: Added basic argument parsing for all new attributes."},
[k]={{p,1057,"static void handlePassObjectSizeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // pass_object_size\'s argument is passed in as the second argument of\n  // __builtin_object_size. So, it has the same constraints as that second\n  // argument; namely, it must be in the range [0, 3].\n  if (Type > 3) {\n    S.Diag(E->getBeginLoc(), diag::err_attribute_argument_out_of_range) << AL << 0 << 3 << E->getSourceRange();"},{p,3394,"/// Handle __attribute__((init_priority(priority))) attributes based on\n/// http://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Attributes.html\nstatic void handleInitPriorityAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // Only perform the priority check if the attribute is outside of a system\n  // header. Values <= 100 are reserved for the implementation, and libc++\n  // benefits from being able to specify values in that range.\n  if ((prioritynum < 101 || prioritynum > 65535) && !S.getSourceManager().isInSystemHeader(AL.getLoc())) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_out_of_range) << E->getSourceRange() << AL << 101 << 65535;"},{p,5063,"static void handlePatchableFunctionEntryAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.getNumArgs() == 2) {\n    if (Count < Offset) {\n      S.Diag(getAttrLoc(AL), diag::err_attribute_argument_out_of_range) << &AL << 0 << Count << Arg->getBeginLoc();"}}
},
},
["err_attribute_argument_parm_pack_not_supported"]={
["err_attribute_argument_parm_pack_not_supported"]={
[f]="attribute A does not support argument pack expansion",
[f]="attribute A does not support argument pack expansion",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="attribute %0 does not support argument pack expansion",
[g]="attribute %0 does not support argument pack expansion",
[c]=m,
[i]=m,
[b]="attribute (.*?) does not support argument pack expansion",
[j]="attribute (.*?) does not support argument pack expansion",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={Lb,1612659633,Gb}
[d]={"69350e569dc4",1612659633,"[C++20][Modules][3/8] Initial handling for module partitions."},
[k]={{D,442,"unsigned Parser::ParseAttributeArgsCommon(IdentifierInfo *AttrName, SourceLocation AttrNameLoc, ParsedAttributes &Attrs, SourceLocation *EndLoc, IdentifierInfo *ScopeName, SourceLocation ScopeLoc, ParsedAttr::Form Form) {\n  if (!ArgExprs.empty() ? Tok.is(tok::comma) : Tok.isNot(tok::r_paren)) {\n    if (AttributeIsTypeArgAttr) {\n    } else if (AttributeHasVariadicIdentifierArg) {\n    } else {\n      // Pack expansion must currently be explicitly supported by an attribute.\n      for (size_t I = 0; I < ParsedExprs.size(); ++I) {\n        if (!attributeAcceptsExprPack(*AttrName)) {\n          Diag(Tok.getLocation(), diag::err_attribute_argument_parm_pack_not_supported) << AttrName;"}}
},
},
["err_attribute_argument_type"]={
["err_attribute_argument_type"]={
[f]="A attribute requires ...",
[f]="A attribute requires ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute requires %select{int or bool|an integer constant|a string|an identifier}1",
[g]="%0 attribute requires %select{int or bool|an integer constant|a string|an identifier}1",
[c]=m,
[i]=m,
[b]="(.*?) attribute requires (?:int or bool|an integer constant|a string|an identifier)",
[j]="(.*?) attribute requires (?:int or bool|an integer constant|a string|an identifier)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"3bf758cd6579",1375147863,"err_attribute_not_string has been subsumed by err_attribute_argument_type."}
[d]={"3bf758cd6579",1375147863,"err_attribute_not_string has been subsumed by err_attribute_argument_type."},
[k]={{p,205,"/// If Expr is a valid integer constant, get the value of the integer\n/// expression and return success or failure. May output an error.\n///\n/// Negative argument is implicitly converted to unsigned, unless\n/// \\p StrictlyUnsigned is true.\ntemplate <typename AttrInfo> static bool checkUInt32Argument(Sema &S, const AttrInfo &AI, const Expr *Expr, uint32_t &Val, unsigned Idx = UINT_MAX, bool StrictlyUnsigned = false) {\n  if (Expr->isTypeDependent() || !(I = Expr->getIntegerConstantExpr(S.Context))) {\n    if (Idx != UINT_MAX)\n    else\n      S.Diag(getAttrLoc(AI), diag::err_attribute_argument_type) << &AI << AANT_ArgumentIntegerConstant << Expr->getSourceRange();"},{p,307,"/// Check if the argument \\p E is a ASCII string literal. If not emit an error\n/// and return false, otherwise set \\p Str to the value of the string literal\n/// and return true.\nbool Sema::checkStringLiteralArgumentAttr(const AttributeCommonInfo &CI, const Expr *E, StringRef &Str, SourceLocation *ArgLocation) {\n  if (!Literal || !Literal->isOrdinary()) {\n    Diag(E->getBeginLoc(), diag::err_attribute_argument_type) << CI << AANT_ArgumentString;"},{p,323,"/// Check if the argument \\p ArgNum of \\p Attr is a ASCII string literal.\n/// If not emit an error and return false. If the argument is an identifier it\n/// will emit an error with a fixit hint and treat it as if it was a string\n/// literal.\nbool Sema::checkStringLiteralArgumentAttr(const ParsedAttr &AL, unsigned ArgNum, StringRef &Str, SourceLocation *ArgLocation) {\n  // Look for identifiers. If we have one emit a hint to fix it to a literal.\n  if (AL.isArgIdent(ArgNum)) {\n    Diag(Loc->Loc, diag::err_attribute_argument_type) << AL << AANT_ArgumentString << FixItHint::CreateInsertion(Loc->Loc, \"\\\"\") << FixItHint::CreateInsertion(getLocForEndOfToken(Loc->Loc), \"\\\"\");"},{p,1083,"static void handleConsumableAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.isArgIdent(0)) {\n  } else {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_type) << AL << AANT_ArgumentIdentifier;"},{p,1149,"static void handleParamTypestateAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.isArgIdent(0)) {\n  } else {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_type) << AL << AANT_ArgumentIdentifier;"},{p,1178,"static void handleReturnTypestateAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.isArgIdent(0)) {\n  } else {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_type) << AL << AANT_ArgumentIdentifier;"},{p,1223,"static void handleSetTypestateAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.isArgIdent(0)) {\n  } else {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_type) << AL << AANT_ArgumentIdentifier;"},{p,1243,"static void handleTestTypestateAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.isArgIdent(0)) {\n  } else {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_type) << AL << AANT_ArgumentIdentifier;"},{p,1520,"void Sema::AddAssumeAlignedAttr(Decl *D, const AttributeCommonInfo &CI, Expr *E, Expr *OE) {\n  if (!E->isValueDependent()) {\n    if (!(I = E->getIntegerConstantExpr(Context))) {\n      if (OE)\n      else\n        Diag(AttrLoc, diag::err_attribute_argument_type) << &TmpAttr << AANT_ArgumentIntegerConstant << E->getSourceRange();"},{p,1886,"static void handleCPUSpecificAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  for (unsigned ArgNo = 0; ArgNo < getNumAttributeArgs(AL); ++ArgNo) {\n    if (!AL.isArgIdent(ArgNo)) {\n      S.Diag(AL.getLoc(), diag::err_attribute_argument_type) << AL << AANT_ArgumentIdentifier;"},{p,4143,"/// handleModeAttr - This attribute modifies the width of a decl with primitive\n/// type.\n///\n/// Despite what would be logical, the mode attribute is a decl attribute, not a\n/// type attribute: \'int ** __attribute((mode(HI))) *G;\' tries to make \'G\' be\n/// HImode, not an intermediate pointer.\nstatic void handleModeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // This attribute isn\'t documented, but glibc uses it.  It changes\n  // the width of an int or unsigned int to the specified size.\n  if (!AL.isArgIdent(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_type) << AL << AANT_ArgumentIdentifier;"},{p,6075,"static void handleSwiftNewType(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.isArgIdent(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_type) << AL << AANT_ArgumentIdentifier;"},{p,6372,"static void handleHLSLResourceBindingAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.isArgIdent(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_type) << AL << AANT_ArgumentIdentifier;"},{p,6384,"static void handleHLSLResourceBindingAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.getNumArgs() == 2) {\n    if (!AL.isArgIdent(1)) {\n      S.Diag(AL.getLoc(), diag::err_attribute_argument_type) << AL << AANT_ArgumentIdentifier;"},{p,6540,"static void handleMSP430InterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.isArgExpr(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_type) << AL << AANT_ArgumentIntegerConstant;"},{p,6547,"static void handleMSP430InterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!(NumParams = NumParamsExpr->getIntegerConstantExpr(S.Context))) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_type) << AL << AANT_ArgumentIntegerConstant << NumParamsExpr->getSourceRange();"},{p,6619,"static void handleM68kInterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.isArgExpr(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_type) << AL << AANT_ArgumentIntegerConstant;"},{p,6628,"static void handleM68kInterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!MaybeNumParams) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_type) << AL << AANT_ArgumentIntegerConstant << NumParamsExpr->getSourceRange();"},{p,7574,"static void handleCFGuardAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.isArgIdent(0)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_argument_type) << AL << AANT_ArgumentIdentifier;"},{"clang/lib/Sema/SemaStmtAttr.cpp",388,"static Attr *handleOpenCLUnrollHint(Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range) {\n  if (A.getNumArgs() == 1) {\n    if (!(ArgVal = E->getIntegerConstantExpr(S.Context))) {\n      S.Diag(A.getLoc(), diag::err_attribute_argument_type) << A << AANT_ArgumentIntegerConstant << E->getSourceRange();"},{r,2399,"QualType Sema::BuildVectorType(QualType CurType, Expr *SizeExpr, SourceLocation AttrLoc) {\n  if (!VecSize) {\n    Diag(AttrLoc, diag::err_attribute_argument_type) << \"vector_size\" << AANT_ArgumentIntegerConstant << SizeExpr->getSourceRange();"},{r,2464,"/// Build an ext-vector type.\n///\n/// Run the required checks for the extended vector type.\nQualType Sema::BuildExtVectorType(QualType T, Expr *ArraySize, SourceLocation AttrLoc) {\n  if (!ArraySize->isTypeDependent() && !ArraySize->isValueDependent()) {\n    if (!vecSize) {\n      Diag(AttrLoc, diag::err_attribute_argument_type) << \"ext_vector_type\" << AANT_ArgumentIntegerConstant << ArraySize->getSourceRange();"},{r,2507,"QualType Sema::BuildMatrixType(QualType ElementTy, Expr *NumRows, Expr *NumCols, SourceLocation AttrLoc) {\n  // Both are row and column expressions are invalid.\n  if (!ValueRows && !ValueColumns) {\n    Diag(AttrLoc, diag::err_attribute_argument_type) << \"matrix_type\" << AANT_ArgumentIntegerConstant << RowRange << ColRange;"},{r,2513,"QualType Sema::BuildMatrixType(QualType ElementTy, Expr *NumRows, Expr *NumCols, SourceLocation AttrLoc) {\n  // Only the row expression is invalid.\n  if (!ValueRows) {\n    Diag(AttrLoc, diag::err_attribute_argument_type) << \"matrix_type\" << AANT_ArgumentIntegerConstant << RowRange;"},{r,2519,"QualType Sema::BuildMatrixType(QualType ElementTy, Expr *NumRows, Expr *NumCols, SourceLocation AttrLoc) {\n  // Only the column expression is invalid.\n  if (!ValueColumns) {\n    Diag(AttrLoc, diag::err_attribute_argument_type) << \"matrix_type\" << AANT_ArgumentIntegerConstant << ColRange;"},{r,5923,"/// Build an AddressSpace index from a constant expression and diagnose any\n/// errors related to invalid address_spaces. Returns true on successfully\n/// building an AddressSpace index.\nstatic bool BuildAddressSpaceIndex(Sema &S, LangAS &ASIdx, const Expr *AddrSpace, SourceLocation AttrLoc) {\n  if (!AddrSpace->isValueDependent()) {\n    if (!OptAddrSpace) {\n      S.Diag(AttrLoc, diag::err_attribute_argument_type) << \"\'address_space\'\" << AANT_ArgumentIntegerConstant << AddrSpace->getSourceRange();"},{r,5999,"static void HandleBTFTypeTagAttribute(QualType &Type, const ParsedAttr &Attr, TypeProcessingState &State) {\n  if (!StrLiteral) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_argument_type) << Attr << AANT_ArgumentString;"},{r,6120,"/// handleObjCOwnershipTypeAttr - Process an objc_ownership\n/// attribute on the specified type.\n///\n/// Returns \'true\' if the attribute was handled.\nstatic bool handleObjCOwnershipTypeAttr(TypeProcessingState &state, ParsedAttr &attr, QualType &type) {\n  if (!attr.isArgIdent(0)) {\n    S.Diag(AttrLoc, diag::err_attribute_argument_type) << attr << AANT_ArgumentString;"},{r,6274,"/// handleObjCGCTypeAttr - Process the __attribute__((objc_gc)) type\n/// attribute on the specified type.  Returns true to indicate that\n/// the attribute was handled, false to indicate that the type does\n/// not permit the attribute.\nstatic bool handleObjCGCTypeAttr(TypeProcessingState &state, ParsedAttr &attr, QualType &type) {\n  // Check the attribute arguments.\n  if (!attr.isArgIdent(0)) {\n    S.Diag(attr.getLoc(), diag::err_attribute_argument_type) << attr << AANT_ArgumentString;"},{r,7235,"static bool verifyValidIntegerConstantExpr(Sema &S, const ParsedAttr &Attr, llvm::APSInt &Result) {\n  S.Diag(Attr.getLoc(), diag::err_attribute_argument_type) << Attr << AANT_ArgumentIntegerConstant << AttrExpr->getSourceRange();"}}
},
},
["err_attribute_arm_builtin_alias"]={
["err_attribute_arm_builtin_alias"]={
[f]="\'__clang_arm_builtin_alias\' attribute can only be applied to an ARM builtin",
[f]="\'__clang_arm_builtin_alias\' attribute can only be applied to an ARM builtin",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'__clang_arm_builtin_alias\' attribute can only be applied to an ARM builtin",
[i]=m,
[j]="\'__clang_arm_builtin_alias\' attribute can only be applied to an ARM builtin",
[j]="\'__clang_arm_builtin_alias\' attribute can only be applied to an ARM builtin",
[c]=m,
[b]=a,
[b]="\'__clang_arm_builtin_alias\' attribute can only be applied to an ARM builtin",
[h]=o,
[i]=a,
[d]={W,1576908663,V},
[h]=n,
[k]={{p,5130,"static void handleArmBuiltinAliasAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n if ((IsAArch64 && !ArmSveAliasValid(S.Context, BuiltinID, AliasName) && !ArmSmeAliasValid(S.Context, BuiltinID, AliasName)) || (!IsAArch64 && !ArmMveAliasValid(BuiltinID, AliasName) && !ArmCdeAliasValid(BuiltinID, AliasName))) {\n    S.Diag(AL.getLoc(), diag::err_attribute_arm_builtin_alias);"}}
[g]={C,1576908663,B}
},
},
["err_attribute_arm_feature_sve_bits_unsupported"]={
["err_attribute_arm_feature_sve_bits_unsupported"]={
[f]="A is only supported when \'-msve-vector-bits=<bits>\' is specified with a value of 128, 256, 512, 1024 or 2048.",
[f]="A is only supported when \'-msve-vector-bits=<bits>\' is specified with a value of 128, 256, 512, 1024 or 2048.",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 is only supported when \'-msve-vector-bits=<bits>\' is specified with a value of 128, 256, 512, 1024 or 2048.",
[g]="%0 is only supported when \'-msve-vector-bits=<bits>\' is specified with a value of 128, 256, 512, 1024 or 2048.",
[c]=m,
[i]=m,
[b]="(.*?) is only supported when \'\\-msve\\-vector\\-bits\\=\\<bits\\>\' is specified with a value of 128, 256, 512, 1024 or 2048\\.",
[j]="(.*?) is only supported when \'\\-msve\\-vector\\-bits\\=\\<bits\\>\' is specified with a value of 128, 256, 512, 1024 or 2048\\.",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={G,1582847864,I}
[d]={T,1582847864,U},
[k]={{r,7306,"/// HandleArmSveVectorBitsTypeAttr - The \"arm_sve_vector_bits\" attribute is\n/// used to create fixed-length versions of sizeless SVE types defined by\n/// the ACLE, such as svint32_t and svbool_t.\nstatic void HandleArmSveVectorBitsTypeAttr(QualType &CurType, ParsedAttr &Attr, Sema &S) {\n  // Attribute is unsupported if \'-msve-vector-bits=<bits>\' isn\'t specified, or\n  // if <bits>+ syntax is used.\n  if (!S.getLangOpts().VScaleMin || S.getLangOpts().VScaleMin != S.getLangOpts().VScaleMax) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_arm_feature_sve_bits_unsupported) << Attr;"}}
},
},
["err_attribute_arm_mve_polymorphism"]={
["err_attribute_arm_mve_polymorphism"]={
[f]="\'__clang_arm_mve_strict_polymorphism\' attribute can only be applied to an MVE/NEON vector type",
[f]="\'__clang_arm_mve_strict_polymorphism\' attribute can only be applied to an MVE/NEON vector type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'__clang_arm_mve_strict_polymorphism\' attribute can only be applied to an MVE/NEON vector type",
[g]="\'__clang_arm_mve_strict_polymorphism\' attribute can only be applied to an MVE/NEON vector type",
[c]=m,
[i]=m,
[b]="\'__clang_arm_mve_strict_polymorphism\' attribute can only be applied to an MVE\\/NEON vector type",
[j]="\'__clang_arm_mve_strict_polymorphism\' attribute can only be applied to an MVE\\/NEON vector type",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"6d485ff455ea",1576172311,"Improve static checks for sprintf and __builtin___sprintf_chk"}
[d]={"6d485ff455ea",1576172311,"Improve static checks for sprintf and __builtin___sprintf_chk"},
[k]={{r,7356,"static void HandleArmMveStrictPolymorphismAttr(TypeProcessingState &State, QualType &CurType, ParsedAttr &Attr) {\n  if (!VT || VT->getVectorKind() != VectorType::NeonVector) {\n    State.getSema().Diag(Attr.getLoc(), diag::err_attribute_arm_mve_polymorphism);"}}
},
},
["err_attribute_bad_neon_vector_size"]={
["err_attribute_bad_neon_vector_size"]={
[f]="Neon vector size must be 64 or 128 bits",
[f]="Neon vector size must be 64 or 128 bits",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="Neon vector size must be 64 or 128 bits",
[i]=m,
[j]="Neon vector size must be 64 or 128 bits",
[j]="Neon vector size must be 64 or 128 bits",
[c]=m,
[b]=a,
[b]="Neon vector size must be 64 or 128 bits",
[h]=o,
[i]=a,
[d]={"118baf76115b",1289867544,"Add support for \"neon_vector_type\" and \"neon_polyvector_type\" attributes"},
[h]=n,
[k]={{r,7284,"/// HandleNeonVectorTypeAttr - The \"neon_vector_type\" and\n/// \"neon_polyvector_type\" attributes are used to create vector types that\n/// are mangled according to ARM\'s ABI.  Otherwise, these types are identical\n/// to those created with the \"vector_size\" attribute.  Unlike \"vector_size\"\n/// the argument to these Neon attributes is the number of vector elements,\n/// not the vector size in bytes.  The vector width and element type must\n/// match one of the standard Neon vector types.\nstatic void HandleNeonVectorTypeAttr(QualType &CurType, const ParsedAttr &Attr, Sema &S, VectorType::VectorKind VecKind) {\n  if (vecSize != 64 && vecSize != 128) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_bad_neon_vector_size) << CurType;"}}
[g]={"118baf76115b",1289867544,"Add support for \"neon_vector_type\" and \"neon_polyvector_type\" attributes"}
},
},
["err_attribute_bad_rvv_vector_size"]={
["err_attribute_bad_rvv_vector_size"]={
[f]="invalid RVV vector size \'A\', expected size is \'B\' based on LMUL of type and \'-mrvv-vector-bits\'",
[f]="invalid RVV vector size \'A\', expected size is \'B\' based on LMUL of type and \'-mrvv-vector-bits\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="invalid RVV vector size \'%0\', expected size is \'%1\' based on LMUL of type and \'-mrvv-vector-bits\'",
[g]="invalid RVV vector size \'%0\', expected size is \'%1\' based on LMUL of type and \'-mrvv-vector-bits\'",
[c]=m,
[i]=m,
[b]="invalid RVV vector size \'(.*?)\', expected size is \'(.*?)\' based on LMUL of type and \'\\-mrvv\\-vector\\-bits\'",
[j]="invalid RVV vector size \'(.*?)\', expected size is \'(.*?)\' based on LMUL of type and \'\\-mrvv\\-vector\\-bits\'",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={w,1625925174,v}
[d]={N,1625925174,M},
[k]={{r,7410,"/// HandleRISCVRVVVectorBitsTypeAttr - The \"riscv_rvv_vector_bits\" attribute is\n/// used to create fixed-length versions of sizeless RVV types such as\n/// vint8m1_t_t.\nstatic void HandleRISCVRVVVectorBitsTypeAttr(QualType &CurType, ParsedAttr &Attr, Sema &S) {\n  if (VecSize != ExpectedSize) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_bad_rvv_vector_size) << VecSize << ExpectedSize;"}}
},
},
["err_attribute_bad_sve_vector_size"]={
["err_attribute_bad_sve_vector_size"]={
[f]="invalid SVE vector size \'A\', must match value set by \'-msve-vector-bits\' (\'B\')",
[f]="invalid SVE vector size \'A\', must match value set by \'-msve-vector-bits\' (\'B\')",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="invalid SVE vector size \'%0\', must match value set by \'-msve-vector-bits\' (\'%1\')",
[g]="invalid SVE vector size \'%0\', must match value set by \'-msve-vector-bits\' (\'%1\')",
[c]=m,
[i]=m,
[b]="invalid SVE vector size \'(.*?)\', must match value set by \'\\-msve\\-vector\\-bits\' \\(\'(.*?)\'\\)",
[j]="invalid SVE vector size \'(.*?)\', must match value set by \'\\-msve\\-vector\\-bits\' \\(\'(.*?)\'\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={G,1582847864,I}
[d]={T,1582847864,U},
[k]={{r,7327,"/// HandleArmSveVectorBitsTypeAttr - The \"arm_sve_vector_bits\" attribute is\n/// used to create fixed-length versions of sizeless SVE types defined by\n/// the ACLE, such as svint32_t and svbool_t.\nstatic void HandleArmSveVectorBitsTypeAttr(QualType &CurType, ParsedAttr &Attr, Sema &S) {\n  // The attribute vector size must match -msve-vector-bits.\n  if (VecSize != S.getLangOpts().VScaleMin * 128) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_bad_sve_vector_size) << VecSize << S.getLangOpts().VScaleMin * 128;"}}
},
},
["err_attribute_bounds_for_function"]={
["err_attribute_bounds_for_function"]={
[f]="A attribute references parameter B, but the function C has only D parameters",
[f]="A attribute references parameter B, but the function C has only D parameters",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute references parameter %1, but the function %2 has only %3 parameters",
[g]="%0 attribute references parameter %1, but the function %2 has only %3 parameters",
[c]=m,
[i]=m,
[b]="(.*?) attribute references parameter (.*?), but the function (.*?) has only (.*?) parameters",
[j]="(.*?) attribute references parameter (.*?), but the function (.*?) has only (.*?) parameters",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={R,1616787805,S}
[d]={db,1616787805,cb},
[k]={{p,954,"static void handleDiagnoseAsBuiltinAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  for (unsigned I = 1; I < AL.getNumArgs(); ++I) {\n    if (Index > DeclFD->getNumParams()) {\n      S.Diag(AL.getLoc(), diag::err_attribute_bounds_for_function) << AL << Index << DeclFD << DeclFD->getNumParams();"}}
},
},
["err_attribute_builtin_alias"]={
["err_attribute_builtin_alias"]={
[f]="A attribute can only be applied to a ARM, HLSL or RISC-V builtin",
[f]="A attribute can only be applied to a ARM, HLSL or RISC-V builtin",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute can only be applied to a ARM, HLSL or RISC-V builtin",
[g]="%0 attribute can only be applied to a ARM, HLSL or RISC-V builtin",
[c]=m,
[i]=m,
[b]="(.*?) attribute can only be applied to a ARM, HLSL or RISC\\-V builtin",
[j]="(.*?) attribute can only be applied to a ARM, HLSL or RISC\\-V builtin",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={gb,1607502387,fb}
[d]={"b83b23275b74",1607502387,"Introduce -Wreserved-identifier"},
[k]={{p,5154,"static void handleBuiltinAliasAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if ((IsAArch64 && !ArmSveAliasValid(S.Context, BuiltinID, AliasName)) || (IsARM && !ArmMveAliasValid(BuiltinID, AliasName) && !ArmCdeAliasValid(BuiltinID, AliasName)) || (IsRISCV && !RISCVAliasValid(BuiltinID, AliasName)) || (!IsAArch64 && !IsARM && !IsRISCV && !IsHLSL)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_builtin_alias) << AL;"}}
},
},
["err_attribute_cleanup_arg_not_function"]={
["err_attribute_cleanup_arg_not_function"]={
[f]="\'cleanup\' argument ...is not a ...function",
[f]="\'cleanup\' argument ...is not a ...function",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'cleanup\' argument %select{|%1 |%1 }0is not a %select{||single }0function",
[g]="\'cleanup\' argument %select{|%1 |%1 }0is not a %select{||single }0function",
[c]=m,
[i]=m,
[b]="\'cleanup\' argument (?:|(.*?) |(.*?) )is not a (?:||single )function",
[j]="\'cleanup\' argument (?:|(.*?) |(.*?) )is not a (?:||single )function",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{p,3250,"static void handleCleanupAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // gcc only allows for simple identifiers. Since we support more than gcc, we\n  // will warn the user.\n  if (auto *DRE = dyn_cast<DeclRefExpr>(E)) {\n    if (!FD) {\n      S.Diag(Loc, diag::err_attribute_cleanup_arg_not_function) << 1 << NI.getName();"},{p,3259,"static void handleCleanupAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // gcc only allows for simple identifiers. Since we support more than gcc, we\n  // will warn the user.\n  if (auto *DRE = dyn_cast<DeclRefExpr>(E)) {\n  } else if (auto *ULE = dyn_cast<UnresolvedLookupExpr>(E)) {\n    if (!FD) {\n      S.Diag(Loc, diag::err_attribute_cleanup_arg_not_function) << 2 << NI.getName();"},{p,3265,"static void handleCleanupAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // gcc only allows for simple identifiers. Since we support more than gcc, we\n  // will warn the user.\n  if (auto *DRE = dyn_cast<DeclRefExpr>(E)) {\n  } else if (auto *ULE = dyn_cast<UnresolvedLookupExpr>(E)) {\n  } else {\n    S.Diag(Loc, diag::err_attribute_cleanup_arg_not_function) << 0;"}}
},
},
["err_attribute_cleanup_func_arg_incompatible_type"]={
["err_attribute_cleanup_func_arg_incompatible_type"]={
[f]="\'cleanup\' function A parameter has type B which is incompatible with type C",
[f]="\'cleanup\' function A parameter has type B which is incompatible with type C",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'cleanup\' function %0 parameter has %diff{type $ which is incompatible with type $|incompatible type}1,2",
[g]="\'cleanup\' function %0 parameter has %diff{type $ which is incompatible with type $|incompatible type}1,2",
[c]=m,
[i]=m,
[b]="\'cleanup\' function (.*?) parameter has (?:type (.*?) which is incompatible with type (.*?)|incompatible type)",
[j]="\'cleanup\' function (.*?) parameter has (?:type (.*?) which is incompatible with type (.*?)|incompatible type)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{p,3279,"static void handleCleanupAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (S.CheckAssignmentConstraints(FD->getParamDecl(0)->getLocation(), ParamTy, Ty) != Sema::Compatible) {\n    S.Diag(Loc, diag::err_attribute_cleanup_func_arg_incompatible_type) << NI.getName() << ParamTy << Ty;"}}
},
},
["err_attribute_cleanup_func_must_take_one_arg"]={
["err_attribute_cleanup_func_must_take_one_arg"]={
[f]="\'cleanup\' function A must take 1 parameter",
[f]="\'cleanup\' function A must take 1 parameter",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'cleanup\' function %0 must take 1 parameter",
[g]="\'cleanup\' function %0 must take 1 parameter",
[c]=m,
[i]=m,
[b]="\'cleanup\' function (.*?) must take 1 parameter",
[j]="\'cleanup\' function (.*?) must take 1 parameter",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{p,3270,"static void handleCleanupAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (FD->getNumParams() != 1) {\n    S.Diag(Loc, diag::err_attribute_cleanup_func_must_take_one_arg) << NI.getName();"}}
},
},
["err_attribute_dll_ambiguous_default_ctor"]={
["err_attribute_dll_ambiguous_default_ctor"]={
[f]="\'__declspec(dllexport)\' cannot be applied to more than one default constructor in A",
[f]="\'__declspec(dllexport)\' cannot be applied to more than one default constructor in A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'__declspec(dllexport)\' cannot be applied to more than one default constructor in %0",
[g]="\'__declspec(dllexport)\' cannot be applied to more than one default constructor in %0",
[c]=m,
[i]=m,
[b]="\'__declspec\\(dllexport\\)\' cannot be applied to more than one default constructor in (.*?)",
[j]="\'__declspec\\(dllexport\\)\' cannot be applied to more than one default constructor in (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"474b323a0387",1451540206,"[MSVC Compat] Diagnose multiple default ctors for dllexport\'d classes"}
[d]={"474b323a0387",1451540206,"[MSVC Compat] Diagnose multiple default ctors for dllexport\'d classes"},
[k]={{v,5370,"static void checkForMultipleExportedDefaultConstructors(Sema &S, CXXRecordDecl *Class) {\n  for (Decl *Member : Class->decls()) {\n    if (LastExportedDefaultCtor) {\n      S.Diag(LastExportedDefaultCtor->getLocation(), diag::err_attribute_dll_ambiguous_default_ctor) << Class;"}}
},
},
["err_attribute_dll_deleted"]={
["err_attribute_dll_deleted"]={
[f]="attribute A cannot be applied to a deleted function",
[f]="attribute A cannot be applied to a deleted function",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="attribute %q0 cannot be applied to a deleted function",
[g]="attribute %q0 cannot be applied to a deleted function",
[c]=m,
[i]=m,
[b]="attribute (.*?) cannot be applied to a deleted function",
[j]="attribute (.*?) cannot be applied to a deleted function",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"9de0a57687b9",1401382279,"Sema: Functions with dll attributes cannot be deleted"}
[d]={"9de0a57687b9",1401382279,"Sema: Functions with dll attributes cannot be deleted"},
[k]={{v,15231,"void Sema::SetDeclDeleted(Decl *Dcl, SourceLocation DelLoc) {\n  // dllimport/dllexport cannot be deleted.\n  if (const InheritableAttr *DLLAttr = getDLLAttr(Fn)) {\n    Diag(Fn->getLocation(), diag::err_attribute_dll_deleted) << DLLAttr;"}}
},
},
["err_attribute_dll_lambda"]={
["err_attribute_dll_lambda"]={
[f]="lambda cannot be declared A",
[f]="lambda cannot be declared A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="lambda cannot be declared %0",
[g]="lambda cannot be declared %0",
[c]=m,
[i]=m,
[b]="lambda cannot be declared (.*?)",
[j]="lambda cannot be declared (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"5869ec4c6c62",1442351130,"MS ABI: Don\'t allow dllexport/import on lambdas"}
[d]={"5869ec4c6c62",1442351130,"MS ABI: Don\'t allow dllexport/import on lambdas"},
[k]={{p,1875,"static void handleCPUSpecificAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (const auto *MD = dyn_cast<CXXMethodDecl>(D)) {\n    if (MD->getParent()->isLambda()) {\n      S.Diag(AL.getLoc(), diag::err_attribute_dll_lambda) << AL;"},{p,7100,"static void handleDLLAttr(Sema &S, Decl *D, const ParsedAttr &A) {\n  if (const auto *MD = dyn_cast<CXXMethodDecl>(D)) {\n    if ((S.Context.getTargetInfo().shouldDLLImportComdatSymbols()) && MD->getParent()->isLambda()) {\n      S.Diag(A.getRange().getBegin(), diag::err_attribute_dll_lambda) << A;"}}
},
},
["err_attribute_dll_member_of_dll_class"]={
["err_attribute_dll_member_of_dll_class"]={
[f]="attribute A cannot be applied to member of B class",
[f]="attribute A cannot be applied to member of B class",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="attribute %q0 cannot be applied to member of %q1 class",
[g]="attribute %q0 cannot be applied to member of %q1 class",
[c]=m,
[i]=m,
[b]="attribute (.*?) cannot be applied to member of (.*?) class",
[j]="attribute (.*?) cannot be applied to member of (.*?) class",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"496524b4484b",1401502129,"Diagnose dll attribute on member of class that already has a dll attribute"}
[d]={"496524b4484b",1401502129,"Diagnose dll attribute on member of class that already has a dll attribute"},
[k]={{v,5517,"/// Check class-level dllimport/dllexport attribute.\nvoid Sema::checkClassLevelDLLAttribute(CXXRecordDecl *Class) {\n  if (Context.getTargetInfo().shouldDLLImportComdatSymbols() && !ClassAttr->isInherited()) {\n    // Diagnose dll attributes on members of class with dll attribute.\n    for (Decl *Member : Class->decls()) {\n      Diag(MemberAttr->getLocation(), diag::err_attribute_dll_member_of_dll_class) << MemberAttr << ClassAttr;"}}
},
},
["err_attribute_dll_not_extern"]={
["err_attribute_dll_not_extern"]={
[f]="A must have external linkage when declared B",
[f]="A must have external linkage when declared B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%q0 must have external linkage when declared %q1",
[g]="%q0 must have external linkage when declared %q1",
[c]=m,
[i]=m,
[b]="(.*?) must have external linkage when declared (.*?)",
[j]="(.*?) must have external linkage when declared (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"8ca0bfc57ff5",1396277818,"Sema: Require external linkage for dll attributes"}
[d]={"8ca0bfc57ff5",1396277818,"Sema: Require external linkage for dll attributes"},
[k]={{q,6232,"static void checkAttributesAfterMerging(Sema &S, NamedDecl &ND) {\n  if (const InheritableAttr *Attr = getDLLAttr(&ND)) {\n    if ((ND.isExternallyVisible() && AnonNSInMicrosoftMode) || (!AnonNSInMicrosoftMode && (!ND.isExternallyVisible() || (VD && VD->isStaticLocal())))) {\n      S.Diag(ND.getLocation(), diag::err_attribute_dll_not_extern) << &ND << Attr;"},{v,5504,"/// Check class-level dllimport/dllexport attribute.\nvoid Sema::checkClassLevelDLLAttribute(CXXRecordDecl *Class) {\n  if (!Class->isExternallyVisible()) {\n    Diag(Class->getLocation(), diag::err_attribute_dll_not_extern) << Class << ClassAttr;"}}
},
},
["err_attribute_dll_redeclaration"]={
["err_attribute_dll_redeclaration"]={
[f]="redeclaration of A cannot add B attribute",
[f]="redeclaration of A cannot add B attribute",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="redeclaration of %q0 cannot add %q1 attribute",
[g]="redeclaration of %q0 cannot add %q1 attribute",
[c]=m,
[i]=m,
[b]="redeclaration of (.*?) cannot add (.*?) attribute",
[j]="redeclaration of (.*?) cannot add (.*?) attribute",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"82f0b06749e5",1396277775,"Sema: Check dll attributes on redeclarations"}
[d]={"82f0b06749e5",1396277775,"Sema: Check dll attributes on redeclarations"},
[k]={{q,6312,"static void checkDLLAttributeRedeclaration(Sema &S, NamedDecl *OldDecl, NamedDecl *NewDecl, bool IsSpecialization, bool IsDefinition) {\n  if (AddsAttr && !IsSpecialization && !OldDecl->isImplicit()) {\n    unsigned DiagID = JustWarn ? diag::warn_attribute_dll_redeclaration : diag::err_attribute_dll_redeclaration;"}}
},
},
["err_attribute_dll_thread_local"]={
["err_attribute_dll_thread_local"]={
[f]="A cannot be thread local when declared B",
[f]="A cannot be thread local when declared B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%q0 cannot be thread local when declared %q1",
[g]="%q0 cannot be thread local when declared %q1",
[c]=m,
[i]=m,
[b]="(.*?) cannot be thread local when declared (.*?)",
[j]="(.*?) cannot be thread local when declared (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"5da21da4f6d7",1412405514,"MS ABI: Disallow dllimported/exported variables from having TLS"}
[d]={"5da21da4f6d7",1412405514,"MS ABI: Disallow dllimported/exported variables from having TLS"},
[k]={{q,12635,"/// FinalizeDeclaration - called by ParseDeclarationAfterDeclarator to perform\n/// any semantic actions necessary after any initializer has been attached.\nvoid Sema::FinalizeDeclaration(Decl *ThisDecl) {\n  // dllimport/dllexport variables cannot be thread local, their TLS index\n  // isn\'t exported with the variable.\n  if (DLLAttr && VD->getTLSKind()) {\n    if (F && getDLLAttr(F)) {\n    } else {\n      Diag(VD->getLocation(), diag::err_attribute_dll_thread_local) << VD << DLLAttr;"}}
},
},
["err_attribute_dllimport_data_definition"]={
["err_attribute_dllimport_data_definition"]={
[f]="definition of dllimport data",
[f]="definition of dllimport data",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="definition of dllimport data",
[i]=m,
[j]="definition of dllimport data",
[j]="definition of dllimport data",
[c]=m,
[b]=a,
[b]="definition of dllimport data",
[h]=o,
[i]=a,
[d]={"8e9791f62c45",1393450033,"Sema: Definition of dllimport globals is not allowed"},
[h]=n,
[k]={{q,11505,"/// AddInitializerToDecl - Adds the initializer Init to the\n/// declaration dcl. If DirectInit is true, this is C++ direct\n/// initialization rather than copy initialization.\nvoid Sema::AddInitializerToDecl(Decl *RealDecl, Expr *Init, bool DirectInit) {\n  // dllimport cannot be used on variable definitions.\n  if (VDecl->hasAttr<DLLImportAttr>() && !VDecl->isStaticDataMember()) {\n    Diag(VDecl->getLocation(), diag::err_attribute_dllimport_data_definition);"}}
[g]={"8e9791f62c45",1393450033,"Sema: Definition of dllimport globals is not allowed"}
},
},
["err_attribute_dllimport_function_definition"]={
["err_attribute_dllimport_function_definition"]={
[f]="dllimport cannot be applied to non-inline function definition",
[f]="dllimport cannot be applied to non-inline function definition",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="dllimport cannot be applied to non-inline function definition",
[g]="dllimport cannot be applied to non-inline function definition",
[c]=m,
[i]=m,
[b]="dllimport cannot be applied to non\\-inline function definition",
[j]="dllimport cannot be applied to non\\-inline function definition",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"b0f2f146bb65",1400191669,"Allow dllimport/dllexport on inline functions and adjust the linkage."}
[d]={"b0f2f146bb65",1400191669,"Allow dllimport/dllexport on inline functions and adjust the linkage."},
[k]={{q,13458,"Decl *Sema::ActOnStartOfFunctionDef(Scope *FnBodyScope, Decl *D, SkipBodyInfo *SkipBody, FnBodyKind BodyKind) {\n  // dllimport cannot be applied to non-inline function definitions.\n  if (FD->hasAttr<DLLImportAttr>() && !FD->isInlined() && !FD->isTemplateInstantiation()) {\n    Diag(FD->getLocation(), diag::err_attribute_dllimport_function_definition);"}}
},
},
["err_attribute_dllimport_function_specialization_definition"]={
["err_attribute_dllimport_function_specialization_definition"]={
[f]="cannot define non-inline dllimport template specialization",
[f]="cannot define non-inline dllimport template specialization",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot define non-inline dllimport template specialization",
[g]="cannot define non-inline dllimport template specialization",
[c]=m,
[i]=m,
[b]="cannot define non\\-inline dllimport template specialization",
[j]="cannot define non\\-inline dllimport template specialization",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={w,1625925174,v}
[d]={N,1625925174,M},
[k]={{q,6341,"static void checkDLLAttributeRedeclaration(Sema &S, NamedDecl *OldDecl, NamedDecl *NewDecl, bool IsSpecialization, bool IsDefinition) {\n  if (OldImportAttr && !HasNewAttr && (!IsInline || (IsMicrosoftABI && IsTemplate)) && !IsStaticDataMember && !NewDecl->isLocalExternDecl() && !IsQualifiedFriend) {\n    if (IsMicrosoftABI && IsDefinition) {\n      if (IsSpecialization) {\n        S.Diag(NewDecl->getLocation(), diag::err_attribute_dllimport_function_specialization_definition);"}}
},
},
["err_attribute_dllimport_static_field_definition"]={
["err_attribute_dllimport_static_field_definition"]={
[f]="definition of dllimport static field not allowed",
[f]="definition of dllimport static field not allowed",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="definition of dllimport static field not allowed",
[i]=m,
[j]="definition of dllimport static field not allowed",
[j]="definition of dllimport static field not allowed",
[c]=m,
[b]=a,
[b]="definition of dllimport static field not allowed",
[h]=o,
[i]=a,
[d]={"078d2f89cd6a",1401382220,"Sema: Check dll attributes on static data members"},
[h]=n,
[k]={{q,12618,"/// FinalizeDeclaration - called by ParseDeclarationAfterDeclarator to perform\n/// any semantic actions necessary after any initializer has been attached.\nvoid Sema::FinalizeDeclaration(Decl *ThisDecl) {\n  // Imported static data members cannot be defined out-of-line.\n  if (const auto *IA = dyn_cast_or_null<DLLImportAttr>(DLLAttr)) {\n    if (VD->isStaticDataMember() && VD->isOutOfLine() && VD->isThisDeclarationADefinition()) {\n      Diag(VD->getLocation(), IsClassTemplateMember ? diag::warn_attribute_dllimport_static_field_definition : diag::err_attribute_dllimport_static_field_definition);"}}
[g]={"078d2f89cd6a",1401382220,"Sema: Check dll attributes on static data members"}
},
},
["err_attribute_integers_only"]={
["err_attribute_integers_only"]={
[f]="A attribute argument may only refer to a function parameter of integer type",
[f]="A attribute argument may only refer to a function parameter of integer type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute argument may only refer to a function parameter of integer type",
[g]="%0 attribute argument may only refer to a function parameter of integer type",
[c]=m,
[i]=m,
[b]="(.*?) attribute argument may only refer to a function parameter of integer type",
[j]="(.*?) attribute argument may only refer to a function parameter of integer type",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"a747027bc645",1482195942,"Add the alloc_size attribute to clang."}
[d]={"a747027bc645",1482195942,"Add the alloc_size attribute to clang."},
[k]={{p,715,"/// Checks to be sure that the given parameter number is in bounds, and\n/// is an integral type. Will emit appropriate diagnostics if this returns\n/// false.\n///\n/// AttrArgNo is used to actually retrieve the argument, so it\'s base-0.\ntemplate <typename AttrInfo> static bool checkParamIsIntegerType(Sema &S, const Decl *D, const AttrInfo &AI, unsigned AttrArgNo) {\n  if (!ParamTy->isIntegerType() && !ParamTy->isCharType()) {\n    S.Diag(SrcLoc, diag::err_attribute_integers_only) << AI << getFunctionOrMethodParamRange(D, Idx.getASTIndex());"},{p,1560,"void Sema::AddAllocAlignAttr(Decl *D, const AttributeCommonInfo &CI, Expr *ParamExpr) {\n  if (!Ty->isDependentType() && !Ty->isIntegralType(Context) && !Ty->isAlignValT()) {\n    Diag(ParamExpr->getBeginLoc(), diag::err_attribute_integers_only) << &TmpAttr << FuncDecl->getParamDecl(Idx.getASTIndex())->getSourceRange();"}}
},
},
["err_attribute_invalid_argument"]={
["err_attribute_invalid_argument"]={
[f]="... is an invalid argument to attribute A",
[f]="... is an invalid argument to attribute A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{a reference type|an array type|a non-vector or non-vectorizable scalar type}0 is an invalid argument to attribute %1",
[g]="%select{a reference type|an array type|a non-vector or non-vectorizable scalar type}0 is an invalid argument to attribute %1",
[c]=m,
[i]=m,
[b]="(?:a reference type|an array type|a non\\-vector or non\\-vectorizable scalar type) is an invalid argument to attribute (.*?)",
[j]="(?:a reference type|an array type|a non\\-vector or non\\-vectorizable scalar type) is an invalid argument to attribute (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"d293cbd5fd44",1564077051,"Add lifetime categories attributes"}
[d]={"d293cbd5fd44",1564077051,"Add lifetime categories attributes"},
[k]={{p,2865,"static void handleVecTypeHint(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!ParmType->isExtVectorType() && !ParmType->isFloatingType() && (ParmType->isBooleanType() || !ParmType->isIntegralType(S.getASTContext()))) {\n    S.Diag(AL.getLoc(), diag::err_attribute_invalid_argument) << 2 << AL;"},{p,4608,"static void handleLifetimeCategoryAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.hasParsedType()) {\n    if (SelectIdx != ~0U) {\n      S.Diag(AL.getLoc(), diag::err_attribute_invalid_argument) << SelectIdx << AL;"}}
},
},
["err_attribute_invalid_bitint_vector_type"]={
["err_attribute_invalid_bitint_vector_type"]={
[f]="\'_BitInt\' vector element width must be ...",
[f]="\'_BitInt\' vector element width must be ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'_BitInt\' vector element width must be %select{a power of 2|at least as wide as \'CHAR_BIT\'}0",
[g]="\'_BitInt\' vector element width must be %select{a power of 2|at least as wide as \'CHAR_BIT\'}0",
[c]=m,
[i]=m,
[b]="\'_BitInt\' vector element width must be (?:a power of 2|at least as wide as \'CHAR_BIT\')",
[j]="\'_BitInt\' vector element width must be (?:a power of 2|at least as wide as \'CHAR_BIT\')",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={w,1625925174,v}
[d]={N,1625925174,M},
[k]={{r,2389,"QualType Sema::BuildVectorType(QualType CurType, Expr *SizeExpr, SourceLocation AttrLoc) {\n  // Only support _BitInt elements with byte-sized power of 2 NumBits.\n  if (const auto *BIT = CurType->getAs<BitIntType>()) {\n    if (!llvm::isPowerOf2_32(NumBits) || NumBits < 8) {\n      Diag(AttrLoc, diag::err_attribute_invalid_bitint_vector_type) << (NumBits < 8);"},{r,2456,"/// Build an ext-vector type.\n///\n/// Run the required checks for the extended vector type.\nQualType Sema::BuildExtVectorType(QualType T, Expr *ArraySize, SourceLocation AttrLoc) {\n  // Only support _BitInt elements with byte-sized power of 2 NumBits.\n  if (T->isBitIntType()) {\n    if (!llvm::isPowerOf2_32(NumBits) || NumBits < 8) {\n      Diag(AttrLoc, diag::err_attribute_invalid_bitint_vector_type) << (NumBits < 8);"}}
},
},
["err_attribute_invalid_implicit_this_argument"]={
["err_attribute_invalid_implicit_this_argument"]={
[f]="A attribute is invalid for the implicit this argument",
[f]="A attribute is invalid for the implicit this argument",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute is invalid for the implicit this argument",
[g]="%0 attribute is invalid for the implicit this argument",
[c]=m,
[i]=m,
[b]="(.*?) attribute is invalid for the implicit this argument",
[j]="(.*?) attribute is invalid for the implicit this argument",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"743682bb9f66",1289896543,"Re-work the handling of implicit \'this\' arguments and silly GCC-style attribute"}
[d]={"743682bb9f66",1289896543,"Re-work the handling of implicit \'this\' arguments and silly GCC-style attribute"},
[k]={{p,289,"/// Check if IdxExpr is a valid parameter index for a function or\n/// instance method D.  May output an error.\n///\n/// \\returns true if IdxExpr is a valid index.\ntemplate <typename AttrInfo> static bool checkFunctionOrMethodParameterIndex(Sema &S, const Decl *D, const AttrInfo &AI, unsigned AttrArgNum, const Expr *IdxExpr, ParamIdx &Idx, bool CanIndexImplicitThis = false) {\n  if (HasImplicitThisParam && !CanIndexImplicitThis) {\n    if (IdxSource == 1) {\n      S.Diag(getAttrLoc(AI), diag::err_attribute_invalid_implicit_this_argument) << &AI << IdxExpr->getSourceRange();"}}
},
},
["err_attribute_invalid_matrix_type"]={
["err_attribute_invalid_matrix_type"]={
[f]="invalid matrix element type A",
[f]="invalid matrix element type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="invalid matrix element type %0",
[g]="invalid matrix element type %0",
[c]=m,
[i]=m,
[b]="invalid matrix element type (.*?)",
[j]="invalid matrix element type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={C,1576908663,B}
[d]={W,1576908663,V},
[k]={{r,2492,"QualType Sema::BuildMatrixType(QualType ElementTy, Expr *NumRows, Expr *NumCols, SourceLocation AttrLoc) {\n  // Check element type, if it is not dependent.\n  if (!ElementTy->isDependentType() && !MatrixType::isValidElementType(ElementTy)) {\n    Diag(AttrLoc, diag::err_attribute_invalid_matrix_type) << ElementTy;"}}
},
},
["err_attribute_invalid_on_decl"]={
["err_attribute_invalid_on_decl"]={
[f]="A... cannot be applied to a declaration",
[f]="A... cannot be applied to a declaration",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0%select{ attribute|}1 cannot be applied to a declaration",
[g]="%0%select{ attribute|}1 cannot be applied to a declaration",
[c]=m,
[i]=m,
[b]="(.*?)(?: attribute|) cannot be applied to a declaration",
[j]="(.*?)(?: attribute|) cannot be applied to a declaration",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={w,1625925174,v}
[d]={N,1625925174,M},
[k]={{p,7776,"/// ProcessDeclAttribute - Apply the specific attribute to the specified decl if\n/// the attribute applies to decls.  If the attribute is a type attribute, just\n/// silently ignore it if a GNU attribute.\nstatic void ProcessDeclAttribute(Sema &S, Scope *scope, Decl *D, const ParsedAttr &AL, const Sema::ProcessDeclAttributeOptions &Options) {\n  default:\n    S.Diag(AL.getLoc(), diag::err_attribute_invalid_on_decl) << AL << AL.isRegularKeywordAttribute() << D->getLocation();"},{"clang/utils/TableGen/ClangAttrEmitter.cpp",3371,"static void GenerateAppertainsTo(const Record &Attr, raw_ostream &OS) {\n  if (DeclSubjects.empty()) {\n    // If there are no decl subjects but there are stmt subjects, diagnose\n    // trying to apply a statement attribute to a declaration.\n    if (!StmtSubjects.empty()) {\n      OS << \"  S.Diag(AL.getLoc(), diag::err_attribute_invalid_on_decl)\\n\";"}}
},
},
["err_attribute_invalid_rvv_type"]={
["err_attribute_invalid_rvv_type"]={
[f]="A attribute applied to non-RVV type B",
[f]="A attribute applied to non-RVV type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute applied to non-RVV type %1",
[g]="%0 attribute applied to non-RVV type %1",
[c]=m,
[i]=m,
[b]="(.*?) attribute applied to non\\-RVV type (.*?)",
[j]="(.*?) attribute applied to non\\-RVV type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={w,1625925174,v}
[d]={N,1625925174,M},
[k]={{r,7396,"/// HandleRISCVRVVVectorBitsTypeAttr - The \"riscv_rvv_vector_bits\" attribute is\n/// used to create fixed-length versions of sizeless RVV types such as\n/// vint8m1_t_t.\nstatic void HandleRISCVRVVVectorBitsTypeAttr(QualType &CurType, ParsedAttr &Attr, Sema &S) {\n  // Attribute can only be attached to a single RVV vector type.\n  if (!CurType->isRVVVLSBuiltinType()) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_invalid_rvv_type) << Attr << CurType;"}}
},
},
["err_attribute_invalid_size"]={
["err_attribute_invalid_size"]={
[f]="vector size not an integral multiple of component size",
[f]="vector size not an integral multiple of component size",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="vector size not an integral multiple of component size",
[i]=m,
[j]="vector size not an integral multiple of component size",
[j]="vector size not an integral multiple of component size",
[c]=m,
[b]=a,
[b]="vector size not an integral multiple of component size",
[h]=o,
[i]=a,
[d]={A,1236199783,z},
[h]=n,
[k]={{r,2421,"QualType Sema::BuildVectorType(QualType CurType, Expr *SizeExpr, SourceLocation AttrLoc) {\n  if (!TypeSize || VectorSizeBits % TypeSize) {\n    Diag(AttrLoc, diag::err_attribute_invalid_size) << SizeExpr->getSourceRange();"}}
[g]={s,1236199783,r}
},
},
["err_attribute_invalid_sve_type"]={
["err_attribute_invalid_sve_type"]={
[f]="A attribute applied to non-SVE type B",
[f]="A attribute applied to non-SVE type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute applied to non-SVE type %1",
[g]="%0 attribute applied to non-SVE type %1",
[c]=m,
[i]=m,
[b]="(.*?) attribute applied to non\\-SVE type (.*?)",
[j]="(.*?) attribute applied to non\\-SVE type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={G,1582847864,I}
[d]={T,1582847864,U},
[k]={{r,7334,"/// HandleArmSveVectorBitsTypeAttr - The \"arm_sve_vector_bits\" attribute is\n/// used to create fixed-length versions of sizeless SVE types defined by\n/// the ACLE, such as svint32_t and svbool_t.\nstatic void HandleArmSveVectorBitsTypeAttr(QualType &CurType, ParsedAttr &Attr, Sema &S) {\n  // Attribute can only be attached to a single SVE vector or predicate type.\n  if (!CurType->isVLSTBuiltinType()) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_invalid_sve_type) << Attr << CurType;"}}
},
},
["err_attribute_invalid_vector_type"]={
["err_attribute_invalid_vector_type"]={
[f]="invalid vector element type A",
[f]="invalid vector element type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="invalid vector element type %0",
[g]="invalid vector element type %0",
[c]=m,
[i]=m,
[b]="invalid vector element type (.*?)",
[j]="invalid vector element type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{r,2382,"QualType Sema::BuildVectorType(QualType CurType, Expr *SizeExpr, SourceLocation AttrLoc) {\n  // The base type must be integer (not Boolean or enumeration) or float, and\n  // can\'t already be a vector.\n  if ((!CurType->isDependentType() && (!CurType->isBuiltinType() || CurType->isBooleanType() || (!CurType->isIntegerType() && !CurType->isRealFloatingType())) && !CurType->isBitIntType()) || CurType->isArrayType()) {\n    Diag(AttrLoc, diag::err_attribute_invalid_vector_type) << CurType;"},{r,2448,"/// Build an ext-vector type.\n///\n/// Run the required checks for the extended vector type.\nQualType Sema::BuildExtVectorType(QualType T, Expr *ArraySize, SourceLocation AttrLoc) {\n  if ((!T->isDependentType() && !T->isIntegerType() && !T->isRealFloatingType()) || (IsNoBoolVecLang && T->isBooleanType())) {\n    Diag(AttrLoc, diag::err_attribute_invalid_vector_type) << T;"},{r,7274,"/// HandleNeonVectorTypeAttr - The \"neon_vector_type\" and\n/// \"neon_polyvector_type\" attributes are used to create vector types that\n/// are mangled according to ARM\'s ABI.  Otherwise, these types are identical\n/// to those created with the \"vector_size\" attribute.  Unlike \"vector_size\"\n/// the argument to these Neon attributes is the number of vector elements,\n/// not the vector size in bytes.  The vector width and element type must\n/// match one of the standard Neon vector types.\nstatic void HandleNeonVectorTypeAttr(QualType &CurType, const ParsedAttr &Attr, Sema &S, VectorType::VectorKind VecKind) {\n  // Only certain element types are supported for Neon vectors.\n  if (!isPermittedNeonBaseType(CurType, VecKind, S) && !IsTargetCUDAAndHostARM) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_invalid_vector_type) << CurType;"}}
},
},
["err_attribute_missing_on_first_decl"]={
["err_attribute_missing_on_first_decl"]={
[f]="A attribute does not appear on the first declaration",
[f]="A attribute does not appear on the first declaration",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute does not appear on the first declaration",
[g]="%0 attribute does not appear on the first declaration",
[c]=m,
[i]=m,
[b]="(.*?) attribute does not appear on the first declaration",
[j]="(.*?) attribute does not appear on the first declaration",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={ub,1615397021,qb}
[d]={Lb,1615397021,Kb},
[k]={{q,3333,"/// MergeFunctionDecl - We just parsed a function \'New\' from\n/// declarator D which has the same name and scope as a previous\n/// declaration \'Old\'.  Figure out how to resolve this situation,\n/// merging decls or emitting diagnostics as appropriate.\n///\n/// In C++, New and Old must be declarations that are not\n/// overloaded. Use IsOverload to determine whether New and Old are\n/// overloaded, and to select the Old declaration that New should be\n/// merged with.\n///\n/// Returns true if there was an error, false otherwise.\nbool Sema::MergeFunctionDecl(FunctionDecl *New, NamedDecl *&OldD, Scope *S, bool MergeTypeWithOld, bool NewDeclIsDefn) {\n  if (const auto *ILA = New->getAttr<InternalLinkageAttr>())\n    if (!Old->hasAttr<InternalLinkageAttr>()) {\n      Diag(New->getLocation(), diag::err_attribute_missing_on_first_decl) << ILA;"},{q,3340,"/// MergeFunctionDecl - We just parsed a function \'New\' from\n/// declarator D which has the same name and scope as a previous\n/// declaration \'Old\'.  Figure out how to resolve this situation,\n/// merging decls or emitting diagnostics as appropriate.\n///\n/// In C++, New and Old must be declarations that are not\n/// overloaded. Use IsOverload to determine whether New and Old are\n/// overloaded, and to select the Old declaration that New should be\n/// merged with.\n///\n/// Returns true if there was an error, false otherwise.\nbool Sema::MergeFunctionDecl(FunctionDecl *New, NamedDecl *&OldD, Scope *S, bool MergeTypeWithOld, bool NewDeclIsDefn) {\n  if (auto *EA = New->getAttr<ErrorAttr>()) {\n    if (!Old->hasAttr<ErrorAttr>()) {\n      Diag(EA->getLocation(), diag::err_attribute_missing_on_first_decl) << EA;"},{q,3626,"/// MergeFunctionDecl - We just parsed a function \'New\' from\n/// declarator D which has the same name and scope as a previous\n/// declaration \'Old\'.  Figure out how to resolve this situation,\n/// merging decls or emitting diagnostics as appropriate.\n///\n/// In C++, New and Old must be declarations that are not\n/// overloaded. Use IsOverload to determine whether New and Old are\n/// overloaded, and to select the Old declaration that New should be\n/// merged with.\n///\n/// Returns true if there was an error, false otherwise.\nbool Sema::MergeFunctionDecl(FunctionDecl *New, NamedDecl *&OldD, Scope *S, bool MergeTypeWithOld, bool NewDeclIsDefn) {\n  if (getLangOpts().CPlusPlus) {\n    // C++11 [dcl.attr.noreturn]p1:\n    //  The first declaration of a function shall specify the noreturn\n    //  attribute if any declaration of that function specifies the noreturn\n    //  attribute.\n    if (const auto *NRA = New->getAttr<CXX11NoReturnAttr>())\n      if (!Old->hasAttr<CXX11NoReturnAttr>()) {\n        Diag(NRA->getLocation(), diag::err_attribute_missing_on_first_decl) << NRA;"},{q,4116,"/// MergeVarDecl - We just parsed a variable \'New\' which has the same name\n/// and scope as a previous declaration \'Old\'.  Figure out how to resolve this\n/// situation, merging decls or emitting diagnostics as appropriate.\n///\n/// Tentative definition rules (C99 6.9.2p2) are checked by\n/// FinalizeDeclaratorGroup. Unfortunately, we can\'t analyze tentative\n/// definitions here, since the initializer hasn\'t been attached.\n///\nvoid Sema::MergeVarDecl(VarDecl *New, LookupResult &Previous) {\n  if (const auto *ILA = New->getAttr<InternalLinkageAttr>())\n    if (!Old->hasAttr<InternalLinkageAttr>()) {\n      Diag(New->getLocation(), diag::err_attribute_missing_on_first_decl) << ILA;"}}
},
},
["err_attribute_multiple_objc_gc"]={
["err_attribute_multiple_objc_gc"]={
[f]="multiple garbage collection attributes specified for type",
[f]="multiple garbage collection attributes specified for type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="multiple garbage collection attributes specified for type",
[i]=m,
[j]="multiple garbage collection attributes specified for type",
[j]="multiple garbage collection attributes specified for type",
[c]=m,
[b]=a,
[b]="multiple garbage collection attributes specified for type",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{r,6267,"/// handleObjCGCTypeAttr - Process the __attribute__((objc_gc)) type\n/// attribute on the specified type.  Returns true to indicate that\n/// the attribute was handled, false to indicate that the type does\n/// not permit the attribute.\nstatic bool handleObjCGCTypeAttr(TypeProcessingState &state, ParsedAttr &attr, QualType &type) {\n  if (type.getObjCGCAttr() != Qualifiers::GCNone) {\n    S.Diag(attr.getLoc(), diag::err_attribute_multiple_objc_gc);"}}
[g]={q,1237025389,p}
},
},
["err_attribute_no_builtin_on_defaulted_deleted_function"]={
["err_attribute_no_builtin_on_defaulted_deleted_function"]={
[f]="A attribute has no effect on defaulted or deleted functions",
[f]="A attribute has no effect on defaulted or deleted functions",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute has no effect on defaulted or deleted functions",
[g]="%0 attribute has no effect on defaulted or deleted functions",
[c]=m,
[i]=m,
[b]="(.*?) attribute has no effect on defaulted or deleted functions",
[j]="(.*?) attribute has no effect on defaulted or deleted functions",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"bd8791610948",1569403888,"[clang] Add no_builtin attribute"}
[d]={"bd8791610948",1569403888,"[clang] Add no_builtin attribute"},
[k]={{q,9426,"NamedDecl *Sema::ActOnFunctionDeclarator(Scope *S, Declarator &D, DeclContext *DC, TypeSourceInfo *TInfo, LookupResult &Previous, MultiTemplateParamsArg TemplateParamListsRef, bool &AddToScope) {\n  // Diagnose no_builtin attribute on function declaration that are not a\n  // definition.\n  // FIXME: We should really be doing this in\n  // SemaDeclAttr.cpp::handleNoBuiltinAttr, unfortunately we only have access to\n  // the FunctionDecl and at this point of the code\n  // FunctionDecl::isThisDeclarationADefinition() which always returns `false`\n  // because Sema::ActOnStartOfFunctionDef has not been called yet.\n  if (const auto *NBA = NewFD->getAttr<NoBuiltinAttr>())\n    case FunctionDefinitionKind::Deleted:\n      Diag(NBA->getLocation(), diag::err_attribute_no_builtin_on_defaulted_deleted_function) << NBA->getSpelling();"}}
},
},
["err_attribute_no_builtin_on_non_definition"]={
["err_attribute_no_builtin_on_non_definition"]={
[f]="A attribute is permitted on definitions only",
[f]="A attribute is permitted on definitions only",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute is permitted on definitions only",
[g]="%0 attribute is permitted on definitions only",
[c]=m,
[i]=m,
[b]="(.*?) attribute is permitted on definitions only",
[j]="(.*?) attribute is permitted on definitions only",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"bd8791610948",1569403888,"[clang] Add no_builtin attribute"}
[d]={"bd8791610948",1569403888,"[clang] Add no_builtin attribute"},
[k]={{q,9429,"NamedDecl *Sema::ActOnFunctionDeclarator(Scope *S, Declarator &D, DeclContext *DC, TypeSourceInfo *TInfo, LookupResult &Previous, MultiTemplateParamsArg TemplateParamListsRef, bool &AddToScope) {\n  // Diagnose no_builtin attribute on function declaration that are not a\n  // definition.\n  // FIXME: We should really be doing this in\n  // SemaDeclAttr.cpp::handleNoBuiltinAttr, unfortunately we only have access to\n  // the FunctionDecl and at this point of the code\n  // FunctionDecl::isThisDeclarationADefinition() which always returns `false`\n  // because Sema::ActOnStartOfFunctionDef has not been called yet.\n  if (const auto *NBA = NewFD->getAttr<NoBuiltinAttr>())\n    case FunctionDefinitionKind::Declaration:\n      Diag(NBA->getLocation(), diag::err_attribute_no_builtin_on_non_definition) << NBA->getSpelling();"}}
},
},
["err_attribute_no_builtin_wildcard_or_builtin_name"]={
["err_attribute_no_builtin_wildcard_or_builtin_name"]={
[f]="empty A cannot be composed with named ones",
[f]="empty A cannot be composed with named ones",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="empty %0 cannot be composed with named ones",
[g]="empty %0 cannot be composed with named ones",
[c]=m,
[i]=m,
[b]="empty (.*?) cannot be composed with named ones",
[j]="empty (.*?) cannot be composed with named ones",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"bd8791610948",1569403888,"[clang] Add no_builtin attribute"}
[d]={"bd8791610948",1569403888,"[clang] Add no_builtin attribute"},
[k]={{p,1035,"static void handleNoBuiltinAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // Empty no_builtin must be on its own.\n  if (HasWildcard && Names.size() > 1)\n    S.Diag(D->getLocation(), diag::err_attribute_no_builtin_wildcard_or_builtin_name) << AL;"}}
},
},
["err_attribute_no_member_function"]={
["err_attribute_no_member_function"]={
[f]="A attribute cannot be applied to non-static member functions",
[f]="A attribute cannot be applied to non-static member functions",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute cannot be applied to non-static member functions",
[g]="%0 attribute cannot be applied to non-static member functions",
[c]=m,
[i]=m,
[b]="(.*?) attribute cannot be applied to non\\-static member functions",
[j]="(.*?) attribute cannot be applied to non\\-static member functions",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={R,1616787805,S}
[d]={db,1616787805,cb},
[k]={{p,905,"static void handleDiagnoseAsBuiltinAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (const auto *MethodDecl = dyn_cast<CXXMethodDecl>(DeclFD))\n    if (!MethodDecl->isStatic()) {\n      S.Diag(AL.getLoc(), diag::err_attribute_no_member_function) << AL;"}}
},
},
["err_attribute_no_member_pointers"]={
["err_attribute_no_member_pointers"]={
[f]="A attribute cannot be used with pointers to members",
[f]="A attribute cannot be used with pointers to members",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute cannot be used with pointers to members",
[g]="%0 attribute cannot be used with pointers to members",
[c]=m,
[i]=m,
[b]="(.*?) attribute cannot be used with pointers to members",
[j]="(.*?) attribute cannot be used with pointers to members",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"317a77f1c7ab",1369265132,"Adding in parsing and the start of semantic support for __sptr and __uptr pointer type qualifiers.  ..."}
[d]={"317a77f1c7ab",1369265132,"Adding in parsing and the start of semantic support for __sptr and __uptr pointer type qualifiers.  ..."},
[k]={{r,6537,"static bool handleMSPointerTypeQualifierAttr(TypeProcessingState &State, ParsedAttr &PAttr, QualType &Type) {\n  // Check the raw (i.e., desugared) Canonical type to see if it\n  // is a pointer type.\n  if (!isa<PointerType>(Desugared)) {\n    // Pointer type qualifiers can only operate on pointer types, but not\n    // pointer-to-member types.\n    if (Type->isMemberPointerType())\n      S.Diag(PAttr.getLoc(), diag::err_attribute_no_member_pointers) << PAttr;"}}
},
},
["err_attribute_not_clinkage"]={
["err_attribute_not_clinkage"]={
[f]="function type with A attribute must have C linkage",
[f]="function type with A attribute must have C linkage",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="function type with %0 attribute must have C linkage",
[g]="function type with %0 attribute must have C linkage",
[c]=m,
[i]=m,
[b]="function type with (.*?) attribute must have C linkage",
[j]="function type with (.*?) attribute must have C linkage",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={C,1576908663,B}
[d]={W,1576908663,V},
[k]={{p,1924,"static void handleCmseNSEntryAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (S.LangOpts.CPlusPlus && !D->getDeclContext()->isExternCContext()) {\n    S.Diag(AL.getLoc(), diag::err_attribute_not_clinkage) << AL;"}}
},
},
["err_attribute_not_import_attr"]={
["err_attribute_not_import_attr"]={
[f]="A attribute cannot be applied to a module import",
[f]="A attribute cannot be applied to a module import",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute cannot be applied to a module import",
[g]="%0 attribute cannot be applied to a module import",
[c]=m,
[i]=m,
[b]="(.*?) attribute cannot be applied to a module import",
[j]="(.*?) attribute cannot be applied to a module import",
[i]=a,
[b]=a,
[h]=x,
[h]="Modules Issue",
[g]={"49cc1ccb00df",1471557582,"C++ Modules TS: Add parsing support for module import declaration."}
[d]={"49cc1ccb00df",1471557582,"C++ Modules TS: Add parsing support for module import declaration."},
[k]={{Jb,2283,"/// Parse a module import declaration. This is essentially the same for\n/// Objective-C and C++20 except for the leading \'@\' (in ObjC) and the\n/// trailing optional attributes (in C++).\n///\n/// [ObjC]  @import declaration:\n///          \'@\' \'import\' module-name \';\'\n/// [ModTS] module-import-declaration:\n///          \'import\' module-name attribute-specifier-seq[opt] \';\'\n/// [C++20] module-import-declaration:\n///          \'export\'[opt] \'import\' module-name\n///                  attribute-specifier-seq[opt] \';\'\n///          \'export\'[opt] \'import\' module-partition\n///                  attribute-specifier-seq[opt] \';\'\n///          \'export\'[opt] \'import\' header-name\n///                  attribute-specifier-seq[opt] \';\'\nDecl *Parser::ParseModuleImport(SourceLocation AtLoc, Sema::ModuleImportState &ImportState) {\n  ProhibitCXX11Attributes(Attrs, diag::err_attribute_not_import_attr, diag::err_keyword_not_import_attr,"}}
},
},
["err_attribute_not_module_attr"]={
["err_attribute_not_module_attr"]={
[f]="A attribute cannot be applied to a module",
[f]="A attribute cannot be applied to a module",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute cannot be applied to a module",
[g]="%0 attribute cannot be applied to a module",
[c]=m,
[i]=m,
[b]="(.*?) attribute cannot be applied to a module",
[j]="(.*?) attribute cannot be applied to a module",
[i]=a,
[b]=a,
[h]=x,
[h]="Modules Issue",
[g]={"964cc53d9a74",1471570986,"C++ Modules TS: support parsing the \'module\' declaration (including extensions"}
[d]={"964cc53d9a74",1471570986,"C++ Modules TS: support parsing the \'module\' declaration (including extensions"},
[k]={{Jb,2219,"/// Parse a declaration beginning with the \'module\' keyword or C++20\n/// context-sensitive keyword (optionally preceded by \'export\').\n///\n///  module-declaration:  [C++20]\n///    \'export\'[opt] \'module\' module-name attribute-specifier-seq[opt] \';\'\n///\n///  global-module-fragment:  [C++2a]\n///    \'module\' \';\' top-level-declaration-seq[opt]\n///  module-declaration:      [C++2a]\n///    \'export\'[opt] \'module\' module-name module-partition[opt]\n///            attribute-specifier-seq[opt] \';\'\n///  private-module-fragment: [C++2a]\n///    \'module\' \':\' \'private\' \';\' top-level-declaration-seq[opt]\nParser::DeclGroupPtrTy Parser::ParseModuleDecl(Sema::ModuleImportState &ImportState) {\n  ProhibitCXX11Attributes(Attrs, diag::err_attribute_not_module_attr, diag::err_keyword_not_module_attr,"}}
},
},
["err_attribute_not_supported_in_lang"]={
["err_attribute_not_supported_in_lang"]={
[f]="A attribute is not supported in ...",
[f]="A attribute is not supported in ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute is not supported in %select{C|C++|Objective-C}1",
[g]="%0 attribute is not supported in %select{C|C++|Objective-C}1",
[c]=m,
[i]=m,
[b]="(.*?) attribute is not supported in (?:C|C\\+\\+|Objective\\-C)",
[j]="(.*?) attribute is not supported in (?:C|C\\+\\+|Objective\\-C)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"df8fe4c91cf2",1385328916,"__declspec(uuid) is only supported for C++ code according to MSDN (as well as behaviorally in MSVC)...."}
[d]={"df8fe4c91cf2",1385328916,"__declspec(uuid) is only supported for C++ code according to MSDN (as well as behaviorally in MSVC)...."},
[k]={{p,1915,"static void handleCommonAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (S.LangOpts.CPlusPlus) {\n    S.Diag(AL.getLoc(), diag::err_attribute_not_supported_in_lang) << AL << AttributeLangSupport::Cpp;"},{p,6161,"static void handleUuidAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!S.LangOpts.CPlusPlus) {\n    S.Diag(AL.getLoc(), diag::err_attribute_not_supported_in_lang) << AL << AttributeLangSupport::C;"},{p,6436,"static void handleMSInheritanceAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!S.LangOpts.CPlusPlus) {\n    S.Diag(AL.getLoc(), diag::err_attribute_not_supported_in_lang) << AL << AttributeLangSupport::C;"}}
},
},
["err_attribute_not_supported_on_arch"]={
["err_attribute_not_supported_on_arch"]={
[f]="A attribute is not supported on \'B\'",
[f]="A attribute is not supported on \'B\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute is not supported on \'%1\'",
[g]="%0 attribute is not supported on \'%1\'",
[c]=m,
[i]=m,
[b]="(.*?) attribute is not supported on \'(.*?)\'",
[j]="(.*?) attribute is not supported on \'(.*?)\'",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"b51bcaf2f027",1491578027,"Sema: prevent __declspec(naked) use on x64"}
[d]={"b51bcaf2f027",1491578027,"Sema: prevent __declspec(naked) use on x64"},
[k]={{p,1942,"static void handleNakedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.isDeclspecAttribute()) {\n    if (Arch != llvm::Triple::x86 && (Arch != llvm::Triple::arm && Arch != llvm::Triple::thumb)) {\n      S.Diag(AL.getLoc(), diag::err_attribute_not_supported_on_arch) << AL << Triple.getArchName();"}}
},
},
["err_attribute_not_type_attr"]={
["err_attribute_not_type_attr"]={
[f]="A... cannot be applied to types",
[f]="A... cannot be applied to types",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0%select{ attribute|}1 cannot be applied to types",
[g]="%0%select{ attribute|}1 cannot be applied to types",
[c]=m,
[i]=m,
[b]="(.*?)(?: attribute|) cannot be applied to types",
[j]="(.*?)(?: attribute|) cannot be applied to types",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={"10876ef5714f",1358386242,"Implement C++11 semantics for [[noreturn]] attribute. This required splitting"}
[d]={"10876ef5714f",1358386242,"Implement C++11 semantics for [[noreturn]] attribute. This required splitting"},
[k]={{D,3056,"/// ParseDeclarationSpecifiers\n///      declaration-specifiers: [C99 6.7]\n///        storage-class-specifier declaration-specifiers[opt]\n///        type-specifier declaration-specifiers[opt]\n/// [C99]  function-specifier declaration-specifiers[opt]\n/// [C11]  alignment-specifier declaration-specifiers[opt]\n/// [GNU]  attributes declaration-specifiers[opt]\n/// [Clang] \'__module_private__\' declaration-specifiers[opt]\n/// [ObjC1] \'__kindof\' declaration-specifiers[opt]\n///\n///      storage-class-specifier: [C99 6.7.1]\n///        \'typedef\'\n///        \'extern\'\n///        \'static\'\n///        \'auto\'\n///        \'register\'\n/// [C++]  \'mutable\'\n/// [C++11] \'thread_local\'\n/// [C11]  \'_Thread_local\'\n/// [GNU]  \'__thread\'\n///      function-specifier: [C99 6.7.4]\n/// [C99]  \'inline\'\n/// [C++]  \'virtual\'\n/// [C++]  \'explicit\'\n/// [OpenCL] \'__kernel\'\n///      \'friend\': [C++ dcl.friend]\n///      \'constexpr\': [C++0x dcl.constexpr]\nvoid Parser::ParseDeclarationSpecifiers(DeclSpec &DS, const ParsedTemplateInfo &TemplateInfo, AccessSpecifier AS, DeclSpecContext DSContext, LateParsedAttrList *LateAttrs, ImplicitTypenameContext AllowImplicitTypename) {\n  while (true) {\n    DoneWithDeclSpec:\n      if (!AttrsLastTime)\n      else {\n        // Reject C++11 / C2x attributes that aren\'t type attributes.\n        for (const ParsedAttr &PA : attrs) {\n          Diag(PA.getLoc(), diag::err_attribute_not_type_attr) << PA << PA.isRegularKeywordAttribute();"},{r,7574,"static void processTypeAttrs(TypeProcessingState &state, QualType &type, TypeAttrLocation TAL, const ParsedAttributesView &attrs) {\n  for (ParsedAttr &attr : AttrsCopy) {\n    default:\n      // A [[]] attribute on a declarator chunk must appertain to a type.\n      if ((attr.isStandardAttributeSyntax() || attr.isRegularKeywordAttribute()) && TAL == TAL_DeclChunk) {\n        state.getSema().Diag(attr.getLoc(), diag::err_attribute_not_type_attr) << attr << attr.isRegularKeywordAttribute();"}}
},
},
["err_attribute_only_once_per_parameter"]={
["err_attribute_only_once_per_parameter"]={
[f]="A attribute can only be applied once per parameter",
[f]="A attribute can only be applied once per parameter",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute can only be applied once per parameter",
[g]="%0 attribute can only be applied once per parameter",
[c]=m,
[i]=m,
[b]="(.*?) attribute can only be applied once per parameter",
[j]="(.*?) attribute can only be applied once per parameter",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"3e3bb95b6951",1449093488,"Add the `pass_object_size` attribute to clang."}
[d]={"3e3bb95b6951",1449093488,"Add the `pass_object_size` attribute to clang."},
[k]={{p,1044,"static void handlePassObjectSizeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (D->hasAttr<PassObjectSizeAttr>()) {\n    S.Diag(D->getBeginLoc(), diag::err_attribute_only_once_per_parameter) << AL;"}}
},
},
["err_attribute_output_parameter"]={
["err_attribute_output_parameter"]={
[f]="attribute only applies to output parameters",
[f]="attribute only applies to output parameters",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="attribute only applies to output parameters",
[i]=m,
[j]="attribute only applies to output parameters",
[j]="attribute only applies to output parameters",
[c]=m,
[b]=a,
[b]="attribute only applies to output parameters",
[h]=o,
[i]=a,
[d]={"fe17b30a7957",1575504770,"[attributes][analyzer] Add annotations for handles."},
[h]=n,
[k]={{p,7551,"static void handleAcquireHandleAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // Warn if the parameter is definitely not an output parameter.\n  if (const auto *PVD = dyn_cast<ParmVarDecl>(D)) {\n    if (PVD->getType()->isIntegerType()) {\n      S.Diag(AL.getLoc(), diag::err_attribute_output_parameter) << AL.getRange();"}}
[g]={ic,1575504770,jc}
},
},
["err_attribute_overloadable_mismatch"]={
["err_attribute_overloadable_mismatch"]={
[f]="redeclaration of A must ...have the \'overloadable\' attribute",
[f]="redeclaration of A must ...have the \'overloadable\' attribute",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="redeclaration of %0 must %select{not |}1have the \'overloadable\' attribute",
[g]="redeclaration of %0 must %select{not |}1have the \'overloadable\' attribute",
[c]=m,
[i]=m,
[b]="redeclaration of (.*?) must (?:not |)have the \'overloadable\' attribute",
[j]="redeclaration of (.*?) must (?:not |)have the \'overloadable\' attribute",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"d3cf025ae221",1498599091,"[Sema] Allow unmarked overloadable functions."}
[d]={"d3cf025ae221",1498599091,"[Sema] Allow unmarked overloadable functions."},
[k]={{q,3352,"/// MergeFunctionDecl - We just parsed a function \'New\' from\n/// declarator D which has the same name and scope as a previous\n/// declaration \'Old\'.  Figure out how to resolve this situation,\n/// merging decls or emitting diagnostics as appropriate.\n///\n/// In C++, New and Old must be declarations that are not\n/// overloaded. Use IsOverload to determine whether New and Old are\n/// overloaded, and to select the Old declaration that New should be\n/// merged with.\n///\n/// Returns true if there was an error, false otherwise.\nbool Sema::MergeFunctionDecl(FunctionDecl *New, NamedDecl *&OldD, Scope *S, bool MergeTypeWithOld, bool NewDeclIsDefn) {\n  if (!getLangOpts().CPlusPlus) {\n    if (OldOvl != New->hasAttr<OverloadableAttr>() && !Old->isImplicit()) {\n      Diag(New->getLocation(), diag::err_attribute_overloadable_mismatch) << New << OldOvl;"}}
},
},
["err_attribute_overloadable_multiple_unmarked_overloads"]={
["err_attribute_overloadable_multiple_unmarked_overloads"]={
[f]="at most one overload for a given name may lack the \'overloadable\' attribute",
[f]="at most one overload for a given name may lack the \'overloadable\' attribute",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="at most one overload for a given name may lack the \'overloadable\' attribute",
[i]=m,
[j]="at most one overload for a given name may lack the \'overloadable\' attribute",
[j]="at most one overload for a given name may lack the \'overloadable\' attribute",
[c]=m,
[b]=a,
[b]="at most one overload for a given name may lack the \'overloadable\' attribute",
[h]=o,
[i]=a,
[d]={"d3cf025ae221",1498599091,"[Sema] Allow unmarked overloadable functions."},
[h]=n,
[k]={{q,10358,"/// Perform semantic checking of a new function declaration.\n///\n/// Performs semantic analysis of the new function declaration\n/// NewFD. This routine performs all semantic checking that does not\n/// require the actual declarator involved in the declaration, and is\n/// used both for the declaration of functions as they are parsed\n/// (called via ActOnDeclarator) and for the declaration of functions\n/// that have been instantiated via C++ template instantiation (called\n/// via InstantiateDecl).\n///\n/// \\param IsMemberSpecialization whether this new function declaration is\n/// a member specialization (that replaces any definition provided by the\n/// previous declaration).\n///\n/// This sets NewFD->isInvalidDecl() to true if there was an error.\n///\n/// \\returns true if the function declaration is a redeclaration.\nbool Sema::CheckFunctionDeclaration(Scope *S, FunctionDecl *NewFD, LookupResult &Previous, bool IsMemberSpecialization, bool DeclIsDefn) {\n  if (Redeclaration) {\n  } else if (!getLangOpts().CPlusPlus && MayNeedOverloadableChecks && !NewFD->getAttr<OverloadableAttr>()) {\n    if (OtherUnmarkedIter != Previous.end()) {\n      Diag(NewFD->getLocation(), diag::err_attribute_overloadable_multiple_unmarked_overloads);"}}
[g]={"d3cf025ae221",1498599091,"[Sema] Allow unmarked overloadable functions."}
},
},
["err_attribute_overloadable_no_prototype"]={
["err_attribute_overloadable_no_prototype"]={
[f]="\'overloadable\' function A must have a prototype",
[f]="\'overloadable\' function A must have a prototype",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'overloadable\' function %0 must have a prototype",
[g]="\'overloadable\' function %0 must have a prototype",
[c]=m,
[i]=m,
[b]="\'overloadable\' function (.*?) must have a prototype",
[j]="\'overloadable\' function (.*?) must have a prototype",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{q,9271,"NamedDecl *Sema::ActOnFunctionDeclarator(Scope *S, Declarator &D, DeclContext *DC, TypeSourceInfo *TInfo, LookupResult &Previous, MultiTemplateParamsArg TemplateParamListsRef, bool &AddToScope) {\n  if (NewFD->hasAttr<OverloadableAttr>() && !NewFD->getType()->getAs<FunctionProtoType>()) {\n    Diag(NewFD->getLocation(), diag::err_attribute_overloadable_no_prototype) << NewFD;"}}
},
},
["err_attribute_parameter_types"]={
["err_attribute_parameter_types"]={
[f]="A attribute parameter types do not match: parameter B of function C has type D, but parameter E of function F has type G",
[f]="A attribute parameter types do not match: parameter B of function C has type D, but parameter E of function F has type G",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute parameter types do not match: parameter %1 of function %2 has type %3, but parameter %4 of function %5 has type %6",
[g]="%0 attribute parameter types do not match: parameter %1 of function %2 has type %3, but parameter %4 of function %5 has type %6",
[c]=m,
[i]=m,
[b]="(.*?) attribute parameter types do not match\\: parameter (.*?) of function (.*?) has type (.*?), but parameter (.*?) of function (.*?) has type (.*?)",
[j]="(.*?) attribute parameter types do not match\\: parameter (.*?) of function (.*?) has type (.*?), but parameter (.*?) of function (.*?) has type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={R,1616787805,S}
[d]={db,1616787805,cb},
[k]={{p,962,"static void handleDiagnoseAsBuiltinAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  for (unsigned I = 1; I < AL.getNumArgs(); ++I) {\n    if (T1.getCanonicalType().getUnqualifiedType() != T2.getCanonicalType().getUnqualifiedType()) {\n      S.Diag(IndexExpr->getBeginLoc(), diag::err_attribute_parameter_types) << AL << Index << DeclFD << T2 << I << AttrFD << T1;"}}
},
},
["err_attribute_pointers_only"]={
["err_attribute_pointers_only"]={
[f]="A attribute only applies to... pointer arguments",
[f]="A attribute only applies to... pointer arguments",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute only applies to%select{| constant}1 pointer arguments",
[g]="%0 attribute only applies to%select{| constant}1 pointer arguments",
[c]=m,
[i]=m,
[b]="(.*?) attribute only applies to(?:| constant) pointer arguments",
[j]="(.*?) attribute only applies to(?:| constant) pointer arguments",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e4a5a90e8d6b",1345162118,"Add support for \"type safety\" attributes that allow checking that \'void *\'"}
[d]={"e4a5a90e8d6b",1345162118,"Add support for \"type safety\" attributes that allow checking that \'void *\'"},
[k]={{s,14910,"/// CheckParmsForFunctionDef - Check that the parameters of the given\n/// function are appropriate for the definition of a function. This\n/// takes care of any checks that cannot be performed on the\n/// declaration itself, e.g., that the types of each of the function\n/// parameters are complete.\nbool Sema::CheckParmsForFunctionDef(ArrayRef<ParmVarDecl *> Parameters, bool CheckParameterNames) {\n  for (ParmVarDecl *Param : Parameters) {\n    // Parameters with the pass_object_size attribute only need to be marked\n    // constant at function definitions. Because we lack information about\n    // whether we\'re on a declaration or definition when we\'re instantiating the\n    // attribute, we need to check for constness here.\n    if (const auto *Attr = Param->getAttr<PassObjectSizeAttr>())\n      if (!Param->getType().isConstQualified())\n        Diag(Param->getLocation(), diag::err_attribute_pointers_only) << Attr->getSpelling() << 1;"},{p,1066,"static void handlePassObjectSizeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // pass_object_size is only supported on constant pointer parameters; as a\n  // kindness to users, we allow the parameter to be non-const for declarations.\n  // At this point, we have no clue if `D` belongs to a function declaration or\n  // definition, so we defer the constness check until later.\n  if (!cast<ParmVarDecl>(D)->getType()->isPointerType()) {\n    S.Diag(D->getBeginLoc(), diag::err_attribute_pointers_only) << AL << 1;"},{p,5016,"static void handleArgumentWithTypeTagAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (IsPointer) {\n    if (ArgumentIdxAST >= getFunctionOrMethodNumParams(D) || !getFunctionOrMethodParamType(D, ArgumentIdxAST)->isPointerType())\n      S.Diag(AL.getLoc(), diag::err_attribute_pointers_only) << AL << 0;"},{r,6539,"static bool handleMSPointerTypeQualifierAttr(TypeProcessingState &State, ParsedAttr &PAttr, QualType &Type) {\n  // Check the raw (i.e., desugared) Canonical type to see if it\n  // is a pointer type.\n  if (!isa<PointerType>(Desugared)) {\n    // Pointer type qualifiers can only operate on pointer types, but not\n    // pointer-to-member types.\n    if (Type->isMemberPointerType())\n    else\n      S.Diag(PAttr.getLoc(), diag::err_attribute_pointers_only) << PAttr << 0;"}}
},
},
["err_attribute_preferred_name_arg_invalid"]={
["err_attribute_preferred_name_arg_invalid"]={
[f]="argument A to \'preferred_name\' attribute is not a typedef for a specialization of B",
[f]="argument A to \'preferred_name\' attribute is not a typedef for a specialization of B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="argument %0 to \'preferred_name\' attribute is not a typedef for a specialization of %1",
[g]="argument %0 to \'preferred_name\' attribute is not a typedef for a specialization of %1",
[c]=m,
[i]=m,
[b]="argument (.*?) to \'preferred_name\' attribute is not a typedef for a specialization of (.*?)",
[j]="argument (.*?) to \'preferred_name\' attribute is not a typedef for a specialization of (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Z,1590001902,ab}
[d]={fb,1590001902,eb},
[k]={{p,1308,"static void handlePreferredName(Sema &S, Decl *D, const ParsedAttr &AL) {\n  S.Diag(AL.getLoc(), diag::err_attribute_preferred_name_arg_invalid) << T << CTD;"}}
},
},
["err_attribute_regparm_invalid_number"]={
["err_attribute_regparm_invalid_number"]={
[f]="\'regparm\' parameter must be between 0 and A inclusive",
[f]="\'regparm\' parameter must be between 0 and A inclusive",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'regparm\' parameter must be between 0 and %0 inclusive",
[g]="\'regparm\' parameter must be between 0 and %0 inclusive",
[c]=m,
[i]=m,
[b]="\'regparm\' parameter must be between 0 and (.*?) inclusive",
[j]="\'regparm\' parameter must be between 0 and (.*?) inclusive",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"7044b7670747",1238188007,"Finish off semantic analysis for regparm, and remove the warning.  Also "}
[d]={"7044b7670747",1238188007,"Finish off semantic analysis for regparm, and remove the warning.  Also "},
[k]={{p,4933,"/// Checks a regparm attribute, returning true if it is ill-formed and\n/// otherwise setting numParams to the appropriate value.\nbool Sema::CheckRegparmAttr(const ParsedAttr &AL, unsigned &numParams) {\n  if (numParams > Context.getTargetInfo().getRegParmMax()) {\n    Diag(AL.getLoc(), diag::err_attribute_regparm_invalid_number) << Context.getTargetInfo().getRegParmMax() << NumParamsExpr->getSourceRange();"}}
},
},
["err_attribute_regparm_wrong_platform"]={
["err_attribute_regparm_wrong_platform"]={
[f]="\'regparm\' is not valid on this platform",
[f]="\'regparm\' is not valid on this platform",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'regparm\' is not valid on this platform",
[i]=m,
[j]="\'regparm\' is not valid on this platform",
[j]="\'regparm\' is not valid on this platform",
[c]=m,
[b]=a,
[b]="\'regparm\' is not valid on this platform",
[h]=o,
[i]=a,
[d]={"7044b7670747",1238188007,"Finish off semantic analysis for regparm, and remove the warning.  Also "},
[h]=n,
[k]={{p,4926,"/// Checks a regparm attribute, returning true if it is ill-formed and\n/// otherwise setting numParams to the appropriate value.\nbool Sema::CheckRegparmAttr(const ParsedAttr &AL, unsigned &numParams) {\n  if (Context.getTargetInfo().getRegParmMax() == 0) {\n    Diag(AL.getLoc(), diag::err_attribute_regparm_wrong_platform) << NumParamsExpr->getSourceRange();"}}
[g]={"7044b7670747",1238188007,"Finish off semantic analysis for regparm, and remove the warning.  Also "}
},
},
["err_attribute_requires_arguments"]={
["err_attribute_requires_arguments"]={
[f]="parentheses must be omitted if A attribute\'s argument list is empty",
[f]="parentheses must be omitted if A attribute\'s argument list is empty",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="parentheses must be omitted if %0 attribute\'s argument list is empty",
[g]="parentheses must be omitted if %0 attribute\'s argument list is empty",
[c]=m,
[i]=m,
[b]="parentheses must be omitted if (.*?) attribute\'s argument list is empty",
[j]="parentheses must be omitted if (.*?) attribute\'s argument list is empty",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={"ef5d94caf067",1397522199,"Fixing a typo, updating the diagnostic wording and logic based on post-commit review feedback. Amend..."}
[d]={"ef5d94caf067",1397522199,"Fixing a typo, updating the diagnostic wording and logic based on post-commit review feedback. Amend..."},
[k]={{D,665,"bool Parser::ParseMicrosoftDeclSpecArgs(IdentifierInfo *AttrName, SourceLocation AttrNameLoc, ParsedAttributes &Attrs) {\n  // If this attribute\'s args were parsed, and it was expected to have\n  // arguments but none were provided, emit a diagnostic.\n  if (ExistingAttrs < Attrs.size() && Attrs.back().getMaxArgs() && !NumArgs) {\n    Diag(OpenParenLoc, diag::err_attribute_requires_arguments) << AttrName;"},{K,3884,"/// ParseCXX11AttributeArgs -- Parse a C++11 attribute-argument-clause.\n///\n/// [C++11] attribute-argument-clause:\n///        \'(\' balanced-token-seq \')\'\n///\n/// [C++11] balanced-token-seq:\n///        balanced-token\n///        balanced-token-seq balanced-token\n///\n/// [C++11] balanced-token:\n///        \'(\' balanced-token-seq \')\'\n///        \'[\' balanced-token-seq \']\'\n///        \'{\' balanced-token-seq \'}\'\n///        any token but \'(\', \')\', \'[\', \']\', \'{\', or \'}\'\nbool Parser::ParseCXX11AttributeArgs(IdentifierInfo *AttrName, SourceLocation AttrNameLoc, ParsedAttributes &Attrs, SourceLocation *EndLoc, IdentifierInfo *ScopeName, SourceLocation ScopeLoc, CachedTokens &OpenMPTokens) {\n  if (!Attrs.empty() && IsBuiltInOrStandardCXX11Attribute(AttrName, ScopeName)) {\n    // If the attribute is a standard or built-in attribute and we are\n    // parsing an argument list, we need to determine whether this attribute\n    // was allowed to have an argument list (such as [[deprecated]]), and how\n    // many arguments were parsed (so we can diagnose on [[deprecated()]]).\n    if (Attr.getMaxArgs() && !NumArgs) {\n      Diag(LParenLoc, diag::err_attribute_requires_arguments) << AttrName;"}}
},
},
["err_attribute_requires_opencl_version"]={
["err_attribute_requires_opencl_version"]={
[f]="attribute A is supported in the OpenCL version B...",
[f]="attribute A is supported in the OpenCL version B...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="attribute %0 is supported in the OpenCL version %1%select{| onwards}2",
[g]="attribute %0 is supported in the OpenCL version %1%select{| onwards}2",
[c]=m,
[i]=m,
[b]="attribute (.*?) is supported in the OpenCL version (.*?)(?:| onwards)",
[j]="attribute (.*?) is supported in the OpenCL version (.*?)(?:| onwards)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"6bdbcbb3d91b",1455906611,"[OpenCL] Generate metadata for opencl_unroll_hint attribute"}
[d]={"6bdbcbb3d91b",1455906611,"[OpenCL] Generate metadata for opencl_unroll_hint attribute"},
[k]={{p,7295,"static void handleOpenCLNoSVMAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (S.LangOpts.getOpenCLCompatibleVersion() < 200)\n    S.Diag(AL.getLoc(), diag::err_attribute_requires_opencl_version) << AL << \"2.0\" << 1;"}}
},
},
["err_attribute_requires_positive_integer"]={
["err_attribute_requires_positive_integer"]={
[f]="A attribute requires a ... integral compile time constant expression",
[f]="A attribute requires a ... integral compile time constant expression",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute requires a %select{positive|non-negative}1 integral compile time constant expression",
[g]="%0 attribute requires a %select{positive|non-negative}1 integral compile time constant expression",
[c]=m,
[i]=m,
[b]="(.*?) attribute requires a (?:positive|non\\-negative) integral compile time constant expression",
[j]="(.*?) attribute requires a (?:positive|non\\-negative) integral compile time constant expression",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"6bdbcbb3d91b",1455906611,"[OpenCL] Generate metadata for opencl_unroll_hint attribute"}
[d]={"6bdbcbb3d91b",1455906611,"[OpenCL] Generate metadata for opencl_unroll_hint attribute"},
[k]={{p,215,"/// If Expr is a valid integer constant, get the value of the integer\n/// expression and return success or failure. May output an error.\n///\n/// Negative argument is implicitly converted to unsigned, unless\n/// \\p StrictlyUnsigned is true.\ntemplate <typename AttrInfo> static bool checkUInt32Argument(Sema &S, const AttrInfo &AI, const Expr *Expr, uint32_t &Val, unsigned Idx = UINT_MAX, bool StrictlyUnsigned = false) {\n  if (StrictlyUnsigned && I->isSigned() && I->isNegative()) {\n    S.Diag(getAttrLoc(AI), diag::err_attribute_requires_positive_integer) << &AI << /*non-negative*/ 1;"},{"clang/lib/Sema/SemaStmtAttr.cpp",394,"static Attr *handleOpenCLUnrollHint(Sema &S, Stmt *St, const ParsedAttr &A, SourceRange Range) {\n  if (A.getNumArgs() == 1) {\n    if (Val <= 0) {\n      S.Diag(A.getRange().getBegin(), diag::err_attribute_requires_positive_integer) << A << /* positive */ 0;"}}
},
},
["err_attribute_riscv_rvv_bits_unsupported"]={
["err_attribute_riscv_rvv_bits_unsupported"]={
[f]="A is only supported when \'-mrvv-vector-bits=<bits>\' is specified with a value of \"zvl\" or a power 2 in the range [64,65536]",
[f]="A is only supported when \'-mrvv-vector-bits=<bits>\' is specified with a value of \"zvl\" or a power 2 in the range [64,65536]",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 is only supported when \'-mrvv-vector-bits=<bits>\' is specified with a value of \"zvl\" or a power 2 in the range [64,65536]",
[g]="%0 is only supported when \'-mrvv-vector-bits=<bits>\' is specified with a value of \"zvl\" or a power 2 in the range [64,65536]",
[c]=m,
[i]=m,
[b]="(.*?) is only supported when \'\\-mrvv\\-vector\\-bits\\=\\<bits\\>\' is specified with a value of \"zvl\" or a power 2 in the range \\[64,65536\\]",
[j]="(.*?) is only supported when \'\\-mrvv\\-vector\\-bits\\=\\<bits\\>\' is specified with a value of \"zvl\" or a power 2 in the range \\[64,65536\\]",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={w,1625925174,v}
[d]={N,1625925174,M},
[k]={{r,7377,"/// HandleRISCVRVVVectorBitsTypeAttr - The \"riscv_rvv_vector_bits\" attribute is\n/// used to create fixed-length versions of sizeless RVV types such as\n/// vint8m1_t_t.\nstatic void HandleRISCVRVVVectorBitsTypeAttr(QualType &CurType, ParsedAttr &Attr, Sema &S) {\n  if (!VScale || !VScale->first || VScale->first != VScale->second) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_riscv_rvv_bits_unsupported) << Attr;"}}
},
},
["err_attribute_section_invalid_for_target"]={
["err_attribute_section_invalid_for_target"]={
[f]="argument to ... attribute is not valid for this target: A",
[f]="argument to ... attribute is not valid for this target: A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="argument to %select{\'code_seg\'|\'section\'}1 attribute is not valid for this target: %0",
[g]="argument to %select{\'code_seg\'|\'section\'}1 attribute is not valid for this target: %0",
[c]=m,
[i]=m,
[b]="argument to (?:\'code_seg\'|\'section\') attribute is not valid for this target\\: (.*?)",
[j]="argument to (?:\'code_seg\'|\'section\') attribute is not valid for this target\\: (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"30ba674391ae",1249930984,"fix a couple of problems with section attributes:"}
[d]={"30ba674391ae",1249930984,"fix a couple of problems with section attributes:"},
[k]={{p,2918,"bool Sema::checkSectionName(SourceLocation LiteralLoc, StringRef SecName) {\n  if (llvm::Error E = isValidSectionSpecifier(SecName)) {\n    Diag(LiteralLoc, diag::err_attribute_section_invalid_for_target) << toString(std::move(E)) << 1 /*\'section\'*/;"},{p,2947,"// This is used for `__declspec(code_seg(\"segname\"))` on a decl.\n// `#pragma code_seg(\"segname\")` uses checkSectionName() instead.\nstatic bool checkCodeSegName(Sema &S, SourceLocation LiteralLoc, StringRef CodeSegName) {\n  if (llvm::Error E = S.isValidSectionSpecifier(CodeSegName)) {\n    S.Diag(LiteralLoc, diag::err_attribute_section_invalid_for_target) << toString(std::move(E)) << 0 /*\'code-seg\'*/;"}}
},
},
["err_attribute_selectany_non_extern_data"]={
["err_attribute_selectany_non_extern_data"]={
[f]="\'selectany\' can only be applied to data items with external linkage",
[f]="\'selectany\' can only be applied to data items with external linkage",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'selectany\' can only be applied to data items with external linkage",
[i]=m,
[j]="\'selectany\' can only be applied to data items with external linkage",
[j]="\'selectany\' can only be applied to data items with external linkage",
[c]=m,
[b]=a,
[b]="\'selectany\' can only be applied to data items with external linkage",
[h]=o,
[i]=a,
[d]={"b144d366934f",1369058557,"Implement __declspec(selectany) under -fms-extensions"},
[h]=n,
[k]={{q,6210,"static void checkAttributesAfterMerging(Sema &S, NamedDecl &ND) {\n  // \'selectany\' only applies to externally visible variable declarations.\n  // It does not apply to functions.\n  if (SelectAnyAttr *Attr = ND.getAttr<SelectAnyAttr>()) {\n    if (isa<FunctionDecl>(ND) || !ND.isExternallyVisible()) {\n      S.Diag(Attr->getLocation(), diag::err_attribute_selectany_non_extern_data);"}}
[g]={"b144d366934f",1369058557,"Implement __declspec(selectany) under -fms-extensions"}
},
},
["err_attribute_sentinel_less_than_zero"]={
["err_attribute_sentinel_less_than_zero"]={
[f]="\'sentinel\' parameter 1 less than zero",
[f]="\'sentinel\' parameter 1 less than zero",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'sentinel\' parameter 1 less than zero",
[i]=m,
[j]="\'sentinel\' parameter 1 less than zero",
[j]="\'sentinel\' parameter 1 less than zero",
[c]=m,
[b]=a,
[b]="\'sentinel\' parameter 1 less than zero",
[h]=o,
[i]=a,
[d]={A,1236199783,z},
[h]=n,
[k]={{p,2686,"static void handleSentinelAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.getNumArgs() > 0) {\n    if (Idx->isSigned() && Idx->isNegative()) {\n      S.Diag(AL.getLoc(), diag::err_attribute_sentinel_less_than_zero) << E->getSourceRange();"}}
[g]={s,1236199783,r}
},
},
["err_attribute_sentinel_not_zero_or_one"]={
["err_attribute_sentinel_not_zero_or_one"]={
[f]="\'sentinel\' parameter 2 not 0 or 1",
[f]="\'sentinel\' parameter 2 not 0 or 1",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'sentinel\' parameter 2 not 0 or 1",
[i]=m,
[j]="\'sentinel\' parameter 2 not 0 or 1",
[j]="\'sentinel\' parameter 2 not 0 or 1",
[c]=m,
[b]=a,
[b]="\'sentinel\' parameter 2 not 0 or 1",
[h]=o,
[i]=a,
[d]={A,1236199783,z},
[h]=n,
[k]={{p,2706,"static void handleSentinelAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.getNumArgs() > 1) {\n    if ((Idx->isSigned() && Idx->isNegative()) || nullPos > 1) {\n      S.Diag(AL.getLoc(), diag::err_attribute_sentinel_not_zero_or_one) << E->getSourceRange();"}}
[g]={s,1236199783,r}
},
},
["err_attribute_size_too_large"]={
["err_attribute_size_too_large"]={
[f]="A size too large",
[f]="A size too large",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 size too large",
[g]="%0 size too large",
[c]=m,
[i]=m,
[b]="(.*?) size too large",
[j]="(.*?) size too large",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"efe9fa62f5b4",1374800027,"Tighten type-checking for vector attributes."}
[d]={"efe9fa62f5b4",1374800027,"Tighten type-checking for vector attributes."},
[k]={{r,2409,"QualType Sema::BuildVectorType(QualType CurType, Expr *SizeExpr, SourceLocation AttrLoc) {\n  // vecSize is specified in bytes - convert to bits.\n  if (!VecSize->isIntN(61)) {\n    Diag(AttrLoc, diag::err_attribute_size_too_large) << SizeExpr->getSourceRange() << \"vector\";"},{r,2426,"QualType Sema::BuildVectorType(QualType CurType, Expr *SizeExpr, SourceLocation AttrLoc) {\n  if (VectorSizeBits / TypeSize > std::numeric_limits<uint32_t>::max()) {\n    Diag(AttrLoc, diag::err_attribute_size_too_large) << SizeExpr->getSourceRange() << \"vector\";"},{r,2469,"/// Build an ext-vector type.\n///\n/// Run the required checks for the extended vector type.\nQualType Sema::BuildExtVectorType(QualType T, Expr *ArraySize, SourceLocation AttrLoc) {\n  if (!ArraySize->isTypeDependent() && !ArraySize->isValueDependent()) {\n    if (!vecSize->isIntN(32)) {\n      Diag(AttrLoc, diag::err_attribute_size_too_large) << ArraySize->getSourceRange() << \"vector\";"},{r,2539,"QualType Sema::BuildMatrixType(QualType ElementTy, Expr *NumRows, Expr *NumCols, SourceLocation AttrLoc) {\n  if (!ConstantMatrixType::isDimensionValid(MatrixRows)) {\n    Diag(AttrLoc, diag::err_attribute_size_too_large) << RowRange << \"matrix row\";"},{r,2543,"QualType Sema::BuildMatrixType(QualType ElementTy, Expr *NumRows, Expr *NumCols, SourceLocation AttrLoc) {\n  if (!ConstantMatrixType::isDimensionValid(MatrixColumns)) {\n    Diag(AttrLoc, diag::err_attribute_size_too_large) << ColRange << \"matrix column\";"}}
},
},
["err_attribute_sizeless_type"]={
["err_attribute_sizeless_type"]={
[f]="A attribute cannot be applied to sizeless type B",
[f]="A attribute cannot be applied to sizeless type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute cannot be applied to sizeless type %1",
[g]="%0 attribute cannot be applied to sizeless type %1",
[c]=m,
[i]=m,
[b]="(.*?) attribute cannot be applied to sizeless type (.*?)",
[j]="(.*?) attribute cannot be applied to sizeless type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={C,1576908663,B}
[d]={W,1576908663,V},
[k]={{p,4034,"void Sema::CheckAlignasUnderalignment(Decl *D) {\n  if (Align && DiagTy->isSizelessType()) {\n    Diag(LastAlignedAttr->getLocation(), diag::err_attribute_sizeless_type) << LastAlignedAttr << DiagTy;"}}
},
},
["err_attribute_too_few_arguments"]={
["err_attribute_too_few_arguments"]={
[f]="A attribute takes at least B argumentC",
[f]="A attribute takes at least B argumentC",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute takes at least %1 argument%s1",
[g]="%0 attribute takes at least %1 argument%s1",
[c]=m,
[i]=m,
[b]="(.*?) attribute takes at least (.*?) argument(.*?)",
[j]="(.*?) attribute takes at least (.*?) argument(.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"63fa667c6874",1311883955,"Added basic parsing for all remaining attributes, thread safety"}
[d]={"63fa667c6874",1311883955,"Added basic parsing for all remaining attributes, thread safety"},
[k]={{"clang/lib/Sema/ParsedAttr.cpp",239,"bool ParsedAttr::checkAtLeastNumArgs(Sema &S, unsigned Num) const { return checkAttributeNumArgsImpl(S, *this, Num, diag::err_attribute_too_few_arguments, std::less<unsigned>()); }"},{p,1632,"static void handleOwnershipAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  case OwnershipAttr::Holds:\n    if (AL.getNumArgs() < 2) {\n      S.Diag(AL.getLoc(), diag::err_attribute_too_few_arguments) << AL << 2;"},{"clang/lib/Sema/SemaTemplateInstantiateDecl.cpp",168,"static void instantiateDependentAnnotationAttr(Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs, const AnnotateAttr *Attr, Decl *New) {\n  if (HasDelayedArgs) {\n    if (Args.size() < 1) {\n      S.Diag(Attr->getLoc(), diag::err_attribute_too_few_arguments) << Attr << 1;"},{r,7495,"static void HandleAnnotateTypeAttr(TypeProcessingState &State, QualType &CurType, const ParsedAttr &PA) {\n  if (PA.getNumArgs() < 1) {\n    S.Diag(PA.getLoc(), diag::err_attribute_too_few_arguments) << PA << 1;"}}
},
},
["err_attribute_too_many_arguments"]={
["err_attribute_too_many_arguments"]={
[f]="A attribute takes no more than B argumentC",
[f]="A attribute takes no more than B argumentC",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute takes no more than %1 argument%s1",
[g]="%0 attribute takes no more than %1 argument%s1",
[c]=m,
[i]=m,
[b]="(.*?) attribute takes no more than (.*?) argument(.*?)",
[j]="(.*?) attribute takes no more than (.*?) argument(.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"80ee5963fde8",1299068105,"Pretty up the wrong-number-of-arguments-for-attribute diagnostic by"}
[d]={"80ee5963fde8",1299068105,"Pretty up the wrong-number-of-arguments-for-attribute diagnostic by"},
[k]={{"clang/lib/Sema/ParsedAttr.cpp",240,"bool ParsedAttr::checkAtMostNumArgs(Sema &S, unsigned Num) const { return checkAttributeNumArgsImpl(S, *this, Num, diag::err_attribute_too_many_arguments, std::greater<unsigned>()); }"},{p,1638,"static void handleOwnershipAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  case OwnershipAttr::Returns:\n    if (AL.getNumArgs() > 2) {\n      S.Diag(AL.getLoc(), diag::err_attribute_too_many_arguments) << AL << 1;"},{p,6496,"static void handleARMInterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // Check the attribute arguments.\n  if (AL.getNumArgs() > 1) {\n    S.Diag(AL.getLoc(), diag::err_attribute_too_many_arguments) << AL << 1;"},{p,6564,"static void handleMipsInterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // Only one optional argument permitted.\n  if (AL.getNumArgs() > 1) {\n    S.Diag(AL.getLoc(), diag::err_attribute_too_many_arguments) << AL << 1;"}}
},
},
["err_attribute_unsupported"]={
["err_attribute_unsupported"]={
[f]="A attribute is not supported on targets missing B; specify an appropriate -march= or -mcpu=",
[f]="A attribute is not supported on targets missing B; specify an appropriate -march= or -mcpu=",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute is not supported on targets missing %1; specify an appropriate -march= or -mcpu=",
[g]="%0 attribute is not supported on targets missing %1; specify an appropriate -march= or -mcpu=",
[c]=m,
[i]=m,
[b]="(.*?) attribute is not supported on targets missing (.*?); specify an appropriate \\-march\\= or \\-mcpu\\=",
[j]="(.*?) attribute is not supported on targets missing (.*?); specify an appropriate \\-march\\= or \\-mcpu\\=",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"8c3de546d62e",1379354855,"Add error checking to reject neon_vector_type attribute on targets without NEON."}
[d]={"8c3de546d62e",1379354855,"Add error checking to reject neon_vector_type attribute on targets without NEON."},
[k]={{r,7257,"/// HandleNeonVectorTypeAttr - The \"neon_vector_type\" and\n/// \"neon_polyvector_type\" attributes are used to create vector types that\n/// are mangled according to ARM\'s ABI.  Otherwise, these types are identical\n/// to those created with the \"vector_size\" attribute.  Unlike \"vector_size\"\n/// the argument to these Neon attributes is the number of vector elements,\n/// not the vector size in bytes.  The vector width and element type must\n/// match one of the standard Neon vector types.\nstatic void HandleNeonVectorTypeAttr(QualType &CurType, const ParsedAttr &Attr, Sema &S, VectorType::VectorKind VecKind) {\n  // Target must have NEON (or MVE, whose vectors are similar enough\n  // not to need a separate attribute)\n  if (!(S.Context.getTargetInfo().hasFeature(\"neon\") || S.Context.getTargetInfo().hasFeature(\"mve\") || IsTargetCUDAAndHostARM)) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_unsupported) << Attr << \"\'neon\' or \'mve\'\";"},{r,7298,"/// HandleArmSveVectorBitsTypeAttr - The \"arm_sve_vector_bits\" attribute is\n/// used to create fixed-length versions of sizeless SVE types defined by\n/// the ACLE, such as svint32_t and svbool_t.\nstatic void HandleArmSveVectorBitsTypeAttr(QualType &CurType, ParsedAttr &Attr, Sema &S) {\n  // Target must have SVE.\n  if (!S.Context.getTargetInfo().hasFeature(\"sve\")) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_unsupported) << Attr << \"\'sve\'\";"},{r,7370,"/// HandleRISCVRVVVectorBitsTypeAttr - The \"riscv_rvv_vector_bits\" attribute is\n/// used to create fixed-length versions of sizeless RVV types such as\n/// vint8m1_t_t.\nstatic void HandleRISCVRVVVectorBitsTypeAttr(QualType &CurType, ParsedAttr &Attr, Sema &S) {\n  // Target must have vector extension.\n  if (!S.Context.getTargetInfo().hasFeature(\"zve32x\")) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_unsupported) << Attr << \"\'zve32x\'\";"}}
},
},
["err_attribute_uuid_malformed_guid"]={
["err_attribute_uuid_malformed_guid"]={
[f]="uuid attribute contains a malformed GUID",
[f]="uuid attribute contains a malformed GUID",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="uuid attribute contains a malformed GUID",
[i]=m,
[j]="uuid attribute contains a malformed GUID",
[j]="uuid attribute contains a malformed GUID",
[c]=m,
[b]=a,
[b]="uuid attribute contains a malformed GUID",
[i]=a,
[h]=a,
[h]=a,
[g]={"7da1166da010",1292809309,"Validate Microsoft\'s uuid attribute string."}
[d]={"7da1166da010",1292809309,"Validate Microsoft\'s uuid attribute string."},
[k]={{K,4140,"/// Parse uuid() attribute when it appears in a [] Microsoft attribute.\nvoid Parser::ParseMicrosoftUuidAttributeArgs(ParsedAttributes &Attrs) {\n  if (Tok.is(tok::string_literal)) {\n  } else {\n    while (Tok.isNot(tok::r_paren)) {\n      if (Tok.hasLeadingSpace() || Tok.isAtStartOfLine()) {\n        Diag(Tok, diag::err_attribute_uuid_malformed_guid);"},{K,4158,"/// Parse uuid() attribute when it appears in a [] Microsoft attribute.\nvoid Parser::ParseMicrosoftUuidAttributeArgs(ParsedAttributes &Attrs) {\n  if (Tok.is(tok::string_literal)) {\n  } else {\n    if (Tok.hasLeadingSpace() || Tok.isAtStartOfLine()) {\n      Diag(Tok, diag::err_attribute_uuid_malformed_guid);"},{p,6178,"static void handleUuidAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // Validate GUID length.\n  if (StrRef.size() != 36) {\n    S.Diag(LiteralLoc, diag::err_attribute_uuid_malformed_guid);"},{p,6185,"static void handleUuidAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  for (unsigned i = 0; i < 36; ++i) {\n    if (i == 8 || i == 13 || i == 18 || i == 23) {\n      if (StrRef[i] != \'-\') {\n        S.Diag(LiteralLoc, diag::err_attribute_uuid_malformed_guid);"},{p,6189,"static void handleUuidAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  for (unsigned i = 0; i < 36; ++i) {\n    if (i == 8 || i == 13 || i == 18 || i == 23) {\n    } else if (!isHexDigit(StrRef[i])) {\n      S.Diag(LiteralLoc, diag::err_attribute_uuid_malformed_guid);"}}
},
},
["err_attribute_vecreturn_only_pod_record"]={
["err_attribute_vecreturn_only_pod_record"]={
[f]="the vecreturn attribute can only be used on a POD (plain old data) class or structure (i.e. no virtual functions)",
[f]="the vecreturn attribute can only be used on a POD (plain old data) class or structure (i.e. no virtual functions)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="the vecreturn attribute can only be used on a POD (plain old data) class or structure (i.e. no virtual functions)",
[g]="the vecreturn attribute can only be used on a POD (plain old data) class or structure (i.e. no virtual functions)",
[c]=m,
[i]=m,
[b]="the vecreturn attribute can only be used on a POD \\(plain old data\\) class or structure \\(i\\.e\\. no virtual functions\\)",
[j]="the vecreturn attribute can only be used on a POD \\(plain old data\\) class or structure \\(i\\.e\\. no virtual functions\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"9a587aaaa9e7",1284772327,"Add more error checking to attribute vecreturn"}
[d]={"9a587aaaa9e7",1284772327,"Add more error checking to attribute vecreturn"},
[k]={{p,2063,"// PS3 PPU-specific.\nstatic void handleVecReturnAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!cast<CXXRecordDecl>(R)->isPOD()) {\n    S.Diag(AL.getLoc(), diag::err_attribute_vecreturn_only_pod_record);"}}
},
},
["err_attribute_vecreturn_only_vector_member"]={
["err_attribute_vecreturn_only_vector_member"]={
[f]="the vecreturn attribute can only be used on a class or structure with one member, which must be a vector",
[f]="the vecreturn attribute can only be used on a class or structure with one member, which must be a vector",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="the vecreturn attribute can only be used on a class or structure with one member, which must be a vector",
[i]=m,
[j]="the vecreturn attribute can only be used on a class or structure with one member, which must be a vector",
[j]="the vecreturn attribute can only be used on a class or structure with one member, which must be a vector",
[c]=m,
[b]=a,
[b]="the vecreturn attribute can only be used on a class or structure with one member, which must be a vector",
[h]=o,
[i]=a,
[d]={"9a587aaaa9e7",1284772327,"Add more error checking to attribute vecreturn"},
[h]=n,
[k]={{p,2058,"// PS3 PPU-specific.\nstatic void handleVecReturnAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!isa<CXXRecordDecl>(R)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_vecreturn_only_vector_member);"},{p,2069,"// PS3 PPU-specific.\nstatic void handleVecReturnAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  for (const auto *I : R->fields()) {\n    if ((count == 1) || !I->getType()->isVectorType()) {\n      S.Diag(AL.getLoc(), diag::err_attribute_vecreturn_only_vector_member);"}}
[g]={"9a587aaaa9e7",1284772327,"Add more error checking to attribute vecreturn"}
},
},
["err_attribute_weak_static"]={
["err_attribute_weak_static"]={
[f]="weak declaration cannot have internal linkage",
[f]="weak declaration cannot have internal linkage",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="weak declaration cannot have internal linkage",
[i]=m,
[j]="weak declaration cannot have internal linkage",
[j]="weak declaration cannot have internal linkage",
[c]=m,
[b]=a,
[b]="weak declaration cannot have internal linkage",
[h]=o,
[i]=a,
[d]={"41136eec6bdb",1247706744,"Generate error on declaration containing \'static\' and \'__attribute__((weak))\'"},
[h]=n,
[k]={{q,6184,"static void checkAttributesAfterMerging(Sema &S, NamedDecl &ND) {\n  // \'weak\' only applies to declarations with external linkage.\n  if (WeakAttr *Attr = ND.getAttr<WeakAttr>()) {\n    if (!ND.isExternallyVisible()) {\n      S.Diag(Attr->getLocation(), diag::err_attribute_weak_static);"}}
[g]={"41136eec6bdb",1247706744,"Generate error on declaration containing \'static\' and \'__attribute__((weak))\'"}
},
},
["err_attribute_weakref_not_global_context"]={
["err_attribute_weakref_not_global_context"]={
[f]="weakref declaration of A must be in a global context",
[f]="weakref declaration of A must be in a global context",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="weakref declaration of %0 must be in a global context",
[g]="weakref declaration of %0 must be in a global context",
[c]=m,
[i]=m,
[b]="weakref declaration of (.*?) must be in a global context",
[j]="weakref declaration of (.*?) must be in a global context",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"c18086ae1755",1266962430,"Add support for the weakref attribute. We still produce \"alias weak\" as llvm-gcc does, but are more ..."}
[d]={"c18086ae1755",1266962430,"Add support for the weakref attribute. We still produce \"alias weak\" as llvm-gcc does, but are more ..."},
[k]={{p,1723,"static void handleWeakRefAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!Ctx->isFileContext()) {\n    S.Diag(AL.getLoc(), diag::err_attribute_weakref_not_global_context) << cast<NamedDecl>(D);"}}
},
},
["err_attribute_weakref_not_static"]={
["err_attribute_weakref_not_static"]={
[f]="weakref declaration must have internal linkage",
[f]="weakref declaration must have internal linkage",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="weakref declaration must have internal linkage",
[i]=m,
[j]="weakref declaration must have internal linkage",
[j]="weakref declaration must have internal linkage",
[c]=m,
[b]=a,
[b]="weakref declaration must have internal linkage",
[h]=o,
[i]=a,
[d]={"c18086ae1755",1266962430,"Add support for the weakref attribute. We still produce \"alias weak\" as llvm-gcc does, but are more ..."},
[h]=n,
[k]={{q,6190,"static void checkAttributesAfterMerging(Sema &S, NamedDecl &ND) {\n  if (WeakRefAttr *Attr = ND.getAttr<WeakRefAttr>()) {\n    if (ND.isExternallyVisible()) {\n      S.Diag(Attr->getLocation(), diag::err_attribute_weakref_not_static);"}}
[g]={"c18086ae1755",1266962430,"Add support for the weakref attribute. We still produce \"alias weak\" as llvm-gcc does, but are more ..."}
},
},
["err_attribute_weakref_without_alias"]={
["err_attribute_weakref_without_alias"]={
[f]="weakref declaration of A must also have an alias attribute",
[f]="weakref declaration of A must also have an alias attribute",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="weakref declaration of %0 must also have an alias attribute",
[g]="weakref declaration of %0 must also have an alias attribute",
[c]=m,
[i]=m,
[b]="weakref declaration of (.*?) must also have an alias attribute",
[j]="weakref declaration of (.*?) must also have an alias attribute",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"c18086ae1755",1266962430,"Add support for the weakref attribute. We still produce \"alias weak\" as llvm-gcc does, but are more ..."}
[d]={"c18086ae1755",1266962430,"Add support for the weakref attribute. We still produce \"alias weak\" as llvm-gcc does, but are more ..."},
[k]={{p,8459,"/// ProcessDeclAttributeList - Apply all the decl attributes in the specified\n/// attribute list to the specified decl, ignoring any type attributes.\nvoid Sema::ProcessDeclAttributeList(Scope *S, Decl *D, const ParsedAttributesView &AttrList, const ProcessDeclAttributeOptions &Options) {\n  // FIXME: We should be able to handle these cases in TableGen.\n  // GCC accepts\n  // static int a9 __attribute__((weakref));\n  // but that looks really pointless. We reject it.\n  if (D->hasAttr<WeakRefAttr>() && !D->hasAttr<AliasAttr>()) {\n    Diag(AttrList.begin()->getLoc(), diag::err_attribute_weakref_without_alias) << cast<NamedDecl>(D);"}}
},
},
["err_attribute_webassembly_funcref"]={
["err_attribute_webassembly_funcref"]={
[f]="\'__funcref\' attribute can only be applied to a function pointer type",
[f]="\'__funcref\' attribute can only be applied to a function pointer type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'__funcref\' attribute can only be applied to a function pointer type",
[i]=m,
[j]="\'__funcref\' attribute can only be applied to a function pointer type",
[j]="\'__funcref\' attribute can only be applied to a function pointer type",
[c]=m,
[b]=a,
[b]="\'__funcref\' attribute can only be applied to a function pointer type",
[h]=o,
[i]=a,
[d]={N,1625925174,M}
[h]=n,
[g]={w,1625925174,v}
},
},
["err_attribute_wrong_decl_type"]={
["err_attribute_wrong_decl_type"]={
[f]="A... only applies to ...",
[f]="A... only applies to ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0%select{ attribute|}1 only applies to %select{functions|unions|variables and functions|functions and methods|functions, methods and blocks|functions, methods, and parameters|variables|variables and fields|variables, data members and tag types|types and namespaces|variables, functions and classes|kernel functions|non-K&R-style functions}2",
[g]="%0%select{ attribute|}1 only applies to %select{functions|unions|variables and functions|functions and methods|functions, methods and blocks|functions, methods, and parameters|variables|variables and fields|variables, data members and tag types|types and namespaces|variables, functions and classes|kernel functions|non-K&R-style functions}2",
[c]=m,
[i]=m,
[b]="(.*?)(?: attribute|) only applies to (?:functions|unions|variables and functions|functions and methods|functions, methods and blocks|functions, methods, and parameters|variables|variables and fields|variables, data members and tag types|types and namespaces|variables, functions and classes|kernel functions|non\\-K&R\\-style functions)",
[j]="(.*?)(?: attribute|) only applies to (?:functions|unions|variables and functions|functions and methods|functions, methods and blocks|functions, methods, and parameters|variables|variables and fields|variables, data members and tag types|types and namespaces|variables, functions and classes|kernel functions|non\\-K&R\\-style functions)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"96d5c76498b2",1258792989,"Added rudimentary C++0x attribute support."}
[d]={"96d5c76498b2",1258792989,"Added rudimentary C++0x attribute support."},
[k]={{p,2015,"static void handleAnalyzerNoReturnAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // The checking path for \'noreturn\' and \'analyzer_noreturn\' are different\n  // because \'analyzer_noreturn\' does not impact the type.\n  if (!isFunctionOrMethodOrBlock(D)) {\n    if (!VD || (!VD->getType()->isBlockPointerType() && !VD->getType()->isFunctionPointerType())) {\n      S.Diag(AL.getLoc(), AL.isStandardAttributeSyntax() ? diag::err_attribute_wrong_decl_type : diag::warn_attribute_wrong_decl_type) << AL << AL.isRegularKeywordAttribute() << ExpectedFunctionMethodOrBlock;"},{p,2542,"static void handleVisibilityAttr(Sema &S, Decl *D, const ParsedAttr &AL, bool isTypeVisibility) {\n  // \'type_visibility\' can only go on a type or namespace.\n  if (isTypeVisibility && !(isa<TagDecl>(D) || isa<ObjCInterfaceDecl>(D) || isa<NamespaceDecl>(D))) {\n    S.Diag(AL.getRange().getBegin(), diag::err_attribute_wrong_decl_type) << AL << AL.isRegularKeywordAttribute() << ExpectedTypeOrNamespace;"},{p,3874,"/// Perform checking of type validity\n///\n/// C++11 [dcl.align]p1:\n///  An alignment-specifier may be applied to a variable or to a class\n///  data member, but it shall not be applied to a bit-field, a function\n///  parameter, the formal parameter of a catch clause, or a variable\n///  declared with the register storage class specifier. An\n///  alignment-specifier may also be applied to the declaration of a class\n///  or enumeration type.\n/// CWG 2354:\n///  CWG agreed to remove permission for alignas to be applied to\n///  enumerations.\n/// C11 6.7.5/2:\n///  An alignment attribute shall not be specified in a declaration of\n///  a typedef, or a bit-field, or a function, or a parameter, or an\n///  object declared with the register storage-class specifier.\nstatic bool validateAlignasAppliedType(Sema &S, Decl *D, const AlignedAttr &Attr, SourceLocation AttrLoc) {\n  if (isa<ParmVarDecl>(D)) {\n  } else if (const auto *VD = dyn_cast<VarDecl>(D)) {\n  } else if (const auto *FD = dyn_cast<FieldDecl>(D)) {\n  } else if (const auto *ED = dyn_cast<EnumDecl>(D)) {\n  } else if (!isa<TagDecl>(D)) {\n    return S.Diag(AttrLoc, diag::err_attribute_wrong_decl_type) << &Attr << Attr.isRegularKeywordAttribute() << (Attr.isC11() ? ExpectedVariableOrField : ExpectedVariableFieldOrTag);"},{p,5032,"static void handleTypeTagForDatatypeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!isa<VarDecl>(D)) {\n    S.Diag(AL.getLoc(), diag::err_attribute_wrong_decl_type) << AL << AL.isRegularKeywordAttribute() << ExpectedVariable;"},{p,5533,"static void handleObjCOwnershipAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  S.Diag(D->getBeginLoc(), diag::err_attribute_wrong_decl_type) << AL.getRange() << AL << AL.isRegularKeywordAttribute() << ExpectedVariable;"},{p,7269,"static void handleNoSanitizeSpecificAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (isGlobalVar(D) && SanitizerName != \"address\")\n    S.Diag(D->getLocation(), diag::err_attribute_wrong_decl_type) << AL << AL.isRegularKeywordAttribute() << ExpectedFunction;"},{p,8472,"/// ProcessDeclAttributeList - Apply all the decl attributes in the specified\n/// attribute list to the specified decl, ignoring any type attributes.\nvoid Sema::ProcessDeclAttributeList(Scope *S, Decl *D, const ParsedAttributesView &AttrList, const ProcessDeclAttributeOptions &Options) {\n  // FIXME: We should be able to handle this in TableGen as well. It would be\n  // good to have a way to specify \"these attributes must appear as a group\",\n  // for these. Additionally, it would be good to have a way to specify \"these\n  // attribute must never appear as a group\" for attributes like cold and hot.\n  if (!D->hasAttr<OpenCLKernelAttr>()) {\n    // These attributes cannot be applied to a non-kernel function.\n    if (const auto *A = D->getAttr<ReqdWorkGroupSizeAttr>()) {\n      // diag::err_attribute_wrong_decl_type + ExpectedKernelFunction."},{p,8486,"/// ProcessDeclAttributeList - Apply all the decl attributes in the specified\n/// attribute list to the specified decl, ignoring any type attributes.\nvoid Sema::ProcessDeclAttributeList(Scope *S, Decl *D, const ParsedAttributesView &AttrList, const ProcessDeclAttributeOptions &Options) {\n  // FIXME: We should be able to handle this in TableGen as well. It would be\n  // good to have a way to specify \"these attributes must appear as a group\",\n  // for these. Additionally, it would be good to have a way to specify \"these\n  // attribute must never appear as a group\" for attributes like cold and hot.\n  if (!D->hasAttr<OpenCLKernelAttr>()) {\n    // These attributes cannot be applied to a non-kernel function.\n    if (const auto *A = D->getAttr<ReqdWorkGroupSizeAttr>()) {\n    } else if (const auto *A = D->getAttr<WorkGroupSizeHintAttr>()) {\n    } else if (const auto *A = D->getAttr<VecTypeHintAttr>()) {\n    } else if (const auto *A = D->getAttr<OpenCLIntelReqdSubGroupSizeAttr>()) {\n    } else if (!D->hasAttr<CUDAGlobalAttr>()) {\n      if (const auto *A = D->getAttr<AMDGPUFlatWorkGroupSizeAttr>()) {\n        Diag(D->getLocation(), diag::err_attribute_wrong_decl_type) << A << A->isRegularKeywordAttribute() << ExpectedKernelFunction;"},{p,8489,"/// ProcessDeclAttributeList - Apply all the decl attributes in the specified\n/// attribute list to the specified decl, ignoring any type attributes.\nvoid Sema::ProcessDeclAttributeList(Scope *S, Decl *D, const ParsedAttributesView &AttrList, const ProcessDeclAttributeOptions &Options) {\n  // FIXME: We should be able to handle this in TableGen as well. It would be\n  // good to have a way to specify \"these attributes must appear as a group\",\n  // for these. Additionally, it would be good to have a way to specify \"these\n  // attribute must never appear as a group\" for attributes like cold and hot.\n  if (!D->hasAttr<OpenCLKernelAttr>()) {\n    // These attributes cannot be applied to a non-kernel function.\n    if (const auto *A = D->getAttr<ReqdWorkGroupSizeAttr>()) {\n    } else if (const auto *A = D->getAttr<WorkGroupSizeHintAttr>()) {\n    } else if (const auto *A = D->getAttr<VecTypeHintAttr>()) {\n    } else if (const auto *A = D->getAttr<OpenCLIntelReqdSubGroupSizeAttr>()) {\n    } else if (!D->hasAttr<CUDAGlobalAttr>()) {\n      if (const auto *A = D->getAttr<AMDGPUFlatWorkGroupSizeAttr>()) {\n      } else if (const auto *A = D->getAttr<AMDGPUWavesPerEUAttr>()) {\n        Diag(D->getLocation(), diag::err_attribute_wrong_decl_type) << A << A->isRegularKeywordAttribute() << ExpectedKernelFunction;"},{p,8492,"/// ProcessDeclAttributeList - Apply all the decl attributes in the specified\n/// attribute list to the specified decl, ignoring any type attributes.\nvoid Sema::ProcessDeclAttributeList(Scope *S, Decl *D, const ParsedAttributesView &AttrList, const ProcessDeclAttributeOptions &Options) {\n  // FIXME: We should be able to handle this in TableGen as well. It would be\n  // good to have a way to specify \"these attributes must appear as a group\",\n  // for these. Additionally, it would be good to have a way to specify \"these\n  // attribute must never appear as a group\" for attributes like cold and hot.\n  if (!D->hasAttr<OpenCLKernelAttr>()) {\n    // These attributes cannot be applied to a non-kernel function.\n    if (const auto *A = D->getAttr<ReqdWorkGroupSizeAttr>()) {\n    } else if (const auto *A = D->getAttr<WorkGroupSizeHintAttr>()) {\n    } else if (const auto *A = D->getAttr<VecTypeHintAttr>()) {\n    } else if (const auto *A = D->getAttr<OpenCLIntelReqdSubGroupSizeAttr>()) {\n    } else if (!D->hasAttr<CUDAGlobalAttr>()) {\n      if (const auto *A = D->getAttr<AMDGPUFlatWorkGroupSizeAttr>()) {\n      } else if (const auto *A = D->getAttr<AMDGPUWavesPerEUAttr>()) {\n      } else if (const auto *A = D->getAttr<AMDGPUNumSGPRAttr>()) {\n        Diag(D->getLocation(), diag::err_attribute_wrong_decl_type) << A << A->isRegularKeywordAttribute() << ExpectedKernelFunction;"},{p,8495,"/// ProcessDeclAttributeList - Apply all the decl attributes in the specified\n/// attribute list to the specified decl, ignoring any type attributes.\nvoid Sema::ProcessDeclAttributeList(Scope *S, Decl *D, const ParsedAttributesView &AttrList, const ProcessDeclAttributeOptions &Options) {\n  // FIXME: We should be able to handle this in TableGen as well. It would be\n  // good to have a way to specify \"these attributes must appear as a group\",\n  // for these. Additionally, it would be good to have a way to specify \"these\n  // attribute must never appear as a group\" for attributes like cold and hot.\n  if (!D->hasAttr<OpenCLKernelAttr>()) {\n    // These attributes cannot be applied to a non-kernel function.\n    if (const auto *A = D->getAttr<ReqdWorkGroupSizeAttr>()) {\n    } else if (const auto *A = D->getAttr<WorkGroupSizeHintAttr>()) {\n    } else if (const auto *A = D->getAttr<VecTypeHintAttr>()) {\n    } else if (const auto *A = D->getAttr<OpenCLIntelReqdSubGroupSizeAttr>()) {\n    } else if (!D->hasAttr<CUDAGlobalAttr>()) {\n      if (const auto *A = D->getAttr<AMDGPUFlatWorkGroupSizeAttr>()) {\n      } else if (const auto *A = D->getAttr<AMDGPUWavesPerEUAttr>()) {\n      } else if (const auto *A = D->getAttr<AMDGPUNumSGPRAttr>()) {\n      } else if (const auto *A = D->getAttr<AMDGPUNumVGPRAttr>()) {\n        Diag(D->getLocation(), diag::err_attribute_wrong_decl_type) << A << A->isRegularKeywordAttribute() << ExpectedKernelFunction;"}}
},
},
["err_attribute_wrong_decl_type_str"]={
["err_attribute_wrong_decl_type_str"]={
[f]="A... only applies to B",
[f]="A... only applies to B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0%select{ attribute|}1 only applies to %2",
[g]="%0%select{ attribute|}1 only applies to %2",
[c]=m,
[i]=m,
[b]="(.*?)(?: attribute|) only applies to (.*?)",
[j]="(.*?)(?: attribute|) only applies to (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"adf66b617461",1511726472,"Determine the attribute subject for diagnostics based on declarative information in DeclNodes.td. Th..."}
[d]={"adf66b617461",1511726472,"Determine the attribute subject for diagnostics based on declarative information in DeclNodes.td. Th..."},
[k]={{p,1949,"static void handleNakedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.isDeclspecAttribute()) {\n    // This form is not allowed to be written on a member function (static or\n    // nonstatic) when in Microsoft compatibility mode.\n    if (S.getLangOpts().MSVCCompat && isa<CXXMethodDecl>(D)) {\n      S.Diag(AL.getLoc(), diag::err_attribute_wrong_decl_type_str) << AL << AL.isRegularKeywordAttribute() << \"non-member functions\";"}}
},
},
["err_attribute_wrong_number_arguments"]={
["err_attribute_wrong_number_arguments"]={
[f]="A attribute takes no arguments",
[f]="A attribute takes no arguments",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute %plural{0:takes no arguments|1:takes one argument|:requires exactly %1 arguments}1",
[g]="%0 attribute %plural{0:takes no arguments|1:takes one argument|:requires exactly %1 arguments}1",
[c]=m,
[i]=m,
[b]="(.*?) attribute (?:takes no arguments|takes one argument|requires exactly (.*?) arguments)",
[j]="(.*?) attribute (?:takes no arguments|takes one argument|requires exactly (.*?) arguments)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{"clang/lib/Sema/ParsedAttr.cpp",238,"bool ParsedAttr::checkExactlyNumArgs(Sema &S, unsigned Num) const { return checkAttributeNumArgsImpl(S, *this, Num, diag::err_attribute_wrong_number_arguments, std::not_equal_to<unsigned>()); }"},{p,1346,"static void handleIBOutletCollection(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // The iboutletcollection attribute can have zero or one arguments.\n  if (AL.getNumArgs() > 1) {\n    S.Diag(AL.getLoc(), diag::err_attribute_wrong_number_arguments) << AL << 1;"},{p,1707,"static void handleWeakRefAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // Check the attribute arguments.\n  if (AL.getNumArgs() > 1) {\n    S.Diag(AL.getLoc(), diag::err_attribute_wrong_number_arguments) << AL << 1;"},{p,2856,"static void handleVecTypeHint(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!AL.hasParsedType()) {\n    S.Diag(AL.getLoc(), diag::err_attribute_wrong_number_arguments) << AL << 1;"},{p,3637,"/// Handle __attribute__((callback(CalleeIdx, PayloadIdx0, ...))) attributes.\nstatic void handleCallbackAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (CalleeFnProtoType->getNumParams() > EncodingIndices.size() - 1) {\n    S.Diag(AL.getLoc(), diag::err_attribute_wrong_number_arguments) << AL << (unsigned)(EncodingIndices.size() - 1);"},{p,3642,"/// Handle __attribute__((callback(CalleeIdx, PayloadIdx0, ...))) attributes.\nstatic void handleCallbackAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (CalleeFnProtoType->getNumParams() < EncodingIndices.size() - 1) {\n    S.Diag(AL.getLoc(), diag::err_attribute_wrong_number_arguments) << AL << (unsigned)(EncodingIndices.size() - 1);"},{p,3821,"static void handleAlignedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // check the attribute arguments.\n  if (AL.getNumArgs() > 1) {\n    S.Diag(AL.getLoc(), diag::err_attribute_wrong_number_arguments) << AL << 1;"},{r,5991,"static void HandleBTFTypeTagAttribute(QualType &Type, const ParsedAttr &Attr, TypeProcessingState &State) {\n  // Check the number of attribute arguments.\n  if (Attr.getNumArgs() != 1) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_number_arguments) << Attr << 1;"},{r,6028,"/// HandleAddressSpaceTypeAttribute - Process an address_space attribute on the\n/// specified type.  The attribute contains 1 argument, the id of the address\n/// space for the type.\nstatic void HandleAddressSpaceTypeAttribute(QualType &Type, const ParsedAttr &Attr, TypeProcessingState &State) {\n  if (Attr.getKind() == ParsedAttr::AT_AddressSpace) {\n    // Check the attribute arguments.\n    if (Attr.getNumArgs() != 1) {\n      S.Diag(Attr.getLoc(), diag::err_attribute_wrong_number_arguments) << Attr << 1;"},{r,6280,"/// handleObjCGCTypeAttr - Process the __attribute__((objc_gc)) type\n/// attribute on the specified type.  Returns true to indicate that\n/// the attribute was handled, false to indicate that the type does\n/// not permit the attribute.\nstatic bool handleObjCGCTypeAttr(TypeProcessingState &state, ParsedAttr &attr, QualType &type) {\n  if (attr.getNumArgs() > 1) {\n    S.Diag(attr.getLoc(), diag::err_attribute_wrong_number_arguments) << attr << 1;"},{r,7171,"/// HandleVectorSizeAttribute - this attribute is only applicable to integral\n/// and float scalars, although arrays, pointers, and function return values are\n/// allowed in conjunction with this construct. Aggregates with this attribute\n/// are invalid, even if they are of the same size as a corresponding scalar.\n/// The raw attribute should contain precisely 1 argument, the vector size for\n/// the variable, measured in bytes. If curType and rawAttr are well formed,\n/// this routine will return a new vector type.\nstatic void HandleVectorSizeAttr(QualType &CurType, const ParsedAttr &Attr, Sema &S) {\n  // Check the attribute arguments.\n  if (Attr.getNumArgs() != 1) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_number_arguments) << Attr << 1;"},{r,7189,"/// Process the OpenCL-like ext_vector_type attribute when it occurs on\n/// a type.\nstatic void HandleExtVectorTypeAttr(QualType &CurType, const ParsedAttr &Attr, Sema &S) {\n  // check the attribute arguments.\n  if (Attr.getNumArgs() != 1) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_number_arguments) << Attr << 1;"},{r,7263,"/// HandleNeonVectorTypeAttr - The \"neon_vector_type\" and\n/// \"neon_polyvector_type\" attributes are used to create vector types that\n/// are mangled according to ARM\'s ABI.  Otherwise, these types are identical\n/// to those created with the \"vector_size\" attribute.  Unlike \"vector_size\"\n/// the argument to these Neon attributes is the number of vector elements,\n/// not the vector size in bytes.  The vector width and element type must\n/// match one of the standard Neon vector types.\nstatic void HandleNeonVectorTypeAttr(QualType &CurType, const ParsedAttr &Attr, Sema &S, VectorType::VectorKind VecKind) {\n  // Check the attribute arguments.\n  if (Attr.getNumArgs() != 1) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_number_arguments) << Attr << 1;"},{r,7313,"/// HandleArmSveVectorBitsTypeAttr - The \"arm_sve_vector_bits\" attribute is\n/// used to create fixed-length versions of sizeless SVE types defined by\n/// the ACLE, such as svint32_t and svbool_t.\nstatic void HandleArmSveVectorBitsTypeAttr(QualType &CurType, ParsedAttr &Attr, Sema &S) {\n  // Check the attribute arguments.\n  if (Attr.getNumArgs() != 1) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_number_arguments) << Attr << 1;"},{r,7384,"/// HandleRISCVRVVVectorBitsTypeAttr - The \"riscv_rvv_vector_bits\" attribute is\n/// used to create fixed-length versions of sizeless RVV types such as\n/// vint8m1_t_t.\nstatic void HandleRISCVRVVVectorBitsTypeAttr(QualType &CurType, ParsedAttr &Attr, Sema &S) {\n  // Check the attribute arguments.\n  if (Attr.getNumArgs() != 1) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_number_arguments) << Attr << 1;"},{r,7480,"/// HandleMatrixTypeAttr - \"matrix_type\" attribute, like ext_vector_type\nstatic void HandleMatrixTypeAttr(QualType &CurType, const ParsedAttr &Attr, Sema &S) {\n  if (Attr.getNumArgs() != 2) {\n    S.Diag(Attr.getLoc(), diag::err_attribute_wrong_number_arguments) << Attr << 2;"},{r,7757,"static void processTypeAttrs(TypeProcessingState &state, QualType &type, TypeAttrLocation TAL, const ParsedAttributesView &attrs) {\n  for (ParsedAttr &attr : AttrsCopy) {\n    case ParsedAttr::AT_AcquireHandle: {\n      if (attr.getNumArgs() != 1) {\n        state.getSema().Diag(attr.getLoc(), diag::err_attribute_wrong_number_arguments) << attr << 1;"}}
},
},
["err_attribute_wrong_number_arguments_for"]={
["err_attribute_wrong_number_arguments_for"]={
[f]="A attribute references function B, which takes no arguments",
[f]="A attribute references function B, which takes no arguments",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 attribute references function %1, which %plural{0:takes no arguments|1:takes one argument|:takes exactly %2 arguments}2",
[g]="%0 attribute references function %1, which %plural{0:takes no arguments|1:takes one argument|:takes exactly %2 arguments}2",
[c]=m,
[i]=m,
[b]="(.*?) attribute references function (.*?), which (?:takes no arguments|takes one argument|takes exactly (.*?) arguments)",
[j]="(.*?) attribute references function (.*?), which (?:takes no arguments|takes one argument|takes exactly (.*?) arguments)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={R,1616787805,S}
[d]={db,1616787805,cb},
[k]={{p,935,"static void handleDiagnoseAsBuiltinAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AttrFD->getNumParams() != AL.getNumArgs() - 1) {\n    S.Diag(AL.getLoc(), diag::err_attribute_wrong_number_arguments_for) << AL << AttrFD << AttrFD->getNumParams();"}}
},
},
["err_attribute_zero_size"]={
["err_attribute_zero_size"]={
[f]="zero A size",
[f]="zero A size",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="zero %0 size",
[g]="zero %0 size",
[c]=m,
[i]=m,
[b]="zero (.*?) size",
[j]="zero (.*?) size",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{r,2416,"QualType Sema::BuildVectorType(QualType CurType, Expr *SizeExpr, SourceLocation AttrLoc) {\n  if (VectorSizeBits == 0) {\n    Diag(AttrLoc, diag::err_attribute_zero_size) << SizeExpr->getSourceRange() << \"vector\";"},{r,2477,"/// Build an ext-vector type.\n///\n/// Run the required checks for the extended vector type.\nQualType Sema::BuildExtVectorType(QualType T, Expr *ArraySize, SourceLocation AttrLoc) {\n  if (!ArraySize->isTypeDependent() && !ArraySize->isValueDependent()) {\n    if (vectorSize == 0) {\n      Diag(AttrLoc, diag::err_attribute_zero_size) << ArraySize->getSourceRange() << \"vector\";"},{r,2527,"QualType Sema::BuildMatrixType(QualType ElementTy, Expr *NumRows, Expr *NumCols, SourceLocation AttrLoc) {\n  if (MatrixRows == 0 && MatrixColumns == 0) {\n    Diag(AttrLoc, diag::err_attribute_zero_size) << \"matrix\" << RowRange << ColRange;"},{r,2531,"QualType Sema::BuildMatrixType(QualType ElementTy, Expr *NumRows, Expr *NumCols, SourceLocation AttrLoc) {\n  if (MatrixRows == 0) {\n    Diag(AttrLoc, diag::err_attribute_zero_size) << \"matrix\" << RowRange;"},{r,2535,"QualType Sema::BuildMatrixType(QualType ElementTy, Expr *NumRows, Expr *NumCols, SourceLocation AttrLoc) {\n  if (MatrixColumns == 0) {\n    Diag(AttrLoc, diag::err_attribute_zero_size) << \"matrix\" << ColRange;"}}
},
},
["err_attributes_are_not_compatible"]={
["err_attributes_are_not_compatible"]={
[f]="A and B... are not compatible",
[f]="A and B... are not compatible",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 and %1%select{ attributes|}2 are not compatible",
[g]="%0 and %1%select{ attributes|}2 are not compatible",
[c]=m,
[i]=m,
[b]="(.*?) and (.*?)(?: attributes|) are not compatible",
[j]="(.*?) and (.*?)(?: attributes|) are not compatible",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{p,246,"/// Diagnose mutually exclusive attributes when present on a given\n/// declaration. Returns true if diagnosed.\ntemplate <typename AttrTy> static bool checkAttrMutualExclusion(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (const auto *A = D->getAttr<AttrTy>()) {\n    S.Diag(AL.getLoc(), diag::err_attributes_are_not_compatible) << AL << A << (AL.isRegularKeywordAttribute() || A->isRegularKeywordAttribute());"},{p,255,"template <typename AttrTy> static bool checkAttrMutualExclusion(Sema &S, Decl *D, const Attr &AL) {\n  if (const auto *A = D->getAttr<AttrTy>()) {\n    S.Diag(AL.getLocation(), diag::err_attributes_are_not_compatible) << &AL << A << (AL.isRegularKeywordAttribute() || A->isRegularKeywordAttribute());"},{p,1682,"static void handleOwnershipAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  for (unsigned i = 1; i < AL.getNumArgs(); ++i) {\n    // Check we don\'t have a conflict with another ownership attribute.\n    for (const auto *I : D->specific_attrs<OwnershipAttr>()) {\n      // Cannot have two ownership attributes of different kinds for the same\n      // index.\n      if (I->getOwnKind() != K && llvm::is_contained(I->args(), Idx)) {\n        S.Diag(AL.getLoc(), diag::err_attributes_are_not_compatible) << AL << I << (AL.isRegularKeywordAttribute() || I->isRegularKeywordAttribute());"},{p,3407,"ErrorAttr *Sema::mergeErrorAttr(Decl *D, const AttributeCommonInfo &CI, StringRef NewUserDiagnostic) {\n  if (const auto *EA = D->getAttr<ErrorAttr>()) {\n    if (!Match) {\n      Diag(EA->getLocation(), diag::err_attributes_are_not_compatible) << CI << EA << (CI.isRegularKeywordAttribute() || EA->isRegularKeywordAttribute());"},{p,4346,"SwiftNameAttr *Sema::mergeSwiftNameAttr(Decl *D, const SwiftNameAttr &SNA, StringRef Name) {\n  if (const auto *PrevSNA = D->getAttr<SwiftNameAttr>()) {\n    if (PrevSNA->getName() != Name && !PrevSNA->isImplicit()) {\n      Diag(PrevSNA->getLocation(), diag::err_attributes_are_not_compatible) << PrevSNA << &SNA << (PrevSNA->isRegularKeywordAttribute() || SNA.isRegularKeywordAttribute());"},{p,4625,"static void handleLifetimeCategoryAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.getKind() == ParsedAttr::AT_Owner) {\n    if (const auto *OAttr = D->getAttr<OwnerAttr>()) {\n      if (ExistingDerefType != ParmType.getTypePtrOrNull()) {\n        S.Diag(AL.getLoc(), diag::err_attributes_are_not_compatible) << AL << OAttr << (AL.isRegularKeywordAttribute() || OAttr->isRegularKeywordAttribute());"},{p,4639,"static void handleLifetimeCategoryAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (AL.getKind() == ParsedAttr::AT_Owner) {\n  } else {\n    if (const auto *PAttr = D->getAttr<PointerAttr>()) {\n      if (ExistingDerefType != ParmType.getTypePtrOrNull()) {\n        S.Diag(AL.getLoc(), diag::err_attributes_are_not_compatible) << AL << PAttr << (AL.isRegularKeywordAttribute() || PAttr->isRegularKeywordAttribute());"},{p,4866,"void Sema::AddParameterABIAttr(Decl *D, const AttributeCommonInfo &CI, ParameterABI abi) {\n  if (auto existingAttr = D->getAttr<ParameterABIAttr>()) {\n    if (existingAttr->getABI() != abi) {\n      Diag(CI.getLoc(), diag::err_attributes_are_not_compatible) << getParameterABISpelling(abi) << existingAttr << (CI.isRegularKeywordAttribute() || existingAttr->isRegularKeywordAttribute());"},{r,6522,"static bool handleMSPointerTypeQualifierAttr(TypeProcessingState &State, ParsedAttr &PAttr, QualType &Type) {\n  // You cannot have both __sptr and __uptr on the same type, nor can you\n  // have __ptr32 and __ptr64.\n  if (Attrs[attr::Ptr32] && Attrs[attr::Ptr64]) {\n    S.Diag(PAttr.getLoc(), diag::err_attributes_are_not_compatible) << \"\'__ptr32\'\""},{r,6526,"static bool handleMSPointerTypeQualifierAttr(TypeProcessingState &State, ParsedAttr &PAttr, QualType &Type) {\n  // You cannot have both __sptr and __uptr on the same type, nor can you\n  // have __ptr32 and __ptr64.\n  if (Attrs[attr::Ptr32] && Attrs[attr::Ptr64]) {\n  } else if (Attrs[attr::SPtr] && Attrs[attr::UPtr]) {\n    S.Diag(PAttr.getLoc(), diag::err_attributes_are_not_compatible) << \"\'__sptr\'\""},{r,6992,"/// Process an individual function attribute.  Returns true to\n/// indicate that the attribute was handled, false if it wasn\'t.\nstatic bool handleFunctionTypeAttr(TypeProcessingState &state, ParsedAttr &attr, QualType &type) {\n  if (attr.getKind() == ParsedAttr::AT_Regparm) {\n    if (CC == CC_X86FastCall) {\n      S.Diag(attr.getLoc(), diag::err_attributes_are_not_compatible) << FunctionType::getNameForCallConv(CC) << \"regparm\" << attr.isRegularKeywordAttribute();"},{r,7065,"/// Process an individual function attribute.  Returns true to\n/// indicate that the attribute was handled, false if it wasn\'t.\nstatic bool handleFunctionTypeAttr(TypeProcessingState &state, ParsedAttr &attr, QualType &type) {\n  if (CCOld != CC) {\n    // Error out on when there\'s already an attribute on the type\n    // and the CCs don\'t match.\n    if (S.getCallingConvAttributedType(type)) {\n      S.Diag(attr.getLoc(), diag::err_attributes_are_not_compatible) << FunctionType::getNameForCallConv(CC) << FunctionType::getNameForCallConv(CCOld) << attr.isRegularKeywordAttribute();"},{r,7093,"/// Process an individual function attribute.  Returns true to\n/// indicate that the attribute was handled, false if it wasn\'t.\nstatic bool handleFunctionTypeAttr(TypeProcessingState &state, ParsedAttr &attr, QualType &type) {\n  // Also diagnose fastcall with regparm.\n  if (CC == CC_X86FastCall && fn->getHasRegParm()) {\n    S.Diag(attr.getLoc(), diag::err_attributes_are_not_compatible) << \"regparm\" << FunctionType::getNameForCallConv(CC_X86FastCall) << attr.isRegularKeywordAttribute();"},{"clang/utils/TableGen/ClangAttrEmitter.cpp",3495,"// Generates the mutual exclusion checks. The checks for parsed attributes are\n// written into OS and the checks for merging declaration attributes are\n// written into MergeOS.\nstatic void GenerateMutualExclusionsChecks(const Record &Attr, const RecordKeeper &Records, raw_ostream &OS, raw_ostream &MergeDeclOS, raw_ostream &MergeStmtOS) {\n  // If we discovered any decl or stmt attributes to test for, generate the\n  // predicates for them now.\n  if (!DeclAttrs.empty()) {\n    for (const std::string &A : DeclAttrs) {\n      OS << \"      S.Diag(AL.getLoc(), diag::err_attributes_are_not_compatible)\""},{"clang/utils/TableGen/ClangAttrEmitter.cpp",3515,"// Generates the mutual exclusion checks. The checks for parsed attributes are\n// written into OS and the checks for merging declaration attributes are\n// written into MergeOS.\nstatic void GenerateMutualExclusionsChecks(const Record &Attr, const RecordKeeper &Records, raw_ostream &OS, raw_ostream &MergeDeclOS, raw_ostream &MergeStmtOS) {\n  // If we discovered any decl or stmt attributes to test for, generate the\n  // predicates for them now.\n  if (!DeclAttrs.empty()) {\n    // Also generate the declaration attribute merging logic if the current\n    // attribute is one that can be inheritted on a declaration. It is assumed\n    // this code will be executed in the context of a function with parameters:\n    // Sema &S, Decl *D, Attr *A and that returns a bool (false on diagnostic,\n    // true on success).\n    if (Attr.isSubClassOf(\"InheritableAttr\")) {\n      for (const std::string &A : DeclAttrs) {\n        MergeDeclOS << \"      S.Diag(First->getLocation(), \"\n                    << \"diag::err_attributes_are_not_compatible) << First << \""},{"clang/utils/TableGen/ClangAttrEmitter.cpp",3554,"// Generates the mutual exclusion checks. The checks for parsed attributes are\n// written into OS and the checks for merging declaration attributes are\n// written into MergeOS.\nstatic void GenerateMutualExclusionsChecks(const Record &Attr, const RecordKeeper &Records, raw_ostream &OS, raw_ostream &MergeDeclOS, raw_ostream &MergeStmtOS) {\n  // Statement attributes are a bit different from declarations. With\n  // declarations, each attribute is added to the declaration as it is\n  // processed, and so you can look on the Decl * itself to see if there is a\n  // conflicting attribute. Statement attributes are processed as a group\n  // because AttributedStmt needs to tail-allocate all of the attribute nodes\n  // at once. This means we cannot check whether the statement already contains\n  // an attribute to check for the conflict. Instead, we need to check whether\n  // the given list of semantic attributes contain any conflicts. It is assumed\n  // this code will be executed in the context of a function with parameters:\n  // Sema &S, const SmallVectorImpl<const Attr *> &C. The code will be within a\n  // loop which loops over the container C with a loop variable named A to\n  // represent the current attribute to check for conflicts.\n  //\n  // FIXME: it would be nice not to walk over the list of potential attributes\n  // to apply to the statement more than once, but statements typically don\'t\n  // have long lists of attributes on them, so re-walking the list should not\n  // be an expensive operation.\n  if (!StmtAttrs.empty()) {\n    MergeStmtOS << \"        S.Diag((*Iter)->getLocation(), \"\n                << \"diag::err_attributes_are_not_compatible) << *Iter << \""}}
},
},
["err_attributes_misplaced"]={
["err_attributes_misplaced"]={
[f]="misplaced attributes; expected attributes here",
[f]="misplaced attributes; expected attributes here",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="misplaced attributes; expected attributes here",
[i]=m,
[j]="misplaced attributes; expected attributes here",
[j]="misplaced attributes; expected attributes here",
[c]=m,
[b]=a,
[b]="misplaced attributes; expected attributes here",
[h]=B,
[i]=a,
[d]={"c5089c08d4cd",1514240600,"Add a fixit for attributes incorrectly placed prior to \'struct/class/enum\' keyword."},
[h]=o,
[k]={{D,1552,"void Parser::DiagnoseProhibitedAttributes(const ParsedAttributesView &Attrs, const SourceLocation CorrectLocation) {\n  if (CorrectLocation.isValid()) {\n    (FirstAttr && FirstAttr->isRegularKeywordAttribute() ? Diag(CorrectLocation, diag::err_keyword_misplaced) << FirstAttr : Diag(CorrectLocation, diag::err_attributes_misplaced)) << FixItHint::CreateInsertionFromRange(CorrectLocation, AttrRange) << FixItHint::CreateRemoval(AttrRange);"}}
[g]={"c5089c08d4cd",1514240600,"Add a fixit for attributes incorrectly placed prior to \'struct/class/enum\' keyword."}
},
},
["err_attributes_not_allowed"]={
["err_attributes_not_allowed"]={
[f]="an attribute list cannot appear here",
[f]="an attribute list cannot appear here",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="an attribute list cannot appear here",
[i]=m,
[j]="an attribute list cannot appear here",
[j]="an attribute list cannot appear here",
[c]=m,
[b]=a,
[b]="an attribute list cannot appear here",
[h]=B,
[i]=a,
[d]={"96d5c76498b2",1258792989,"Added rudimentary C++0x attribute support."},
[h]=o,
[k]={{D,1526,"/// DiagnoseProhibitedCXX11Attribute - We have found the opening square brackets\n/// of a C++11 attribute-specifier in a location where an attribute is not\n/// permitted. By C++11 [dcl.attr.grammar]p6, this is ill-formed. Diagnose this\n/// situation.\n///\n/// \\return \\c true if we skipped an attribute-like chunk of tokens, \\c false if\n/// this doesn\'t appear to actually be an attribute-specifier, and the caller\n/// should try to parse it.\nbool Parser::DiagnoseProhibitedCXX11Attribute() {\n  case CAK_AttributeSpecifier:\n    Diag(BeginLoc, diag::err_attributes_not_allowed) << SourceRange(BeginLoc, EndLoc);"},{D,1545,"/// We have found the opening square brackets of a C++11\n/// attribute-specifier in a location where an attribute is not permitted, but\n/// we know where the attributes ought to be written. Parse them anyway, and\n/// provide a fixit moving them to the right place.\nvoid Parser::DiagnoseMisplacedCXX11Attribute(ParsedAttributes &Attrs, SourceLocation CorrectLocation) {\n  (Keyword ? Diag(Loc, diag::err_keyword_not_allowed) << Keyword : Diag(Loc, diag::err_attributes_not_allowed)) << FixItHint::CreateInsertionFromRange(CorrectLocation, AttrRange) << FixItHint::CreateRemoval(AttrRange);"},{D,1555,"void Parser::DiagnoseProhibitedAttributes(const ParsedAttributesView &Attrs, const SourceLocation CorrectLocation) {\n  if (CorrectLocation.isValid()) {\n  } else {\n    (FirstAttr && FirstAttr->isRegularKeywordAttribute() ? Diag(Range.getBegin(), diag::err_keyword_not_allowed) << FirstAttr : Diag(Range.getBegin(), diag::err_attributes_not_allowed)) << Range;"},{D,4579,"/// ParseEnumSpecifier\n///      enum-specifier: [C99 6.7.2.2]\n///        \'enum\' identifier[opt] \'{\' enumerator-list \'}\'\n///[C99/C++]\'enum\' identifier[opt] \'{\' enumerator-list \',\' \'}\'\n/// [GNU]  \'enum\' attributes[opt] identifier[opt] \'{\' enumerator-list \',\' [opt]\n///                                                \'}\' attributes[opt]\n/// [MS]    \'enum\' __declspec[opt] identifier[opt] \'{\' enumerator-list \',\' [opt]\n///                                                \'}\'\n///        \'enum\' identifier\n/// [GNU]  \'enum\' attributes[opt] identifier\n///\n/// [C++11] enum-head \'{\' enumerator-list[opt] \'}\'\n/// [C++11] enum-head \'{\' enumerator-list \',\'  \'}\'\n///\n///      enum-head: [C++11]\n///        enum-key attribute-specifier-seq[opt] identifier[opt] enum-base[opt]\n///        enum-key attribute-specifier-seq[opt] nested-name-specifier\n///            identifier enum-base[opt]\n///\n///      enum-key: [C++11]\n///        \'enum\'\n///        \'enum\' \'class\'\n///        \'enum\' \'struct\'\n///\n///      enum-base: [C++11]\n///        \':\' type-specifier-seq\n///\n/// [C++] elaborated-type-specifier:\n/// [C++]  \'enum\' nested-name-specifier[opt] identifier\n///\nvoid Parser::ParseEnumSpecifier(SourceLocation StartLoc, DeclSpec &DS, const ParsedTemplateInfo &TemplateInfo, AccessSpecifier AS, DeclSpecContext DSC) {\n  // An elaborated-type-specifier has a much more constrained grammar:\n  //\n  //  \'enum\' nested-name-specifier[opt] identifier\n  //\n  // If we parsed any other bits, reject them now.\n  //\n  // MSVC and (for now at least) Objective-C permit a full enum-specifier\n  // or opaque-enum-declaration anywhere.\n  if (IsElaboratedTypeSpecifier && !getLangOpts().MicrosoftExt && !getLangOpts().ObjC) {\n    ProhibitCXX11Attributes(attrs, diag::err_attributes_not_allowed, diag::err_keyword_not_allowed,"},{D,5514,"/// ParseTypeQualifierListOpt\n///          type-qualifier-list: [C99 6.7.5]\n///            type-qualifier\n/// [vendor]  attributes\n///              [ only if AttrReqs & AR_VendorAttributesParsed ]\n///            type-qualifier-list type-qualifier\n/// [vendor]  type-qualifier-list attributes\n///              [ only if AttrReqs & AR_VendorAttributesParsed ]\n/// [C++0x]    attribute-specifier[opt] is allowed before cv-qualifier-seq\n///              [ only if AttReqs & AR_CXX11AttributesParsed ]\n/// Note: vendor can be GNU, MS, etc and can be explicitly controlled via\n/// AttrRequirements bitmask values.\nvoid Parser::ParseTypeQualifierListOpt(DeclSpec &DS, unsigned AttrReqs, bool AtomicAllowed, bool IdentifierRequired, std::optional<llvm::function_ref<void()>> CodeCompletionHandler) {\n  while (true) {\n    case tok::kw___attribute:\n      if (AttrReqs & AR_GNUAttributesParsedAndRejected)\n        Diag(Tok, diag::err_attributes_not_allowed);"},{K,685,"/// ParseUsingDeclaration - Parse C++ using-declaration or alias-declaration.\n/// Assumes that \'using\' was already seen.\n///\n///    using-declaration: [C++ 7.3.p3: namespace.udecl]\n///      \'using\' using-declarator-list[opt] ;\n///\n///    using-declarator-list: [C++1z]\n///      using-declarator \'...\'[opt]\n///      using-declarator-list \',\' using-declarator \'...\'[opt]\n///\n///    using-declarator-list: [C++98-14]\n///      using-declarator\n///\n///    alias-declaration: C++11 [dcl.dcl]p1\n///      \'using\' identifier attribute-specifier-seq[opt] = type-id ;\n///\n///    using-enum-declaration: [C++20, dcl.enum]\n///      \'using\' elaborated-enum-specifier ;\n///      The terminal name of the elaborated-enum-specifier undergoes\n///      ordinary lookup\n///\n///    elaborated-enum-specifier:\n///      \'enum\' nested-name-specifier[opt] identifier\nParser::DeclGroupPtrTy Parser::ParseUsingDeclaration(DeclaratorContext Context, const ParsedTemplateInfo &TemplateInfo, SourceLocation UsingLoc, SourceLocation &DeclEnd, ParsedAttributes &PrefixAttrs, AccessSpecifier AS) {\n  // If we had any misplaced attributes from earlier, this is where they\n  // should have been written.\n  if (MisplacedAttrs.Range.isValid()) {\n    (FirstAttr && FirstAttr->isRegularKeywordAttribute() ? Diag(Range.getBegin(), diag::err_keyword_not_allowed) << FirstAttr : Diag(Range.getBegin(), diag::err_attributes_not_allowed)) << FixItHint::CreateInsertionFromRange(Tok.getLocation(), CharSourceRange::getTokenRange(Range)) << FixItHint::CreateRemoval(Range);"},{K,1658,"#include \"clang/Basic/TransformTypeTraits.def\"\n  // Forbid misplaced attributes. In cases of a reference, we pass attributes\n  // to caller to handle.\n  if (TUK != Sema::TUK_Reference) {\n    if (AttrRange.isValid()) {\n      (FirstAttr && FirstAttr->isRegularKeywordAttribute() ? Diag(Loc, diag::err_keyword_not_allowed) << FirstAttr : Diag(Loc, diag::err_attributes_not_allowed)) << AttrRange << FixItHint::CreateInsertionFromRange(AttrFixitLoc, CharSourceRange(AttrRange, true)) << FixItHint::CreateRemoval(AttrRange);"},{K,1696,"#include \"clang/Basic/TransformTypeTraits.def\"\n  if (TemplateId) {\n    if (TemplateId->isInvalid()) {\n    } else if (TemplateInfo.Kind == ParsedTemplateInfo::ExplicitInstantiation && TUK == Sema::TUK_Declaration) {\n      ProhibitCXX11Attributes(attrs, diag::err_attributes_not_allowed, diag::err_keyword_not_allowed,"},{K,1706,"#include \"clang/Basic/TransformTypeTraits.def\"\n  if (TemplateId) {\n    if (TemplateId->isInvalid()) {\n    } else if (TemplateInfo.Kind == ParsedTemplateInfo::ExplicitInstantiation && TUK == Sema::TUK_Declaration) {\n    } else if (TUK == Sema::TUK_Reference || (TUK == Sema::TUK_Friend && TemplateInfo.Kind == ParsedTemplateInfo::NonTemplate)) {\n      ProhibitCXX11Attributes(attrs, diag::err_attributes_not_allowed, diag::err_keyword_not_allowed,"},{K,1755,"#include \"clang/Basic/TransformTypeTraits.def\"\n  if (TemplateId) {\n  } else if (TemplateInfo.Kind == ParsedTemplateInfo::ExplicitInstantiation && TUK == Sema::TUK_Declaration) {\n  } else if (TUK == Sema::TUK_Friend && TemplateInfo.Kind != ParsedTemplateInfo::NonTemplate) {\n    ProhibitCXX11Attributes(attrs, diag::err_attributes_not_allowed, diag::err_keyword_not_allowed,"},{K,1761,"#include \"clang/Basic/TransformTypeTraits.def\"\n  if (TemplateId) {\n  } else if (TemplateInfo.Kind == ParsedTemplateInfo::ExplicitInstantiation && TUK == Sema::TUK_Declaration) {\n  } else if (TUK == Sema::TUK_Friend && TemplateInfo.Kind != ParsedTemplateInfo::NonTemplate) {\n  } else {\n    if (TUK != Sema::TUK_Declaration && TUK != Sema::TUK_Definition)\n      ProhibitCXX11Attributes(attrs, diag::err_attributes_not_allowed, diag::err_keyword_not_allowed,"},{K,2630,"/// ParseCXXClassMemberDeclaration - Parse a C++ class member declaration.\n///\n///      member-declaration:\n///        decl-specifier-seq[opt] member-declarator-list[opt] \';\'\n///        function-definition \';\'[opt]\n///        ::[opt] nested-name-specifier template[opt] unqualified-id \';\'[TODO]\n///        using-declaration                                            [TODO]\n/// [C++0x] static_assert-declaration\n///        template-declaration\n/// [GNU]  \'__extension__\' member-declaration\n///\n///      member-declarator-list:\n///        member-declarator\n///        member-declarator-list \',\' member-declarator\n///\n///      member-declarator:\n///        declarator virt-specifier-seq[opt] pure-specifier[opt]\n/// [C++2a] declarator requires-clause\n///        declarator constant-initializer[opt]\n/// [C++11] declarator brace-or-equal-initializer[opt]\n///        identifier[opt] \':\' constant-expression\n///\n///      virt-specifier-seq:\n///        virt-specifier\n///        virt-specifier-seq virt-specifier\n///\n///      virt-specifier:\n///        override\n///        final\n/// [MS]    sealed\n///\n///      pure-specifier:\n///        \'= 0\'\n///\n///      constant-initializer:\n///        \'=\' constant-expression\n///\nParser::DeclGroupPtrTy Parser::ParseCXXClassMemberDeclaration(AccessSpecifier AS, ParsedAttributes &AccessAttrs, const ParsedTemplateInfo &TemplateInfo, ParsingDeclRAIIObject *TemplateDiags) {\n  while (true) {\n    if (DS.isFriendSpecified()) {\n      // C++11 [dcl.attr.grammar] p4: If an attribute-specifier-seq appertains\n      // to a friend declaration, that declaration shall be a definition.\n      //\n      // Diagnose attributes that appear in a friend member function declarator:\n      //  friend int foo [[]] ();\n      for (const ParsedAttr &AL : DeclaratorInfo.getAttributes())\n        if (AL.isCXX11Attribute() || AL.isRegularKeywordAttribute()) {\n          (AL.isRegularKeywordAttribute() ? Diag(Loc, diag::err_keyword_not_allowed) << AL : Diag(Loc, diag::err_attributes_not_allowed)) << AL.getRange();"},{K,4067,"void Parser::DiagnoseAndSkipCXX11Attributes() {\n  if (EndLoc.isValid()) {\n    (Keyword ? Diag(StartLoc, diag::err_keyword_not_allowed) << Keyword : Diag(StartLoc, diag::err_attributes_not_allowed)) << Range;"}}
[g]={"96d5c76498b2",1258792989,"Added rudimentary C++0x attribute support."}
},
},
["err_auto_bitfield"]={
["err_auto_bitfield"]={
[f]="cannot pass bit-field as __auto_type initializer in C",
[f]="cannot pass bit-field as __auto_type initializer in C",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot pass bit-field as __auto_type initializer in C",
[g]="cannot pass bit-field as __auto_type initializer in C",
[c]=m,
[i]=m,
[b]="cannot pass bit\\-field as __auto_type initializer in C",
[j]="cannot pass bit\\-field as __auto_type initializer in C",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e301ba2b4891",1447207335,"Add support for GCC\'s \'__auto_type\' extension, per the GCC manual:"}
[d]={"e301ba2b4891",1447207335,"Add support for GCC\'s \'__auto_type\' extension, per the GCC manual:"},
[k]={{xb,4133,"/// Deduce the type for an auto type-specifier (C++11 [dcl.spec.auto]p6)\n///\n/// Note that this is done even if the initializer is dependent. (This is\n/// necessary to support partial ordering of templates using \'auto\'.)\n/// A dependent type will be produced when deducing from a dependent type.\n///\n/// \\param Type the type pattern using the auto type-specifier.\n/// \\param Init the initializer for the variable whose type is to be deduced.\n/// \\param Result if type deduction was successful, this will be set to the\n///        deduced type.\n/// \\param Info the argument will be updated to provide additional information\n///        about template argument deduction.\n/// \\param DependentDeduction Set if we should permit deduction in\n///        dependent cases. This is necessary for template partial ordering with\n///        \'auto\' template parameters. The template parameter depth to be used\n///        should be specified in the \'Info\' parameter.\n/// \\param IgnoreConstraints Set if we should not fail if the deduced type does\n///                          not satisfy the type-constraint in the auto type.\nSema::TemplateDeductionResult Sema::DeduceAutoType(TypeLoc Type, Expr *Init, QualType &Result, TemplateDeductionInfo &Info, bool DependentDeduction, bool IgnoreConstraints, TemplateSpecCandidateSet *FailedTSC) {\n  // If this is a \'decltype(auto)\' specifier, do the decltype dance.\n  if (AT->isDecltypeAuto()) {\n  } else {\n    if (InitList) {\n    } else {\n      if (!getLangOpts().CPlusPlus && Init->refersToBitField()) {\n        Diag(Loc, diag::err_auto_bitfield);"}}
},
},
["err_auto_different_deductions"]={
["err_auto_different_deductions"]={
[f]="... deduced as A in declaration of B and deduced as C in declaration of D",
[f]="... deduced as A in declaration of B and deduced as C in declaration of D",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{\'auto\'|\'decltype(auto)\'|\'__auto_type\'|template arguments}0 deduced as %1 in declaration of %2 and deduced as %3 in declaration of %4",
[g]="%select{\'auto\'|\'decltype(auto)\'|\'__auto_type\'|template arguments}0 deduced as %1 in declaration of %2 and deduced as %3 in declaration of %4",
[c]=m,
[i]=m,
[b]="(?:\'auto\'|\'decltype\\(auto\\)\'|\'__auto_type\'|template arguments) deduced as (.*?) in declaration of (.*?) and deduced as (.*?) in declaration of (.*?)",
[j]="(?:\'auto\'|\'decltype\\(auto\\)\'|\'__auto_type\'|template arguments) deduced as (.*?) in declaration of (.*?) and deduced as (.*?) in declaration of (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Nb,1298171975,Tb}
[d]={wb,1298171975,vb},
[k]={{q,12774,"/// BuildDeclaratorGroup - convert a list of declarations into a declaration\n/// group, performing any necessary semantic checking.\nSema::DeclGroupPtrTy Sema::BuildDeclaratorGroup(MutableArrayRef<Decl *> Group) {\n  // C++14 [dcl.spec.auto]p7: (DR1347)\n  //  If the type that replaces the placeholder type is not the same in each\n  //  deduction, the program is ill-formed.\n  if (Group.size() > 1) {\n    for (unsigned i = 0, e = Group.size(); i != e; ++i) {\n      if (Deduced.isNull()) {\n      } else if (!Context.hasSameType(DT->getDeducedType(), Deduced)) {\n        auto Dia = Diag(D->getTypeSourceInfo()->getTypeLoc().getBeginLoc(), diag::err_auto_different_deductions) << (AT ? (unsigned)AT->getKeyword() : 3) << Deduced << DeducedDecl->getDeclName() << DT->getDeducedType() << D->getDeclName();"}}
},
},
["err_auto_expr_deduction_failure"]={
["err_auto_expr_deduction_failure"]={
[f]="functional-style cast to A has incompatible initializer of type B",
[f]="functional-style cast to A has incompatible initializer of type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="functional-style cast to %0 has incompatible initializer of type %1",
[g]="functional-style cast to %0 has incompatible initializer of type %1",
[c]=m,
[i]=m,
[b]="functional\\-style cast to (.*?) has incompatible initializer of type (.*?)",
[j]="functional\\-style cast to (.*?) has incompatible initializer of type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={hb,1620118562,jb}
[d]={"f60dc3caa673",1620118562,"[C++20][Modules] Adjust handling of exports of namespaces and using-decls."},
[k]={{x,1351,"ExprResult Sema::BuildCXXTypeConstructExpr(TypeSourceInfo *TInfo, SourceLocation LParenOrBraceLoc, MultiExprArg Exprs, SourceLocation RParenOrBraceLoc, bool ListInitialization) {\n  if (Deduced && !Deduced->isDeduced() && isa<DeducedTemplateSpecializationType>(Deduced)) {\n  } else if (Deduced && !Deduced->isDeduced()) {\n    if (Result != TDK_Success && Result != TDK_AlreadyDiagnosed)\n      return ExprError(Diag(TyBeginLoc, diag::err_auto_expr_deduction_failure) << Ty << Deduce->getType() << FullRange << Deduce->getSourceRange());"}}
},
},
["err_auto_expr_init_multiple_expressions"]={
["err_auto_expr_init_multiple_expressions"]={
[f]="initializer for functional-style cast to A contains multiple expressions",
[f]="initializer for functional-style cast to A contains multiple expressions",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="initializer for functional-style cast to %0 contains multiple expressions",
[g]="initializer for functional-style cast to %0 contains multiple expressions",
[c]=m,
[i]=m,
[b]="initializer for functional\\-style cast to (.*?) contains multiple expressions",
[j]="initializer for functional\\-style cast to (.*?) contains multiple expressions",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={hb,1620118562,jb}
[d]={"f60dc3caa673",1620118562,"[C++20][Modules] Adjust handling of exports of namespaces and using-decls."},
[k]={{x,1338,"ExprResult Sema::BuildCXXTypeConstructExpr(TypeSourceInfo *TInfo, SourceLocation LParenOrBraceLoc, MultiExprArg Exprs, SourceLocation RParenOrBraceLoc, bool ListInitialization) {\n  if (Deduced && !Deduced->isDeduced() && isa<DeducedTemplateSpecializationType>(Deduced)) {\n  } else if (Deduced && !Deduced->isDeduced()) {\n    if (Inits.size() > 1) {\n      return ExprError(Diag(FirstBad->getBeginLoc(), diag::err_auto_expr_init_multiple_expressions) << Ty << FullRange);"}}
},
},
["err_auto_expr_init_no_expression"]={
["err_auto_expr_init_no_expression"]={
[f]="initializer for functional-style cast to A is empty",
[f]="initializer for functional-style cast to A is empty",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="initializer for functional-style cast to %0 is empty",
[g]="initializer for functional-style cast to %0 is empty",
[c]=m,
[i]=m,
[b]="initializer for functional\\-style cast to (.*?) is empty",
[j]="initializer for functional\\-style cast to (.*?) is empty",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={hb,1620118562,jb}
[d]={"f60dc3caa673",1620118562,"[C++20][Modules] Adjust handling of exports of namespaces and using-decls."},
[k]={{x,1335,"ExprResult Sema::BuildCXXTypeConstructExpr(TypeSourceInfo *TInfo, SourceLocation LParenOrBraceLoc, MultiExprArg Exprs, SourceLocation RParenOrBraceLoc, bool ListInitialization) {\n  if (Deduced && !Deduced->isDeduced() && isa<DeducedTemplateSpecializationType>(Deduced)) {\n  } else if (Deduced && !Deduced->isDeduced()) {\n    if (Inits.empty())\n      return ExprError(Diag(TyBeginLoc, diag::err_auto_expr_init_no_expression) << Ty << FullRange);"}}
},
},
["err_auto_expr_init_paren_braces"]={
["err_auto_expr_init_paren_braces"]={
[f]="cannot deduce actual type for A from ... initializer list",
[f]="cannot deduce actual type for A from ... initializer list",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot deduce actual type for %1 from %select{parenthesized|nested}0 initializer list",
[g]="cannot deduce actual type for %1 from %select{parenthesized|nested}0 initializer list",
[c]=m,
[i]=m,
[b]="cannot deduce actual type for (.*?) from (?:parenthesized|nested) initializer list",
[j]="cannot deduce actual type for (.*?) from (?:parenthesized|nested) initializer list",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={hb,1620118562,jb}
[d]={"f60dc3caa673",1620118562,"[C++20][Modules] Adjust handling of exports of namespaces and using-decls."},
[k]={{x,1346,"ExprResult Sema::BuildCXXTypeConstructExpr(TypeSourceInfo *TInfo, SourceLocation LParenOrBraceLoc, MultiExprArg Exprs, SourceLocation RParenOrBraceLoc, bool ListInitialization) {\n  if (Deduced && !Deduced->isDeduced() && isa<DeducedTemplateSpecializationType>(Deduced)) {\n  } else if (Deduced && !Deduced->isDeduced()) {\n    if (isa<InitListExpr>(Deduce))\n      return ExprError(Diag(Deduce->getBeginLoc(), diag::err_auto_expr_init_paren_braces) << ListInitialization << Ty << FullRange);"},{x,1787,"ExprResult Sema::BuildCXXNew(SourceRange Range, bool UseGlobal, SourceLocation PlacementLParen, MultiExprArg PlacementArgs, SourceLocation PlacementRParen, SourceRange TypeIdParens, QualType AllocType, TypeSourceInfo *AllocTypeInfo, std::optional<Expr *> ArraySize, SourceRange DirectInitRange, Expr *Initializer) {\n  if (Deduced && !Deduced->isDeduced() && isa<DeducedTemplateSpecializationType>(Deduced)) {\n  } else if (Deduced && !Deduced->isDeduced()) {\n    if (isa<InitListExpr>(Deduce))\n      return ExprError(Diag(Deduce->getBeginLoc(), diag::err_auto_expr_init_paren_braces) << Braced << AllocType << TypeRange);"}}
},
},
["err_auto_fn_deduction_failure"]={
["err_auto_fn_deduction_failure"]={
[f]="cannot deduce return type A from returned value of type B",
[f]="cannot deduce return type A from returned value of type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot deduce return type %0 from returned value of type %1",
[g]="cannot deduce return type %0 from returned value of type %1",
[c]=m,
[i]=m,
[b]="cannot deduce return type (.*?) from returned value of type (.*?)",
[j]="cannot deduce return type (.*?) from returned value of type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Qb,1367650832,Pb}
[d]={ib,1367650832,pb},
[k]={{R,3329,"/// Deduce the return type for a function from a returned expression, per\n/// C++1y [dcl.spec.auto]p6.\nbool Sema::DeduceFunctionTypeFromReturnExpr(FunctionDecl *FD, SourceLocation ReturnLoc, Expr *RetExpr, const AutoType *AT) {\n  {\n    default:\n      Diag(RetExpr->getExprLoc(), diag::err_auto_fn_deduction_failure) << OrigResultType.getType() << RetExpr->getType();"}}
},
},
["err_auto_fn_different_deductions"]={
["err_auto_fn_different_deductions"]={
[f]="\'...\' in return type deduced as A here but deduced as B in earlier return statement",
[f]="\'...\' in return type deduced as A here but deduced as B in earlier return statement",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'%select{auto|decltype(auto)}0\' in return type deduced as %1 here but deduced as %2 in earlier return statement",
[g]="\'%select{auto|decltype(auto)}0\' in return type deduced as %1 here but deduced as %2 in earlier return statement",
[c]=m,
[i]=m,
[b]="\'(?:auto|decltype\\(auto\\))\' in return type deduced as (.*?) here but deduced as (.*?) in earlier return statement",
[j]="\'(?:auto|decltype\\(auto\\))\' in return type deduced as (.*?) here but deduced as (.*?) in earlier return statement",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Qb,1367650832,Pb}
[d]={ib,1367650832,pb},
[k]={{R,3325,"/// Deduce the return type for a function from a returned expression, per\n/// C++1y [dcl.spec.auto]p6.\nbool Sema::DeduceFunctionTypeFromReturnExpr(FunctionDecl *FD, SourceLocation ReturnLoc, Expr *RetExpr, const AutoType *AT) {\n  {\n    case TDK_Inconsistent: {\n      if (LambdaSI && LambdaSI->HasImplicitReturnType)\n      else\n        Diag(ReturnLoc, diag::err_auto_fn_different_deductions) << (AT->isDecltypeAuto() ? 1 : 0) << Info.SecondArg << Info.FirstArg;"}}
},
},
["err_auto_fn_no_return_but_not_auto"]={
["err_auto_fn_no_return_but_not_auto"]={
[f]="cannot deduce return type A for function with no return statements",
[f]="cannot deduce return type A for function with no return statements",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot deduce return type %0 for function with no return statements",
[g]="cannot deduce return type %0 for function with no return statements",
[c]=m,
[i]=m,
[b]="cannot deduce return type (.*?) for function with no return statements",
[j]="cannot deduce return type (.*?) for function with no return statements",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Qb,1367650832,Pb}
[d]={ib,1367650832,pb},
[k]={{q,13618,"Decl *Sema::ActOnFinishFunctionBody(Decl *dcl, Stmt *Body, bool IsInstantiation) {\n  {\n    if (FD) {\n      if (getLangOpts().CPlusPlus14) {\n        if (!FD->isInvalidDecl() && Body && !FD->isDependentContext() && FD->getReturnType()->isUndeducedType()) {\n          // For a function with a deduced result type to return void,\n          // the result type as written must be \'auto\' or \'decltype(auto)\',\n          // possibly cv-qualified or constrained, but not ref-qualified.\n          if (!FD->getReturnType()->getAs<AutoType>()) {\n            Diag(dcl->getLocation(), diag::err_auto_fn_no_return_but_not_auto) << FD->getReturnType();"}}
},
},
["err_auto_fn_return_init_list"]={
["err_auto_fn_return_init_list"]={
[f]="cannot deduce return type from initializer list",
[f]="cannot deduce return type from initializer list",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="cannot deduce return type from initializer list",
[i]=m,
[j]="cannot deduce return type from initializer list",
[j]="cannot deduce return type from initializer list",
[c]=m,
[b]=a,
[b]="cannot deduce return type from initializer list",
[h]=o,
[i]=a,
[d]={ib,1367650832,pb},
[h]=n,
[k]={{R,3265,"/// Deduce the return type for a function from a returned expression, per\n/// C++1y [dcl.spec.auto]p6.\nbool Sema::DeduceFunctionTypeFromReturnExpr(FunctionDecl *FD, SourceLocation ReturnLoc, Expr *RetExpr, const AutoType *AT) {\n  if (RetExpr && isa<InitListExpr>(RetExpr)) {\n    Diag(RetExpr->getExprLoc(), getCurLambda() ? diag::err_lambda_return_init_list : diag::err_auto_fn_return_init_list) << RetExpr->getSourceRange();"}}
[g]={Qb,1367650832,Pb}
},
},
["err_auto_fn_return_void_but_not_auto"]={
["err_auto_fn_return_void_but_not_auto"]={
[f]="cannot deduce return type A from omitted return expression",
[f]="cannot deduce return type A from omitted return expression",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot deduce return type %0 from omitted return expression",
[g]="cannot deduce return type %0 from omitted return expression",
[c]=m,
[i]=m,
[b]="cannot deduce return type (.*?) from omitted return expression",
[j]="cannot deduce return type (.*?) from omitted return expression",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Qb,1367650832,Pb}
[d]={ib,1367650832,pb},
[k]={{R,3288,"/// Deduce the return type for a function from a returned expression, per\n/// C++1y [dcl.spec.auto]p6.\nbool Sema::DeduceFunctionTypeFromReturnExpr(FunctionDecl *FD, SourceLocation ReturnLoc, Expr *RetExpr, const AutoType *AT) {\n  if (!RetExpr) {\n    // For a function with a deduced result type to return with omitted\n    // expression, the result type as written must be \'auto\' or\n    // \'decltype(auto)\', possibly cv-qualified or constrained, but not\n    // ref-qualified.\n    if (!OrigResultType.getType()->getAs<AutoType>()) {\n      Diag(ReturnLoc, diag::err_auto_fn_return_void_but_not_auto) << OrigResultType.getType();"}}
},
},
["err_auto_fn_used_before_defined"]={
["err_auto_fn_used_before_defined"]={
[f]="function A with deduced return type cannot be used before it is defined",
[f]="function A with deduced return type cannot be used before it is defined",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="function %0 with deduced return type cannot be used before it is defined",
[g]="function %0 with deduced return type cannot be used before it is defined",
[c]=m,
[i]=m,
[b]="function (.*?) with deduced return type cannot be used before it is defined",
[j]="function (.*?) with deduced return type cannot be used before it is defined",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Qb,1367650832,Pb}
[d]={ib,1367650832,pb},
[k]={{xb,4262,"bool Sema::DeduceReturnType(FunctionDecl *FD, SourceLocation Loc, bool Diagnose) {\n  if (StillUndeduced && Diagnose && !FD->isInvalidDecl()) {\n    Diag(Loc, diag::err_auto_fn_used_before_defined) << FD;"}}
},
},
["err_auto_fn_virtual"]={
["err_auto_fn_virtual"]={
[f]="function with deduced return type cannot be virtual",
[f]="function with deduced return type cannot be virtual",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="function with deduced return type cannot be virtual",
[i]=m,
[j]="function with deduced return type cannot be virtual",
[j]="function with deduced return type cannot be virtual",
[c]=m,
[b]=a,
[b]="function with deduced return type cannot be virtual",
[h]=o,
[i]=a,
[d]={ib,1367650832,pb},
[h]=n,
[k]={{q,8688,"NamedDecl *Sema::ActOnFunctionDeclarator(Scope *S, Declarator &D, DeclContext *DC, TypeSourceInfo *TInfo, LookupResult &Previous, MultiTemplateParamsArg TemplateParamListsRef, bool &AddToScope) {\n  if (getLangOpts().CPlusPlus) {\n   // C++ [dcl.fct.spec]p5:\n    //  The virtual specifier shall only be used in declarations of\n    //  nonstatic class member functions that appear within a\n    //  member-specification of a class declaration; see 10.3.\n    //\n    if (isVirtual && !NewFD->isInvalidDecl()) {\n      if (getLangOpts().CPlusPlus14 && NewFD->getReturnType()->isUndeducedType())\n        Diag(D.getDeclSpec().getVirtualSpecLoc(), diag::err_auto_fn_virtual);"}}
[g]={Qb,1367650832,Pb}
},
},
["err_auto_inconsistent_deduction"]={
["err_auto_inconsistent_deduction"]={
[f]="deduced conflicting types (A vs B) for initializer list element type",
[f]="deduced conflicting types (A vs B) for initializer list element type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="deduced conflicting types %diff{($ vs $) |}0,1for initializer list element type",
[g]="deduced conflicting types %diff{($ vs $) |}0,1for initializer list element type",
[c]=m,
[i]=m,
[b]="deduced conflicting types (?:\\((.*?) vs (.*?)\\) |)for initializer list element type",
[j]="deduced conflicting types (?:\\((.*?) vs (.*?)\\) |)for initializer list element type",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"b1efc9b410ea",1504053848,"Give a better error if auto deduction fails due to inconsistent element types in a braced initialize..."}
[d]={"b1efc9b410ea",1504053848,"Give a better error if auto deduction fails due to inconsistent element types in a braced initialize..."},
[k]={{xb,4122,"/// Deduce the type for an auto type-specifier (C++11 [dcl.spec.auto]p6)\n///\n/// Note that this is done even if the initializer is dependent. (This is\n/// necessary to support partial ordering of templates using \'auto\'.)\n/// A dependent type will be produced when deducing from a dependent type.\n///\n/// \\param Type the type pattern using the auto type-specifier.\n/// \\param Init the initializer for the variable whose type is to be deduced.\n/// \\param Result if type deduction was successful, this will be set to the\n///        deduced type.\n/// \\param Info the argument will be updated to provide additional information\n///        about template argument deduction.\n/// \\param DependentDeduction Set if we should permit deduction in\n///        dependent cases. This is necessary for template partial ordering with\n///        \'auto\' template parameters. The template parameter depth to be used\n///        should be specified in the \'Info\' parameter.\n/// \\param IgnoreConstraints Set if we should not fail if the deduced type does\n///                          not satisfy the type-constraint in the auto type.\nSema::TemplateDeductionResult Sema::DeduceAutoType(TypeLoc Type, Expr *Init, QualType &Result, TemplateDeductionInfo &Info, bool DependentDeduction, bool IgnoreConstraints, TemplateSpecCandidateSet *FailedTSC) {\n  // If this is a \'decltype(auto)\' specifier, do the decltype dance.\n  if (AT->isDecltypeAuto()) {\n  } else {\n    if (InitList) {\n      for (Expr *Init : InitList->inits()) {\n        if (auto TDK = DeduceTemplateArgumentsFromCallArgument(*this, TemplateParamsSt.get(), 0, TemplArg, Init, Info, Deduced, OriginalCallArgs, /*Decomposed=*/true,\n          if (TDK == TDK_Inconsistent) {\n            Diag(Info.getLocation(), diag::err_auto_inconsistent_deduction) << Info.FirstArg << Info.SecondArg << DeducedFromInitRange << Init->getSourceRange();"}}
},
},
["err_auto_init_list_from_c"]={
["err_auto_init_list_from_c"]={
[f]="cannot use __auto_type with initializer list in C",
[f]="cannot use __auto_type with initializer list in C",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="cannot use __auto_type with initializer list in C",
[i]=m,
[j]="cannot use __auto_type with initializer list in C",
[j]="cannot use __auto_type with initializer list in C",
[c]=m,
[b]=a,
[b]="cannot use __auto_type with initializer list in C",
[h]=o,
[i]=a,
[d]={"e301ba2b4891",1447207335,"Add support for GCC\'s \'__auto_type\' extension, per the GCC manual:"},
[h]=n,
[k]={{xb,4065,"/// Deduce the type for an auto type-specifier (C++11 [dcl.spec.auto]p6)\n///\n/// Note that this is done even if the initializer is dependent. (This is\n/// necessary to support partial ordering of templates using \'auto\'.)\n/// A dependent type will be produced when deducing from a dependent type.\n///\n/// \\param Type the type pattern using the auto type-specifier.\n/// \\param Init the initializer for the variable whose type is to be deduced.\n/// \\param Result if type deduction was successful, this will be set to the\n///        deduced type.\n/// \\param Info the argument will be updated to provide additional information\n///        about template argument deduction.\n/// \\param DependentDeduction Set if we should permit deduction in\n///        dependent cases. This is necessary for template partial ordering with\n///        \'auto\' template parameters. The template parameter depth to be used\n///        should be specified in the \'Info\' parameter.\n/// \\param IgnoreConstraints Set if we should not fail if the deduced type does\n///                          not satisfy the type-constraint in the auto type.\nSema::TemplateDeductionResult Sema::DeduceAutoType(TypeLoc Type, Expr *Init, QualType &Result, TemplateDeductionInfo &Info, bool DependentDeduction, bool IgnoreConstraints, TemplateSpecCandidateSet *FailedTSC) {\n  if (!getLangOpts().CPlusPlus && InitList) {\n    Diag(Init->getBeginLoc(), diag::err_auto_init_list_from_c);"}}
[g]={"e301ba2b4891",1447207335,"Add support for GCC\'s \'__auto_type\' extension, per the GCC manual:"}
},
},
["err_auto_missing_trailing_return"]={
["err_auto_missing_trailing_return"]={
[f]="\'auto\' return without trailing return type; deduced return types are a C++14 extension",
[f]="\'auto\' return without trailing return type; deduced return types are a C++14 extension",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'auto\' return without trailing return type; deduced return types are a C++14 extension",
[g]="\'auto\' return without trailing return type; deduced return types are a C++14 extension",
[c]=m,
[i]=m,
[b]="\'auto\' return without trailing return type; deduced return types are a C\\+\\+14 extension",
[j]="\'auto\' return without trailing return type; deduced return types are a C\\+\\+14 extension",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"7fb25418ed72",1285958690,"Implement the C++0x \"trailing return type\" feature, e.g.,"}
[d]={"7fb25418ed72",1285958690,"Implement the C++0x \"trailing return type\" feature, e.g.,"},
[k]={{r,4593,"static TypeSourceInfo *GetFullTypeForDeclarator(TypeProcessingState &state, QualType declSpecType, TypeSourceInfo *TInfo) {\n  for (unsigned i = 0, e = D.getNumTypeObjects(); i != e; ++i) {\n    case DeclaratorChunk::Function: {\n      // Check for auto functions and trailing return type and adjust the\n      // return type accordingly.\n      if (!D.isInvalidType()) {\n        // trailing-return-type is only required if we\'re declaring a function,\n        // and not, for instance, a pointer to a function.\n        if (D.getDeclSpec().hasAutoTypeSpec() && !FTI.hasTrailingReturnType() && chunkIndex == 0) {\n          if (!S.getLangOpts().CPlusPlus14) {\n            S.Diag(D.getDeclSpec().getTypeSpecTypeLoc(), D.getDeclSpec().getTypeSpecType() == DeclSpec::TST_auto ? diag::err_auto_missing_trailing_return : diag::err_deduced_return_type);"}}
},
},
["err_auto_new_ctor_multiple_expressions"]={
["err_auto_new_ctor_multiple_expressions"]={
[f]="new expression for type A contains multiple constructor arguments",
[f]="new expression for type A contains multiple constructor arguments",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="new expression for type %0 contains multiple constructor arguments",
[g]="new expression for type %0 contains multiple constructor arguments",
[c]=m,
[i]=m,
[b]="new expression for type (.*?) contains multiple constructor arguments",
[j]="new expression for type (.*?) contains multiple constructor arguments",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Nb,1298171975,Tb}
[d]={wb,1298171975,vb},
[k]={{x,1781,"ExprResult Sema::BuildCXXNew(SourceRange Range, bool UseGlobal, SourceLocation PlacementLParen, MultiExprArg PlacementArgs, SourceLocation PlacementRParen, SourceRange TypeIdParens, QualType AllocType, TypeSourceInfo *AllocTypeInfo, std::optional<Expr *> ArraySize, SourceRange DirectInitRange, Expr *Initializer) {\n  if (Deduced && !Deduced->isDeduced() && isa<DeducedTemplateSpecializationType>(Deduced)) {\n  } else if (Deduced && !Deduced->isDeduced()) {\n    if (Inits.size() > 1) {\n      return ExprError(Diag(FirstBad->getBeginLoc(), diag::err_auto_new_ctor_multiple_expressions) << AllocType << TypeRange);"}}
},
},
["err_auto_new_deduction_failure"]={
["err_auto_new_deduction_failure"]={
[f]="new expression for type A has incompatible constructor argument of type B",
[f]="new expression for type A has incompatible constructor argument of type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="new expression for type %0 has incompatible constructor argument of type %1",
[g]="new expression for type %0 has incompatible constructor argument of type %1",
[c]=m,
[i]=m,
[b]="new expression for type (.*?) has incompatible constructor argument of type (.*?)",
[j]="new expression for type (.*?) has incompatible constructor argument of type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Nb,1298171975,Tb}
[d]={wb,1298171975,vb},
[k]={{x,1792,"ExprResult Sema::BuildCXXNew(SourceRange Range, bool UseGlobal, SourceLocation PlacementLParen, MultiExprArg PlacementArgs, SourceLocation PlacementRParen, SourceRange TypeIdParens, QualType AllocType, TypeSourceInfo *AllocTypeInfo, std::optional<Expr *> ArraySize, SourceRange DirectInitRange, Expr *Initializer) {\n  if (Deduced && !Deduced->isDeduced() && isa<DeducedTemplateSpecializationType>(Deduced)) {\n  } else if (Deduced && !Deduced->isDeduced()) {\n    if (Result != TDK_Success && Result != TDK_AlreadyDiagnosed)\n      return ExprError(Diag(StartLoc, diag::err_auto_new_deduction_failure) << AllocType << Deduce->getType() << TypeRange << Deduce->getSourceRange());"}}
},
},
["err_auto_new_requires_ctor_arg"]={
["err_auto_new_requires_ctor_arg"]={
[f]="new expression for type A requires a constructor argument",
[f]="new expression for type A requires a constructor argument",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="new expression for type %0 requires a constructor argument",
[g]="new expression for type %0 requires a constructor argument",
[c]=m,
[i]=m,
[b]="new expression for type (.*?) requires a constructor argument",
[j]="new expression for type (.*?) requires a constructor argument",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Nb,1298171975,Tb}
[d]={wb,1298171975,vb},
[k]={{x,1778,"ExprResult Sema::BuildCXXNew(SourceRange Range, bool UseGlobal, SourceLocation PlacementLParen, MultiExprArg PlacementArgs, SourceLocation PlacementRParen, SourceRange TypeIdParens, QualType AllocType, TypeSourceInfo *AllocTypeInfo, std::optional<Expr *> ArraySize, SourceRange DirectInitRange, Expr *Initializer) {\n  if (Deduced && !Deduced->isDeduced() && isa<DeducedTemplateSpecializationType>(Deduced)) {\n  } else if (Deduced && !Deduced->isDeduced()) {\n    if (initStyle == CXXNewExpr::NoInit || Inits.empty())\n      return ExprError(Diag(StartLoc, diag::err_auto_new_requires_ctor_arg) << AllocType << TypeRange);"}}
},
},
["err_auto_non_deduced_not_alone"]={
["err_auto_non_deduced_not_alone"]={
[f]="... must be the only declaration in its group",
[f]="... must be the only declaration in its group",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{function with deduced return type|declaration with trailing return type}0 must be the only declaration in its group",
[g]="%select{function with deduced return type|declaration with trailing return type}0 must be the only declaration in its group",
[c]=m,
[i]=m,
[b]="(?:function with deduced return type|declaration with trailing return type) must be the only declaration in its group",
[j]="(?:function with deduced return type|declaration with trailing return type) must be the only declaration in its group",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"8210ed558662",1484274121,"Implement DR1265 (wg21.link/cwg1265)."}
[d]={"8210ed558662",1484274121,"Implement DR1265 (wg21.link/cwg1265)."},
[k]={{q,12732,"Sema::DeclGroupPtrTy Sema::FinalizeDeclaratorGroup(Scope *S, const DeclSpec &DS, ArrayRef<Decl *> Group) {\n  for (unsigned i = 0, e = Group.size(); i != e; ++i) {\n    if (Decl *D = Group[i]) {\n      // For declarators, there are some additional syntactic-ish checks we need\n      // to perform.\n      if (auto *DD = dyn_cast<DeclaratorDecl>(D)) {\n        if (FirstDeclaratorInGroup != DD) {\n          // A declarator that uses \'auto\' in any way other than to declare a\n          // variable with a deduced type cannot be combined with any other\n          // declarator in the same group.\n          if (FirstNonDeducedAutoInGroup && !DiagnosedNonDeducedAuto) {\n            Diag(FirstNonDeducedAutoInGroup->getLocation(), diag::err_auto_non_deduced_not_alone) << FirstNonDeducedAutoInGroup->getType()->hasAutoForTrailingReturnType() << FirstDeclaratorInGroup->getSourceRange() << DD->getSourceRange();"}}
},
},
["err_auto_not_allowed"]={
["err_auto_not_allowed"]={
[f]="... not allowed ...",
[f]="... not allowed ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{\'auto\'|\'decltype(auto)\'|\'__auto_type\'|use of %select{class template|function template|variable template|alias template|template template parameter|concept|template}2 %3 requires template arguments; argument deduction}0 not allowed %select{in function prototype|in non-static struct member|in struct member|in non-static union member|in union member|in non-static class member|in interface member|in exception declaration|in template parameter until C++17|in block literal|in template argument|in typedef|in type alias|in function return type|in conversion function type|here|in lambda parameter|in type allocated by \'new\'|in K&R-style function parameter|in template parameter|in friend declaration|in function prototype that is not a function declaration|in requires expression parameter}1",
[g]="%select{\'auto\'|\'decltype(auto)\'|\'__auto_type\'|use of %select{class template|function template|variable template|alias template|template template parameter|concept|template}2 %3 requires template arguments; argument deduction}0 not allowed %select{in function prototype|in non-static struct member|in struct member|in non-static union member|in union member|in non-static class member|in interface member|in exception declaration|in template parameter until C++17|in block literal|in template argument|in typedef|in type alias|in function return type|in conversion function type|here|in lambda parameter|in type allocated by \'new\'|in K&R-style function parameter|in template parameter|in friend declaration|in function prototype that is not a function declaration|in requires expression parameter}1",
[c]=m,
[i]=m,
[b]="(?:\'auto\'|\'decltype\\(auto\\)\'|\'__auto_type\'|use of (?:class template|function template|variable template|alias template|template template parameter|concept|template) (.*?) requires template arguments; argument deduction) not allowed (?:in function prototype|in non\\-static struct member|in struct member|in non\\-static union member|in union member|in non\\-static class member|in interface member|in exception declaration|in template parameter until C\\+\\+17|in block literal|in template argument|in typedef|in type alias|in function return type|in conversion function type|here|in lambda parameter|in type allocated by \'new\'|in K&R\\-style function parameter|in template parameter|in friend declaration|in function prototype that is not a function declaration|in requires expression parameter)",
[j]="(?:\'auto\'|\'decltype\\(auto\\)\'|\'__auto_type\'|use of (?:class template|function template|variable template|alias template|template template parameter|concept|template) (.*?) requires template arguments; argument deduction) not allowed (?:in function prototype|in non\\-static struct member|in struct member|in non\\-static union member|in union member|in non\\-static class member|in interface member|in exception declaration|in template parameter until C\\+\\+17|in block literal|in template argument|in typedef|in type alias|in function return type|in conversion function type|here|in lambda parameter|in type allocated by \'new\'|in K&R\\-style function parameter|in template parameter|in friend declaration|in function prototype that is not a function declaration|in requires expression parameter)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"94ff77a356a7",1246054739,"More auto work."}
[d]={"94ff77a356a7",1246054739,"More auto work."},
[k]={{r,3277,"static QualType GetDeclSpecTypeForDeclarator(TypeProcessingState &state, TypeSourceInfo *&ReturnTypeInfo) {\n  // C++11 [dcl.spec.auto]p5: reject \'auto\' if it is not in an allowed context.\n  if (Deduced) {\n    if (Error != -1) {\n      SemaRef.Diag(AutoRange.getBegin(), diag::err_auto_not_allowed) << Kind << Error << (int)SemaRef.getTemplateNameKindForDiagnostics(TN) << QualType(Deduced, 0) << AutoRange;"}}
},
},
["err_auto_not_allowed_var_inst"]={
["err_auto_not_allowed_var_inst"]={
[f]="\'auto\' variable template instantiation is not allowed",
[f]="\'auto\' variable template instantiation is not allowed",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'auto\' variable template instantiation is not allowed",
[i]=m,
[j]="\'auto\' variable template instantiation is not allowed",
[j]="\'auto\' variable template instantiation is not allowed",
[c]=m,
[b]=a,
[b]="\'auto\' variable template instantiation is not allowed",
[h]=o,
[i]=a,
[d]={"39a1e507ff0b",1375750985,"Started implementing variable templates. Top level declarations should be fully supported, up to som..."},
[h]=n,
[k]={{Cb,8632,"DeclResult Sema::ActOnExplicitInstantiation(Scope *S, SourceLocation ExternLoc, SourceLocation TemplateLoc, Declarator &D) {\n  if (!R->isFunctionType()) {\n    if (!PrevTemplate) {\n    } else {\n      // C++1y [dcl.spec.auto]p6:\n      //  ... A program that uses auto or decltype(auto) in a context not\n      //  explicitly allowed in this section is ill-formed.\n      //\n      // This includes auto-typed variable template instantiations.\n      if (R->isUndeducedType()) {\n        Diag(T->getTypeLoc().getBeginLoc(), diag::err_auto_not_allowed_var_inst);"}}
[g]={"39a1e507ff0b",1375750985,"Started implementing variable templates. Top level declarations should be fully supported, up to som..."}
},
},
["err_auto_var_deduction_failure"]={
["err_auto_var_deduction_failure"]={
[f]="variable A with type B has incompatible initializer of type C",
[f]="variable A with type B has incompatible initializer of type C",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="variable %0 with type %1 has incompatible initializer of type %2",
[g]="variable %0 with type %1 has incompatible initializer of type %2",
[c]=m,
[i]=m,
[b]="variable (.*?) with type (.*?) has incompatible initializer of type (.*?)",
[j]="variable (.*?) with type (.*?) has incompatible initializer of type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Nb,1298171975,Tb}
[d]={wb,1298171975,vb},
[k]={{xb,4214,"void Sema::DiagnoseAutoDeductionFailure(VarDecl *VDecl, Expr *Init) {\n  if (isa<InitListExpr>(Init))\n  else\n    Diag(VDecl->getLocation(), VDecl->isInitCapture() ? diag::err_init_capture_deduction_failure : diag::err_auto_var_deduction_failure) << VDecl->getDeclName() << VDecl->getType() << Init->getType() << Init->getSourceRange();"}}
},
},
["err_auto_var_deduction_failure_from_init_list"]={
["err_auto_var_deduction_failure_from_init_list"]={
[f]="cannot deduce actual type for variable A with type B from initializer list",
[f]="cannot deduce actual type for variable A with type B from initializer list",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot deduce actual type for variable %0 with type %1 from initializer list",
[g]="cannot deduce actual type for variable %0 with type %1 from initializer list",
[c]=m,
[i]=m,
[b]="cannot deduce actual type for variable (.*?) with type (.*?) from initializer list",
[j]="cannot deduce actual type for variable (.*?) with type (.*?) from initializer list",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"42acd4a05b52",1326840608,"Auto deduction support for std::initializer_list, including for-range support. This means you can no..."}
[d]={"42acd4a05b52",1326840608,"Auto deduction support for std::initializer_list, including for-range support. This means you can no..."},
[k]={{xb,4212,"void Sema::DiagnoseAutoDeductionFailure(VarDecl *VDecl, Expr *Init) {\n  if (isa<InitListExpr>(Init))\n    Diag(VDecl->getLocation(), VDecl->isInitCapture() ? diag::err_init_capture_deduction_failure_from_init_list : diag::err_auto_var_deduction_failure_from_init_list) << VDecl->getDeclName() << VDecl->getType() << Init->getSourceRange();"}}
},
},
["err_auto_var_init_multiple_expressions"]={
["err_auto_var_init_multiple_expressions"]={
[f]="initializer for variable A with type B contains multiple expressions",
[f]="initializer for variable A with type B contains multiple expressions",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="initializer for variable %0 with type %1 contains multiple expressions",
[g]="initializer for variable %0 with type %1 contains multiple expressions",
[c]=m,
[i]=m,
[b]="initializer for variable (.*?) with type (.*?) contains multiple expressions",
[j]="initializer for variable (.*?) with type (.*?) contains multiple expressions",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Nb,1298171975,Tb}
[d]={wb,1298171975,vb},
[k]={{q,11145,"QualType Sema::deduceVarTypeFromInitializer(VarDecl *VDecl, DeclarationName Name, QualType Type, TypeSourceInfo *TSI, SourceRange Range, bool DirectInit, Expr *Init) {\n  if (DeduceInits.size() > 1) {\n    Diag(DeduceInits[1]->getBeginLoc(), IsInitCapture ? diag::err_init_capture_multiple_expressions : diag::err_auto_var_init_multiple_expressions) << VN << Type << Range;"}}
},
},
["err_auto_var_init_no_expression"]={
["err_auto_var_init_no_expression"]={
[f]="initializer for variable A with type B is empty",
[f]="initializer for variable A with type B is empty",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="initializer for variable %0 with type %1 is empty",
[g]="initializer for variable %0 with type %1 is empty",
[c]=m,
[i]=m,
[b]="initializer for variable (.*?) with type (.*?) is empty",
[j]="initializer for variable (.*?) with type (.*?) is empty",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"de30e523b40d",1325802848,"Tweak the fix to PR8977: an empty expression-list represents value initialization, not default initi..."}
[d]={"de30e523b40d",1325802848,"Tweak the fix to PR8977: an empty expression-list represents value initialization, not default initi..."},
[k]={{q,11140,"QualType Sema::deduceVarTypeFromInitializer(VarDecl *VDecl, DeclarationName Name, QualType Type, TypeSourceInfo *TSI, SourceRange Range, bool DirectInit, Expr *Init) {\n  // Deduction only works if we have exactly one source expression.\n  if (DeduceInits.empty()) {\n    Diag(Init->getBeginLoc(), IsInitCapture ? diag::err_init_capture_no_expression : diag::err_auto_var_init_no_expression) << VN << Type << Range;"}}
},
},
["err_auto_var_init_paren_braces"]={
["err_auto_var_init_paren_braces"]={
[f]="cannot deduce type for variable A with type B from ... initializer list",
[f]="cannot deduce type for variable A with type B from ... initializer list",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot deduce type for variable %1 with type %2 from %select{parenthesized|nested}0 initializer list",
[g]="cannot deduce type for variable %1 with type %2 from %select{parenthesized|nested}0 initializer list",
[c]=m,
[i]=m,
[b]="cannot deduce type for variable (.*?) with type (.*?) from (?:parenthesized|nested) initializer list",
[j]="cannot deduce type for variable (.*?) with type (.*?) from (?:parenthesized|nested) initializer list",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"66204ecff985",1394646165,"DR1346: a parenthesized braced-init-list cannot be used as the initializer when"}
[d]={"66204ecff985",1394646165,"DR1346: a parenthesized braced-init-list cannot be used as the initializer when"},
[k]={{q,11151,"QualType Sema::deduceVarTypeFromInitializer(VarDecl *VDecl, DeclarationName Name, QualType Type, TypeSourceInfo *TSI, SourceRange Range, bool DirectInit, Expr *Init) {\n  if (DirectInit && isa<InitListExpr>(DeduceInit)) {\n    Diag(Init->getBeginLoc(), IsInitCapture ? diag::err_init_capture_paren_braces : diag::err_auto_var_init_paren_braces) << isa<InitListExpr>(Init) << VN << Type << Range;"}}
},
},
["err_auto_var_requires_init"]={
["err_auto_var_requires_init"]={
[f]="declaration of variable A with deduced type B requires an initializer",
[f]="declaration of variable A with deduced type B requires an initializer",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="declaration of variable %0 with deduced type %1 requires an initializer",
[g]="declaration of variable %0 with deduced type %1 requires an initializer",
[c]=m,
[i]=m,
[b]="declaration of variable (.*?) with deduced type (.*?) requires an initializer",
[j]="declaration of variable (.*?) with deduced type (.*?) requires an initializer",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"ae01993a12d6",1247272479,"Implement more of C++0x \'auto\'. A variable with an auto type specifier must have an initializer. Als..."}
[d]={"ae01993a12d6",1247272479,"Implement more of C++0x \'auto\'. A variable with an auto type specifier must have an initializer. Als..."},
[k]={{q,11109,"QualType Sema::deduceVarTypeFromInitializer(VarDecl *VDecl, DeclarationName Name, QualType Type, TypeSourceInfo *TSI, SourceRange Range, bool DirectInit, Expr *Init) {\n  // C++11 [dcl.spec.auto]p3\n  if (!Init) {\n    // Except for class argument deduction, and then for an initializing\n    // declaration only, i.e. no static at class scope or extern.\n    if (!isa<DeducedTemplateSpecializationType>(Deduced) || VDecl->hasExternalStorage() || VDecl->isStaticDataMember()) {\n      Diag(VDecl->getLocation(), diag::err_auto_var_requires_init) << VDecl->getDeclName() << Type;"}}
},
},
["err_auto_variable_cannot_appear_in_own_initializer"]={
["err_auto_variable_cannot_appear_in_own_initializer"]={
[f]="variable A declared with deduced type B cannot appear in its own initializer",
[f]="variable A declared with deduced type B cannot appear in its own initializer",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="variable %0 declared with deduced type %1 cannot appear in its own initializer",
[g]="variable %0 declared with deduced type %1 cannot appear in its own initializer",
[c]=m,
[i]=m,
[b]="variable (.*?) declared with deduced type (.*?) cannot appear in its own initializer",
[j]="variable (.*?) declared with deduced type (.*?) cannot appear in its own initializer",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"364035d1a821",1246043767,"An auto variable can\'t appear in its own initializer."}
[d]={"364035d1a821",1246043767,"An auto variable can\'t appear in its own initializer."},
[k]={{y,242,"/// Determine whether the use of this declaration is valid, and\n/// emit any corresponding diagnostics.\n///\n/// This routine diagnoses various problems with referencing\n/// declarations that can occur when using a declaration. For example,\n/// it might warn if a deprecated or unavailable declaration is being\n/// used, or produce an error (and return true) if a C++0x deleted\n/// function is being used.\n///\n/// \\returns true if there was an error (this declaration cannot be\n/// referenced), false otherwise.\n///\nbool Sema::DiagnoseUseOfDecl(NamedDecl *D, ArrayRef<SourceLocation> Locs, const ObjCInterfaceDecl *UnknownObjCClass, bool ObjCPropertyAccess, bool AvoidPartialAvailabilityChecks, ObjCInterfaceDecl *ClassReceiver, bool SkipTrailingRequiresClause) {\n  // See if this is an auto-typed variable whose initializer we are parsing.\n  if (ParsingInitForAutoVars.count(D)) {\n    if (isa<BindingDecl>(D)) {\n    } else {\n      Diag(Loc, diag::err_auto_variable_cannot_appear_in_own_initializer) << D->getDeclName() << cast<VarDecl>(D)->getType();"}}
},
},
["err_avail_query_expected_platform_name"]={
["err_avail_query_expected_platform_name"]={
[f]="expected a platform name here",
[f]="expected a platform name here",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="expected a platform name here",
[i]=m,
[j]="expected a platform name here",
[j]="expected a platform name here",
[c]=m,
[b]=a,
[b]="expected a platform name here",
[h]=B,
[i]=a,
[d]={Gb,1468629323,Db},
[h]=o,
[k]={{kb,3436,"/// Parse availability query specification.\n///\n///  availability-spec:\n///    \'*\'\n///    identifier version-tuple\nstd::optional<AvailabilitySpec> Parser::ParseAvailabilitySpec() {\n  if (Tok.is(tok::star)) {\n  } else {\n    if (Tok.isNot(tok::identifier)) {\n      Diag(Tok, diag::err_avail_query_expected_platform_name);"}}
[g]={xc,1468629323,Cc}
},
},
["err_avail_query_unrecognized_platform_name"]={
["err_avail_query_unrecognized_platform_name"]={
[f]="unrecognized platform name A",
[f]="unrecognized platform name A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="unrecognized platform name %0",
[g]="unrecognized platform name %0",
[c]=m,
[i]=m,
[b]="unrecognized platform name (.*?)",
[j]="unrecognized platform name (.*?)",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={xc,1468629323,Cc}
[d]={Gb,1468629323,Db},
[k]={{kb,3451,"/// Parse availability query specification.\n///\n///  availability-spec:\n///    \'*\'\n///    identifier version-tuple\nstd::optional<AvailabilitySpec> Parser::ParseAvailabilitySpec() {\n  if (Tok.is(tok::star)) {\n  } else {\n    if (AvailabilityAttr::getPrettyPlatformName(Platform).empty()) {\n      Diag(PlatformIdentifier->Loc, diag::err_avail_query_unrecognized_platform_name) << GivenPlatform;"}}
},
},
["err_availability_expected_change"]={
["err_availability_expected_change"]={
[f]="expected \'introduced\', \'deprecated\', or \'obsoleted\'",
[f]="expected \'introduced\', \'deprecated\', or \'obsoleted\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="expected \'introduced\', \'deprecated\', or \'obsoleted\'",
[i]=m,
[j]="expected \'introduced\', \'deprecated\', or \'obsoleted\'",
[j]="expected \'introduced\', \'deprecated\', or \'obsoleted\'",
[c]=m,
[b]=a,
[b]="expected \'introduced\', \'deprecated\', or \'obsoleted\'",
[h]=B,
[i]=a,
[d]={"20b2ebd78586",1300841403,"Implement a new \'availability\' attribute, that allows one to specify"},
[h]=o,
[k]={{D,1083,"/// Parse the contents of the \"availability\" attribute.\n///\n/// availability-attribute:\n///  \'availability\' \'(\' platform \',\' opt-strict version-arg-list,\n///                      opt-replacement, opt-message\')\'\n///\n/// platform:\n///  identifier\n///\n/// opt-strict:\n///  \'strict\' \',\'\n///\n/// version-arg-list:\n///  version-arg\n///  version-arg \',\' version-arg-list\n///\n/// version-arg:\n///  \'introduced\' \'=\' version\n///  \'deprecated\' \'=\' version\n///  \'obsoleted\' = version\n///  \'unavailable\'\n/// opt-replacement:\n///  \'replacement\' \'=\' <string>\n/// opt-message:\n///  \'message\' \'=\' <string>\nvoid Parser::ParseAvailabilityAttribute(IdentifierInfo &Availability, SourceLocation AvailabilityLoc, ParsedAttributes &attrs, SourceLocation *endLoc, IdentifierInfo *ScopeName, SourceLocation ScopeLoc, ParsedAttr::Form Form) {\n  do {\n    if (Tok.isNot(tok::identifier)) {\n      Diag(Tok, diag::err_availability_expected_change);"}}
[g]={Dc,1300841403,pc}
},
},
["err_availability_expected_platform"]={
["err_availability_expected_platform"]={
[f]="expected a platform name, e.g., \'macos\'",
[f]="expected a platform name, e.g., \'macos\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="expected a platform name, e.g., \'macos\'",
[g]="expected a platform name, e.g., \'macos\'",
[c]=m,
[i]=m,
[b]="expected a platform name, e\\.g\\., \'macos\'",
[j]="expected a platform name, e\\.g\\., \'macos\'",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={Dc,1300841403,pc}
[d]={"20b2ebd78586",1300841403,"Implement a new \'availability\' attribute, that allows one to specify"},
[k]={{D,1043,"/// Parse the contents of the \"availability\" attribute.\n///\n/// availability-attribute:\n///  \'availability\' \'(\' platform \',\' opt-strict version-arg-list,\n///                      opt-replacement, opt-message\')\'\n///\n/// platform:\n///  identifier\n///\n/// opt-strict:\n///  \'strict\' \',\'\n///\n/// version-arg-list:\n///  version-arg\n///  version-arg \',\' version-arg-list\n///\n/// version-arg:\n///  \'introduced\' \'=\' version\n///  \'deprecated\' \'=\' version\n///  \'obsoleted\' = version\n///  \'unavailable\'\n/// opt-replacement:\n///  \'replacement\' \'=\' <string>\n/// opt-message:\n///  \'message\' \'=\' <string>\nvoid Parser::ParseAvailabilityAttribute(IdentifierInfo &Availability, SourceLocation AvailabilityLoc, ParsedAttributes &attrs, SourceLocation *endLoc, IdentifierInfo *ScopeName, SourceLocation ScopeLoc, ParsedAttr::Form Form) {\n  // Parse the platform name.\n  if (Tok.isNot(tok::identifier)) {\n    Diag(Tok, diag::err_availability_expected_platform);"}}
},
},
["err_availability_query_repeated_platform"]={
["err_availability_query_repeated_platform"]={
[f]="version for \'A\' already specified",
[f]="version for \'A\' already specified",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="version for \'%0\' already specified",
[g]="version for \'%0\' already specified",
[c]=m,
[i]=m,
[b]="version for \'(.*?)\' already specified",
[j]="version for \'(.*?)\' already specified",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={xc,1468629323,Cc}
[d]={Gb,1468629323,Db},
[k]={{kb,3406,"/// Validate availability spec list, emitting diagnostics if necessary. Returns\n/// true if invalid.\nstatic bool CheckAvailabilitySpecList(Parser &P, ArrayRef<AvailabilitySpec> AvailSpecs) {\n  for (const auto &Spec : AvailSpecs) {\n    if (!Inserted) {\n      P.Diag(Spec.getBeginLoc(), diag::err_availability_query_repeated_platform) << Spec.getEndLoc() << Platform;"}}
},
},
["err_availability_query_repeated_star"]={
["err_availability_query_repeated_star"]={
[f]="\'*\' query has already been specified",
[f]="\'*\' query has already been specified",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'*\' query has already been specified",
[g]="\'*\' query has already been specified",
[c]=m,
[i]=m,
[b]="\'\\*\' query has already been specified",
[j]="\'\\*\' query has already been specified",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={xc,1468629323,Cc}
[d]={Gb,1468629323,Db},
[k]={{kb,3392,"/// Validate availability spec list, emitting diagnostics if necessary. Returns\n/// true if invalid.\nstatic bool CheckAvailabilitySpecList(Parser &P, ArrayRef<AvailabilitySpec> AvailSpecs) {\n  for (const auto &Spec : AvailSpecs) {\n    if (Spec.isOtherPlatformSpec()) {\n      if (HasOtherPlatformSpec) {\n        P.Diag(Spec.getBeginLoc(), diag::err_availability_query_repeated_star);"}}
},
},
["err_availability_query_wildcard_required"]={
["err_availability_query_wildcard_required"]={
[f]="must handle potential future platforms with \'*\'",
[f]="must handle potential future platforms with \'*\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="must handle potential future platforms with \'*\'",
[g]="must handle potential future platforms with \'*\'",
[c]=m,
[i]=m,
[b]="must handle potential future platforms with \'\\*\'",
[j]="must handle potential future platforms with \'\\*\'",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={xc,1468629323,Cc}
[d]={Gb,1468629323,Db},
[k]={{kb,3413,"/// Validate availability spec list, emitting diagnostics if necessary. Returns\n/// true if invalid.\nstatic bool CheckAvailabilitySpecList(Parser &P, ArrayRef<AvailabilitySpec> AvailSpecs) {\n  if (!HasOtherPlatformSpec) {\n    P.Diag(InsertWildcardLoc, diag::err_availability_query_wildcard_required) << FixItHint::CreateInsertion(InsertWildcardLoc, \", *\");"}}
},
},
["err_availability_redundant"]={
["err_availability_redundant"]={
[f]="redundant A availability change; only the last specified change will be used",
[f]="redundant A availability change; only the last specified change will be used",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="redundant %0 availability change; only the last specified change will be used",
[g]="redundant %0 availability change; only the last specified change will be used",
[c]=m,
[i]=m,
[b]="redundant (.*?) availability change; only the last specified change will be used",
[j]="redundant (.*?) availability change; only the last specified change will be used",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={Dc,1300841403,pc}
[d]={"20b2ebd78586",1300841403,"Implement a new \'availability\' attribute, that allows one to specify"},
[k]={{D,1092,"/// Parse the contents of the \"availability\" attribute.\n///\n/// availability-attribute:\n///  \'availability\' \'(\' platform \',\' opt-strict version-arg-list,\n///                      opt-replacement, opt-message\')\'\n///\n/// platform:\n///  identifier\n///\n/// opt-strict:\n///  \'strict\' \',\'\n///\n/// version-arg-list:\n///  version-arg\n///  version-arg \',\' version-arg-list\n///\n/// version-arg:\n///  \'introduced\' \'=\' version\n///  \'deprecated\' \'=\' version\n///  \'obsoleted\' = version\n///  \'unavailable\'\n/// opt-replacement:\n///  \'replacement\' \'=\' <string>\n/// opt-message:\n///  \'message\' \'=\' <string>\nvoid Parser::ParseAvailabilityAttribute(IdentifierInfo &Availability, SourceLocation AvailabilityLoc, ParsedAttributes &attrs, SourceLocation *endLoc, IdentifierInfo *ScopeName, SourceLocation ScopeLoc, ParsedAttr::Form Form) {\n  do {\n    if (Keyword == Ident_strict) {\n      if (StrictLoc.isValid()) {\n        Diag(KeywordLoc, diag::err_availability_redundant) << Keyword << SourceRange(StrictLoc);"},{D,1100,"/// Parse the contents of the \"availability\" attribute.\n///\n/// availability-attribute:\n///  \'availability\' \'(\' platform \',\' opt-strict version-arg-list,\n///                      opt-replacement, opt-message\')\'\n///\n/// platform:\n///  identifier\n///\n/// opt-strict:\n///  \'strict\' \',\'\n///\n/// version-arg-list:\n///  version-arg\n///  version-arg \',\' version-arg-list\n///\n/// version-arg:\n///  \'introduced\' \'=\' version\n///  \'deprecated\' \'=\' version\n///  \'obsoleted\' = version\n///  \'unavailable\'\n/// opt-replacement:\n///  \'replacement\' \'=\' <string>\n/// opt-message:\n///  \'message\' \'=\' <string>\nvoid Parser::ParseAvailabilityAttribute(IdentifierInfo &Availability, SourceLocation AvailabilityLoc, ParsedAttributes &attrs, SourceLocation *endLoc, IdentifierInfo *ScopeName, SourceLocation ScopeLoc, ParsedAttr::Form Form) {\n  do {\n    if (Keyword == Ident_unavailable) {\n      if (UnavailableLoc.isValid()) {\n        Diag(KeywordLoc, diag::err_availability_redundant) << Keyword << SourceRange(UnavailableLoc);"},{D,1109,"/// Parse the contents of the \"availability\" attribute.\n///\n/// availability-attribute:\n///  \'availability\' \'(\' platform \',\' opt-strict version-arg-list,\n///                      opt-replacement, opt-message\')\'\n///\n/// platform:\n///  identifier\n///\n/// opt-strict:\n///  \'strict\' \',\'\n///\n/// version-arg-list:\n///  version-arg\n///  version-arg \',\' version-arg-list\n///\n/// version-arg:\n///  \'introduced\' \'=\' version\n///  \'deprecated\' \'=\' version\n///  \'obsoleted\' = version\n///  \'unavailable\'\n/// opt-replacement:\n///  \'replacement\' \'=\' <string>\n/// opt-message:\n///  \'message\' \'=\' <string>\nvoid Parser::ParseAvailabilityAttribute(IdentifierInfo &Availability, SourceLocation AvailabilityLoc, ParsedAttributes &attrs, SourceLocation *endLoc, IdentifierInfo *ScopeName, SourceLocation ScopeLoc, ParsedAttr::Form Form) {\n  do {\n    if (Keyword == Ident_deprecated && Platform->Ident && Platform->Ident->isStr(\"swift\")) {\n      // For swift, we deprecate for all versions.\n      if (Changes[Deprecated].KeywordLoc.isValid()) {\n        Diag(KeywordLoc, diag::err_availability_redundant) << Keyword << SourceRange(Changes[Deprecated].KeywordLoc);"},{D,1180,"/// Parse the contents of the \"availability\" attribute.\n///\n/// availability-attribute:\n///  \'availability\' \'(\' platform \',\' opt-strict version-arg-list,\n///                      opt-replacement, opt-message\')\'\n///\n/// platform:\n///  identifier\n///\n/// opt-strict:\n///  \'strict\' \',\'\n///\n/// version-arg-list:\n///  version-arg\n///  version-arg \',\' version-arg-list\n///\n/// version-arg:\n///  \'introduced\' \'=\' version\n///  \'deprecated\' \'=\' version\n///  \'obsoleted\' = version\n///  \'unavailable\'\n/// opt-replacement:\n///  \'replacement\' \'=\' <string>\n/// opt-message:\n///  \'message\' \'=\' <string>\nvoid Parser::ParseAvailabilityAttribute(IdentifierInfo &Availability, SourceLocation AvailabilityLoc, ParsedAttributes &attrs, SourceLocation *endLoc, IdentifierInfo *ScopeName, SourceLocation ScopeLoc, ParsedAttr::Form Form) {\n  do {\n    if (Index < Unknown) {\n      if (!Changes[Index].KeywordLoc.isInvalid()) {\n        Diag(KeywordLoc, diag::err_availability_redundant) << Keyword << SourceRange(Changes[Index].KeywordLoc, Changes[Index].VersionRange.getEnd());"}}
},
},
["err_availability_unknown_change"]={
["err_availability_unknown_change"]={
[f]="A is not an availability stage; use \'introduced\', \'deprecated\', or \'obsoleted\'",
[f]="A is not an availability stage; use \'introduced\', \'deprecated\', or \'obsoleted\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 is not an availability stage; use \'introduced\', \'deprecated\', or \'obsoleted\'",
[g]="%0 is not an availability stage; use \'introduced\', \'deprecated\', or \'obsoleted\'",
[c]=m,
[i]=m,
[b]="(.*?) is not an availability stage; use \'introduced\', \'deprecated\', or \'obsoleted\'",
[j]="(.*?) is not an availability stage; use \'introduced\', \'deprecated\', or \'obsoleted\'",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={Dc,1300841403,pc}
[d]={"20b2ebd78586",1300841403,"Implement a new \'availability\' attribute, that allows one to specify"},
[k]={{D,1187,"/// Parse the contents of the \"availability\" attribute.\n///\n/// availability-attribute:\n///  \'availability\' \'(\' platform \',\' opt-strict version-arg-list,\n///                      opt-replacement, opt-message\')\'\n///\n/// platform:\n///  identifier\n///\n/// opt-strict:\n///  \'strict\' \',\'\n///\n/// version-arg-list:\n///  version-arg\n///  version-arg \',\' version-arg-list\n///\n/// version-arg:\n///  \'introduced\' \'=\' version\n///  \'deprecated\' \'=\' version\n///  \'obsoleted\' = version\n///  \'unavailable\'\n/// opt-replacement:\n///  \'replacement\' \'=\' <string>\n/// opt-message:\n///  \'message\' \'=\' <string>\nvoid Parser::ParseAvailabilityAttribute(IdentifierInfo &Availability, SourceLocation AvailabilityLoc, ParsedAttributes &attrs, SourceLocation *endLoc, IdentifierInfo *ScopeName, SourceLocation ScopeLoc, ParsedAttr::Form Form) {\n  do {\n    if (Index < Unknown) {\n    } else {\n      Diag(KeywordLoc, diag::err_availability_unknown_change) << Keyword << VersionRange;"}}
},
},
["err_avx_calling_convention"]={
["err_avx_calling_convention"]={
[f]="AVX vector ... of type A without \'B\' enabled changes the ABI",
[f]="AVX vector ... of type A without \'B\' enabled changes the ABI",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="AVX vector %select{return|argument}0 of type %1 without \'%2\' enabled changes the ABI",
[g]="AVX vector %select{return|argument}0 of type %1 without \'%2\' enabled changes the ABI",
[c]=m,
[i]=m,
[b]="AVX vector (?:return|argument) of type (.*?) without \'(.*?)\' enabled changes the ABI",
[j]="AVX vector (?:return|argument) of type (.*?) without \'(.*?)\' enabled changes the ABI",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={"2831a317b689",1592939649,"Implement AVX ABI Warning/error"}
[d]={"2831a317b689",1592939649,"Implement AVX ABI Warning/error"},
[k]={{"clang/lib/CodeGen/Targets/X86.cpp",1327,"static bool checkAVXParamFeature(DiagnosticsEngine &Diag, SourceLocation CallLoc, const llvm::StringMap<bool> &CallerMap, const llvm::StringMap<bool> &CalleeMap, QualType Ty, StringRef Feature, bool IsArgument) {\n  // Mixing calling conventions here is very clearly an error.\n  if (!CallerHasFeat || !CalleeHasFeat)\n    return Diag.Report(CallLoc, diag::err_avx_calling_convention) << IsArgument << Ty << Feature;"}}
},
},
["err_await_suspend_invalid_return_type"]={
["err_await_suspend_invalid_return_type"]={
[f]="return type of \'await_suspend\' is required to be \'void\' or \'bool\' (have A)",
[f]="return type of \'await_suspend\' is required to be \'void\' or \'bool\' (have A)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="return type of \'await_suspend\' is required to be \'void\' or \'bool\' (have %0)",
[g]="return type of \'await_suspend\' is required to be \'void\' or \'bool\' (have %0)",
[c]=m,
[i]=m,
[b]="return type of \'await_suspend\' is required to be \'void\' or \'bool\' \\(have (.*?)\\)",
[j]="return type of \'await_suspend\' is required to be \'void\' or \'bool\' \\(have (.*?)\\)",
[i]=a,
[b]=a,
[h]=E,
[h]="Coroutines Issue",
[g]={"d978e53c6d70",1495995672,"[coroutines] Diagnose invalid result  types for `await_resume` and `await_suspend` and add missing c..."}
[d]={"d978e53c6d70",1495995672,"[coroutines] Diagnose invalid result  types for `await_resume` and `await_suspend` and add missing c..."},
[k]={{"clang/lib/Sema/SemaCoroutine.cpp",391,"/// Build calls to await_ready, await_suspend, and await_resume for a co_await\n/// expression.\n/// The generated AST tries to clean up temporary objects as early as\n/// possible so that they don\'t live across suspension points if possible.\n/// Having temporary objects living across suspension points unnecessarily can\n/// lead to large frame size, and also lead to memory corruptions if the\n/// coroutine frame is destroyed after coming back from suspension. This is done\n/// by wrapping both the await_ready call and the await_suspend call with\n/// ExprWithCleanups. In the end of this function, we also need to explicitly\n/// set cleanup state so that the CoawaitExpr is also wrapped with an\n/// ExprWithCleanups to clean up the awaiter associated with the co_await\n/// expression.\nstatic ReadySuspendResumeResult buildCoawaitCalls(Sema &S, VarDecl *CoroPromise, SourceLocation Loc, Expr *E) {\n  if (!AwaitSuspend->getType()->isDependentType()) {\n    // Support for coroutine_handle returning await_suspend.\n    if (Expr *TailCallSuspend = maybeTailCall(S, RetType, AwaitSuspend, Loc))\n    else {\n      // non-class prvalues always have cv-unqualified types\n      if (RetType->isReferenceType() || (!RetType->isBooleanType() && !RetType->isVoidType())) {\n        S.Diag(AwaitSuspend->getCalleeDecl()->getLocation(), diag::err_await_suspend_invalid_return_type) << RetType;"}}
},
},
["err_bad_cast_incomplete"]={
["err_bad_cast_incomplete"]={
[f]="A is an incomplete type",
[f]="A is an incomplete type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 is an incomplete type",
[g]="%0 is an incomplete type",
[c]=m,
[i]=m,
[b]="(.*?) is an incomplete type",
[j]="(.*?) is an incomplete type",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={ic,1575504770,jc}
[d]={"fe17b30a7957",1575504770,"[attributes][analyzer] Add annotations for handles."},
[k]={{w,685,"/// CheckDynamicCast - Check that a dynamic_cast\\<DestType\\>(SrcExpr) is valid.\n/// Refer to C++ 5.2.7 for details. Dynamic casts are used mostly for runtime-\n/// checked downcasts in class hierarchies.\nvoid CastOperation::CheckDynamicCast() {\n  if (DestPointee->isVoidType()) {\n  } else if (DestRecord) {\n    if (Self.RequireCompleteType(OpRange.getBegin(), DestPointee, diag::err_bad_cast_incomplete, DestRange)) {"},{w,724,"/// CheckDynamicCast - Check that a dynamic_cast\\<DestType\\>(SrcExpr) is valid.\n/// Refer to C++ 5.2.7 for details. Dynamic casts are used mostly for runtime-\n/// checked downcasts in class hierarchies.\nvoid CastOperation::CheckDynamicCast() {\n  if (SrcRecord) {\n    if (Self.RequireCompleteType(OpRange.getBegin(), SrcPointee, diag::err_bad_cast_incomplete, SrcExpr.get())) {"},{w,1197,"/// TryStaticCast - Check if a static cast can be performed, and do so if\n/// possible. If @p CStyle, ignore access restrictions on hierarchy casting\n/// and casting away constness.\nstatic TryCastResult TryStaticCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, Sema::CheckedConversionKind CCK, SourceRange OpRange, unsigned &msg, CastKind &Kind, CXXCastPath &BasePath, bool ListInitialization) {\n  // Reverse integral promotion/conversion. All such conversions are themselves\n  // again integral promotions or conversions and are thus already handled by\n  // p2 (TryDirectInitialization above).\n  // (Note: any data loss warnings should be suppressed.)\n  // The exception is the reverse of enum->integer, i.e. integer->enum (and\n  // enum->enum). See also C++ 5.2.9p7.\n  // The same goes for reverse floating point promotion/conversion and\n  // floating-integral conversions. Again, only floating->enum is relevant.\n  if (DestType->isEnumeralType()) {\n    if (Self.RequireCompleteType(OpRange.getBegin(), DestType, diag::err_bad_cast_incomplete)) {"},{w,1609,"/// TryStaticImplicitCast - Tests whether a conversion according to C++ 5.2.9p2\n/// is valid:\n///\n///  An expression e can be explicitly converted to a type T using a\n///  @c static_cast if the declaration \"T t(e);\" is well-formed [...].\nTryCastResult TryStaticImplicitCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, Sema::CheckedConversionKind CCK, SourceRange OpRange, unsigned &msg, CastKind &Kind, bool ListInitialization) {\n  if (DestType->isRecordType()) {\n    if (Self.RequireCompleteType(OpRange.getBegin(), DestType, diag::err_bad_cast_incomplete) || Self.RequireNonAbstractType(OpRange.getBegin(), DestType, diag::err_allocation_of_abstract_type)) {"}}
},
},
["err_bad_category_property_decl"]={
["err_bad_category_property_decl"]={
[f]="property implementation must have its declaration in the category A",
[f]="property implementation must have its declaration in the category A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="property implementation must have its declaration in the category %0",
[g]="property implementation must have its declaration in the category %0",
[c]=m,
[i]=m,
[b]="property implementation must have its declaration in the category (.*?)",
[j]="property implementation must have its declaration in the category (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={P,1480718311,O}
[d]={ub,1480718311,yb},
[k]={{P,984,"/// ActOnPropertyImplDecl - This routine performs semantic checks and\n/// builds the AST node for a property implementation declaration; declared\n/// as \\@synthesize or \\@dynamic.\n///\nDecl *Sema::ActOnPropertyImplDecl(Scope *S, SourceLocation AtLoc, SourceLocation PropertyLoc, bool Synthesize, IdentifierInfo *PropertyId, IdentifierInfo *PropertyIvar, SourceLocation PropertyIvarLoc, ObjCPropertyQueryKind QueryKind) {\n  if ((IC = dyn_cast<ObjCImplementationDecl>(ClassImpDecl))) {\n  } else if ((CatImplClass = dyn_cast<ObjCCategoryImplDecl>(ClassImpDecl))) {\n    if (!property) {\n      Diag(PropertyLoc, diag::err_bad_category_property_decl) << Category->getDeclName();"}}
},
},
["err_bad_character_encoding"]={
["err_bad_character_encoding"]={
[f]="illegal character encoding in character literal",
[f]="illegal character encoding in character literal",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="illegal character encoding in character literal",
[i]=m,
[j]="illegal character encoding in character literal",
[j]="illegal character encoding in character literal",
[c]=m,
[b]=a,
[b]="illegal character encoding in character literal",
[h]=gb,
[i]=a,
[d]={"8b2b677f390d",1326889624,"Improves support for Unicode in character literals"},
[h]=t,
[k]={{"clang/lib/Lex/LiteralSupport.cpp",1575,"/// \\verbatim\n///      user-defined-character-literal: [C++11 lex.ext]\n///        character-literal ud-suffix\n///      ud-suffix:\n///        identifier\n///      character-literal: [C++11 lex.ccon]\n///        \' c-char-sequence \'\n///        u\' c-char-sequence \'\n///        U\' c-char-sequence \'\n///        L\' c-char-sequence \'\n///        u8\' c-char-sequence \' [C++1z lex.ccon]\n///      c-char-sequence:\n///        c-char\n///        c-char-sequence c-char\n///      c-char:\n///        any member of the source character set except the single-quote \',\n///          backslash \\, or new-line character\n///        escape-sequence\n///        universal-character-name\n///      escape-sequence:\n///        simple-escape-sequence\n///        octal-escape-sequence\n///        hexadecimal-escape-sequence\n///      simple-escape-sequence:\n///        one of \\\' \\\" \\? \\\\ \\a \\b \\f \\n \\r \\t \\v\n///      octal-escape-sequence:\n///        \\ octal-digit\n///        \\ octal-digit octal-digit\n///        \\ octal-digit octal-digit octal-digit\n///      hexadecimal-escape-sequence:\n///        \\x hexadecimal-digit\n///        hexadecimal-escape-sequence hexadecimal-digit\n///      universal-character-name: [C++11 lex.charset]\n///        \\u hex-quad\n///        \\U hex-quad hex-quad\n///      hex-quad:\n///        hex-digit hex-digit hex-digit hex-digit\n/// \\endverbatim\n///\nCharLiteralParser::CharLiteralParser(const char *begin, const char *end, SourceLocation Loc, Preprocessor &PP, tok::TokenKind kind) {\n  while (begin != end) {\n    // Is this a span of non-escape characters?\n    if (begin[0] != \'\\\\\') {\n      if (res != llvm::conversionOK) {\n        unsigned Msg = diag::err_bad_character_encoding;"}}
[g]={"8b2b677f390d",1326889624,"Improves support for Unicode in character literals"}
},
},
["err_bad_const_cast_dest"]={
["err_bad_const_cast_dest"]={
[f]="... to A, which is not a reference, pointer-to-object, or pointer-to-data-member",
[f]="... to A, which is not a reference, pointer-to-object, or pointer-to-data-member",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{const_cast||||C-style cast|functional-style cast|}0 to %2, which is not a reference, pointer-to-object, or pointer-to-data-member",
[g]="%select{const_cast||||C-style cast|functional-style cast|}0 to %2, which is not a reference, pointer-to-object, or pointer-to-data-member",
[c]=m,
[i]=m,
[b]="(?:const_cast||||C\\-style cast|functional\\-style cast|) to (.*?), which is not a reference, pointer\\-to\\-object, or pointer\\-to\\-data\\-member",
[j]="(?:const_cast||||C\\-style cast|functional\\-style cast|) to (.*?), which is not a reference, pointer\\-to\\-object, or pointer\\-to\\-data\\-member",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{w,1711,"/// TryConstCast - See if a const_cast from source to destination is allowed,\n/// and perform it if it is.\nstatic TryCastResult TryConstCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, bool CStyle, unsigned &msg) {\n  if (!DestType->isPointerType() && !DestType->isMemberPointerType() && !DestType->isObjCObjectPointerType()) {\n    // Cannot cast to non-pointer, non-reference type. Note that, if DestType\n    // was a reference type, we converted it to a pointer above.\n    // The status of rvalue references isn\'t entirely clear, but it looks like\n    // conversion to them is simply invalid.\n    // C++ 5.2.11p3: For two pointer types [...]\n    if (!CStyle)\n      msg = diag::err_bad_const_cast_dest;"},{w,1719,"/// TryConstCast - See if a const_cast from source to destination is allowed,\n/// and perform it if it is.\nstatic TryCastResult TryConstCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, bool CStyle, unsigned &msg) {\n  if (DestType->isFunctionPointerType() || DestType->isMemberFunctionPointerType()) {\n    // Cannot cast direct function pointers.\n    // C++ 5.2.11p2: [...] where T is any object type or the void type [...]\n    // T is the ultimate pointee of source and target type.\n    if (!CStyle)\n      msg = diag::err_bad_const_cast_dest;"}}
},
},
["err_bad_cstyle_cast_overload"]={
["err_bad_cstyle_cast_overload"]={
[f]="address of overloaded function A cannot be cast to type B",
[f]="address of overloaded function A cannot be cast to type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address of overloaded function %0 cannot be cast to type %1",
[g]="address of overloaded function %0 cannot be cast to type %1",
[c]=m,
[i]=m,
[b]="address of overloaded function (.*?) cannot be cast to type (.*?)",
[j]="address of overloaded function (.*?) cannot be cast to type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"b491ed36b4ef",1298151169,"Handle the resolution of a reference to a function template (which"}
[d]={"b491ed36b4ef",1298151169,"Handle the resolution of a reference to a function template (which"},
[k]={{w,2361,"void CastOperation::CheckCXXCStyleCast(bool FunctionalStyle, bool ListInitialization) {\n  // C++ 5.2.9p4: Any expression can be explicitly converted to type \"cv void\".\n  // This test is outside everything else because it\'s the only case where\n  // a non-lvalue-reference target type does not lead to decay.\n  if (DestType->isVoidType()) {\n    if (claimPlaceholder(BuiltinType::Overload)) {\n      Self.ResolveAndFixSingleFunctionTemplateSpecialization(SrcExpr, /* Decay Function to ptr */ false,\n                                                            /* Complain */ true, DestRange, DestType, diag::err_bad_cstyle_cast_overload);"},{w,2458,"void CastOperation::CheckCXXCStyleCast(bool FunctionalStyle, bool ListInitialization) {\n  if (tcr != TC_Success && msg != 0) {\n    if (SrcExpr.get()->getType() == Self.Context.OverloadTy) {\n      if (Fn) {\n        Self.Diag(OpRange.getBegin(), diag::err_bad_cstyle_cast_overload) << OE->getName() << DestType << OpRange << OE->getQualifierLoc().getSourceRange();"}}
},
},
["err_bad_cxx_cast_addr_space_mismatch"]={
["err_bad_cxx_cast_addr_space_mismatch"]={
[f]="... from A to B converts between mismatching address spaces",
[f]="... from A to B converts between mismatching address spaces",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast|addrspace_cast}0 from %1 to %2 converts between mismatching address spaces",
[g]="%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast|addrspace_cast}0 from %1 to %2 converts between mismatching address spaces",
[c]=m,
[i]=m,
[b]="(?:const_cast|static_cast|reinterpret_cast|dynamic_cast|C\\-style cast|functional\\-style cast|addrspace_cast) from (.*?) to (.*?) converts between mismatching address spaces",
[j]="(?:const_cast|static_cast|reinterpret_cast|dynamic_cast|C\\-style cast|functional\\-style cast|addrspace_cast) from (.*?) to (.*?) converts between mismatching address spaces",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"6f7c536e083b",1551978390,"[Sema] Change addr space diagnostics in casts to follow C++ style."}
[d]={"6f7c536e083b",1551978390,"[Sema] Change addr space diagnostics in casts to follow C++ style."},
[k]={{w,2267,"static TryCastResult TryAddressSpaceCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, bool CStyle, unsigned &msg, CastKind &Kind) {\n  if (!DestPointeeType.isAddressSpaceOverlapping(SrcPointeeType)) {\n    msg = diag::err_bad_cxx_cast_addr_space_mismatch;"}}
},
},
["err_bad_cxx_cast_bitfield"]={
["err_bad_cxx_cast_bitfield"]={
[f]="... from bit-field lvalue to reference type A",
[f]="... from bit-field lvalue to reference type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast|}0 from bit-field lvalue to reference type %2",
[g]="%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast|}0 from bit-field lvalue to reference type %2",
[c]=m,
[i]=m,
[b]="(?:const_cast|static_cast|reinterpret_cast|dynamic_cast|C\\-style cast|functional\\-style cast|) from bit\\-field lvalue to reference type (.*?)",
[j]="(?:const_cast|static_cast|reinterpret_cast|dynamic_cast|C\\-style cast|functional\\-style cast|) from bit\\-field lvalue to reference type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"d25db7ed0f8e",1367876352,"Grab-bag of bit-field fixes:"}
[d]={"d25db7ed0f8e",1367876352,"Grab-bag of bit-field fixes:"},
[k]={{w,1693,"/// TryConstCast - See if a const_cast from source to destination is allowed,\n/// and perform it if it is.\nstatic TryCastResult TryConstCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, bool CStyle, unsigned &msg) {\n  if (const ReferenceType *DestTypeTmp = DestType->getAs<ReferenceType>()) {\n    // It\'s not completely clear under the standard whether we can\n    // const_cast bit-field gl-values.  Doing so would not be\n    // intrinsically complicated, but for now, we say no for\n    // consistency with other compilers and await the word of the\n    // committee.\n    if (SrcExpr.get()->refersToBitField()) {\n      msg = diag::err_bad_cxx_cast_bitfield;"},{w,1964,"static TryCastResult TryReinterpretCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, bool CStyle, SourceRange OpRange, unsigned &msg, CastKind &Kind) {\n  if (const ReferenceType *DestTypeTmp = DestType->getAs<ReferenceType>()) {\n    case OK_BitField:\n      msg = diag::err_bad_cxx_cast_bitfield;"}}
},
},
["err_bad_cxx_cast_generic"]={
["err_bad_cxx_cast_generic"]={
[f]="... from A to B is not allowed",
[f]="... from A to B is not allowed",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast|addrspace_cast}0 from %1 to %2 is not allowed",
[g]="%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast|addrspace_cast}0 from %1 to %2 is not allowed",
[c]=m,
[i]=m,
[b]="(?:const_cast|static_cast|reinterpret_cast|dynamic_cast|C\\-style cast|functional\\-style cast|addrspace_cast) from (.*?) to (.*?) is not allowed",
[j]="(?:const_cast|static_cast|reinterpret_cast|dynamic_cast|C\\-style cast|functional\\-style cast|addrspace_cast) from (.*?) to (.*?) is not allowed",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{w,409,"/// Diagnose a failed cast.\nstatic void diagnoseBadCast(Sema &S, unsigned msg, CastType castType, SourceRange opRange, Expr *src, QualType destType, bool listInitialization) {\n  if (msg == diag::err_bad_cxx_cast_generic && tryDiagnoseOverloadedCast(S, castType, opRange, src, destType, listInitialization))"},{w,816,"/// CheckConstCast - Check that a const_cast\\<DestType\\>(SrcExpr) is valid.\n/// Refer to C++ 5.2.11 for details. const_cast is typically used in code\n/// like this:\n/// const char *str = \"literal\";\n/// legacy_function(const_cast\\<char*\\>(str));\nvoid CastOperation::CheckConstCast() {\n  unsigned msg = diag::err_bad_cxx_cast_generic;"},{w,826,"void CastOperation::CheckAddrspaceCast() {\n  unsigned msg = diag::err_bad_cxx_cast_generic;"},{w,1012,"/// CheckReinterpretCast - Check that a reinterpret_cast\\<DestType\\>(SrcExpr) is\n/// valid.\n/// Refer to C++ 5.2.10 for details. reinterpret_cast is typically used in code\n/// like this:\n/// char *bytes = reinterpret_cast\\<char*\\>(int_ptr);\nvoid CastOperation::CheckReinterpretCast() {\n  unsigned msg = diag::err_bad_cxx_cast_generic;"},{w,1077,"/// CheckStaticCast - Check that a static_cast\\<DestType\\>(SrcExpr) is valid.\n/// Refer to C++ 5.2.9 for details. Static casts are mostly used for making\n/// implicit conversions explicit and getting rid of data loss warnings.\nvoid CastOperation::CheckStaticCast() {\n  unsigned msg = diag::err_bad_cxx_cast_generic;"},{w,2415,"void CastOperation::CheckCXXCStyleCast(bool FunctionalStyle, bool ListInitialization) {\n  unsigned msg = diag::err_bad_cxx_cast_generic;"}}
},
},
["err_bad_cxx_cast_member_pointer_size"]={
["err_bad_cxx_cast_member_pointer_size"]={
[f]="cannot ... from member pointer type A to member pointer type B of different size",
[f]="cannot ... from member pointer type A to member pointer type B of different size",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot %select{||reinterpret_cast||C-style cast||}0 from member pointer type %1 to member pointer type %2 of different size",
[g]="cannot %select{||reinterpret_cast||C-style cast||}0 from member pointer type %1 to member pointer type %2 of different size",
[c]=m,
[i]=m,
[b]="cannot (?:||reinterpret_cast||C\\-style cast||) from member pointer type (.*?) to member pointer type (.*?) of different size",
[j]="cannot (?:||reinterpret_cast||C\\-style cast||) from member pointer type (.*?) to member pointer type (.*?) of different size",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"ebab1ed5d30c",1281936644,"Error out if reinterpret_casting between member pointers of two different"}
[d]={"ebab1ed5d30c",1281936644,"Error out if reinterpret_casting between member pointers of two different"},
[k]={{w,2015,"static TryCastResult TryReinterpretCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, bool CStyle, SourceRange OpRange, unsigned &msg, CastKind &Kind) {\n  if (DestMemPtr && SrcMemPtr) {\n    // Don\'t allow casting between member pointers of different sizes.\n    if (Self.Context.getTypeSize(DestMemPtr) != Self.Context.getTypeSize(SrcMemPtr)) {\n      msg = diag::err_bad_cxx_cast_member_pointer_size;"}}
},
},
["err_bad_cxx_cast_qualifiers_away"]={
["err_bad_cxx_cast_qualifiers_away"]={
[f]="... from A to B casts away qualifiers",
[f]="... from A to B casts away qualifiers",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast|}0 from %1 to %2 casts away qualifiers",
[g]="%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast|}0 from %1 to %2 casts away qualifiers",
[c]=m,
[i]=m,
[b]="(?:const_cast|static_cast|reinterpret_cast|dynamic_cast|C\\-style cast|functional\\-style cast|) from (.*?) to (.*?) casts away qualifiers",
[j]="(?:const_cast|static_cast|reinterpret_cast|dynamic_cast|C\\-style cast|functional\\-style cast|) from (.*?) to (.*?) casts away qualifiers",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"b472e93af799",1302890394,"Implement appropriate semantics for C++ casting and conversion when"}
[d]={"b472e93af799",1302890394,"Implement appropriate semantics for C++ casting and conversion when"},
[k]={{w,638,"static TryCastResult getCastAwayConstnessCastKind(CastAwayConstnessKind CACK, unsigned &DiagID) {\n  case CastAwayConstnessKind::CACK_SimilarKind:\n    DiagID = diag::err_bad_cxx_cast_qualifiers_away;"},{w,740,"/// CheckDynamicCast - Check that a dynamic_cast\\<DestType\\>(SrcExpr) is valid.\n/// Refer to C++ 5.2.7 for details. Dynamic casts are used mostly for runtime-\n/// checked downcasts in class hierarchies.\nvoid CastOperation::CheckDynamicCast() {\n  // C++ 5.2.7p1: The dynamic_cast operator shall not cast away constness.\n  if (!DestPointee.isAtLeastAsQualifiedAs(SrcPointee)) {\n    Self.Diag(OpRange.getBegin(), diag::err_bad_cxx_cast_qualifiers_away) << CT_Dynamic << OrigSrcType << this->DestType << OpRange;"},{w,1246,"/// TryStaticCast - Check if a static cast can be performed, and do so if\n/// possible. If @p CStyle, ignore access restrictions on hierarchy casting\n/// and casting away constness.\nstatic TryCastResult TryStaticCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, Sema::CheckedConversionKind CCK, SourceRange OpRange, unsigned &msg, CastKind &Kind, CXXCastPath &BasePath, bool ListInitialization) {\n  // Reverse pointer conversion to void*. C++ 4.10.p2 specifies conversion to\n  // void*. C++ 5.2.9p10 specifies additional restrictions, which really is\n  // just the usual constness stuff.\n  if (const PointerType *SrcPointer = SrcType->getAs<PointerType>()) {\n    if (SrcPointee->isVoidType()) {\n      if (const PointerType *DestPointer = DestType->getAs<PointerType>()) {\n        if (DestPointee->isIncompleteOrObjectType()) {\n          // This is definitely the intended conversion, but it might fail due\n          // to a qualifier violation. Note that we permit Objective-C lifetime\n          // and GC qualifier mismatches here.\n          if (!CStyle) {\n            if (DestPointeeQuals != SrcPointeeQuals && !DestPointeeQuals.compatiblyIncludes(SrcPointeeQuals)) {\n              msg = diag::err_bad_cxx_cast_qualifiers_away;"},{w,1443,"/// TryStaticDowncast - Common functionality of TryStaticReferenceDowncast and\n/// TryStaticPointerDowncast. Tests whether a static downcast from SrcType to\n/// DestType is possible and allowed.\nTryCastResult TryStaticDowncast(Sema &Self, CanQualType SrcType, CanQualType DestType, bool CStyle, SourceRange OpRange, QualType OrigSrcType, QualType OrigDestType, unsigned &msg, CastKind &Kind, CXXCastPath &BasePath) {\n  // Must preserve cv, as always, unless we\'re in C-style mode.\n  if (!CStyle && !DestType.isAtLeastAsQualifiedAs(SrcType)) {\n    msg = diag::err_bad_cxx_cast_qualifiers_away;"}}
},
},
["err_bad_cxx_cast_rvalue"]={
["err_bad_cxx_cast_rvalue"]={
[f]="... from rvalue to reference type A",
[f]="... from rvalue to reference type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast|addrspace_cast}0 from rvalue to reference type %2",
[g]="%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast|addrspace_cast}0 from rvalue to reference type %2",
[c]=m,
[i]=m,
[b]="(?:const_cast|static_cast|reinterpret_cast|dynamic_cast|C\\-style cast|functional\\-style cast|addrspace_cast) from rvalue to reference type (.*?)",
[j]="(?:const_cast|static_cast|reinterpret_cast|dynamic_cast|C\\-style cast|functional\\-style cast|addrspace_cast) from rvalue to reference type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{w,711,"/// CheckDynamicCast - Check that a dynamic_cast\\<DestType\\>(SrcExpr) is valid.\n/// Refer to C++ 5.2.7 for details. Dynamic casts are used mostly for runtime-\n/// checked downcasts in class hierarchies.\nvoid CastOperation::CheckDynamicCast() {\n  if (DestPointer) {\n  } else if (DestReference->isLValueReferenceType()) {\n    if (!SrcExpr.get()->isLValue()) {\n      Self.Diag(OpRange.getBegin(), diag::err_bad_cxx_cast_rvalue) << CT_Dynamic << OrigSrcType << this->DestType << OpRange;"},{w,1368,"/// Tests whether a conversion according to C++ 5.2.9p5 is valid.\nTryCastResult TryStaticReferenceDowncast(Sema &Self, Expr *SrcExpr, QualType DestType, bool CStyle, SourceRange OpRange, unsigned &msg, CastKind &Kind, CXXCastPath &BasePath) {\n  if (!RValueRef && !SrcExpr->isLValue()) {\n    msg = diag::err_bad_cxx_cast_rvalue;"},{w,1670,"/// TryConstCast - See if a const_cast from source to destination is allowed,\n/// and perform it if it is.\nstatic TryCastResult TryConstCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, bool CStyle, unsigned &msg) {\n  if (const ReferenceType *DestTypeTmp = DestType->getAs<ReferenceType>()) {\n    if (isa<LValueReferenceType>(DestTypeTmp) && !SrcExpr.get()->isLValue()) {\n      msg = diag::err_bad_cxx_cast_rvalue;"},{w,1678,"/// TryConstCast - See if a const_cast from source to destination is allowed,\n/// and perform it if it is.\nstatic TryCastResult TryConstCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, bool CStyle, unsigned &msg) {\n  if (const ReferenceType *DestTypeTmp = DestType->getAs<ReferenceType>()) {\n    if (isa<RValueReferenceType>(DestTypeTmp) && SrcExpr.get()->isPRValue()) {\n      if (!SrcType->isRecordType()) {\n        msg = diag::err_bad_cxx_cast_rvalue;"},{w,1946,"static TryCastResult TryReinterpretCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, bool CStyle, SourceRange OpRange, unsigned &msg, CastKind &Kind) {\n  if (const ReferenceType *DestTypeTmp = DestType->getAs<ReferenceType>()) {\n    if (!SrcExpr.get()->isGLValue()) {\n      msg = diag::err_bad_cxx_cast_rvalue;"}}
},
},
["err_bad_cxx_cast_scalar_to_vector_different_size"]={
["err_bad_cxx_cast_scalar_to_vector_different_size"]={
[f]="... from scalar A to vector B of different size",
[f]="... from scalar A to vector B of different size",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{||reinterpret_cast||C-style cast||}0 from scalar %1 to vector %2 of different size",
[g]="%select{||reinterpret_cast||C-style cast||}0 from scalar %1 to vector %2 of different size",
[c]=m,
[i]=m,
[b]="(?:||reinterpret_cast||C\\-style cast||) from scalar (.*?) to vector (.*?) of different size",
[j]="(?:||reinterpret_cast||C\\-style cast||) from scalar (.*?) to vector (.*?) of different size",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"570af5d42678",1253128783,"Improve handling of vector casts in C++."}
[d]={"570af5d42678",1253128783,"Improve handling of vector casts in C++."},
[k]={{w,2091,"static TryCastResult TryReinterpretCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, bool CStyle, SourceRange OpRange, unsigned &msg, CastKind &Kind) {\n  if (srcIsVector || destIsVector) {\n    // Otherwise, pick a reasonable diagnostic.\n    if (!destIsVector)\n    else if (!srcIsVector)\n      msg = diag::err_bad_cxx_cast_scalar_to_vector_different_size;"}}
},
},
["err_bad_cxx_cast_unrelated_class"]={
["err_bad_cxx_cast_unrelated_class"]={
[f]="... from A to B, which are not related by inheritance, is not allowed",
[f]="... from A to B, which are not related by inheritance, is not allowed",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast|}0 from %1 to %2, which are not related by inheritance, is not allowed",
[g]="%select{const_cast|static_cast|reinterpret_cast|dynamic_cast|C-style cast|functional-style cast|}0 from %1 to %2, which are not related by inheritance, is not allowed",
[c]=m,
[i]=m,
[b]="(?:const_cast|static_cast|reinterpret_cast|dynamic_cast|C\\-style cast|functional\\-style cast|) from (.*?) to (.*?), which are not related by inheritance, is not allowed",
[j]="(?:const_cast|static_cast|reinterpret_cast|dynamic_cast|C\\-style cast|functional\\-style cast|) from (.*?) to (.*?), which are not related by inheritance, is not allowed",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"ffa7dc379f2e",1422480686,"PR 17456"}
[d]={"ffa7dc379f2e",1422480686,"PR 17456"},
[k]={{w,1288,"/// TryStaticCast - Check if a static cast can be performed, and do so if\n/// possible. If @p CStyle, ignore access restrictions on hierarchy casting\n/// and casting away constness.\nstatic TryCastResult TryStaticCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, Sema::CheckedConversionKind CCK, SourceRange OpRange, unsigned &msg, CastKind &Kind, CXXCastPath &BasePath, bool ListInitialization) {\n  // See if it looks like the user is trying to convert between\n  // related record types, and select a better diagnostic if so.\n  if (auto SrcPointer = SrcType->getAs<PointerType>())\n    if (auto DestPointer = DestType->getAs<PointerType>())\n      if (SrcPointer->getPointeeType()->getAs<RecordType>() && DestPointer->getPointeeType()->getAs<RecordType>())\n        msg = diag::err_bad_cxx_cast_unrelated_class;"}}
},
},
["err_bad_cxx_cast_vector_to_scalar_different_size"]={
["err_bad_cxx_cast_vector_to_scalar_different_size"]={
[f]="... from vector A to scalar B of different size",
[f]="... from vector A to scalar B of different size",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{||reinterpret_cast||C-style cast||}0 from vector %1 to scalar %2 of different size",
[g]="%select{||reinterpret_cast||C-style cast||}0 from vector %1 to scalar %2 of different size",
[c]=m,
[i]=m,
[b]="(?:||reinterpret_cast||C\\-style cast||) from vector (.*?) to scalar (.*?) of different size",
[j]="(?:||reinterpret_cast||C\\-style cast||) from vector (.*?) to scalar (.*?) of different size",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"570af5d42678",1253128783,"Improve handling of vector casts in C++."}
[d]={"570af5d42678",1253128783,"Improve handling of vector casts in C++."},
[k]={{w,2089,"static TryCastResult TryReinterpretCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, bool CStyle, SourceRange OpRange, unsigned &msg, CastKind &Kind) {\n  if (srcIsVector || destIsVector) {\n    // Otherwise, pick a reasonable diagnostic.\n    if (!destIsVector)\n      msg = diag::err_bad_cxx_cast_vector_to_scalar_different_size;"}}
},
},
["err_bad_cxx_cast_vector_to_vector_different_size"]={
["err_bad_cxx_cast_vector_to_vector_different_size"]={
[f]="... from vector A to vector B of different size",
[f]="... from vector A to vector B of different size",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{||reinterpret_cast||C-style cast||}0 from vector %1 to vector %2 of different size",
[g]="%select{||reinterpret_cast||C-style cast||}0 from vector %1 to vector %2 of different size",
[c]=m,
[i]=m,
[b]="(?:||reinterpret_cast||C\\-style cast||) from vector (.*?) to vector (.*?) of different size",
[j]="(?:||reinterpret_cast||C\\-style cast||) from vector (.*?) to vector (.*?) of different size",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"570af5d42678",1253128783,"Improve handling of vector casts in C++."}
[d]={"570af5d42678",1253128783,"Improve handling of vector casts in C++."},
[k]={{w,2093,"static TryCastResult TryReinterpretCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, bool CStyle, SourceRange OpRange, unsigned &msg, CastKind &Kind) {\n  if (srcIsVector || destIsVector) {\n    // Otherwise, pick a reasonable diagnostic.\n    if (!destIsVector)\n    else if (!srcIsVector)\n    else\n      msg = diag::err_bad_cxx_cast_vector_to_vector_different_size;"}}
},
},
["err_bad_dynamic_cast_not_class"]={
["err_bad_dynamic_cast_not_class"]={
[f]="A is not a class type",
[f]="A is not a class type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 is not a class type",
[g]="%0 is not a class type",
[c]=m,
[i]=m,
[b]="(.*?) is not a class type",
[j]="(.*?) is not a class type",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{w,690,"/// CheckDynamicCast - Check that a dynamic_cast\\<DestType\\>(SrcExpr) is valid.\n/// Refer to C++ 5.2.7 for details. Dynamic casts are used mostly for runtime-\n/// checked downcasts in class hierarchies.\nvoid CastOperation::CheckDynamicCast() {\n  if (DestPointee->isVoidType()) {\n  } else if (DestRecord) {\n  } else {\n    Self.Diag(OpRange.getBegin(), diag::err_bad_dynamic_cast_not_class) << DestPointee.getUnqualifiedType() << DestRange;"},{w,729,"/// CheckDynamicCast - Check that a dynamic_cast\\<DestType\\>(SrcExpr) is valid.\n/// Refer to C++ 5.2.7 for details. Dynamic casts are used mostly for runtime-\n/// checked downcasts in class hierarchies.\nvoid CastOperation::CheckDynamicCast() {\n  if (SrcRecord) {\n  } else {\n    Self.Diag(OpRange.getBegin(), diag::err_bad_dynamic_cast_not_class) << SrcPointee.getUnqualifiedType() << SrcExpr.get()->getSourceRange();"}}
},
},
["err_bad_dynamic_cast_not_polymorphic"]={
["err_bad_dynamic_cast_not_polymorphic"]={
[f]="A is not polymorphic",
[f]="A is not polymorphic",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 is not polymorphic",
[g]="%0 is not polymorphic",
[c]=m,
[i]=m,
[b]="(.*?) is not polymorphic",
[j]="(.*?) is not polymorphic",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{w,768,"/// CheckDynamicCast - Check that a dynamic_cast\\<DestType\\>(SrcExpr) is valid.\n/// Refer to C++ 5.2.7 for details. Dynamic casts are used mostly for runtime-\n/// checked downcasts in class hierarchies.\nvoid CastOperation::CheckDynamicCast() {\n  if (!cast<CXXRecordDecl>(SrcDecl)->isPolymorphic()) {\n    Self.Diag(OpRange.getBegin(), diag::err_bad_dynamic_cast_not_polymorphic) << SrcPointee.getUnqualifiedType() << SrcExpr.get()->getSourceRange();"}}
},
},
["err_bad_dynamic_cast_not_ptr"]={
["err_bad_dynamic_cast_not_ptr"]={
[f]="cannot use dynamic_cast to convert from A to B",
[f]="cannot use dynamic_cast to convert from A to B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot use dynamic_cast to convert from %0 to %1",
[g]="cannot use dynamic_cast to convert from %0 to %1",
[c]=m,
[i]=m,
[b]="cannot use dynamic_cast to convert from (.*?) to (.*?)",
[j]="cannot use dynamic_cast to convert from (.*?) to (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{w,705,"/// CheckDynamicCast - Check that a dynamic_cast\\<DestType\\>(SrcExpr) is valid.\n/// Refer to C++ 5.2.7 for details. Dynamic casts are used mostly for runtime-\n/// checked downcasts in class hierarchies.\nvoid CastOperation::CheckDynamicCast() {\n  if (DestPointer) {\n    if (const PointerType *SrcPointer = SrcType->getAs<PointerType>()) {\n    } else {\n      Self.Diag(OpRange.getBegin(), diag::err_bad_dynamic_cast_not_ptr) << OrigSrcType << this->DestType << SrcExpr.get()->getSourceRange();"}}
},
},
["err_bad_dynamic_cast_not_ref_or_ptr"]={
["err_bad_dynamic_cast_not_ref_or_ptr"]={
[f]="invalid target type A for dynamic_cast; target type must be a reference or pointer type to a defined class",
[f]="invalid target type A for dynamic_cast; target type must be a reference or pointer type to a defined class",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="invalid target type %0 for dynamic_cast; target type must be a reference or pointer type to a defined class",
[g]="invalid target type %0 for dynamic_cast; target type must be a reference or pointer type to a defined class",
[c]=m,
[i]=m,
[b]="invalid target type (.*?) for dynamic_cast; target type must be a reference or pointer type to a defined class",
[j]="invalid target type (.*?) for dynamic_cast; target type must be a reference or pointer type to a defined class",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{w,676,"/// CheckDynamicCast - Check that a dynamic_cast\\<DestType\\>(SrcExpr) is valid.\n/// Refer to C++ 5.2.7 for details. Dynamic casts are used mostly for runtime-\n/// checked downcasts in class hierarchies.\nvoid CastOperation::CheckDynamicCast() {\n  if (DestPointer) {\n  } else if ((DestReference = DestType->getAs<ReferenceType>())) {\n  } else {\n    Self.Diag(OpRange.getBegin(), diag::err_bad_dynamic_cast_not_ref_or_ptr) << this->DestType << DestRange;"}}
},
},
["err_bad_kernel_param_type"]={
["err_bad_kernel_param_type"]={
[f]="A cannot be used as the type of a kernel parameter",
[f]="A cannot be used as the type of a kernel parameter",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 cannot be used as the type of a kernel parameter",
[g]="%0 cannot be used as the type of a kernel parameter",
[c]=m,
[i]=m,
[b]="(.*?) cannot be used as the type of a kernel parameter",
[j]="(.*?) cannot be used as the type of a kernel parameter",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"efb38192b0b2",1374542616,"Error on more illegal kernel argument types for OpenCL"}
[d]={"efb38192b0b2",1374542616,"Error on more illegal kernel argument types for OpenCL"},
[k]={{q,8326,"static void checkIsValidOpenCLKernelParameter(Sema &S, Declarator &D, ParmVarDecl *Param, llvm::SmallPtrSetImpl<const Type *> &ValidTypes) {\n  case InvalidKernelParam:\n    // OpenCL v1.2 s6.8 n:\n    // A kernel function argument cannot be declared\n    // of event_t type.\n    // Do not diagnose half type since it is diagnosed as invalid argument\n    // type for any function elsewhere.\n    if (!PT->isHalfType()) {\n      S.Diag(Param->getLocation(), diag::err_bad_kernel_param_type) << PT;"},{q,8422,"static void checkIsValidOpenCLKernelParameter(Sema &S, Declarator &D, ParmVarDecl *Param, llvm::SmallPtrSetImpl<const Type *> &ValidTypes) {\n  do {\n    for (const auto *FD : RD->fields()) {\n      // OpenCL v1.2 s6.9.p:\n      // Arguments to kernel functions that are declared to be a struct or union\n      // do not allow OpenCL objects to be passed as elements of the struct or\n      // union. This restriction was lifted in OpenCL v2.0 with the introduction\n      // of SVM.\n      if (ParamType == PtrKernelParam || ParamType == PtrPtrKernelParam || ParamType == InvalidAddrSpacePtrKernelParam) {\n      } else {\n        S.Diag(Param->getLocation(), diag::err_bad_kernel_param_type) << PT;"}}
},
},
["err_bad_lvalue_to_rvalue_cast"]={
["err_bad_lvalue_to_rvalue_cast"]={
[f]="cannot cast from lvalue of type A to rvalue reference type B; types are not compatible",
[f]="cannot cast from lvalue of type A to rvalue reference type B; types are not compatible",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot cast from lvalue of type %1 to rvalue reference type %2; types are not compatible",
[g]="cannot cast from lvalue of type %1 to rvalue reference type %2; types are not compatible",
[c]=m,
[i]=m,
[b]="cannot cast from lvalue of type (.*?) to rvalue reference type (.*?); types are not compatible",
[j]="cannot cast from lvalue of type (.*?) to rvalue reference type (.*?); types are not compatible",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e97585f7177e",1237761006,"Implement static_cast from lvalue to rvalue reference."}
[d]={"e97585f7177e",1237761006,"Implement static_cast from lvalue to rvalue reference."},
[k]={{w,1332,"/// Tests whether a conversion according to N2844 is valid.\nTryCastResult TryLValueToRValueCast(Sema &Self, Expr *SrcExpr, QualType DestType, bool CStyle, CastKind &Kind, CXXCastPath &BasePath, unsigned &msg) {\n  if (RefResult != Sema::Ref_Compatible) {\n    msg = SrcExpr->isLValue() ? diag::err_bad_lvalue_to_rvalue_cast : diag::err_bad_rvalue_to_rvalue_cast;"}}
},
},
["err_bad_memptr_lhs"]={
["err_bad_memptr_lhs"]={
[f]="left hand operand to A must be a ...class compatible with the right hand operand, but is B",
[f]="left hand operand to A must be a ...class compatible with the right hand operand, but is B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="left hand operand to %0 must be a %select{|pointer to }1class compatible with the right hand operand, but is %2",
[g]="left hand operand to %0 must be a %select{|pointer to }1class compatible with the right hand operand, but is %2",
[c]=m,
[i]=m,
[b]="left hand operand to (.*?) must be a (?:|pointer to )class compatible with the right hand operand, but is (.*?)",
[j]="left hand operand to (.*?) must be a (?:|pointer to )class compatible with the right hand operand, but is (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{x,5190,"QualType Sema::CheckPointerToMemberOperands(ExprResult &LHS, ExprResult &RHS, ExprValueKind &VK, SourceLocation Loc, bool isIndirect) {\n  if (isIndirect) {\n    if (const PointerType *Ptr = LHSType->getAs<PointerType>())\n    else {\n      Diag(Loc, diag::err_bad_memptr_lhs) << OpSpelling << 1 << LHSType << FixItHint::CreateReplacement(SourceRange(Loc), \".*\");"},{x,5197,"QualType Sema::CheckPointerToMemberOperands(ExprResult &LHS, ExprResult &RHS, ExprValueKind &VK, SourceLocation Loc, bool isIndirect) {\n  if (!Context.hasSameUnqualifiedType(Class, LHSType)) {\n    if (RequireCompleteType(Loc, LHSType, diag::err_bad_memptr_lhs, OpSpelling, (int)isIndirect)) {"},{x,5202,"QualType Sema::CheckPointerToMemberOperands(ExprResult &LHS, ExprResult &RHS, ExprValueKind &VK, SourceLocation Loc, bool isIndirect) {\n  if (!Context.hasSameUnqualifiedType(Class, LHSType)) {\n    if (!IsDerivedFrom(Loc, LHSType, Class)) {\n      Diag(Loc, diag::err_bad_memptr_lhs) << OpSpelling << (int)isIndirect << LHS.get()->getType();"}}
},
},
["err_bad_memptr_rhs"]={
["err_bad_memptr_rhs"]={
[f]="right hand operand to A has non-pointer-to-member type B",
[f]="right hand operand to A has non-pointer-to-member type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="right hand operand to %0 has non-pointer-to-member type %1",
[g]="right hand operand to %0 has non-pointer-to-member type %1",
[c]=m,
[i]=m,
[b]="right hand operand to (.*?) has non\\-pointer\\-to\\-member type (.*?)",
[j]="right hand operand to (.*?) has non\\-pointer\\-to\\-member type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{x,5169,"QualType Sema::CheckPointerToMemberOperands(ExprResult &LHS, ExprResult &RHS, ExprValueKind &VK, SourceLocation Loc, bool isIndirect) {\n  if (!MemPtr) {\n    Diag(Loc, diag::err_bad_memptr_rhs) << OpSpelling << RHSType << RHS.get()->getSourceRange();"}}
},
},
["err_bad_multiversion_option"]={
["err_bad_multiversion_option"]={
[f]="function multiversioning doesn\'t support ... \'A\'",
[f]="function multiversioning doesn\'t support ... \'A\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="function multiversioning doesn\'t support %select{feature|architecture}0 \'%1\'",
[g]="function multiversioning doesn\'t support %select{feature|architecture}0 \'%1\'",
[c]=m,
[i]=m,
[b]="function multiversioning doesn\'t support (?:feature|architecture) \'(.*?)\'",
[j]="function multiversioning doesn\'t support (?:feature|architecture) \'(.*?)\'",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={Eb,1515447257,yb}
[d]={"281d20b601c8",1515447257,"Implement Attribute Target MultiVersioning"},
[k]={{q,9569,"/// Check the target or target_version attribute of the function for\n/// MultiVersion validity.\n///\n/// Returns true if there was an error, false otherwise.\nstatic bool CheckMultiVersionValue(Sema &S, const FunctionDecl *FD) {\n  if (TA) {\n    if (!ParseInfo.CPU.empty() && !TargetInfo.validateCpuIs(ParseInfo.CPU)) {\n      S.Diag(FD->getLocation(), diag::err_bad_multiversion_option) << Architecture << ParseInfo.CPU;"},{q,9575,"/// Check the target or target_version attribute of the function for\n/// MultiVersion validity.\n///\n/// Returns true if there was an error, false otherwise.\nstatic bool CheckMultiVersionValue(Sema &S, const FunctionDecl *FD) {\n  if (TA) {\n    for (const auto &Feat : ParseInfo.Features) {\n      if (Feat[0] == \'-\') {\n        S.Diag(FD->getLocation(), diag::err_bad_multiversion_option) << Feature << (\"no-\" + BareFeat).str();"},{q,9580,"/// Check the target or target_version attribute of the function for\n/// MultiVersion validity.\n///\n/// Returns true if there was an error, false otherwise.\nstatic bool CheckMultiVersionValue(Sema &S, const FunctionDecl *FD) {\n  if (TA) {\n    for (const auto &Feat : ParseInfo.Features) {\n      if (!TargetInfo.validateCpuSupports(BareFeat) || !TargetInfo.isValidFeatureName(BareFeat)) {\n        S.Diag(FD->getLocation(), diag::err_bad_multiversion_option) << Feature << BareFeat;"},{q,9591,"/// Check the target or target_version attribute of the function for\n/// MultiVersion validity.\n///\n/// Returns true if there was an error, false otherwise.\nstatic bool CheckMultiVersionValue(Sema &S, const FunctionDecl *FD) {\n  if (TVA) {\n    for (const auto &Feat : Feats) {\n      if (!TargetInfo.validateCpuSupports(Feat)) {\n        S.Diag(FD->getLocation(), diag::err_bad_multiversion_option) << Feature << Feat;"}}
},
},
["err_bad_new_type"]={
["err_bad_new_type"]={
[f]="cannot allocate ... type A with new",
[f]="cannot allocate ... type A with new",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot allocate %select{function|reference}1 type %0 with new",
[g]="cannot allocate %select{function|reference}1 type %0 with new",
[c]=m,
[i]=m,
[b]="cannot allocate (?:function|reference) type (.*?) with new",
[j]="cannot allocate (?:function|reference) type (.*?) with new",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{x,2076,"/// Checks that a type is suitable as the allocated type\n/// in a new-expression.\nbool Sema::CheckAllocatedType(QualType AllocType, SourceLocation Loc, SourceRange R) {\n  // C++ 5.3.4p1: \"[The] type shall be a complete object type, but not an\n  //  abstract class type or array thereof.\n  if (AllocType->isFunctionType())\n    return Diag(Loc, diag::err_bad_new_type) << AllocType << 0 << R;"},{x,2078,"/// Checks that a type is suitable as the allocated type\n/// in a new-expression.\nbool Sema::CheckAllocatedType(QualType AllocType, SourceLocation Loc, SourceRange R) {\n  // C++ 5.3.4p1: \"[The] type shall be a complete object type, but not an\n  //  abstract class type or array thereof.\n  if (AllocType->isFunctionType())\n  else if (AllocType->isReferenceType())\n    return Diag(Loc, diag::err_bad_new_type) << AllocType << 1 << R;"}}
},
},
["err_bad_parameter_name"]={
["err_bad_parameter_name"]={
[f]="A cannot be the name of a parameter",
[f]="A cannot be the name of a parameter",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 cannot be the name of a parameter",
[g]="%0 cannot be the name of a parameter",
[c]=m,
[i]=m,
[b]="(.*?) cannot be the name of a parameter",
[j]="(.*?) cannot be the name of a parameter",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"a56cbccfc413",1288746426,"Provide an error when a non-identifier name (such as an operator) is used as a"}
[d]={"a56cbccfc413",1288746426,"Provide an error when a non-identifier name (such as an operator) is used as a"},
[k]={{q,12846,"/// Common checks for a parameter-declaration that should apply to both function\n/// parameters and non-type template parameters.\nvoid Sema::CheckFunctionOrTemplateParamDeclarator(Scope *S, Declarator &D) {\n  case UnqualifiedIdKind::IK_DeductionGuideName:\n    Diag(D.getIdentifierLoc(), diag::err_bad_parameter_name) << GetNameForDeclarator(D).getName();"}}
},
},
["err_bad_parameter_name_template_id"]={
["err_bad_parameter_name_template_id"]={
[f]="parameter name cannot have template arguments",
[f]="parameter name cannot have template arguments",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="parameter name cannot have template arguments",
[i]=m,
[j]="parameter name cannot have template arguments",
[j]="parameter name cannot have template arguments",
[c]=m,
[b]=a,
[b]="parameter name cannot have template arguments",
[h]=o,
[i]=a,
[d]={"da70fc0c5f5b",1560542514,"PR42071: Reject weird names for non-type template parameters."},
[h]=n,
[k]={{q,12852,"/// Common checks for a parameter-declaration that should apply to both function\n/// parameters and non-type template parameters.\nvoid Sema::CheckFunctionOrTemplateParamDeclarator(Scope *S, Declarator &D) {\n  case UnqualifiedIdKind::IK_ConstructorTemplateId:\n    Diag(D.getIdentifierLoc(), diag::err_bad_parameter_name_template_id);"}}
[g]={"da70fc0c5f5b",1560542514,"PR42071: Reject weird names for non-type template parameters."}
},
},
["err_bad_property_context"]={
["err_bad_property_context"]={
[f]="property implementation must be in a class or category implementation",
[f]="property implementation must be in a class or category implementation",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="property implementation must be in a class or category implementation",
[i]=m,
[j]="property implementation must be in a class or category implementation",
[j]="property implementation must be in a class or category implementation",
[c]=m,
[b]=a,
[b]="property implementation must be in a class or category implementation",
[h]=o,
[i]=a,
[d]={ub,1480718311,yb},
[h]=n,
[k]={{P,988,"/// ActOnPropertyImplDecl - This routine performs semantic checks and\n/// builds the AST node for a property implementation declaration; declared\n/// as \\@synthesize or \\@dynamic.\n///\nDecl *Sema::ActOnPropertyImplDecl(Scope *S, SourceLocation AtLoc, SourceLocation PropertyLoc, bool Synthesize, IdentifierInfo *PropertyId, IdentifierInfo *PropertyIvar, SourceLocation PropertyIvarLoc, ObjCPropertyQueryKind QueryKind) {\n  if ((IC = dyn_cast<ObjCImplementationDecl>(ClassImpDecl))) {\n  } else if ((CatImplClass = dyn_cast<ObjCCategoryImplDecl>(ClassImpDecl))) {\n  } else {\n    Diag(AtLoc, diag::err_bad_property_context);"}}
[g]={P,1480718311,O}
},
},
["err_bad_property_decl"]={
["err_bad_property_decl"]={
[f]="property implementation must have its declaration in interface A or one of its extensions",
[f]="property implementation must have its declaration in interface A or one of its extensions",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="property implementation must have its declaration in interface %0 or one of its extensions",
[g]="property implementation must have its declaration in interface %0 or one of its extensions",
[c]=m,
[i]=m,
[b]="property implementation must have its declaration in interface (.*?) or one of its extensions",
[j]="property implementation must have its declaration in interface (.*?) or one of its extensions",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={P,1480718311,O}
[d]={ub,1480718311,yb},
[k]={{P,914,"/// ActOnPropertyImplDecl - This routine performs semantic checks and\n/// builds the AST node for a property implementation declaration; declared\n/// as \\@synthesize or \\@dynamic.\n///\nDecl *Sema::ActOnPropertyImplDecl(Scope *S, SourceLocation AtLoc, SourceLocation PropertyLoc, bool Synthesize, IdentifierInfo *PropertyId, IdentifierInfo *PropertyIvar, SourceLocation PropertyIvarLoc, ObjCPropertyQueryKind QueryKind) {\n  if ((IC = dyn_cast<ObjCImplementationDecl>(ClassImpDecl))) {\n    if (!property) {\n      Diag(PropertyLoc, diag::err_bad_property_decl) << IDecl->getDeclName();"}}
},
},
["err_bad_receiver_type"]={
["err_bad_receiver_type"]={
[f]="bad receiver type A",
[f]="bad receiver type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="bad receiver type %0",
[g]="bad receiver type %0",
[c]=m,
[i]=m,
[b]="bad receiver type (.*?)",
[j]="bad receiver type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{G,2511,"/// Build an Objective-C instance message expression.\n///\n/// This routine takes care of both normal instance messages and\n/// instance messages to the superclass instance.\n///\n/// \\param Receiver The expression that computes the object that will\n/// receive this message. This may be empty, in which case we are\n/// sending to the superclass instance and \\p SuperLoc must be a valid\n/// source location.\n///\n/// \\param ReceiverType The (static) type of the object receiving the\n/// message. When a \\p Receiver expression is provided, this is the\n/// same type as that expression. For a superclass instance send, this\n/// is a pointer to the type of the superclass.\n///\n/// \\param SuperLoc The location of the \"super\" keyword in a\n/// superclass instance message.\n///\n/// \\param Sel The selector to which the message is being sent.\n///\n/// \\param Method The method that this instance message is invoking, if\n/// already known.\n///\n/// \\param LBracLoc The location of the opening square bracket \']\'.\n///\n/// \\param RBracLoc The location of the closing square bracket \']\'.\n///\n/// \\param ArgsIn The message arguments.\nExprResult Sema::BuildInstanceMessage(Expr *Receiver, QualType ReceiverType, SourceLocation SuperLoc, Selector Sel, ObjCMethodDecl *Method, SourceLocation LBracLoc, ArrayRef<SourceLocation> SelectorLocs, SourceLocation RBracLoc, MultiExprArg ArgsIn, bool isImplicit) {\n  if (!Method) {\n    if (receiverIsIdLike || ReceiverType->isBlockPointerType() || (Receiver && Context.isObjCNSObjectType(Receiver->getType()))) {\n    } else if (ReceiverType->isObjCClassOrClassKindOfType() || ReceiverType->isObjCQualifiedClassType()) {\n    } else {\n      // We allow sending a message to a qualified ID (\"id<foo>\"), which is ok as\n      // long as one of the protocols implements the selector (if not, warn).\n      // And as long as message is not deprecated/unavailable (warn if it is).\n      if (const ObjCObjectPointerType *QIdTy = ReceiverType->getAsObjCQualifiedIdType()) {\n      } else if (const ObjCObjectPointerType *OCIType = ReceiverType->getAsObjCInterfacePointerType()) {\n      } else {\n        Diag(Loc, diag::err_bad_receiver_type) << ReceiverType << RecRange;"}}
},
},
["err_bad_reinterpret_cast_overload"]={
["err_bad_reinterpret_cast_overload"]={
[f]="reinterpret_cast cannot resolve overloaded function A to type B",
[f]="reinterpret_cast cannot resolve overloaded function A to type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="reinterpret_cast cannot resolve overloaded function %0 to type %1",
[g]="reinterpret_cast cannot resolve overloaded function %0 to type %1",
[c]=m,
[i]=m,
[b]="reinterpret_cast cannot resolve overloaded function (.*?) to type (.*?)",
[j]="reinterpret_cast cannot resolve overloaded function (.*?) to type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e81f58e18011",1289187648,"Properly diagnose invalid casts to function references. Patch by"}
[d]={"e81f58e18011",1289187648,"Properly diagnose invalid casts to function references. Patch by"},
[k]={{w,1020,"/// CheckReinterpretCast - Check that a reinterpret_cast\\<DestType\\>(SrcExpr) is\n/// valid.\n/// Refer to C++ 5.2.10 for details. reinterpret_cast is typically used in code\n/// like this:\n/// char *bytes = reinterpret_cast\\<char*\\>(int_ptr);\nvoid CastOperation::CheckReinterpretCast() {\n  if (tcr != TC_Success && msg != 0) {\n    if (SrcExpr.get()->getType() == Self.Context.OverloadTy) {\n      Self.Diag(OpRange.getBegin(), diag::err_bad_reinterpret_cast_overload) << OverloadExpr::find(SrcExpr.get()).Expression->getName() << DestType << OpRange;"}}
},
},
["err_bad_reinterpret_cast_reference"]={
["err_bad_reinterpret_cast_reference"]={
[f]="reinterpret_cast of a A to B needs its address, which is not allowed",
[f]="reinterpret_cast of a A to B needs its address, which is not allowed",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="reinterpret_cast of a %0 to %1 needs its address, which is not allowed",
[g]="reinterpret_cast of a %0 to %1 needs its address, which is not allowed",
[c]=m,
[i]=m,
[b]="reinterpret_cast of a (.*?) to (.*?) needs its address, which is not allowed",
[j]="reinterpret_cast of a (.*?) to (.*?) needs its address, which is not allowed",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"bf04231a7254",1303516677,"Don\'t allow reinterpret_cast to reference of vector element and property expression. Thanks goes to ..."}
[d]={"bf04231a7254",1303516677,"Don\'t allow reinterpret_cast to reference of vector element and property expression. Thanks goes to ..."},
[k]={{w,1981,"static TryCastResult TryReinterpretCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, bool CStyle, SourceRange OpRange, unsigned &msg, CastKind &Kind) {\n  if (const ReferenceType *DestTypeTmp = DestType->getAs<ReferenceType>()) {\n    if (inappropriate) {\n      Self.Diag(OpRange.getBegin(), diag::err_bad_reinterpret_cast_reference) << inappropriate << DestType << OpRange << SrcExpr.get()->getSourceRange();"}}
},
},
["err_bad_reinterpret_cast_small_int"]={
["err_bad_reinterpret_cast_small_int"]={
[f]="cast from pointer to smaller type A loses information",
[f]="cast from pointer to smaller type A loses information",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cast from pointer to smaller type %2 loses information",
[g]="cast from pointer to smaller type %2 loses information",
[c]=m,
[i]=m,
[b]="cast from pointer to smaller type (.*?) loses information",
[j]="cast from pointer to smaller type (.*?) loses information",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{w,2040,"static TryCastResult TryReinterpretCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, bool CStyle, SourceRange OpRange, unsigned &msg, CastKind &Kind) {\n  // See below for the enumeral issue.\n  if (SrcType->isNullPtrType() && DestType->isIntegralType(Self.Context)) {\n    // C++0x 5.2.10p4: A pointer can be explicitly converted to any integral\n    //  type large enough to hold it. A value of std::nullptr_t can be\n    //  converted to an integral type; the conversion has the same meaning\n    //  and validity as a conversion of (void*)0 to the integral type.\n    if (Self.Context.getTypeSize(SrcType) > Self.Context.getTypeSize(DestType)) {\n      msg = diag::err_bad_reinterpret_cast_small_int;"},{w,2134,"static TryCastResult TryReinterpretCast(Sema &Self, ExprResult &SrcExpr, QualType DestType, bool CStyle, SourceRange OpRange, unsigned &msg, CastKind &Kind) {\n  if (DestType->isIntegralType(Self.Context)) {\n    // C++ 5.2.10p4: A pointer can be explicitly converted to any integral\n    //  type large enough to hold it; except in Microsoft mode, where the\n    //  integral type size doesn\'t matter (except we don\'t allow bool).\n    if ((Self.Context.getTypeSize(SrcType) > Self.Context.getTypeSize(DestType))) {\n      if (MicrosoftException) {\n      } else {\n        msg = diag::err_bad_reinterpret_cast_small_int;"}}
},
},
["err_bad_rvalue_to_rvalue_cast"]={
["err_bad_rvalue_to_rvalue_cast"]={
[f]="cannot cast from rvalue of type A to rvalue reference type B; types are not compatible",
[f]="cannot cast from rvalue of type A to rvalue reference type B; types are not compatible",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot cast from rvalue of type %1 to rvalue reference type %2; types are not compatible",
[g]="cannot cast from rvalue of type %1 to rvalue reference type %2; types are not compatible",
[c]=m,
[i]=m,
[b]="cannot cast from rvalue of type (.*?) to rvalue reference type (.*?); types are not compatible",
[j]="cannot cast from rvalue of type (.*?) to rvalue reference type (.*?); types are not compatible",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e4e9e281a1fb",1478139197,"[Sema] Allow static_cast<T&&>(e) to check explicit conversions for non-reference-related types."}
[d]={"e4e9e281a1fb",1478139197,"[Sema] Allow static_cast<T&&>(e) to check explicit conversions for non-reference-related types."},
[k]={{w,1332,"/// Tests whether a conversion according to N2844 is valid.\nTryCastResult TryLValueToRValueCast(Sema &Self, Expr *SrcExpr, QualType DestType, bool CStyle, CastKind &Kind, CXXCastPath &BasePath, unsigned &msg) {\n  if (RefResult != Sema::Ref_Compatible) {\n    msg = SrcExpr->isLValue() ? diag::err_bad_lvalue_to_rvalue_cast : diag::err_bad_rvalue_to_rvalue_cast;"}}
},
},
["err_bad_static_cast_member_pointer_nonmp"]={
["err_bad_static_cast_member_pointer_nonmp"]={
[f]="cannot cast from type A to member pointer type B",
[f]="cannot cast from type A to member pointer type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot cast from type %1 to member pointer type %2",
[g]="cannot cast from type %1 to member pointer type %2",
[c]=m,
[i]=m,
[b]="cannot cast from type (.*?) to member pointer type (.*?)",
[j]="cannot cast from type (.*?) to member pointer type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"9f831dbbcdfa",1248536498,"Implement C++ semantics for C-style and functional-style casts. This regresses Clang extension conve..."}
[d]={"9f831dbbcdfa",1248536498,"Implement C++ semantics for C-style and functional-style casts. This regresses Clang extension conve..."},
[k]={{w,1524,"/// TryStaticMemberPointerUpcast - Tests whether a conversion according to\n/// C++ 5.2.9p9 is valid:\n///\n///  An rvalue of type \"pointer to member of D of type cv1 T\" can be\n///  converted to an rvalue of type \"pointer to member of B of type cv2 T\",\n///  where B is a base class of D [...].\n///\nTryCastResult TryStaticMemberPointerUpcast(Sema &Self, ExprResult &SrcExpr, QualType SrcType, QualType DestType, bool CStyle, SourceRange OpRange, unsigned &msg, CastKind &Kind, CXXCastPath &BasePath) {\n  if (!SrcMemPtr) {\n    msg = diag::err_bad_static_cast_member_pointer_nonmp;"}}
},
},
["err_bad_static_cast_overload"]={
["err_bad_static_cast_overload"]={
[f]="address of overloaded function A cannot be static_cast to type B",
[f]="address of overloaded function A cannot be static_cast to type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="address of overloaded function %0 cannot be static_cast to type %1",
[g]="address of overloaded function %0 cannot be static_cast to type %1",
[c]=m,
[i]=m,
[b]="address of overloaded function (.*?) cannot be static_cast to type (.*?)",
[j]="address of overloaded function (.*?) cannot be static_cast to type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e81f58e18011",1289187648,"Properly diagnose invalid casts to function references. Patch by"}
[d]={"e81f58e18011",1289187648,"Properly diagnose invalid casts to function references. Patch by"},
[k]={{w,1062,"/// CheckStaticCast - Check that a static_cast\\<DestType\\>(SrcExpr) is valid.\n/// Refer to C++ 5.2.9 for details. Static casts are mostly used for making\n/// implicit conversions explicit and getting rid of data loss warnings.\nvoid CastOperation::CheckStaticCast() {\n  // This test is outside everything else because it\'s the only case where\n  // a non-lvalue-reference target type does not lead to decay.\n  // C++ 5.2.9p4: Any expression can be explicitly converted to type \"cv void\".\n  if (DestType->isVoidType()) {\n    if (claimPlaceholder(BuiltinType::Overload)) {\n      Self.ResolveAndFixSingleFunctionTemplateSpecialization(SrcExpr,\n                                                            OpRange, DestType, diag::err_bad_static_cast_overload);"},{w,1084,"/// CheckStaticCast - Check that a static_cast\\<DestType\\>(SrcExpr) is valid.\n/// Refer to C++ 5.2.9 for details. Static casts are mostly used for making\n/// implicit conversions explicit and getting rid of data loss warnings.\nvoid CastOperation::CheckStaticCast() {\n  if (tcr != TC_Success && msg != 0) {\n    if (SrcExpr.get()->getType() == Self.Context.OverloadTy) {\n      Self.Diag(OpRange.getBegin(), diag::err_bad_static_cast_overload) << oe->getName() << DestType << OpRange << oe->getQualifierLoc().getSourceRange();"}}
},
},
["err_bad_static_cast_pointer_nonpointer"]={
["err_bad_static_cast_pointer_nonpointer"]={
[f]="cannot cast from type A to pointer type B",
[f]="cannot cast from type A to pointer type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot cast from type %1 to pointer type %2",
[g]="cannot cast from type %1 to pointer type %2",
[c]=m,
[i]=m,
[b]="cannot cast from type (.*?) to pointer type (.*?)",
[j]="cannot cast from type (.*?) to pointer type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"9f831dbbcdfa",1248536498,"Implement C++ semantics for C-style and functional-style casts. This regresses Clang extension conve..."}
[d]={"9f831dbbcdfa",1248536498,"Implement C++ semantics for C-style and functional-style casts. This regresses Clang extension conve..."},
[k]={{w,1397,"/// Tests whether a conversion according to C++ 5.2.9p8 is valid.\nTryCastResult TryStaticPointerDowncast(Sema &Self, QualType SrcType, QualType DestType, bool CStyle, SourceRange OpRange, unsigned &msg, CastKind &Kind, CXXCastPath &BasePath) {\n  if (!SrcPointer) {\n    msg = diag::err_bad_static_cast_pointer_nonpointer;"}}
},
},
["err_bad_string_encoding"]={
["err_bad_string_encoding"]={
[f]="illegal character encoding in string literal",
[f]="illegal character encoding in string literal",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="illegal character encoding in string literal",
[i]=m,
[j]="illegal character encoding in string literal",
[j]="illegal character encoding in string literal",
[c]=m,
[b]=a,
[b]="illegal character encoding in string literal",
[h]=gb,
[i]=a,
[d]={"703e7153af87",1320113690,"Perform proper conversion for strings encoded in the source file as UTF-8.  (For now, we are assumin..."},
[h]=t,
[k]={{"clang/lib/Lex/LiteralSupport.cpp",2040,"/// This function copies from Fragment, which is a sequence of bytes\n/// within Tok\'s contents (which begin at TokBegin) into ResultPtr.\n/// Performs widening for multi-byte characters.\nbool StringLiteralParser::CopyStringFragment(const Token &Tok, const char *TokBegin, StringRef Fragment) {\n  if (Diags) {\n    const DiagnosticBuilder &Builder = Diag(Diags, Features, SourceLoc, TokBegin, ErrorPtr, resyncUTF8(ErrorPtr, Fragment.end()), NoErrorOnBadEncoding ? diag::warn_bad_string_encoding : diag::err_bad_string_encoding);"}}
[g]={"703e7153af87",1320113690,"Perform proper conversion for strings encoded in the source file as UTF-8.  (For now, we are assumin..."}
},
},
["err_bad_variable_name"]={
["err_bad_variable_name"]={
[f]="A cannot be the name of a variable or data member",
[f]="A cannot be the name of a variable or data member",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 cannot be the name of a variable or data member",
[g]="%0 cannot be the name of a variable or data member",
[c]=m,
[i]=m,
[b]="(.*?) cannot be the name of a variable or data member",
[j]="(.*?) cannot be the name of a variable or data member",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{q,6643,"NamedDecl *Sema::ActOnVariableDeclarator(Scope *S, Declarator &D, DeclContext *DC, TypeSourceInfo *TInfo, LookupResult &Previous, MultiTemplateParamsArg TemplateParamLists, bool &AddToScope, ArrayRef<BindingDecl *> Bindings) {\n  if (D.isDecompositionDeclarator()) {\n  } else if (!II) {\n    Diag(D.getIdentifierLoc(), diag::err_bad_variable_name) << Name;"},{v,3021,"/// ActOnCXXMemberDeclarator - This is invoked when a C++ class member\n/// declarator is parsed. \'AS\' is the access specifier, \'BW\' specifies the\n/// bitfield width if there is one, \'InitExpr\' specifies the initializer if\n/// one has been parsed, and \'InitStyle\' is set if an in-class initializer is\n/// present (but parsing it has been deferred).\nNamedDecl *Sema::ActOnCXXMemberDeclarator(Scope *S, AccessSpecifier AS, Declarator &D, MultiTemplateParamsArg TemplateParameterLists, Expr *BW, const VirtSpecifiers &VS, InClassInitStyle InitStyle) {\n  if (isInstField) {\n    // Data members must have identifiers for names.\n    if (!Name.isIdentifier()) {\n      Diag(Loc, diag::err_bad_variable_name) << Name;"}}
},
},
["err_base_class_has_flexible_array_member"]={
["err_base_class_has_flexible_array_member"]={
[f]="base class A has a flexible array member",
[f]="base class A has a flexible array member",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="base class %0 has a flexible array member",
[g]="base class %0 has a flexible array member",
[c]=m,
[i]=m,
[b]="base class (.*?) has a flexible array member",
[j]="base class (.*?) has a flexible array member",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"9b1754d05840",1383393636,"Sema: Disallow inheriting from classes with flexible array members"}
[d]={"9b1754d05840",1383393636,"Sema: Disallow inheriting from classes with flexible array members"},
[k]={{v,2354,"/// Check the validity of a C++ base class specifier.\n///\n/// \\returns a new CXXBaseSpecifier if well-formed, emits diagnostics\n/// and returns NULL otherwise.\nCXXBaseSpecifier *Sema::CheckBaseSpecifier(CXXRecordDecl *Class, SourceRange SpecifierRange, bool Virtual, AccessSpecifier Access, TypeSourceInfo *TInfo, SourceLocation EllipsisLoc) {\n  // A class which contains a flexible array member is not suitable for use as a\n  // base class:\n  //  - If the layout determines that a base comes before another base,\n  //    the flexible array member would index into the subsequent base.\n  //  - If the layout determines that base comes before the derived class,\n  //    the flexible array member would index into the derived class.\n  if (CXXBaseDecl->hasFlexibleArrayMember()) {\n    Diag(BaseLoc, diag::err_base_class_has_flexible_array_member) << CXXBaseDecl->getDeclName();"}}
},
},
["err_base_clause_on_union"]={
["err_base_clause_on_union"]={
[f]="unions cannot have base classes",
[f]="unions cannot have base classes",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="unions cannot have base classes",
[i]=m,
[j]="unions cannot have base classes",
[j]="unions cannot have base classes",
[c]=m,
[b]=a,
[b]="unions cannot have base classes",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{v,2261,"/// Check the validity of a C++ base class specifier.\n///\n/// \\returns a new CXXBaseSpecifier if well-formed, emits diagnostics\n/// and returns NULL otherwise.\nCXXBaseSpecifier *Sema::CheckBaseSpecifier(CXXRecordDecl *Class, SourceRange SpecifierRange, bool Virtual, AccessSpecifier Access, TypeSourceInfo *TInfo, SourceLocation EllipsisLoc) {\n  // C++ [class.union]p1:\n  //  A union shall not have base classes.\n  if (Class->isUnion()) {\n    Diag(Class->getLocation(), diag::err_base_clause_on_union) << SpecifierRange;"}}
[g]={q,1237025389,p}
},
},
["err_base_init_direct_and_virtual"]={
["err_base_init_direct_and_virtual"]={
[f]="base class initializer A names both a direct base class and an inherited virtual base class",
[f]="base class initializer A names both a direct base class and an inherited virtual base class",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="base class initializer %0 names both a direct base class and an inherited virtual base class",
[g]="base class initializer %0 names both a direct base class and an inherited virtual base class",
[c]=m,
[i]=m,
[b]="base class initializer (.*?) names both a direct base class and an inherited virtual base class",
[j]="base class initializer (.*?) names both a direct base class and an inherited virtual base class",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{v,4047,"MemInitResult Sema::BuildBaseInitializer(QualType BaseType, TypeSourceInfo *BaseTInfo, Expr *Init, CXXRecordDecl *ClassDecl, SourceLocation EllipsisLoc) {\n  // C++ [base.class.init]p2:\n  //  If a mem-initializer-id is ambiguous because it designates both\n  //  a direct non-virtual base class and an inherited virtual base\n  //  class, the mem-initializer is ill-formed.\n  if (DirectBaseSpec && VirtualBaseSpec)\n    return Diag(BaseLoc, diag::err_base_init_direct_and_virtual) << BaseType << BaseTInfo->getTypeLoc().getLocalSourceRange();"}}
},
},
["err_base_init_does_not_name_class"]={
["err_base_init_does_not_name_class"]={
[f]="constructor initializer A does not name a class",
[f]="constructor initializer A does not name a class",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="constructor initializer %0 does not name a class",
[g]="constructor initializer %0 does not name a class",
[c]=m,
[i]=m,
[b]="constructor initializer (.*?) does not name a class",
[j]="constructor initializer (.*?) does not name a class",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{v,3978,"MemInitResult Sema::BuildBaseInitializer(QualType BaseType, TypeSourceInfo *BaseTInfo, Expr *Init, CXXRecordDecl *ClassDecl, SourceLocation EllipsisLoc) {\n  if (!BaseType->isDependentType() && !BaseType->isRecordType())\n    return Diag(BaseLoc, diag::err_base_init_does_not_name_class) << BaseType << BaseTInfo->getTypeLoc().getSourceRange();"}}
},
},
["err_base_must_be_class"]={
["err_base_must_be_class"]={
[f]="base specifier must name a class",
[f]="base specifier must name a class",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="base specifier must name a class",
[i]=m,
[j]="base specifier must name a class",
[j]="base specifier must name a class",
[c]=m,
[b]=a,
[b]="base specifier must name a class",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{v,2300,"/// Check the validity of a C++ base class specifier.\n///\n/// \\returns a new CXXBaseSpecifier if well-formed, emits diagnostics\n/// and returns NULL otherwise.\nCXXBaseSpecifier *Sema::CheckBaseSpecifier(CXXRecordDecl *Class, SourceRange SpecifierRange, bool Virtual, AccessSpecifier Access, TypeSourceInfo *TInfo, SourceLocation EllipsisLoc) {\n  // Base specifiers must be record types.\n  if (!BaseType->isRecordType()) {\n    Diag(BaseLoc, diag::err_base_must_be_class) << SpecifierRange;"}}
[g]={q,1237025389,p}
},
},
["err_base_specifier_attribute"]={
["err_base_specifier_attribute"]={
[f]="A... cannot be applied to a base specifier",
[f]="A... cannot be applied to a base specifier",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0%select{ attribute|}1 cannot be applied to a base specifier",
[g]="%0%select{ attribute|}1 cannot be applied to a base specifier",
[c]=m,
[i]=m,
[b]="(.*?)(?: attribute|) cannot be applied to a base specifier",
[j]="(.*?)(?: attribute|) cannot be applied to a base specifier",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"4c96e99235b3",1361317635,"PR15300: Support C++11 attributes on base-specifiers. We don\'t support any such"}
[d]={"4c96e99235b3",1361317635,"PR15300: Support C++11 attributes on base-specifiers. We don\'t support any such"},
[k]={{v,2399,"/// ActOnBaseSpecifier - Parsed a base specifier. A base specifier is\n/// one entry in the base class list of a class specifier, for\n/// example:\n///    class foo : public bar, virtual private baz {\n/// \'public bar\' and \'virtual private baz\' are each base-specifiers.\nBaseResult Sema::ActOnBaseSpecifier(Decl *classdecl, SourceRange SpecifierRange, const ParsedAttributesView &Attributes, bool Virtual, AccessSpecifier Access, ParsedType basetype, SourceLocation BaseLoc, SourceLocation EllipsisLoc) {\n  // We do not support any C++11 attributes on base-specifiers yet.\n  // Diagnose any attributes we see.\n  for (const ParsedAttr &AL : Attributes) {\n    if (AL.getKind() == ParsedAttr::UnknownAttribute)\n    else\n      Diag(AL.getLoc(), diag::err_base_specifier_attribute) << AL << AL.isRegularKeywordAttribute() << AL.getRange();"}}
},
},
["err_binding_cannot_appear_in_own_initializer"]={
["err_binding_cannot_appear_in_own_initializer"]={
[f]="binding A cannot appear in the initializer of its own decomposition declaration",
[f]="binding A cannot appear in the initializer of its own decomposition declaration",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="binding %0 cannot appear in the initializer of its own decomposition declaration",
[g]="binding %0 cannot appear in the initializer of its own decomposition declaration",
[c]=m,
[i]=m,
[b]="binding (.*?) cannot appear in the initializer of its own decomposition declaration",
[j]="binding (.*?) cannot appear in the initializer of its own decomposition declaration",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Ob,1469230619,Rb}
[d]={"bdb84f374cde",1469230619,"P0217R3: Parsing support and framework for AST representation of C++1z"},
[k]={{y,240,"/// Determine whether the use of this declaration is valid, and\n/// emit any corresponding diagnostics.\n///\n/// This routine diagnoses various problems with referencing\n/// declarations that can occur when using a declaration. For example,\n/// it might warn if a deprecated or unavailable declaration is being\n/// used, or produce an error (and return true) if a C++0x deleted\n/// function is being used.\n///\n/// \\returns true if there was an error (this declaration cannot be\n/// referenced), false otherwise.\n///\nbool Sema::DiagnoseUseOfDecl(NamedDecl *D, ArrayRef<SourceLocation> Locs, const ObjCInterfaceDecl *UnknownObjCClass, bool ObjCPropertyAccess, bool AvoidPartialAvailabilityChecks, ObjCInterfaceDecl *ClassReceiver, bool SkipTrailingRequiresClause) {\n  // See if this is an auto-typed variable whose initializer we are parsing.\n  if (ParsingInitForAutoVars.count(D)) {\n    if (isa<BindingDecl>(D)) {\n      Diag(Loc, diag::err_binding_cannot_appear_in_own_initializer) << D->getDeclName();"}}
},
},
["err_bit_cast_non_trivially_copyable"]={
["err_bit_cast_non_trivially_copyable"]={
[f]="__builtin_bit_cast ... type must be trivially copyable",
[f]="__builtin_bit_cast ... type must be trivially copyable",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="__builtin_bit_cast %select{source|destination}0 type must be trivially copyable",
[g]="__builtin_bit_cast %select{source|destination}0 type must be trivially copyable",
[c]=m,
[i]=m,
[b]="__builtin_bit_cast (?:source|destination) type must be trivially copyable",
[j]="__builtin_bit_cast (?:source|destination) type must be trivially copyable",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={"eee944e7f9e6",1562092093,"[C++2a] Add __builtin_bit_cast, used to implement std::bit_cast"}
[d]={"eee944e7f9e6",1562092093,"[C++2a] Add __builtin_bit_cast, used to implement std::bit_cast"},
[k]={{w,2824,"void CastOperation::CheckBuiltinBitCast() {\n  if (!DestType.isTriviallyCopyableType(Self.Context)) {\n    Self.Diag(OpRange.getBegin(), diag::err_bit_cast_non_trivially_copyable) << 1;"},{w,2830,"void CastOperation::CheckBuiltinBitCast() {\n  if (!SrcType.isTriviallyCopyableType(Self.Context)) {\n    Self.Diag(OpRange.getBegin(), diag::err_bit_cast_non_trivially_copyable) << 0;"}}
},
},
["err_bit_cast_type_size_mismatch"]={
["err_bit_cast_type_size_mismatch"]={
[f]="__builtin_bit_cast source size does not equal destination size (A vs B)",
[f]="__builtin_bit_cast source size does not equal destination size (A vs B)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="__builtin_bit_cast source size does not equal destination size (%0 vs %1)",
[g]="__builtin_bit_cast source size does not equal destination size (%0 vs %1)",
[c]=m,
[i]=m,
[b]="__builtin_bit_cast source size does not equal destination size \\((.*?) vs (.*?)\\)",
[j]="__builtin_bit_cast source size does not equal destination size \\((.*?) vs (.*?)\\)",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={"eee944e7f9e6",1562092093,"[C++2a] Add __builtin_bit_cast, used to implement std::bit_cast"}
[d]={"eee944e7f9e6",1562092093,"[C++2a] Add __builtin_bit_cast, used to implement std::bit_cast"},
[k]={{w,2818,"void CastOperation::CheckBuiltinBitCast() {\n  if (DestSize != SourceSize) {\n    Self.Diag(OpRange.getBegin(), diag::err_bit_cast_type_size_mismatch) << (int)SourceSize.getQuantity() << (int)DestSize.getQuantity();"}}
},
},
["err_bit_int_bad_size"]={
["err_bit_int_bad_size"]={
[f]="... _BitInt must have a bit size of at least ...",
[f]="... _BitInt must have a bit size of at least ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{signed|unsigned}0 _BitInt must have a bit size of at least %select{2|1}0",
[g]="%select{signed|unsigned}0 _BitInt must have a bit size of at least %select{2|1}0",
[c]=m,
[i]=m,
[b]="(?:signed|unsigned) _BitInt must have a bit size of at least (?:2|1)",
[j]="(?:signed|unsigned) _BitInt must have a bit size of at least (?:2|1)",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={R,1616787805,S}
[d]={db,1616787805,cb},
[k]={{r,2083,"/// Build a bit-precise integer type.\n///\n/// \\param IsUnsigned Boolean representing the signedness of the type.\n///\n/// \\param BitWidth Size of this int type in bits, or an expression representing\n/// that.\n///\n/// \\param Loc Location of the keyword.\nQualType Sema::BuildBitIntType(bool IsUnsigned, Expr *BitWidth, SourceLocation Loc) {\n  if (!IsUnsigned && NumBits < 2) {\n    Diag(Loc, diag::err_bit_int_bad_size) << 0;"},{r,2088,"/// Build a bit-precise integer type.\n///\n/// \\param IsUnsigned Boolean representing the signedness of the type.\n///\n/// \\param BitWidth Size of this int type in bits, or an expression representing\n/// that.\n///\n/// \\param Loc Location of the keyword.\nQualType Sema::BuildBitIntType(bool IsUnsigned, Expr *BitWidth, SourceLocation Loc) {\n  if (IsUnsigned && NumBits < 1) {\n    Diag(Loc, diag::err_bit_int_bad_size) << 1;"}}
},
},
["err_bit_int_max_size"]={
["err_bit_int_max_size"]={
[f]="... _BitInt of bit sizes greater than A not supported",
[f]="... _BitInt of bit sizes greater than A not supported",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{signed|unsigned}0 _BitInt of bit sizes greater than %1 not supported",
[g]="%select{signed|unsigned}0 _BitInt of bit sizes greater than %1 not supported",
[c]=m,
[i]=m,
[b]="(?:signed|unsigned) _BitInt of bit sizes greater than (.*?) not supported",
[j]="(?:signed|unsigned) _BitInt of bit sizes greater than (.*?) not supported",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={R,1616787805,S}
[d]={db,1616787805,cb},
[k]={{r,2094,"/// Build a bit-precise integer type.\n///\n/// \\param IsUnsigned Boolean representing the signedness of the type.\n///\n/// \\param BitWidth Size of this int type in bits, or an expression representing\n/// that.\n///\n/// \\param Loc Location of the keyword.\nQualType Sema::BuildBitIntType(bool IsUnsigned, Expr *BitWidth, SourceLocation Loc) {\n  if (NumBits > TI.getMaxBitIntWidth()) {\n    Diag(Loc, diag::err_bit_int_max_size) << IsUnsigned << static_cast<uint64_t>(TI.getMaxBitIntWidth());"}}
},
},
["err_bitfield_has_negative_width"]={
["err_bitfield_has_negative_width"]={
[f]="bit-field A has negative width (B)",
[f]="bit-field A has negative width (B)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="bit-field %0 has negative width (%1)",
[g]="bit-field %0 has negative width (%1)",
[c]=m,
[i]=m,
[b]="bit\\-field (.*?) has negative width \\((.*?)\\)",
[j]="bit\\-field (.*?) has negative width \\((.*?)\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{q,15688,"// Note that FieldName may be null for anonymous bitfields.\nExprResult Sema::VerifyBitField(SourceLocation FieldLoc, IdentifierInfo *FieldName, QualType FieldTy, bool IsMsStruct, Expr *BitWidth) {\n  if (Value.isSigned() && Value.isNegative()) {\n    if (FieldName)\n      return Diag(FieldLoc, diag::err_bitfield_has_negative_width) << FieldName << toString(Value, 10);"}}
},
},
["err_bitfield_has_zero_width"]={
["err_bitfield_has_zero_width"]={
[f]="named bit-field A has zero width",
[f]="named bit-field A has zero width",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="named bit-field %0 has zero width",
[g]="named bit-field %0 has zero width",
[c]=m,
[i]=m,
[b]="named bit\\-field (.*?) has zero width",
[j]="named bit\\-field (.*?) has zero width",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{q,15684,"// Note that FieldName may be null for anonymous bitfields.\nExprResult Sema::VerifyBitField(SourceLocation FieldLoc, IdentifierInfo *FieldName, QualType FieldTy, bool IsMsStruct, Expr *BitWidth) {\n  // Zero-width bitfield is ok for anonymous field.\n  if (Value == 0 && FieldName)\n    return Diag(FieldLoc, diag::err_bitfield_has_zero_width) << FieldName;"}}
},
},
["err_bitfield_too_wide"]={
["err_bitfield_too_wide"]={
[f]="... is too wide (A bits)",
[f]="... is too wide (A bits)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{bit-field %1|anonymous bit-field}0 is too wide (%2 bits)",
[g]="%select{bit-field %1|anonymous bit-field}0 is too wide (%2 bits)",
[c]=m,
[i]=m,
[b]="(?:bit\\-field (.*?)|anonymous bit\\-field) is too wide \\((.*?) bits\\)",
[j]="(?:bit\\-field (.*?)|anonymous bit\\-field) is too wide \\((.*?) bits\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Z,1590001902,ab}
[d]={fb,1590001902,eb},
[k]={{q,15695,"// Note that FieldName may be null for anonymous bitfields.\nExprResult Sema::VerifyBitField(SourceLocation FieldLoc, IdentifierInfo *FieldName, QualType FieldTy, bool IsMsStruct, Expr *BitWidth) {\n  // The size of the bit-field must not exceed our maximum permitted object\n  // size.\n  if (Value.getActiveBits() > ConstantArrayType::getMaxSizeBits(Context)) {\n    return Diag(FieldLoc, diag::err_bitfield_too_wide) << !FieldName << FieldName << toString(Value, 10);"}}
},
},
["err_bitfield_width_exceeds_type_width"]={
["err_bitfield_width_exceeds_type_width"]={
[f]="width of... bit-field... (A bits) exceeds the ... of its type (B bitC)",
[f]="width of... bit-field... (A bits) exceeds the ... of its type (B bitC)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="width of%select{ anonymous|}0 bit-field%select{| %1}0 (%2 bits) exceeds the %select{width|size}3 of its type (%4 bit%s4)",
[g]="width of%select{ anonymous|}0 bit-field%select{| %1}0 (%2 bits) exceeds the %select{width|size}3 of its type (%4 bit%s4)",
[c]=m,
[i]=m,
[b]="width of(?: anonymous|) bit\\-field(?:| (.*?)) \\((.*?) bits\\) exceeds the (?:width|size) of its type \\((.*?) bit(.*?)\\)",
[j]="width of(?: anonymous|) bit\\-field(?:| (.*?)) \\((.*?) bits\\) exceeds the (?:width|size) of its type \\((.*?) bit(.*?)\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"022bdc7d7361",1442266056,"C11 _Bool bitfield diagnostic"}
[d]={"022bdc7d7361",1442266056,"C11 _Bool bitfield diagnostic"},
[k]={{q,15709,"// Note that FieldName may be null for anonymous bitfields.\nExprResult Sema::VerifyBitField(SourceLocation FieldLoc, IdentifierInfo *FieldName, QualType FieldTy, bool IsMsStruct, Expr *BitWidth) {\n  if (!FieldTy->isDependentType()) {\n    if (CStdConstraintViolation || MSBitfieldViolation) {\n      return Diag(FieldLoc, diag::err_bitfield_width_exceeds_type_width) << (bool)FieldName << FieldName << toString(Value, 10) << !CStdConstraintViolation << DiagWidth;"}}
},
},
["err_block_decl_ref_not_modifiable_lvalue"]={
["err_block_decl_ref_not_modifiable_lvalue"]={
[f]="variable is not assignable (missing __block type specifier)",
[f]="variable is not assignable (missing __block type specifier)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="variable is not assignable (missing __block type specifier)",
[g]="variable is not assignable (missing __block type specifier)",
[c]=m,
[i]=m,
[b]="variable is not assignable \\(missing __block type specifier\\)",
[j]="variable is not assignable \\(missing __block type specifier\\)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{y,12294,"/// CheckForModifiableLvalue - Verify that E is a modifiable lvalue.  If not,\n/// emit an error and return true.  If so, return false.\nstatic bool CheckForModifiableLvalue(Expr *E, SourceLocation Loc, Sema &S) {\n  case Expr::MLV_ConstQualified:\n    // Use a specialized diagnostic when we\'re assigning to an object\n    // from an enclosing function or block.\n    if (NonConstCaptureKind NCCK = isReferenceToNonConstCapture(S, E)) {\n      if (NCCK == NCCK_Block)\n        DiagID = diag::err_block_decl_ref_not_modifiable_lvalue;"}}
},
},
["err_block_extern_cant_init"]={
["err_block_extern_cant_init"]={
[f]="declaration of block scope identifier with linkage cannot have an initializer",
[f]="declaration of block scope identifier with linkage cannot have an initializer",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="declaration of block scope identifier with linkage cannot have an initializer",
[i]=m,
[j]="declaration of block scope identifier with linkage cannot have an initializer",
[j]="declaration of block scope identifier with linkage cannot have an initializer",
[c]=m,
[b]=a,
[b]="declaration of block scope identifier with linkage cannot have an initializer",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{q,11515,"/// AddInitializerToDecl - Adds the initializer Init to the\n/// declaration dcl. If DirectInit is true, this is C++ direct\n/// initialization rather than copy initialization.\nvoid Sema::AddInitializerToDecl(Decl *RealDecl, Expr *Init, bool DirectInit) {\n // C99 6.7.8p5. If the declaration of an identifier has block scope, and\n  // the identifier has external or internal linkage, the declaration shall\n  // have no initializer for the identifier.\n  // C++14 [dcl.init]p5 is the same restriction for C++.\n  if (VDecl->isLocalVarDecl() && VDecl->hasExternalStorage()) {\n    Diag(VDecl->getLocation(), diag::err_block_extern_cant_init);"}}
[g]={q,1237025389,p}
},
},
["err_block_on_nonlocal"]={
["err_block_on_nonlocal"]={
[f]="__block attribute not allowed, only allowed on local variables",
[f]="__block attribute not allowed, only allowed on local variables",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="__block attribute not allowed, only allowed on local variables",
[i]=m,
[j]="__block attribute not allowed, only allowed on local variables",
[j]="__block attribute not allowed, only allowed on local variables",
[c]=m,
[b]=a,
[b]="__block attribute not allowed, only allowed on local variables",
[h]=o,
[i]=a,
[d]={"e9efa80c003e",1241050780,"Sema checking for incorrect placement of __block.  Radar 6441502"},
[h]=n,
[k]={{q,7717,"void Sema::CheckVariableDeclarationType(VarDecl *NewVD) {\n  if (!NewVD->hasLocalStorage() && NewVD->hasAttr<BlocksAttr>()) {\n    Diag(NewVD->getLocation(), diag::err_block_on_nonlocal);"},{q,12941,"/// ActOnParamDeclarator - Called from Parser::ParseFunctionDeclarator()\n/// to introduce parameters into function prototype scope.\nDecl *Sema::ActOnParamDeclarator(Scope *S, Declarator &D) {\n  if (New->hasAttr<BlocksAttr>()) {\n    Diag(New->getLocation(), diag::err_block_on_nonlocal);"},{I,3980,"Decl *Sema::ActOnMethodDeclaration(Scope *S, SourceLocation MethodLoc, SourceLocation EndLoc, tok::TokenKind MethodType, ObjCDeclSpec &ReturnQT, ParsedType ReturnType, ArrayRef<SourceLocation> SelectorLocs, Selector Sel,\n  for (unsigned i = 0, e = Sel.getNumArgs(); i != e; ++i) {\n    if (Param->hasAttr<BlocksAttr>()) {\n      Diag(Param->getLocation(), diag::err_block_on_nonlocal);"},{I,4363,"Decl *Sema::ActOnObjCExceptionDecl(Scope *S, Declarator &D) {\n  if (New->hasAttr<BlocksAttr>())\n    Diag(New->getLocation(), diag::err_block_on_nonlocal);"}}
[g]={"e9efa80c003e",1241050780,"Sema checking for incorrect placement of __block.  Radar 6441502"}
},
},
["err_block_on_vm"]={
["err_block_on_vm"]={
[f]="__block attribute not allowed on declaration with a variably modified type",
[f]="__block attribute not allowed on declaration with a variably modified type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="__block attribute not allowed on declaration with a variably modified type",
[i]=m,
[j]="__block attribute not allowed on declaration with a variably modified type",
[j]="__block attribute not allowed on declaration with a variably modified type",
[c]=m,
[b]=a,
[b]="__block attribute not allowed on declaration with a variably modified type",
[h]=o,
[i]=a,
[d]={"a71286315f9d",1241221307,"Add Sema checking for __block on vm declarations.  Radar 6441502"},
[h]=n,
[k]={{q,7729,"void Sema::CheckVariableDeclarationType(VarDecl *NewVD) {\n  if (isVM && NewVD->hasAttr<BlocksAttr>()) {\n    Diag(NewVD->getLocation(), diag::err_block_on_vm);"}}
[g]={"a71286315f9d",1241221307,"Add Sema checking for __block on vm declarations.  Radar 6441502"}
},
},
["err_block_return_missing_expr"]={
["err_block_return_missing_expr"]={
[f]="non-void block should return a value",
[f]="non-void block should return a value",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="non-void block should return a value",
[g]="non-void block should return a value",
[c]=m,
[i]=m,
[b]="non\\-void block should return a value",
[j]="non\\-void block should return a value",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{R,3175,"/// ActOnCapScopeReturnStmt - Utility routine to type-check return statements\n/// for capturing scopes.\n///\nStmtResult Sema::ActOnCapScopeReturnStmt(SourceLocation ReturnLoc, Expr *RetValExp, NamedReturnInfo &NRInfo, bool SupressSimplerImplicitMoves) {\n  // Otherwise, verify that this result type matches the previous one.  We are\n  // pickier with blocks than for normal functions because we don\'t have GCC\n  // compatibility to worry about here.\n  if (FnRetType->isDependentType()) {\n  } else if (FnRetType->isVoidType()) {\n  } else if (!RetValExp) {\n    return StmtError(Diag(ReturnLoc, diag::err_block_return_missing_expr));"}}
},
},
["err_block_returning_array_function"]={
["err_block_returning_array_function"]={
[f]="block cannot return ... type A",
[f]="block cannot return ... type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="block cannot return %select{array|function}0 type %1",
[g]="block cannot return %select{array|function}0 type %1",
[c]=m,
[i]=m,
[b]="block cannot return (?:array|function) type (.*?)",
[j]="block cannot return (?:array|function) type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"20ad245e3e22",1295997393,"Change error \"function cannot return array type\" -> \"blocks cannot return array type\" when blocks ar..."}
[d]={"20ad245e3e22",1295997393,"Change error \"function cannot return array type\" -> \"blocks cannot return array type\" when blocks ar..."},
[k]={{y,18414,"/// Rebuilds a call expression which yielded __unknown_anytype.\nExprResult RebuildUnknownAnyExpr::VisitCallExpr(CallExpr *E) {\n  // Verify that this is a legal result type of a function.\n  if (DestType->isArrayType() || DestType->isFunctionType()) {\n    if (Kind == FK_BlockPointer)\n      diagID = diag::err_block_returning_array_function;"},{r,4651,"static TypeSourceInfo *GetFullTypeForDeclarator(TypeProcessingState &state, QualType declSpecType, TypeSourceInfo *TInfo) {\n  for (unsigned i = 0, e = D.getNumTypeObjects(); i != e; ++i) {\n    case DeclaratorChunk::Function: {\n      // C99 6.7.5.3p1: The return type may not be a function or array type.\n      // For conversion functions, we\'ll diagnose this particular error later.\n      if (!D.isInvalidType() && (T->isArrayType() || T->isFunctionType()) && (D.getName().getKind() != UnqualifiedIdKind::IK_ConversionFunctionId)) {\n        // Last processing chunk in block context means this function chunk\n        // represents the block.\n        if (chunkIndex == 0 && D.getContext() == DeclaratorContext::BlockLiteral)\n          diagID = diag::err_block_returning_array_function;"}}
},
},
["err_blocks_disable"]={
["err_blocks_disable"]={
[f]="blocks support disabled - compile with -fblocks or ...",
[f]="blocks support disabled - compile with -fblocks or ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="blocks support disabled - compile with -fblocks or %select{pick a deployment target that supports them|for OpenCL C 2.0 or OpenCL C 3.0 with __opencl_c_device_enqueue feature}0",
[g]="blocks support disabled - compile with -fblocks or %select{pick a deployment target that supports them|for OpenCL C 2.0 or OpenCL C 3.0 with __opencl_c_device_enqueue feature}0",
[c]=m,
[i]=m,
[b]="blocks support disabled \\- compile with \\-fblocks or (?:pick a deployment target that supports them|for OpenCL C 2\\.0 or OpenCL C 3\\.0 with __opencl_c_device_enqueue feature)",
[j]="blocks support disabled \\- compile with \\-fblocks or (?:pick a deployment target that supports them|for OpenCL C 2\\.0 or OpenCL C 3\\.0 with __opencl_c_device_enqueue feature)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"9eac931b5f29",1238127486,"Fix rdar://6719156 - clang should emit a better error when blocks are disabled but are used anyway"}
[d]={"9eac931b5f29",1238127486,"Fix rdar://6719156 - clang should emit a better error when blocks are disabled but are used anyway"},
[k]={{y,14717,"/// ActOnBlockStmtExpr - This is called when the body of a block statement\n/// literal was successfully completed.  ^(int x){...}\nExprResult Sema::ActOnBlockStmtExpr(SourceLocation CaretLoc, Stmt *Body, Scope *CurScope) {\n  // If blocks are disabled, emit an error.\n  if (!LangOpts.Blocks)\n    Diag(CaretLoc, diag::err_blocks_disable) << LangOpts.OpenCL;"},{r,4448,"static TypeSourceInfo *GetFullTypeForDeclarator(TypeProcessingState &state, QualType declSpecType, TypeSourceInfo *TInfo) {\n  for (unsigned i = 0, e = D.getNumTypeObjects(); i != e; ++i) {\n    case DeclaratorChunk::BlockPointer:\n      // If blocks are disabled, emit an error.\n      if (!LangOpts.Blocks)\n        S.Diag(DeclType.Loc, diag::err_blocks_disable) << LangOpts.OpenCL;"}}
},
},
["err_bool_redeclaration"]={
["err_bool_redeclaration"]={
[f]="redeclaration of C++ built-in type \'bool\'",
[f]="redeclaration of C++ built-in type \'bool\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="redeclaration of C++ built-in type \'bool\'",
[g]="redeclaration of C++ built-in type \'bool\'",
[c]=m,
[i]=m,
[b]="redeclaration of C\\+\\+ built\\-in type \'bool\'",
[j]="redeclaration of C\\+\\+ built\\-in type \'bool\'",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={"20ee5ae8710a",1289931493,"Emit a specific diagnostic when typedefing C++ bool, mirroring gcc."}
[d]={"20ee5ae8710a",1289931493,"Emit a specific diagnostic when typedefing C++ bool, mirroring gcc."},
[k]={{D,3839,"/// ParseDeclarationSpecifiers\n///      declaration-specifiers: [C99 6.7]\n///        storage-class-specifier declaration-specifiers[opt]\n///        type-specifier declaration-specifiers[opt]\n/// [C99]  function-specifier declaration-specifiers[opt]\n/// [C11]  alignment-specifier declaration-specifiers[opt]\n/// [GNU]  attributes declaration-specifiers[opt]\n/// [Clang] \'__module_private__\' declaration-specifiers[opt]\n/// [ObjC1] \'__kindof\' declaration-specifiers[opt]\n///\n///      storage-class-specifier: [C99 6.7.1]\n///        \'typedef\'\n///        \'extern\'\n///        \'static\'\n///        \'auto\'\n///        \'register\'\n/// [C++]  \'mutable\'\n/// [C++11] \'thread_local\'\n/// [C11]  \'_Thread_local\'\n/// [GNU]  \'__thread\'\n///      function-specifier: [C99 6.7.4]\n/// [C99]  \'inline\'\n/// [C++]  \'virtual\'\n/// [C++]  \'explicit\'\n/// [OpenCL] \'__kernel\'\n///      \'friend\': [C++ dcl.friend]\n///      \'constexpr\': [C++0x dcl.constexpr]\nvoid Parser::ParseDeclarationSpecifiers(DeclSpec &DS, const ParsedTemplateInfo &TemplateInfo, AccessSpecifier AS, DeclSpecContext DSContext, LateParsedAttrList *LateAttrs, ImplicitTypenameContext AllowImplicitTypename) {\n  while (true) {\n    case tok::kw__Bool:\n      if (Tok.is(tok::kw_bool) && DS.getTypeSpecType() != DeclSpec::TST_unspecified && DS.getStorageClassSpec() == DeclSpec::SCS_typedef) {\n        DiagID = diag::err_bool_redeclaration;"},{D,4066,"#include \"clang/Basic/TransformTypeTraits.def\"\n    if (DiagID != diag::err_bool_redeclaration && ConsumedEnd.isInvalid())"}}
},
},
["err_bound_member_function"]={
["err_bound_member_function"]={
[f]="reference to non-static member function must be called...",
[f]="reference to non-static member function must be called...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="reference to non-static member function must be called%select{|; did you mean to call it with no arguments?}0",
[g]="reference to non-static member function must be called%select{|; did you mean to call it with no arguments?}0",
[c]=m,
[i]=m,
[b]="reference to non\\-static member function must be called(?:|; did you mean to call it with no arguments\\?)",
[j]="reference to non\\-static member function must be called(?:|; did you mean to call it with no arguments\\?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"50a2c2c19de5",1318374870,"Catch placeholder types in DefaultLvalueConversion"}
[d]={"50a2c2c19de5",1318374870,"Catch placeholder types in DefaultLvalueConversion"},
[k]={{y,18752,"/// Check for operands with placeholder types and complain if found.\n/// Returns ExprError() if there was an error and no recovery was possible.\nExprResult Sema::CheckPlaceholderExpr(Expr *E) {\n  // Bound member functions.\n  case BuiltinType::BoundMember: {\n    PartialDiagnostic PD = PDiag(diag::err_bound_member_function);"},{Q,11044,"// Resolve and fix an overloaded expression that can be resolved\n// because it identifies a single function template specialization.\n//\n// Last three arguments should only be supplied if Complain = true\n//\n// Return true if it was logically possible to so resolve the\n// expression, regardless of whether or not it succeeded.  Always\n// returns true if \'complain\' is set.\nbool Sema::ResolveAndFixSingleFunctionTemplateSpecialization(ExprResult &SrcExpr, bool doFunctionPointerConversion, bool complain, SourceRange OpRangeForComplaining, QualType DestTypeForComplaining, unsigned DiagIDForComplaining) {\n  if (FunctionDecl *fn = ResolveSingleFunctionTemplateSpecialization(ovl.Expression, /*complain*/ false, &found)) {\n    // It is only correct to resolve to an instance method if we\'re\n    // resolving a form that\'s permitted to be a pointer to member.\n    // Otherwise we\'ll end up making a bound member expression, which\n    // is illegal in all the contexts we resolve like this.\n    if (!ovl.HasFormOfMemberPointer && isa<CXXMethodDecl>(fn) && cast<CXXMethodDecl>(fn)->isInstance()) {\n      Diag(ovl.Expression->getExprLoc(), diag::err_bound_member_function) << 0 << ovl.Expression->getSourceRange();"}}
},
},
["err_box_literal_collection"]={
["err_box_literal_collection"]={
[f]="... literal must be prefixed by \'@\' in a collection",
[f]="... literal must be prefixed by \'@\' in a collection",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{string|character|boolean|numeric}0 literal must be prefixed by \'@\' in a collection",
[g]="%select{string|character|boolean|numeric}0 literal must be prefixed by \'@\' in a collection",
[c]=m,
[i]=m,
[b]="(?:string|character|boolean|numeric) literal must be prefixed by \'@\' in a collection",
[j]="(?:string|character|boolean|numeric) literal must be prefixed by \'@\' in a collection",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={V,1331064356,W}
[d]={"e65b086e07a6",1331064356,"Add clang support for new Objective-C literal syntax for NSDictionary, NSArray,"},
[k]={{G,379,"/// Check that the given expression is a valid element of an Objective-C\n/// collection literal.\nstatic ExprResult CheckObjCCollectionLiteralElement(Sema &S, Expr *Element, QualType T, bool ArrayLiteral = false) {\n  // Make sure that we have an Objective-C pointer type or block.\n  if (!Element->getType()->isObjCObjectPointerType() && !Element->getType()->isBlockPointerType()) {\n    // If this is potentially an Objective-C numeric literal, add the \'@\'.\n    if (isa<IntegerLiteral>(OrigElement) || isa<CharacterLiteral>(OrigElement) || isa<FloatingLiteral>(OrigElement) || isa<ObjCBoolLiteralExpr>(OrigElement) || isa<CXXBoolLiteralExpr>(OrigElement)) {\n      if (S.NSAPIObj->getNSNumberFactoryMethodKind(OrigElement->getType())) {\n        S.Diag(OrigElement->getBeginLoc(), diag::err_box_literal_collection) << Which << OrigElement->getSourceRange() << FixItHint::CreateInsertion(OrigElement->getBeginLoc(), \"@\");"},{G,392,"/// Check that the given expression is a valid element of an Objective-C\n/// collection literal.\nstatic ExprResult CheckObjCCollectionLiteralElement(Sema &S, Expr *Element, QualType T, bool ArrayLiteral = false) {\n  // Make sure that we have an Objective-C pointer type or block.\n  if (!Element->getType()->isObjCObjectPointerType() && !Element->getType()->isBlockPointerType()) {\n    }\n    // If this is potentially an Objective-C string literal, add the \'@\'.\n    else if (StringLiteral *String = dyn_cast<StringLiteral>(OrigElement)) {\n      if (String->isOrdinary()) {\n        S.Diag(OrigElement->getBeginLoc(), diag::err_box_literal_collection) << 0 << OrigElement->getSourceRange() << FixItHint::CreateInsertion(OrigElement->getBeginLoc(), \"@\");"}}
},
},
["err_bracket_depth_exceeded"]={
["err_bracket_depth_exceeded"]={
[f]="bracket nesting level exceeded maximum of A",
[f]="bracket nesting level exceeded maximum of A",
[d]=y,
[c]=Fb,
[e]=z,
[e]=Eb,
[j]="bracket nesting level exceeded maximum of %0",
[g]="bracket nesting level exceeded maximum of %0",
[c]=A,
[i]=Bb,
[b]="bracket nesting level exceeded maximum of (.*?)",
[j]="bracket nesting level exceeded maximum of (.*?)",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={"b3a145293dc8",1361498391,"Add -fbracket-depth=N, analogous to -ftemplate-depth= and -fconstexpr-depth=,"}
[d]={"b3a145293dc8",1361498391,"Add -fbracket-depth=N, analogous to -ftemplate-depth= and -fconstexpr-depth=,"},
[k]={{Jb,2429,"bool BalancedDelimiterTracker::diagnoseOverflow() {\n  P.Diag(P.Tok, diag::err_bracket_depth_exceeded) << P.getLangOpts().BracketDepth;"}}
},
},
["err_brackets_go_after_unqualified_id"]={
["err_brackets_go_after_unqualified_id"]={
[f]="brackets are not allowed here; to declare an array, place the brackets after the ...",
[f]="brackets are not allowed here; to declare an array, place the brackets after the ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="brackets are not allowed here; to declare an array, place the brackets after the %select{identifier|name}0",
[g]="brackets are not allowed here; to declare an array, place the brackets after the %select{identifier|name}0",
[c]=m,
[i]=m,
[b]="brackets are not allowed here; to declare an array, place the brackets after the (?:identifier|name)",
[j]="brackets are not allowed here; to declare an array, place the brackets after the (?:identifier|name)",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={"f4b81d002965",1403651664,"Provide a better diagnostic when braces are put before the identifier."}
[d]={"f4b81d002965",1403651664,"Provide a better diagnostic when braces are put before the identifier."},
[k]={{D,6968,"/// Diagnose brackets before an identifier.\nvoid Parser::ParseMisplacedBracketDeclarator(Declarator &D) {\n  if (NeedParens) {\n    Diag(EndLoc, diag::err_brackets_go_after_unqualified_id) << getLangOpts().CPlusPlus << FixItHint::CreateInsertion(SuggestParenLoc, \"(\") << FixItHint::CreateInsertion(EndLoc, \")\") << FixItHint::CreateInsertionFromRange(EndLoc, CharSourceRange(BracketRange, true)) << FixItHint::CreateRemoval(BracketRange);"},{D,6970,"/// Diagnose brackets before an identifier.\nvoid Parser::ParseMisplacedBracketDeclarator(Declarator &D) {\n  if (NeedParens) {\n  } else {\n    Diag(EndLoc, diag::err_brackets_go_after_unqualified_id) << getLangOpts().CPlusPlus << FixItHint::CreateInsertionFromRange(EndLoc, CharSourceRange(BracketRange, true)) << FixItHint::CreateRemoval(BracketRange);"}}
},
},
["err_break_not_in_loop_or_switch"]={
["err_break_not_in_loop_or_switch"]={
[f]="\'break\' statement not in loop or switch statement",
[f]="\'break\' statement not in loop or switch statement",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'break\' statement not in loop or switch statement",
[i]=m,
[j]="\'break\' statement not in loop or switch statement",
[j]="\'break\' statement not in loop or switch statement",
[c]=m,
[b]=a,
[b]="\'break\' statement not in loop or switch statement",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{R,2875,"StmtResult Sema::ActOnBreakStmt(SourceLocation BreakLoc, Scope *CurScope) {\n  if (!S) {\n    return StmtError(Diag(BreakLoc, diag::err_break_not_in_loop_or_switch));"}}
[g]={q,1237025389,p}
},
},
["err_btf_type_id_not_const"]={
["err_btf_type_id_not_const"]={
[f]="__builtin_btf_type_id argument A not a constant",
[f]="__builtin_btf_type_id argument A not a constant",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="__builtin_btf_type_id argument %0 not a constant",
[g]="__builtin_btf_type_id argument %0 not a constant",
[c]=m,
[i]=m,
[b]="__builtin_btf_type_id argument (.*?) not a constant",
[j]="__builtin_btf_type_id argument (.*?) not a constant",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={C,1576908663,B}
[d]={W,1576908663,V},
[k]={{s,3124,"bool Sema::CheckBPFBuiltinFunctionCall(unsigned BuiltinID, CallExpr *TheCall) {\n  if (!Value) {\n    if (BuiltinID == BPF::BI__builtin_preserve_field_info)\n    else if (BuiltinID == BPF::BI__builtin_btf_type_id)\n      kind = diag::err_btf_type_id_not_const;"}}
},
},
["err_builtin_annotation_first_arg"]={
["err_builtin_annotation_first_arg"]={
[f]="first argument to __builtin_annotation must be an integer",
[f]="first argument to __builtin_annotation must be an integer",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="first argument to __builtin_annotation must be an integer",
[i]=m,
[j]="first argument to __builtin_annotation must be an integer",
[j]="first argument to __builtin_annotation must be an integer",
[c]=m,
[b]=a,
[b]="first argument to __builtin_annotation must be an integer",
[h]=o,
[i]=a,
[d]={"4a5b4443711e",1335634756,"Currently __builtin_annotation() only annotates an i32."},
[h]=n,
[k]={{s,175,"/// Check that the first argument to __builtin_annotation is an integer\n/// and the second argument is a non-wide string literal.\nstatic bool SemaBuiltinAnnotation(Sema &S, CallExpr *TheCall) {\n  if (!Ty->isIntegerType()) {\n    S.Diag(ValArg->getBeginLoc(), diag::err_builtin_annotation_first_arg) << ValArg->getSourceRange();"}}
[g]={"4a5b4443711e",1335634756,"Currently __builtin_annotation() only annotates an i32."}
},
},
["err_builtin_annotation_second_arg"]={
["err_builtin_annotation_second_arg"]={
[f]="second argument to __builtin_annotation must be a non-wide string constant",
[f]="second argument to __builtin_annotation must be a non-wide string constant",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="second argument to __builtin_annotation must be a non-wide string constant",
[g]="second argument to __builtin_annotation must be a non-wide string constant",
[c]=m,
[i]=m,
[b]="second argument to __builtin_annotation must be a non\\-wide string constant",
[j]="second argument to __builtin_annotation must be a non\\-wide string constant",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"4a5b4443711e",1335634756,"Currently __builtin_annotation() only annotates an i32."}
[d]={"4a5b4443711e",1335634756,"Currently __builtin_annotation() only annotates an i32."},
[k]={{s,183,"/// Check that the first argument to __builtin_annotation is an integer\n/// and the second argument is a non-wide string literal.\nstatic bool SemaBuiltinAnnotation(Sema &S, CallExpr *TheCall) {\n  if (!Literal || !Literal->isOrdinary()) {\n    S.Diag(StrArg->getBeginLoc(), diag::err_builtin_annotation_second_arg) << StrArg->getSourceRange();"}}
},
},
["err_builtin_definition"]={
["err_builtin_definition"]={
[f]="definition of builtin function A",
[f]="definition of builtin function A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="definition of builtin function %0",
[g]="definition of builtin function %0",
[c]=m,
[i]=m,
[b]="definition of builtin function (.*?)",
[j]="definition of builtin function (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{q,13384,"Decl *Sema::ActOnStartOfFunctionDef(Scope *FnBodyScope, Decl *D, SkipBodyInfo *SkipBody, FnBodyKind BodyKind) {\n  // Builtin functions cannot be defined.\n  if (unsigned BuiltinID = FD->getBuiltinID()) {\n    if (!Context.BuiltinInfo.isPredefinedLibFunction(BuiltinID) && !Context.BuiltinInfo.isPredefinedRuntimeFunction(BuiltinID)) {\n      Diag(FD->getLocation(), diag::err_builtin_definition) << FD;"}}
},
},
["err_builtin_fn_use"]={
["err_builtin_fn_use"]={
[f]="builtin functions must be directly called",
[f]="builtin functions must be directly called",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="builtin functions must be directly called",
[i]=m,
[j]="builtin functions must be directly called",
[j]="builtin functions must be directly called",
[c]=m,
[b]=a,
[b]="builtin functions must be directly called",
[h]=o,
[i]=a,
[d]={"34866c7719f8",1346372047,"Change the representation of builtin functions in the AST"},
[h]=n,
[k]={{y,18815,"/// Check for operands with placeholder types and complain if found.\n/// Returns ExprError() if there was an error and no recovery was possible.\nExprResult Sema::CheckPlaceholderExpr(Expr *E) {\n  case BuiltinType::BuiltinFn: {\n    Diag(E->getBeginLoc(), diag::err_builtin_fn_use);"}}
[g]={"34866c7719f8",1346372047,"Change the representation of builtin functions in the AST"}
},
},
["err_builtin_func_cast_more_than_one_arg"]={
["err_builtin_func_cast_more_than_one_arg"]={
[f]="function-style cast to a builtin type can only take one argument",
[f]="function-style cast to a builtin type can only take one argument",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="function-style cast to a builtin type can only take one argument",
[g]="function-style cast to a builtin type can only take one argument",
[c]=m,
[i]=m,
[b]="function\\-style cast to a builtin type can only take one argument",
[j]="function\\-style cast to a builtin type can only take one argument",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{E,8287,"bool InitializationSequence::Diagnose(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, ArrayRef<Expr *> Args) {\n  case FK_TooManyInitsForScalar: {\n    if (Kind.isCStyleOrFunctionalCast())\n      S.Diag(Kind.getLocation(), diag::err_builtin_func_cast_more_than_one_arg) << R;"}}
},
},
["err_builtin_invalid_arg_type"]={
["err_builtin_invalid_arg_type"]={
[f]="A argument must be a ... (was B)",
[f]="A argument must be a ... (was B)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%ordinal0 argument must be a %select{vector, integer or floating point type|matrix|pointer to a valid matrix element type|signed integer or floating point type|vector type|floating point type|vector of integers}1 (was %2)",
[g]="%ordinal0 argument must be a %select{vector, integer or floating point type|matrix|pointer to a valid matrix element type|signed integer or floating point type|vector type|floating point type|vector of integers}1 (was %2)",
[c]=m,
[i]=m,
[b]="(.*?) argument must be a (?:vector, integer or floating point type|matrix|pointer to a valid matrix element type|signed integer or floating point type|vector type|floating point type|vector of integers) \\(was (.*?)\\)",
[j]="(.*?) argument must be a (?:vector, integer or floating point type|matrix|pointer to a valid matrix element type|signed integer or floating point type|vector type|floating point type|vector of integers) \\(was (.*?)\\)",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={R,1616787805,S}
[d]={db,1616787805,cb},
[k]={{s,1790,"// Check if \\p Ty is a valid type for the elementwise math builtins. If it is\n// not a valid type, emit an error message and return true. Otherwise return\n// false.\nstatic bool checkMathBuiltinElementType(Sema &S, SourceLocation Loc, QualType Ty) {\n  if (!Ty->getAs<VectorType>() && !ConstantMatrixType::isValidElementType(Ty)) {\n    return S.Diag(Loc, diag::err_builtin_invalid_arg_type) << 1 << /* vector, integer or float ty*/ 0 << Ty;"},{s,1802,"static bool checkFPMathBuiltinElementType(Sema &S, SourceLocation Loc, QualType ArgTy, int ArgIndex) {\n  if (!EltTy->isRealFloatingType()) {\n    return S.Diag(Loc, diag::err_builtin_invalid_arg_type) << ArgIndex << /* vector or float ty*/ 5 << ArgTy;"},{s,2327,"#include \"clang/Basic/Builtins.def\"\n  // __builtin_elementwise_abs restricts the element type to signed integers or\n  // floating point types only.\n  case Builtin::BI__builtin_elementwise_abs: {\n    if (EltTy->isUnsignedIntegerType()) {\n      Diag(TheCall->getArg(0)->getBeginLoc(), diag::err_builtin_invalid_arg_type) << 1 << /* signed integer or float ty*/ 3 << ArgTy;"},{s,2391,"#include \"clang/Basic/Builtins.def\"\n  case Builtin::BI__builtin_elementwise_sub_sat: {\n    if (!EltTy->isIntegerType()) {\n      Diag(Arg->getBeginLoc(), diag::err_builtin_invalid_arg_type) << 1 << /* integer ty */ 6 << ArgTy;"},{s,2434,"#include \"clang/Basic/Builtins.def\"\n  case Builtin::BI__builtin_reduce_min: {\n    if (!TyA) {\n      Diag(Arg->getBeginLoc(), diag::err_builtin_invalid_arg_type) << 1 << /* vector ty*/ 4 << Arg->getType();"},{s,2455,"#include \"clang/Basic/Builtins.def\"\n  case Builtin::BI__builtin_reduce_and: {\n    if (!TyA || !TyA->getElementType()->isIntegerType()) {\n      Diag(Arg->getBeginLoc(), diag::err_builtin_invalid_arg_type) << 1 << /* vector of integers */ 6 << Arg->getType();"},{s,16732,"bool Sema::SemaBuiltinNonDeterministicValue(CallExpr *TheCall) {\n  if (!TyArg->isBuiltinType() && !TyArg->isVectorType())\n    return Diag(TheCall->getArg(0)->getBeginLoc(), diag::err_builtin_invalid_arg_type) << 1 << /*vector, integer or floating point ty*/ 0 << TyArg;"},{s,16749,"ExprResult Sema::SemaBuiltinMatrixTranspose(CallExpr *TheCall, ExprResult CallResult) {\n  if (!MType) {\n    Diag(Matrix->getBeginLoc(), diag::err_builtin_invalid_arg_type) << 1 << /* matrix ty*/ 1 << Matrix->getType();"},{s,16814,"ExprResult Sema::SemaBuiltinMatrixColumnMajorLoad(CallExpr *TheCall, ExprResult CallResult) {\n  if (!PtrTy) {\n    Diag(PtrExpr->getBeginLoc(), diag::err_builtin_invalid_arg_type) << PtrArgIdx + 1 << /*pointer to element ty*/ 2 << PtrExpr->getType();"},{s,16820,"ExprResult Sema::SemaBuiltinMatrixColumnMajorLoad(CallExpr *TheCall, ExprResult CallResult) {\n  if (!PtrTy) {\n  } else {\n    if (!ConstantMatrixType::isValidElementType(ElementTy)) {\n      Diag(PtrExpr->getBeginLoc(), diag::err_builtin_invalid_arg_type) << PtrArgIdx + 1 << /* pointer to element ty*/ 2 << PtrExpr->getType();"},{s,16914,"ExprResult Sema::SemaBuiltinMatrixColumnMajorStore(CallExpr *TheCall, ExprResult CallResult) {\n  if (!MatrixTy) {\n    Diag(MatrixExpr->getBeginLoc(), diag::err_builtin_invalid_arg_type) << 1 << /*matrix ty */ 1 << MatrixExpr->getType();"},{s,16933,"ExprResult Sema::SemaBuiltinMatrixColumnMajorStore(CallExpr *TheCall, ExprResult CallResult) {\n  if (!PtrTy) {\n    Diag(PtrExpr->getBeginLoc(), diag::err_builtin_invalid_arg_type) << PtrArgIdx + 1 << /*pointer to element ty*/ 2 << PtrExpr->getType();"}}
},
},
["err_builtin_launder_invalid_arg"]={
["err_builtin_launder_invalid_arg"]={
[f]="... argument to \'__builtin_launder\' is not allowed",
[f]="... argument to \'__builtin_launder\' is not allowed",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{non-pointer|function pointer|void pointer}0 argument to \'__builtin_launder\' is not allowed",
[g]="%select{non-pointer|function pointer|void pointer}0 argument to \'__builtin_launder\' is not allowed",
[c]=m,
[i]=m,
[b]="(?:non\\-pointer|function pointer|void pointer) argument to \'__builtin_launder\' is not allowed",
[j]="(?:non\\-pointer|function pointer|void pointer) argument to \'__builtin_launder\' is not allowed",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={"261875054e5e",1544821888,"[Clang] Add __builtin_launder"}
[d]={"261875054e5e",1544821888,"[Clang] Add __builtin_launder"},
[k]={{s,1686,"static ExprResult SemaBuiltinLaunder(Sema &S, CallExpr *TheCall) {\n  if (DiagSelect) {\n    S.Diag(TheCall->getBeginLoc(), diag::err_builtin_launder_invalid_arg) << *DiagSelect << TheCall->getSourceRange();"}}
},
},
["err_builtin_longjmp_invalid_val"]={
["err_builtin_longjmp_invalid_val"]={
[f]="argument to __builtin_longjmp must be a constant 1",
[f]="argument to __builtin_longjmp must be a constant 1",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="argument to __builtin_longjmp must be a constant 1",
[i]=m,
[j]="argument to __builtin_longjmp must be a constant 1",
[j]="argument to __builtin_longjmp must be a constant 1",
[c]=m,
[b]=a,
[b]="argument to __builtin_longjmp must be a constant 1",
[h]=o,
[i]=a,
[d]={"7903ca0993a4",1241326928,"Add diagnostic for r70658."},
[h]=n,
[k]={{s,8666,"/// SemaBuiltinLongjmp - Handle __builtin_longjmp(void *env[5], int val).\n/// This checks that the target supports __builtin_longjmp and\n/// that val is a constant 1.\nbool Sema::SemaBuiltinLongjmp(CallExpr *TheCall) {\n  if (Result != 1)\n    return Diag(TheCall->getBeginLoc(), diag::err_builtin_longjmp_invalid_val) << SourceRange(Arg->getBeginLoc(), Arg->getEndLoc());"}}
[g]={"7903ca0993a4",1241326928,"Add diagnostic for r70658."}
},
},
["err_builtin_longjmp_unsupported"]={
["err_builtin_longjmp_unsupported"]={
[f]="__builtin_longjmp is not supported for the current target",
[f]="__builtin_longjmp is not supported for the current target",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="__builtin_longjmp is not supported for the current target",
[i]=m,
[j]="__builtin_longjmp is not supported for the current target",
[j]="__builtin_longjmp is not supported for the current target",
[c]=m,
[b]=a,
[b]="__builtin_longjmp is not supported for the current target",
[h]=o,
[i]=a,
[d]={"27173288c296",1426117592,"Under duress, move check for target support of __builtin_setjmp/"},
[h]=n,
[k]={{s,8656,"/// SemaBuiltinLongjmp - Handle __builtin_longjmp(void *env[5], int val).\n/// This checks that the target supports __builtin_longjmp and\n/// that val is a constant 1.\nbool Sema::SemaBuiltinLongjmp(CallExpr *TheCall) {\n  if (!Context.getTargetInfo().hasSjLjLowering())\n    return Diag(TheCall->getBeginLoc(), diag::err_builtin_longjmp_unsupported) << SourceRange(TheCall->getBeginLoc(), TheCall->getEndLoc());"}}
[g]={"27173288c296",1426117592,"Under duress, move check for target support of __builtin_setjmp/"}
},
},
["err_builtin_matrix_disabled"]={
["err_builtin_matrix_disabled"]={
[f]="matrix types extension is disabled. Pass -fenable-matrix to enable it",
[f]="matrix types extension is disabled. Pass -fenable-matrix to enable it",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="matrix types extension is disabled. Pass -fenable-matrix to enable it",
[g]="matrix types extension is disabled. Pass -fenable-matrix to enable it",
[c]=m,
[i]=m,
[b]="matrix types extension is disabled\\. Pass \\-fenable\\-matrix to enable it",
[j]="matrix types extension is disabled\\. Pass \\-fenable\\-matrix to enable it",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={C,1576908663,B}
[d]={W,1576908663,V},
[k]={{s,16783,"ExprResult Sema::SemaBuiltinMatrixColumnMajorLoad(CallExpr *TheCall, ExprResult CallResult) {\n  if (!getLangOpts().MatrixTypes) {\n    Diag(TheCall->getBeginLoc(), diag::err_builtin_matrix_disabled);"},{r,7475,"/// HandleMatrixTypeAttr - \"matrix_type\" attribute, like ext_vector_type\nstatic void HandleMatrixTypeAttr(QualType &CurType, const ParsedAttr &Attr, Sema &S) {\n  if (!S.getLangOpts().MatrixTypes) {\n    S.Diag(Attr.getLoc(), diag::err_builtin_matrix_disabled);"}}
},
},
["err_builtin_matrix_invalid_dimension"]={
["err_builtin_matrix_invalid_dimension"]={
[f]="A dimension is outside the allowed range [1, B]",
[f]="A dimension is outside the allowed range [1, B]",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 dimension is outside the allowed range [1, %1]",
[g]="%0 dimension is outside the allowed range [1, %1]",
[c]=m,
[i]=m,
[b]="(.*?) dimension is outside the allowed range \\[1, (.*?)\\]",
[j]="(.*?) dimension is outside the allowed range \\[1, (.*?)\\]",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={G,1582847864,I}
[d]={T,1582847864,U},
[k]={{s,16775,"// Get and verify the matrix dimensions.\nstatic std::optional<unsigned> getAndVerifyMatrixDimension(Expr *Expr, StringRef Name, Sema &S) {\n  if (!ConstantMatrixType::isDimensionValid(Dim)) {\n    S.Diag(Expr->getBeginLoc(), diag::err_builtin_matrix_invalid_dimension) << Name << ConstantMatrixType::getMaxElementsPerDimension();"}}
},
},
["err_builtin_matrix_pointer_arg_mismatch"]={
["err_builtin_matrix_pointer_arg_mismatch"]={
[f]="the pointee of the 2nd argument must match the element type of the 1st argument (A != B)",
[f]="the pointee of the 2nd argument must match the element type of the 1st argument (A != B)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="the pointee of the 2nd argument must match the element type of the 1st argument (%0 != %1)",
[g]="the pointee of the 2nd argument must match the element type of the 1st argument (%0 != %1)",
[c]=m,
[i]=m,
[b]="the pointee of the 2nd argument must match the element type of the 1st argument \\((.*?) \\!\\= (.*?)\\)",
[j]="the pointee of the 2nd argument must match the element type of the 1st argument \\((.*?) \\!\\= (.*?)\\)",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={G,1582847864,I}
[d]={T,1582847864,U},
[k]={{s,16943,"ExprResult Sema::SemaBuiltinMatrixColumnMajorStore(CallExpr *TheCall, ExprResult CallResult) {\n  if (!PtrTy) {\n  } else {\n    if (MatrixTy && !Context.hasSameType(ElementTy, MatrixTy->getElementType())) {\n      Diag(PtrExpr->getBeginLoc(), diag::err_builtin_matrix_pointer_arg_mismatch) << ElementTy << MatrixTy->getElementType();"}}
},
},
["err_builtin_matrix_scalar_unsigned_arg"]={
["err_builtin_matrix_scalar_unsigned_arg"]={
[f]="A argument must be a constant unsigned integer expression",
[f]="A argument must be a constant unsigned integer expression",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 argument must be a constant unsigned integer expression",
[g]="%0 argument must be a constant unsigned integer expression",
[c]=m,
[i]=m,
[b]="(.*?) argument must be a constant unsigned integer expression",
[j]="(.*?) argument must be a constant unsigned integer expression",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={G,1582847864,I}
[d]={T,1582847864,U},
[k]={{s,16770,"// Get and verify the matrix dimensions.\nstatic std::optional<unsigned> getAndVerifyMatrixDimension(Expr *Expr, StringRef Name, Sema &S) {\n  if (!Value) {\n    S.Diag(Expr->getBeginLoc(), diag::err_builtin_matrix_scalar_unsigned_arg) << Name;"}}
},
},
["err_builtin_matrix_store_to_const"]={
["err_builtin_matrix_store_to_const"]={
[f]="cannot store matrix to read-only pointer",
[f]="cannot store matrix to read-only pointer",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot store matrix to read-only pointer",
[g]="cannot store matrix to read-only pointer",
[c]=m,
[i]=m,
[b]="cannot store matrix to read\\-only pointer",
[j]="cannot store matrix to read\\-only pointer",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={G,1582847864,I}
[d]={T,1582847864,U},
[k]={{s,16938,"ExprResult Sema::SemaBuiltinMatrixColumnMajorStore(CallExpr *TheCall, ExprResult CallResult) {\n  if (!PtrTy) {\n  } else {\n    if (ElementTy.isConstQualified()) {\n      Diag(PtrExpr->getBeginLoc(), diag::err_builtin_matrix_store_to_const);"}}
},
},
["err_builtin_matrix_stride_too_small"]={
["err_builtin_matrix_stride_too_small"]={
[f]="stride must be greater or equal to the number of rows",
[f]="stride must be greater or equal to the number of rows",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="stride must be greater or equal to the number of rows",
[i]=m,
[j]="stride must be greater or equal to the number of rows",
[j]="stride must be greater or equal to the number of rows",
[c]=m,
[b]=a,
[b]="stride must be greater or equal to the number of rows",
[i]=a,
[h]=a,
[h]=a,
[g]={G,1582847864,I}
[d]={T,1582847864,U},
[k]={{s,16876,"ExprResult Sema::SemaBuiltinMatrixColumnMajorLoad(CallExpr *TheCall, ExprResult CallResult) {\n  if (MaybeRows) {\n    if (std::optional<llvm::APSInt> Value = StrideExpr->getIntegerConstantExpr(Context)) {\n      if (Stride < *MaybeRows) {\n        Diag(StrideExpr->getBeginLoc(), diag::err_builtin_matrix_stride_too_small);"},{s,16967,"ExprResult Sema::SemaBuiltinMatrixColumnMajorStore(CallExpr *TheCall, ExprResult CallResult) {\n  // Check stride argument.\n  if (MatrixTy) {\n    if (std::optional<llvm::APSInt> Value = StrideExpr->getIntegerConstantExpr(Context)) {\n      if (Stride < MatrixTy->getNumRows()) {\n        Diag(StrideExpr->getBeginLoc(), diag::err_builtin_matrix_stride_too_small);"}}
},
},
["err_builtin_move_forward_unsupported"]={
["err_builtin_move_forward_unsupported"]={
[f]="unsupported signature for A",
[f]="unsupported signature for A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="unsupported signature for %q0",
[g]="unsupported signature for %q0",
[c]=m,
[i]=m,
[b]="unsupported signature for (.*?)",
[j]="unsupported signature for (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={rb,1620530452,sb}
[d]={"cb08f4aa4467",1620530452,"Support warn_unused_result on typedefs"},
[k]={{s,2226,"#include \"clang/Basic/Builtins.def\"\n  case Builtin::BIas_const: {\n    if (!(Param->isReferenceType() && (ReturnsPointer ? Result->isAnyPointerType() : Result->isReferenceType()) && Context.hasSameUnqualifiedType(Param->getPointeeType(), Result->getPointeeType()))) {\n      Diag(TheCall->getBeginLoc(), diag::err_builtin_move_forward_unsupported) << FDecl;"}}
},
},
["err_builtin_needs_feature"]={
["err_builtin_needs_feature"]={
[f]="A needs target feature B",
[f]="A needs target feature B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 needs target feature %1",
[g]="%0 needs target feature %1",
[c]=m,
[i]=m,
[b]="(.*?) needs target feature (.*?)",
[j]="(.*?) needs target feature (.*?)",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={"15709991d09d",1444952831,"Add an error when calling a builtin that requires features that don\'t"}
[d]={"15709991d09d",1444952831,"Add an error when calling a builtin that requires features that don\'t"},
[k]={{"clang/lib/CodeGen/CodeGenFunction.cpp",2315,"// Emits an error if we don\'t have a valid set of target features for the\n// called function.\nvoid CodeGenFunction::checkTargetFeatures(SourceLocation Loc, const FunctionDecl *TargetDecl) {\n  if (BuiltinID) {\n    if (!Builtin::evaluateRequiredTargetFeatures(FeatureList, CallerFeatureMap)) {\n      CGM.getDiags().Report(Loc, diag::err_builtin_needs_feature) << TargetDecl->getDeclName() << FeatureList;"}}
},
},
["err_builtin_operator_new_delete_not_usual"]={
["err_builtin_operator_new_delete_not_usual"]={
[f]="call to \'...\' selects non-usual ... function",
[f]="call to \'...\' selects non-usual ... function",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="call to \'%select{__builtin_operator_new|__builtin_operator_delete}0\' selects non-usual %select{allocation|deallocation}0 function",
[g]="call to \'%select{__builtin_operator_new|__builtin_operator_delete}0\' selects non-usual %select{allocation|deallocation}0 function",
[c]=m,
[i]=m,
[b]="call to \'(?:__builtin_operator_new|__builtin_operator_delete)\' selects non\\-usual (?:allocation|deallocation) function",
[j]="call to \'(?:__builtin_operator_new|__builtin_operator_delete)\' selects non\\-usual (?:allocation|deallocation) function",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"fa752f23cc20",1521659988,"[Builtins] Overload __builtin_operator_new/delete to allow forwarding to usual allocation/deallocati..."}
[d]={"fa752f23cc20",1521659988,"[Builtins] Overload __builtin_operator_new/delete to allow forwarding to usual allocation/deallocati..."},
[k]={{x,3278,"static bool resolveBuiltinNewDeleteOverload(Sema &S, CallExpr *TheCall, bool IsDelete, FunctionDecl *&Operator) {\n  case OR_Success: {\n    if (!FnDecl->isReplaceableGlobalAllocationFunction()) {\n      S.Diag(R.getNameLoc(), diag::err_builtin_operator_new_delete_not_usual) << (IsDelete ? 1 : 0) << Range;"}}
},
},
["err_builtin_pass_in_regs_non_class"]={
["err_builtin_pass_in_regs_non_class"]={
[f]="argument A is not an unqualified class type",
[f]="argument A is not an unqualified class type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="argument %0 is not an unqualified class type",
[g]="argument %0 is not an unqualified class type",
[c]=m,
[i]=m,
[b]="argument (.*?) is not an unqualified class type",
[j]="argument (.*?) is not an unqualified class type",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={w,1625925174,v}
[d]={N,1625925174,M},
[k]={{x,4626,"static bool EvaluateUnaryTypeTrait(Sema &Self, TypeTrait UTT, SourceLocation KeyLoc, QualType T) {\n  case UTT_CanPassInRegs:\n    Self.Diag(KeyLoc, diag::err_builtin_pass_in_regs_non_class) << T;"}}
},
},
["err_builtin_redeclare"]={
["err_builtin_redeclare"]={
[f]="cannot redeclare builtin function A",
[f]="cannot redeclare builtin function A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot redeclare builtin function %0",
[g]="cannot redeclare builtin function %0",
[c]=m,
[i]=m,
[b]="cannot redeclare builtin function (.*?)",
[j]="cannot redeclare builtin function (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"41af97137572",1523914208,"Limit types of builtins that can be redeclared."}
[d]={"41af97137572",1523914208,"Limit types of builtins that can be redeclared."},
[k]={{q,3307,"/// MergeFunctionDecl - We just parsed a function \'New\' from\n/// declarator D which has the same name and scope as a previous\n/// declaration \'Old\'.  Figure out how to resolve this situation,\n/// merging decls or emitting diagnostics as appropriate.\n///\n/// In C++, New and Old must be declarations that are not\n/// overloaded. Use IsOverload to determine whether New and Old are\n/// overloaded, and to select the Old declaration that New should be\n/// merged with.\n///\n/// Returns true if there was an error, false otherwise.\nbool Sema::MergeFunctionDecl(FunctionDecl *New, NamedDecl *&OldD, Scope *S, bool MergeTypeWithOld, bool NewDeclIsDefn) {\n  // Disallow redeclaration of some builtins.\n  if (!getASTContext().canBuiltinBeRedeclared(Old)) {\n    Diag(New->getLocation(), diag::err_builtin_redeclare) << Old->getDeclName();"}}
},
},
["err_builtin_requires_language"]={
["err_builtin_requires_language"]={
[f]="\'A\' is only available in B",
[f]="\'A\' is only available in B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'%0\' is only available in %1",
[g]="\'%0\' is only available in %1",
[c]=m,
[i]=m,
[b]="\'(.*?)\' is only available in (.*?)",
[j]="\'(.*?)\' is only available in (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"760520bcb78d",1401838064,"Add __builtin_operator_new and __builtin_operator_delete, which act like calls"}
[d]={"760520bcb78d",1401838064,"Add __builtin_operator_new and __builtin_operator_delete, which act like calls"},
[k]={{x,3306,"ExprResult Sema::SemaBuiltinOperatorNewDeleteOverloaded(ExprResult TheCallResult, bool IsDelete) {\n  if (!getLangOpts().CPlusPlus) {\n    Diag(TheCall->getExprLoc(), diag::err_builtin_requires_language) << (IsDelete ? \"__builtin_operator_delete\" : \"__builtin_operator_new\") << \"C++\";"}}
},
},
["err_builtin_setjmp_unsupported"]={
["err_builtin_setjmp_unsupported"]={
[f]="__builtin_setjmp is not supported for the current target",
[f]="__builtin_setjmp is not supported for the current target",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="__builtin_setjmp is not supported for the current target",
[i]=m,
[j]="__builtin_setjmp is not supported for the current target",
[j]="__builtin_setjmp is not supported for the current target",
[c]=m,
[b]=a,
[b]="__builtin_setjmp is not supported for the current target",
[h]=o,
[i]=a,
[d]={"27173288c296",1426117592,"Under duress, move check for target support of __builtin_setjmp/"},
[h]=n,
[k]={{s,8675,"/// SemaBuiltinSetjmp - Handle __builtin_setjmp(void *env[5]).\n/// This checks that the target supports __builtin_setjmp.\nbool Sema::SemaBuiltinSetjmp(CallExpr *TheCall) {\n  if (!Context.getTargetInfo().hasSjLjLowering())\n    return Diag(TheCall->getBeginLoc(), diag::err_builtin_setjmp_unsupported) << SourceRange(TheCall->getBeginLoc(), TheCall->getEndLoc());"}}
[g]={"27173288c296",1426117592,"Under duress, move check for target support of __builtin_setjmp/"}
},
},
["err_builtin_target_unsupported"]={
["err_builtin_target_unsupported"]={
[f]="builtin is not supported on this target",
[f]="builtin is not supported on this target",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="builtin is not supported on this target",
[i]=m,
[j]="builtin is not supported on this target",
[j]="builtin is not supported on this target",
[c]=m,
[b]=a,
[b]="builtin is not supported on this target",
[h]=o,
[i]=a,
[d]={"aa46ed927860",1528407544,"[MS] Re-add support for the ARM interlocked bittest intrinscs"},
[h]=n,
[k]={{s,1715,"// Emit an error and return true if the current object format type is in the\n// list of unsupported types.\nstatic bool CheckBuiltinTargetNotInUnsupported(Sema &S, unsigned BuiltinID, CallExpr *TheCall, ArrayRef<llvm::Triple::ObjectFormatType> UnsupportedObjectFormatTypes) {\n  if (llvm::is_contained(UnsupportedObjectFormatTypes, CurObjFormat)) {\n    S.Diag(TheCall->getBeginLoc(), diag::err_builtin_target_unsupported) << TheCall->getSourceRange();"},{s,1727,"// Emit an error and return true if the current architecture is not in the list\n// of supported architectures.\nstatic bool CheckBuiltinTargetInSupported(Sema &S, unsigned BuiltinID, CallExpr *TheCall, ArrayRef<llvm::Triple::ArchType> SupportedArchs) {\n  S.Diag(TheCall->getBeginLoc(), diag::err_builtin_target_unsupported) << TheCall->getSourceRange();"},{s,8019,"/// SemaBuiltinArithmeticFence - Handle __arithmetic_fence.\nbool Sema::SemaBuiltinArithmeticFence(CallExpr *TheCall) {\n  if (!Context.getTargetInfo().checkArithmeticFenceSupported())\n    return Diag(TheCall->getBeginLoc(), diag::err_builtin_target_unsupported) << SourceRange(TheCall->getBeginLoc(), TheCall->getEndLoc());"}}
[g]={"aa46ed927860",1528407544,"[MS] Re-add support for the ARM interlocked bittest intrinscs"}
},
},
["err_builtin_x64_aarch64_only"]={
["err_builtin_x64_aarch64_only"]={
[f]="this builtin is only available on x86-64 and aarch64 targets",
[f]="this builtin is only available on x86-64 and aarch64 targets",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="this builtin is only available on x86-64 and aarch64 targets",
[g]="this builtin is only available on x86-64 and aarch64 targets",
[c]=m,
[i]=m,
[b]="this builtin is only available on x86\\-64 and aarch64 targets",
[j]="this builtin is only available on x86\\-64 and aarch64 targets",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"022e782e7576",1500324585,"[AArch64] Add support for __builtin_ms_va_list on aarch64"}
[d]={"022e782e7576",1500324585,"[AArch64] Add support for __builtin_ms_va_list on aarch64"},
[k]={{s,7575,"/// Check that the user is calling the appropriate va_start builtin for the\n/// target and calling convention.\nstatic bool checkVAStartABI(Sema &S, unsigned BuiltinID, Expr *Fn) {\n  if (IsMSVAStart)\n    return S.Diag(Fn->getBeginLoc(), diag::err_builtin_x64_aarch64_only);"}}
},
},
["err_c11_noreturn_misplaced"]={
["err_c11_noreturn_misplaced"]={
[f]="\'_Noreturn\' keyword must precede function declarator",
[f]="\'_Noreturn\' keyword must precede function declarator",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'_Noreturn\' keyword must precede function declarator",
[i]=m,
[j]="\'_Noreturn\' keyword must precede function declarator",
[j]="\'_Noreturn\' keyword must precede function declarator",
[c]=m,
[b]=a,
[b]="\'_Noreturn\' keyword must precede function declarator",
[h]=B,
[i]=a,
[d]={"99c464c3f377",1415653832,"Improve diagnostics if _Noreturn is placed after a function declarator. (This sometimes happens when..."},
[h]=o,
[k]={{D,1950,"/// ParseDeclGroup - Having concluded that this is either a function\n/// definition or a group of object declarations, actually parse the\n/// result.\nParser::DeclGroupPtrTy Parser::ParseDeclGroup(ParsingDeclSpec &DS, DeclaratorContext Context, ParsedAttributes &Attrs, SourceLocation *DeclEnd, ForRangeInit *FRI) {\n  if (D.isFunctionDeclarator()) {\n    // The _Noreturn keyword can\'t appear here, unlike the GNU noreturn\n    // attribute. If we find the keyword here, tell the user to put it\n    // at the start instead.\n    if (Tok.is(tok::kw__Noreturn)) {\n      Diag(Loc, diag::err_c11_noreturn_misplaced) << (Fixit ? FixItHint::CreateRemoval(Loc) : FixItHint()) << (Fixit ? FixItHint::CreateInsertion(D.getBeginLoc(), \"_Noreturn \") : FixItHint());"}}
[g]={"99c464c3f377",1415653832,"Improve diagnostics if _Noreturn is placed after a function declarator. (This sometimes happens when..."}
},
},
["err_c99_array_usage_cxx"]={
["err_c99_array_usage_cxx"]={
[f]="...array size ...is a C99 feature, not permitted in C++",
[f]="...array size ...is a C99 feature, not permitted in C++",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{qualifier in |static |}0array size %select{||\'[*] \'}0is a C99 feature, not permitted in C++",
[g]="%select{qualifier in |static |}0array size %select{||\'[*] \'}0is a C99 feature, not permitted in C++",
[c]=m,
[i]=m,
[b]="(?:qualifier in |static |)array size (?:||\'\\[\\*\\] \')is a C99 feature, not permitted in C\\+\\+",
[j]="(?:qualifier in |static |)array size (?:||\'\\[\\*\\] \')is a C99 feature, not permitted in C\\+\\+",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"73341c4e6319",1252628338,"Diagnose VLAs as an error in C++."}
[d]={"73341c4e6319",1252628338,"Diagnose VLAs as an error in C++."},
[k]={{r,2361,"/// Build an array type.\n///\n/// \\param T The type of each element in the array.\n///\n/// \\param ASM C99 array size modifier (e.g., \'*\', \'static\').\n///\n/// \\param ArraySize Expression describing the size of the array.\n///\n/// \\param Brackets The range from the opening \'[\' to the closing \']\'.\n///\n/// \\param Entity The name of the entity that involves the array\n/// type, if known.\n///\n/// \\returns A suitable array type, if there are no errors. Otherwise,\n/// returns a NULL type.\nQualType Sema::BuildArrayType(QualType T, ArrayType::ArraySizeModifier ASM, Expr *ArraySize, unsigned Quals, SourceRange Brackets, DeclarationName Entity) {\n  // If this is not C99, diagnose array size modifiers on non-VLAs.\n  if (!getLangOpts().C99 && !T->isVariableArrayType() && (ASM != ArrayType::Normal || Quals != 0)) {\n    Diag(Loc, getLangOpts().CPlusPlus ? diag::err_c99_array_usage_cxx : diag::ext_c99_array_usage) << ASM;"}}
},
},
["err_call_function_incomplete_return"]={
["err_call_function_incomplete_return"]={
[f]="calling A with incomplete return type B",
[f]="calling A with incomplete return type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="calling %0 with incomplete return type %1",
[g]="calling %0 with incomplete return type %1",
[c]=m,
[i]=m,
[b]="calling (.*?) with incomplete return type (.*?)",
[j]="calling (.*?) with incomplete return type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"7f84ed928721",1255132315,"Add CheckCallReturnType and start using it for regular call expressions. This will improve error mes..."}
[d]={"7f84ed928721",1255132315,"Add CheckCallReturnType and start using it for regular call expressions. This will improve error mes..."},
[k]={{y,18085,"bool Sema::CheckCallReturnType(QualType ReturnType, SourceLocation Loc, CallExpr *CE, FunctionDecl *FD) {\n  class CallReturnIncompleteDiagnoser : public TypeDiagnoser {\n    void diagnose(Sema &S, SourceLocation Loc, QualType T) override {\n      S.Diag(Loc, diag::err_call_function_incomplete_return) << CE->getSourceRange() << FD << T;"}}
},
},
["err_call_incomplete_argument"]={
["err_call_incomplete_argument"]={
[f]="argument type A is incomplete",
[f]="argument type A is incomplete",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="argument type %0 is incomplete",
[g]="argument type %0 is incomplete",
[c]=m,
[i]=m,
[b]="argument type (.*?) is incomplete",
[j]="argument type (.*?) is incomplete",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"3164fb15e286",1237759250,"Check that the return/argument types of calls are complete."}
[d]={"3164fb15e286",1237759250,"Check that the return/argument types of calls are complete."},
[k]={{y,957,"/// DefaultVariadicArgumentPromotion - Like DefaultArgumentPromotion, but\n/// will create a trap if the resulting type is not a POD type.\nExprResult Sema::DefaultVariadicArgumentPromotion(Expr *E, VariadicCallType CT, FunctionDecl *FDecl) {\n  if (!getLangOpts().CPlusPlus && RequireCompleteType(E->getExprLoc(), E->getType(), diag::err_call_incomplete_argument))"},{y,5666,"bool Sema::GatherArgumentsForCall(SourceLocation CallLoc, FunctionDecl *FDecl, const FunctionProtoType *Proto, unsigned FirstParam, ArrayRef<Expr *> Args, SmallVectorImpl<Expr *> &AllArgs, VariadicCallType CallType, bool AllowExplicit, bool IsListInitialization) {\n  // Continue to check argument types (even if we have too few/many args).\n  for (unsigned i = FirstParam; i < NumParams; i++) {\n    if (ArgIx < Args.size()) {\n      if (RequireCompleteType(Arg->getBeginLoc(), ProtoArgType, diag::err_call_incomplete_argument, Arg))"},{y,6536,"/// BuildResolvedCallExpr - Build a call to a resolved expression,\n/// i.e. an expression not of \\p OverloadTy.  The expression should\n/// unary-convert to an expression of function-pointer or\n/// block-pointer type.\n///\n/// \\param NDecl the declaration being called, if available\nExprResult Sema::BuildResolvedCallExpr(Expr *Fn, NamedDecl *NDecl, SourceLocation LParenLoc, ArrayRef<Expr *> Args, SourceLocation RParenLoc, Expr *Config, bool IsExecConfig, ADLCallKind UsesADL) {\n  if (Proto) {\n  } else {\n    // Promote the arguments (C99 6.5.2.2p6).\n    for (unsigned i = 0, e = Args.size(); i != e; i++) {\n      if (RequireCompleteType(Arg->getBeginLoc(), Arg->getType(), diag::err_call_incomplete_argument, Arg))"},{G,1511,"bool Sema::CheckMessageArgumentTypes(const Expr *Receiver, QualType ReceiverType, MultiExprArg Args, Selector Sel, ArrayRef<SourceLocation> SelectorLocs, ObjCMethodDecl *Method, bool isClassMessage, bool isSuperMessage, SourceLocation lbrac, SourceLocation rbrac, SourceRange RecRange, QualType &ReturnType, ExprValueKind &VK) {\n  for (unsigned i = 0; i < NumNamedArgs; i++) {\n    if (RequireCompleteType(argExpr->getSourceRange().getBegin(), paramType, diag::err_call_incomplete_argument, argExpr))"},{E,5822,"/// Make a (potentially elidable) temporary copy of the object\n/// provided by the given initializer by calling the appropriate copy\n/// constructor.\n///\n/// \\param S The Sema object used for type-checking.\n///\n/// \\param T The type of the temporary object, which must either be\n/// the type of the initializer expression or a superclass thereof.\n///\n/// \\param Entity The entity being initialized.\n///\n/// \\param CurInit The initializer expression.\n///\n/// \\param IsExtraneousCopy Whether this is an \"extraneous\" copy that\n/// is permitted in C++03 (but not C++0x) when binding a reference to\n/// an rvalue.\n///\n/// \\returns An expression that copies the initializer expression into\n/// a temporary object, or an error expression if a copy could not be\n/// created.\nstatic ExprResult CopyObject(Sema &S, QualType T, const InitializedEntity &Entity, ExprResult CurInit, bool IsExtraneousCopy) {\n  if (IsExtraneousCopy) {\n    // Instantiate the default arguments of any extra parameters in\n    // the selected copy constructor, as if we were going to create a\n    // proper call to the copy constructor.\n    for (unsigned I = 1, N = Constructor->getNumParams(); I != N; ++I) {\n      if (S.RequireCompleteType(Loc, Parm->getType(), diag::err_call_incomplete_argument))"}}
},
},
["err_call_incomplete_return"]={
["err_call_incomplete_return"]={
[f]="calling function with incomplete return type A",
[f]="calling function with incomplete return type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="calling function with incomplete return type %0",
[g]="calling function with incomplete return type %0",
[c]=m,
[i]=m,
[b]="calling function with incomplete return type (.*?)",
[j]="calling function with incomplete return type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"3164fb15e286",1237759250,"Check that the return/argument types of calls are complete."}
[d]={"3164fb15e286",1237759250,"Check that the return/argument types of calls are complete."},
[k]={{y,18081,"bool Sema::CheckCallReturnType(QualType ReturnType, SourceLocation Loc, CallExpr *CE, FunctionDecl *FD) {\n  class CallReturnIncompleteDiagnoser : public TypeDiagnoser {\n    void diagnose(Sema &S, SourceLocation Loc, QualType T) override {\n      if (!FD) {\n        S.Diag(Loc, diag::err_call_incomplete_return) << T << CE->getSourceRange();"}}
},
},
["err_callback_attribute_argument_unknown"]={
["err_callback_attribute_argument_unknown"]={
[f]="\'callback\' attribute argument A is not a known function parameter",
[f]="\'callback\' attribute argument A is not a known function parameter",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'callback\' attribute argument %0 is not a known function parameter",
[g]="\'callback\' attribute argument %0 is not a known function parameter",
[c]=m,
[i]=m,
[b]="\'callback\' attribute argument (.*?) is not a known function parameter",
[j]="\'callback\' attribute argument (.*?) is not a known function parameter",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Mb,1547876214,Ub}
[d]={nb,1547876214,mb},
[k]={{p,3570,"/// Handle __attribute__((callback(CalleeIdx, PayloadIdx0, ...))) attributes.\nstatic void handleCallbackAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  for (unsigned I = 0, E = AL.getNumArgs(); I < E; ++I) {\n    if (AL.isArgIdent(I)) {\n      if (It == UnknownName) {\n        S.Diag(AL.getLoc(), diag::err_callback_attribute_argument_unknown) << IdLoc->Ident << IdLoc->Loc;"}}
},
},
["err_callback_attribute_invalid_callee"]={
["err_callback_attribute_invalid_callee"]={
[f]="\'callback\' attribute specifies invalid callback callee",
[f]="\'callback\' attribute specifies invalid callback callee",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'callback\' attribute specifies invalid callback callee",
[i]=m,
[j]="\'callback\' attribute specifies invalid callback callee",
[j]="\'callback\' attribute specifies invalid callback callee",
[c]=m,
[b]=a,
[b]="\'callback\' attribute specifies invalid callback callee",
[h]=o,
[i]=a,
[d]={nb,1547876214,mb},
[h]=n,
[k]={{p,3614,"/// Handle __attribute__((callback(CalleeIdx, PayloadIdx0, ...))) attributes.\nstatic void handleCallbackAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n // Check if the callee index is proper, thus not \"this\" and not \"unknown\".\n  // This means the \"CalleeIdx\" has to be non-negative if \"HasImplicitThisParam\"\n  // is false and positive if \"HasImplicitThisParam\" is true.\n  if (CalleeIdx < (int)HasImplicitThisParam) {\n    S.Diag(AL.getLoc(), diag::err_callback_attribute_invalid_callee) << AL.getRange();"}}
[g]={Mb,1547876214,Ub}
},
},
["err_callback_attribute_multiple"]={
["err_callback_attribute_multiple"]={
[f]="multiple \'callback\' attributes specified",
[f]="multiple \'callback\' attributes specified",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="multiple \'callback\' attributes specified",
[i]=m,
[j]="multiple \'callback\' attributes specified",
[j]="multiple \'callback\' attributes specified",
[c]=m,
[b]=a,
[b]="multiple \'callback\' attributes specified",
[h]=o,
[i]=a,
[d]={nb,1547876214,mb},
[h]=n,
[k]={{p,3653,"/// Handle __attribute__((callback(CalleeIdx, PayloadIdx0, ...))) attributes.\nstatic void handleCallbackAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // Do not allow multiple callback attributes.\n  if (D->hasAttr<CallbackAttr>()) {\n    S.Diag(AL.getLoc(), diag::err_callback_attribute_multiple) << AL.getRange();"}}
[g]={Mb,1547876214,Ub}
},
},
["err_callback_attribute_no_callee"]={
["err_callback_attribute_no_callee"]={
[f]="\'callback\' attribute specifies no callback callee",
[f]="\'callback\' attribute specifies no callback callee",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'callback\' attribute specifies no callback callee",
[i]=m,
[j]="\'callback\' attribute specifies no callback callee",
[j]="\'callback\' attribute specifies no callback callee",
[c]=m,
[b]=a,
[b]="\'callback\' attribute specifies no callback callee",
[h]=o,
[i]=a,
[d]={nb,1547876214,mb},
[h]=n,
[k]={{p,3540,"/// Handle __attribute__((callback(CalleeIdx, PayloadIdx0, ...))) attributes.\nstatic void handleCallbackAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  // The index that identifies the callback callee is mandatory.\n if (AL.getNumArgs() == 0) {\n    S.Diag(AL.getLoc(), diag::err_callback_attribute_no_callee) << AL.getRange();"}}
[g]={Mb,1547876214,Ub}
},
},
["err_callback_callee_is_variadic"]={
["err_callback_callee_is_variadic"]={
[f]="\'callback\' attribute callee may not be variadic",
[f]="\'callback\' attribute callee may not be variadic",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'callback\' attribute callee may not be variadic",
[i]=m,
[j]="\'callback\' attribute callee may not be variadic",
[j]="\'callback\' attribute callee may not be variadic",
[c]=m,
[b]=a,
[b]="\'callback\' attribute callee may not be variadic",
[h]=o,
[i]=a,
[d]={nb,1547876214,mb},
[h]=n,
[k]={{p,3647,"/// Handle __attribute__((callback(CalleeIdx, PayloadIdx0, ...))) attributes.\nstatic void handleCallbackAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (CalleeFnProtoType->isVariadic()) {\n    S.Diag(AL.getLoc(), diag::err_callback_callee_is_variadic) << AL.getRange();"}}
[g]={Mb,1547876214,Ub}
},
},
["err_callback_callee_no_function_type"]={
["err_callback_callee_no_function_type"]={
[f]="\'callback\' attribute callee does not have function type",
[f]="\'callback\' attribute callee does not have function type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'callback\' attribute callee does not have function type",
[i]=m,
[j]="\'callback\' attribute callee does not have function type",
[j]="\'callback\' attribute callee does not have function type",
[c]=m,
[b]=a,
[b]="\'callback\' attribute callee does not have function type",
[h]=o,
[i]=a,
[d]={nb,1547876214,mb},
[h]=n,
[k]={{p,3622,"/// Handle __attribute__((callback(CalleeIdx, PayloadIdx0, ...))) attributes.\nstatic void handleCallbackAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!CalleeType || !CalleeType->isFunctionPointerType()) {\n   S.Diag(AL.getLoc(), diag::err_callback_callee_no_function_type) << AL.getRange();"},{p,3632,"/// Handle __attribute__((callback(CalleeIdx, PayloadIdx0, ...))) attributes.\nstatic void handleCallbackAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!CalleeFnProtoType) {\n    S.Diag(AL.getLoc(), diag::err_callback_callee_no_function_type) << AL.getRange();"}}
[g]={Mb,1547876214,Ub}
},
},
["err_callback_implicit_this_not_available"]={
["err_callback_implicit_this_not_available"]={
[f]="\'callback\' argument at position A references unavailable implicit \'this\'",
[f]="\'callback\' argument at position A references unavailable implicit \'this\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'callback\' argument at position %0 references unavailable implicit \'this\'",
[g]="\'callback\' argument at position %0 references unavailable implicit \'this\'",
[c]=m,
[i]=m,
[b]="\'callback\' argument at position (.*?) references unavailable implicit \'this\'",
[j]="\'callback\' argument at position (.*?) references unavailable implicit \'this\'",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Mb,1547876214,Ub}
[d]={nb,1547876214,mb},
[k]={{p,3597,"/// Handle __attribute__((callback(CalleeIdx, PayloadIdx0, ...))) attributes.\nstatic void handleCallbackAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  for (unsigned I = 0, E = AL.getNumArgs(); I < E; ++I) {\n    if (ArgIdx == 0 && !HasImplicitThisParam) {\n      S.Diag(AL.getLoc(), diag::err_callback_implicit_this_not_available) << (I + 1) << SR;"}}
},
},
["err_called_once_attribute_wrong_type"]={
["err_called_once_attribute_wrong_type"]={
[f]="\'called_once\' attribute only applies to function-like parameters",
[f]="\'called_once\' attribute only applies to function-like parameters",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'called_once\' attribute only applies to function-like parameters",
[g]="\'called_once\' attribute only applies to function-like parameters",
[c]=m,
[i]=m,
[b]="\'called_once\' attribute only applies to function\\-like parameters",
[j]="\'called_once\' attribute only applies to function\\-like parameters",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Z,1590001902,ab}
[d]={fb,1590001902,eb},
[k]={{p,3673,"/// Handle \'called_once\' attribute.\nstatic void handleCalledOnceAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (!isFunctionLike(*T)) {\n    S.Diag(AL.getLoc(), diag::err_called_once_attribute_wrong_type);"}}
},
},
["err_cannot_find_suitable_accessor"]={
["err_cannot_find_suitable_accessor"]={
[f]="cannot find suitable ... for property A",
[f]="cannot find suitable ... for property A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot find suitable %select{getter|setter}0 for property %1",
[g]="cannot find suitable %select{getter|setter}0 for property %1",
[c]=m,
[i]=m,
[b]="cannot find suitable (?:getter|setter) for property (.*?)",
[j]="cannot find suitable (?:getter|setter) for property (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={P,1480718311,O}
[d]={ub,1480718311,yb},
[k]={{"clang/lib/Sema/SemaPseudoObject.cpp",1213,"ExprResult MSPropertyOpBuilder::buildGet() {\n  if (GetterExpr.isInvalid()) {\n    S.Diag(RefExpr->getMemberLoc(), diag::err_cannot_find_suitable_accessor) << 0 /* getter */"},{"clang/lib/Sema/SemaPseudoObject.cpp",1234,"ExprResult MSPropertyOpBuilder::buildSet(Expr *op, SourceLocation sl, bool captureSetValueAsResult) {\n  if (SetterExpr.isInvalid()) {\n    S.Diag(RefExpr->getMemberLoc(), diag::err_cannot_find_suitable_accessor) << 1 /* setter */"}}
},
},
["err_cannot_form_pointer_to_member_of_reference_type"]={
["err_cannot_form_pointer_to_member_of_reference_type"]={
[f]="cannot form a pointer-to-member to member A of reference type B",
[f]="cannot form a pointer-to-member to member A of reference type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot form a pointer-to-member to member %0 of reference type %1",
[g]="cannot form a pointer-to-member to member %0 of reference type %1",
[c]=m,
[i]=m,
[b]="cannot form a pointer\\-to\\-member to member (.*?) of reference type (.*?)",
[j]="cannot form a pointer\\-to\\-member to member (.*?) of reference type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"0b675f5ad5b6",1247089558,"It\'s not allowed to form member pointers to members that have reference type. Add a test for this an..."}
[d]={"0b675f5ad5b6",1247089558,"It\'s not allowed to form member pointers to members that have reference type. Add a test for this an..."},
[k]={{y,12963,"/// CheckAddressOfOperand - The operand of & must be either a function\n/// designator or an lvalue designating an object. If it is an lvalue, the\n/// object cannot be declared with storage class register or be a bit field.\n/// Note: The usual conversions are *not* applied to the operand of the &\n/// operator (C99 6.3.2.1p[2-4]), and its result is never an lvalue.\n/// In C++, the operand might be an overloaded function name, in which case\n/// we allow the \'&\' but retain the overloaded-function type.\nQualType Sema::CheckAddressOfOperand(ExprResult &OrigOp, SourceLocation OpLoc) {\n  if (lval == Expr::LV_ClassTemporary || lval == Expr::LV_ArrayTemporary) {\n  } else if (isa<ObjCSelectorExpr>(op)) {\n  } else if (lval == Expr::LV_MemberFunction) {\n  } else if (lval != Expr::LV_Valid && lval != Expr::LV_IncompleteVoidType) {\n  } else if (op->getObjectKind() == OK_BitField) { // C99 6.5.3.2p1\n  } else if (op->getObjectKind() == OK_VectorComponent) {\n  } else if (op->getObjectKind() == OK_MatrixComponent) {\n  } else if (dcl) { // C99 6.5.3.2p1\n    // We have an lvalue with a decl. Make sure the decl is not declared\n    // with the register storage-class specifier.\n    if (const VarDecl *vd = dyn_cast<VarDecl>(dcl)) {\n    } else if (isa<MSPropertyDecl>(dcl)) {\n    } else if (isa<FunctionTemplateDecl>(dcl)) {\n    } else if (isa<FieldDecl>(dcl) || isa<IndirectFieldDecl>(dcl)) {\n      // Okay: we can take the address of a field.\n      // Could be a pointer to member, though, if there is an explicit\n      // scope qualifier for the class.\n      if (isa<DeclRefExpr>(op) && cast<DeclRefExpr>(op)->getQualifier()) {\n        if (Ctx && Ctx->isRecord()) {\n          if (dcl->getType()->isReferenceType()) {\n            Diag(OpLoc, diag::err_cannot_form_pointer_to_member_of_reference_type) << dcl->getDeclName() << dcl->getType();"}}
},
},
["err_cannot_open_file"]={
["err_cannot_open_file"]={
[f]="cannot open file \'A\': B",
[f]="cannot open file \'A\': B",
[d]=y,
[c]=Fb,
[e]=z,
[e]=Eb,
[j]="cannot open file \'%0\': %1",
[g]="cannot open file \'%0\': %1",
[c]=A,
[i]=Bb,
[b]="cannot open file \'(.*?)\'\\: (.*?)",
[j]="cannot open file \'(.*?)\'\\: (.*?)",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={"802b77601e50",1268693692,"Introduce a new BufferResult class to act as the return type of"}
[d]={"802b77601e50",1268693692,"Introduce a new BufferResult class to act as the return type of"},
[k]={{"clang/lib/Basic/SourceManager.cpp",105,"std::optional<llvm::MemoryBufferRef> ContentCache::getBufferOrNone(DiagnosticsEngine &Diag, FileManager &FM, SourceLocation Loc) const {\n  // If we were unable to open the file, then we are in an inconsistent\n  // situation where the content cache referenced a file which no longer\n  // exists. Most likely, we were using a stat cache with an invalid entry but\n  // the file could also have been removed during processing. Since we can\'t\n  // really deal with this situation, just create an empty buffer.\n  if (!BufferOrError) {\n    if (Diag.isDiagnosticInFlight())\n      Diag.SetDelayedDiagnostic(diag::err_cannot_open_file, ContentsEntry->getName(), BufferOrError.getError().message());"},{"clang/lib/Basic/SourceManager.cpp",107,"std::optional<llvm::MemoryBufferRef> ContentCache::getBufferOrNone(DiagnosticsEngine &Diag, FileManager &FM, SourceLocation Loc) const {\n  // If we were unable to open the file, then we are in an inconsistent\n  // situation where the content cache referenced a file which no longer\n  // exists. Most likely, we were using a stat cache with an invalid entry but\n  // the file could also have been removed during processing. Since we can\'t\n  // really deal with this situation, just create an empty buffer.\n  if (!BufferOrError) {\n    if (Diag.isDiagnosticInFlight())\n    else\n      Diag.Report(Loc, diag::err_cannot_open_file) << ContentsEntry->getName() << BufferOrError.getError().message();"},{"clang/lib/CodeGen/CGCUDANV.cpp",590,"/// Creates a global constructor function for the module:\n///\n/// For CUDA:\n/// \\code\n/// void __cuda_module_ctor() {\n///    Handle = __cudaRegisterFatBinary(GpuBinaryBlob);\n///    __cuda_register_globals(Handle);\n/// }\n/// \\endcode\n///\n/// For HIP:\n/// \\code\n/// void __hip_module_ctor() {\n///    if (__hip_gpubin_handle == 0) {\n///        __hip_gpubin_handle  = __hipRegisterFatBinary(GpuBinaryBlob);\n///        __hip_register_globals(__hip_gpubin_handle);\n///    }\n/// }\n/// \\endcode\nllvm::Function *CGNVCUDARuntime::makeModuleCtorFunction() {\n  if (!CudaGpuBinaryFileName.empty()) {\n    if (std::error_code EC = CudaGpuBinaryOrErr.getError()) {\n      CGM.getDiags().Report(diag::err_cannot_open_file) << CudaGpuBinaryFileName << EC.message();"},{"clang/lib/CodeGen/CodeGenAction.cpp",80,"static void reportOptRecordError(Error E, DiagnosticsEngine &Diags, const CodeGenOptions &CodeGenOpts) {\n  handleAllErrors(\n      std::move(E), [&](const LLVMRemarkSetupFileError &E) { Diags.Report(diag::err_cannot_open_file) << CodeGenOpts.OptRecordFile << E.message(); }, [&](const LLVMRemarkSetupPatternError &E) { Diags.Report(diag::err_drv_optimization_remark_pattern) << E.message() << CodeGenOpts.OptRecordPasses; }, [&](const LLVMRemarkSetupFormatError &E) { Diags.Report(diag::err_drv_optimization_remark_format) << CodeGenOpts.OptRecordFormat; });"},{"clang/lib/CodeGen/CodeGenAction.cpp",847,"bool CodeGenAction::loadLinkModules(CompilerInstance &CI) {\n  for (const CodeGenOptions::BitcodeFileToLink &F : CI.getCodeGenOpts().LinkBitcodeFiles) {\n    if (!BCBuf) {\n      CI.getDiagnostics().Report(diag::err_cannot_open_file) << F.Filename << BCBuf.getError().message();"},{"clang/lib/CodeGen/CodeGenAction.cpp",854,"bool CodeGenAction::loadLinkModules(CompilerInstance &CI) {\n  for (const CodeGenOptions::BitcodeFileToLink &F : CI.getCodeGenOpts().LinkBitcodeFiles) {\n    if (!ModuleOrErr) {\n      handleAllErrors(ModuleOrErr.takeError(), [&](ErrorInfoBase &EIB) { CI.getDiagnostics().Report(diag::err_cannot_open_file) << F.Filename << EIB.message(); });"},{"clang/lib/CodeGen/CodeGenModule.cpp",6580,"void CodeGenModule::printPostfixForExternalizedDecl(llvm::raw_ostream &OS, const Decl *D) const {\n  // If the CUID is not specified we try to generate a unique postfix.\n  if (getLangOpts().CUID.empty()) {\n    if (auto EC = llvm::sys::fs::getUniqueID(PLoc.getFilename(), ID)) {\n      if (auto EC = llvm::sys::fs::getUniqueID(PLoc.getFilename(), ID))\n        SM.getDiagnostics().Report(diag::err_cannot_open_file) << PLoc.getFilename() << EC.message();"},{"clang/lib/Lex/HeaderSearch.cpp",384,"OptionalFileEntryRef HeaderSearch::getFileAndSuggestModule(StringRef FileName, SourceLocation IncludeLoc, const DirectoryEntry *Dir, bool IsSystemHeaderDir, Module *RequestingModule, ModuleMap::KnownHeader *SuggestedModule, bool OpenFile /*=true*/, bool CacheFailures /*=true*/) {\n  if (!File) {\n    if (EC != llvm::errc::no_such_file_or_directory && EC != llvm::errc::invalid_argument && EC != llvm::errc::is_a_directory && EC != llvm::errc::not_a_directory) {\n      Diags.Report(IncludeLoc, diag::err_cannot_open_file) << FileName << EC.message();"},{"clang/unittests/Basic/DiagnosticTest.cpp",42,"// Check that DiagnosticErrorTrap works with SuppressAllDiagnostics.\nTEST(DiagnosticTest, suppressAndTrap) {\n  {\n    Diags.Report(diag::err_cannot_open_file) << \"file\""},{"clang/unittests/Basic/DiagnosticTest.cpp",66,"// Check that FatalsAsError works as intended\nTEST(DiagnosticTest, fatalsAsError) {\n  for (unsigned FatalsAsError = 0; FatalsAsError != 2; ++FatalsAsError) {\n    Diags.Report(diag::err_cannot_open_file) << \"file\""},{"clang/unittests/Basic/DiagnosticTest.cpp",111,"TEST(DiagnosticTest, diagnosticError) {\n  llvm::Expected<std::pair<int, int>> Value = DiagnosticError::create(SourceLocation(), PartialDiagnostic(diag::err_cannot_open_file, Alloc) << \"file\""},{"clang/unittests/Basic/DiagnosticTest.cpp",119,"TEST(DiagnosticTest, diagnosticError) {\n  EXPECT_EQ(ErrDiag->second.getDiagID(), diag::err_cannot_open_file);"}}
},
},
["err_cannot_pass_non_trivial_c_struct_to_vararg"]={
["err_cannot_pass_non_trivial_c_struct_to_vararg"]={
[f]="cannot pass non-trivial C object of type A by value to variadic ...",
[f]="cannot pass non-trivial C object of type A by value to variadic ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot pass non-trivial C object of type %0 by value to variadic %select{function|block|method|constructor}1",
[g]="cannot pass non-trivial C object of type %0 by value to variadic %select{function|block|method|constructor}1",
[c]=m,
[i]=m,
[b]="cannot pass non\\-trivial C object of type (.*?) by value to variadic (?:function|block|method|constructor)",
[j]="cannot pass non\\-trivial C object of type (.*?) by value to variadic (?:function|block|method|constructor)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"7275da0f2ee2",1519802155,"[ObjC] Allow declaring __strong pointer fields in structs in Objective-C"}
[d]={"7275da0f2ee2",1519802155,"[ObjC] Allow declaring __strong pointer fields in structs in Objective-C"},
[k]={{y,897,"void Sema::checkVariadicArgument(const Expr *E, VariadicCallType CT) {\n  case VAK_Invalid:\n    if (Ty.isDestructedType() == QualType::DK_nontrivial_c_struct)\n      Diag(E->getBeginLoc(), diag::err_cannot_pass_non_trivial_c_struct_to_vararg) << Ty << CT;"}}
},
},
["err_cannot_pass_objc_interface_to_vararg"]={
["err_cannot_pass_objc_interface_to_vararg"]={
[f]="cannot pass object with interface type A by value through variadic ...",
[f]="cannot pass object with interface type A by value through variadic ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot pass object with interface type %0 by value through variadic %select{function|block|method|constructor}1",
[g]="cannot pass object with interface type %0 by value through variadic %select{function|block|method|constructor}1",
[c]=m,
[i]=m,
[b]="cannot pass object with interface type (.*?) by value through variadic (?:function|block|method|constructor)",
[j]="cannot pass object with interface type (.*?) by value through variadic (?:function|block|method|constructor)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"a8a7d0f37161",1239523880,"implement rdar://6780761, making sema reject some code that otherwise"}
[d]={"a8a7d0f37161",1239523880,"implement rdar://6780761, making sema reject some code that otherwise"},
[k]={{y,899,"void Sema::checkVariadicArgument(const Expr *E, VariadicCallType CT) {\n  case VAK_Invalid:\n    if (Ty.isDestructedType() == QualType::DK_nontrivial_c_struct)\n    else if (Ty->isObjCObjectType())\n      DiagRuntimeBehavior(E->getBeginLoc(), nullptr, PDiag(diag::err_cannot_pass_objc_interface_to_vararg) << Ty << CT);"}}
},
},
["err_cannot_pass_objc_interface_to_vararg_format"]={
["err_cannot_pass_objc_interface_to_vararg_format"]={
[f]="cannot pass object with interface type A by value to variadic ...; expected type from format string was B",
[f]="cannot pass object with interface type A by value to variadic ...; expected type from format string was B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot pass object with interface type %1 by value to variadic %select{function|block|method|constructor}2; expected type from format string was %3",
[g]="cannot pass object with interface type %1 by value to variadic %select{function|block|method|constructor}2; expected type from format string was %3",
[c]=m,
[i]=m,
[b]="cannot pass object with interface type (.*?) by value to variadic (?:function|block|method|constructor); expected type from format string was (.*?)",
[j]="cannot pass object with interface type (.*?) by value to variadic (?:function|block|method|constructor); expected type from format string was (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"3e0ec58c09eb",1342721423,"For varargs, diagnose passing ObjC objects by value like other non-POD types."}
[d]={"3e0ec58c09eb",1342721423,"For varargs, diagnose passing ObjC objects by value like other non-POD types."},
[k]={{s,10271,"bool CheckPrintfHandler::checkFormatExpr(const analyze_printf::PrintfSpecifier &FS, const char *StartSpecifier, unsigned SpecifierLen, const Expr *E) {\n  if (Success) {\n  } else {\n    case Sema::VAK_Invalid:\n      if (CallType == Sema::VariadicDoesNotApply)\n      else if (ExprTy->isObjCObjectType())\n        EmitFormatDiagnostic(S.PDiag(diag::err_cannot_pass_objc_interface_to_vararg_format) << S.getLangOpts().CPlusPlus11 << ExprTy << CallType << AT.getRepresentativeTypeName(S.Context) << CSR << E->getSourceRange(), E->getBeginLoc(), /*IsStringLocation*/ false, CSR);"}}
},
},
["err_cannot_pass_to_vararg"]={
["err_cannot_pass_to_vararg"]={
[f]="cannot pass ... to variadic ...",
[f]="cannot pass ... to variadic ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot pass %select{expression of type %1|initializer list}0 to variadic %select{function|block|method|constructor}2",
[g]="cannot pass %select{expression of type %1|initializer list}0 to variadic %select{function|block|method|constructor}2",
[c]=m,
[i]=m,
[b]="cannot pass (?:expression of type (.*?)|initializer list) to variadic (?:function|block|method|constructor)",
[j]="cannot pass (?:expression of type (.*?)|initializer list) to variadic (?:function|block|method|constructor)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"d7293d7fcb60",1375728583,"Implement C++\'s restrictions on the type of an expression passed to a vararg"}
[d]={"d7293d7fcb60",1375728583,"Implement C++\'s restrictions on the type of an expression passed to a vararg"},
[k]={{y,901,"void Sema::checkVariadicArgument(const Expr *E, VariadicCallType CT) {\n  case VAK_Invalid:\n    if (Ty.isDestructedType() == QualType::DK_nontrivial_c_struct)\n    else if (Ty->isObjCObjectType())\n    else\n      Diag(E->getBeginLoc(), diag::err_cannot_pass_to_vararg) << isa<InitListExpr>(E) << Ty << CT;"}}
},
},
["err_cannot_pass_to_vararg_format"]={
["err_cannot_pass_to_vararg_format"]={
[f]="cannot pass ... to variadic ...; expected type from format string was A",
[f]="cannot pass ... to variadic ...; expected type from format string was A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot pass %select{expression of type %1|initializer list}0 to variadic %select{function|block|method|constructor}2; expected type from format string was %3",
[g]="cannot pass %select{expression of type %1|initializer list}0 to variadic %select{function|block|method|constructor}2; expected type from format string was %3",
[c]=m,
[i]=m,
[b]="cannot pass (?:expression of type (.*?)|initializer list) to variadic (?:function|block|method|constructor); expected type from format string was (.*?)",
[j]="cannot pass (?:expression of type (.*?)|initializer list) to variadic (?:function|block|method|constructor); expected type from format string was (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"d7293d7fcb60",1375728583,"Implement C++\'s restrictions on the type of an expression passed to a vararg"}
[d]={"d7293d7fcb60",1375728583,"Implement C++\'s restrictions on the type of an expression passed to a vararg"},
[k]={{s,10275,"bool CheckPrintfHandler::checkFormatExpr(const analyze_printf::PrintfSpecifier &FS, const char *StartSpecifier, unsigned SpecifierLen, const Expr *E) {\n  if (Success) {\n  } else {\n    case Sema::VAK_Invalid:\n      if (CallType == Sema::VariadicDoesNotApply)\n      else if (ExprTy->isObjCObjectType())\n      else\n        S.Diag(E->getBeginLoc(), diag::err_cannot_pass_to_vararg_format) << isa<InitListExpr>(E) << ExprTy << CallType << AT.getRepresentativeTypeName(S.Context) << E->getSourceRange();"}}
},
},
["err_capture_bad_target"]={
["err_capture_bad_target"]={
[f]="capture host variable A by reference in device or host device lambda function",
[f]="capture host variable A by reference in device or host device lambda function",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="capture host variable %0 by reference in device or host device lambda function",
[g]="capture host variable %0 by reference in device or host device lambda function",
[c]=m,
[i]=m,
[b]="capture host variable (.*?) by reference in device or host device lambda function",
[j]="capture host variable (.*?) by reference in device or host device lambda function",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={G,1582847864,I}
[d]={T,1582847864,U},
[k]={{"clang/lib/Sema/SemaCUDA.cpp",783,"// Check the wrong-sided reference capture of lambda for CUDA/HIP.\n// A lambda function may capture a stack variable by reference when it is\n// defined and uses the capture by reference when the lambda is called. When\n// the capture and use happen on different sides, the capture is invalid and\n// should be diagnosed.\nvoid Sema::CUDACheckLambdaCapture(CXXMethodDecl *Callee, const sema::Capture &Capture) {\n  if (Capture.isVariableCapture()) {\n    SemaDiagnosticBuilder(DiagKind, Capture.getLocation(), diag::err_capture_bad_target, Callee, *this) << Capture.getVariable();"}}
},
},
["err_capture_binding_openmp"]={
["err_capture_binding_openmp"]={
[f]="capturing a structured binding is not yet supported in OpenMP",
[f]="capturing a structured binding is not yet supported in OpenMP",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="capturing a structured binding is not yet supported in OpenMP",
[i]=m,
[j]="capturing a structured binding is not yet supported in OpenMP",
[j]="capturing a structured binding is not yet supported in OpenMP",
[c]=m,
[b]=a,
[b]="capturing a structured binding is not yet supported in OpenMP",
[h]=o,
[i]=a,
[d]={N,1625925174,M},
[h]=n,
[k]={{y,16782,"/// Capture the given variable in the lambda.\nstatic bool captureInLambda(LambdaScopeInfo *LSI, ValueDecl *Var, SourceLocation Loc, const bool BuildAndDiagnose, QualType &CaptureType, QualType &DeclRefType, const bool RefersToCapturedVariable, const Sema::TryCaptureKind Kind, SourceLocation EllipsisLoc, const bool IsTopScope, Sema &S, bool Invalid) {\n  // FIXME: We should support capturing structured bindings in OpenMP.\n  if (!Invalid && BD && S.LangOpts.OpenMP) {\n    if (BuildAndDiagnose) {\n      S.Diag(Loc, diag::err_capture_binding_openmp) << Var;"}}
[g]={w,1625925174,v}
},
},
["err_capture_block_variable"]={
["err_capture_block_variable"]={
[f]="__block variable A cannot be captured in a ...",
[f]="__block variable A cannot be captured in a ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="__block variable %0 cannot be captured in a %select{lambda expression|captured statement}1",
[g]="__block variable %0 cannot be captured in a %select{lambda expression|captured statement}1",
[c]=m,
[i]=m,
[b]="__block variable (.*?) cannot be captured in a (?:lambda expression|captured statement)",
[j]="__block variable (.*?) cannot be captured in a (?:lambda expression|captured statement)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"3b4c30b7e77e",1368127031,"CodeGen for CapturedStmts"}
[d]={"3b4c30b7e77e",1368127031,"CodeGen for CapturedStmts"},
[k]={{y,16650,"// Certain capturing entities (lambdas, blocks etc.) are not allowed to capture\n// certain types of variables (unnamed, variably modified types etc.)\n// so check for eligibility.\nstatic bool isVariableCapturable(CapturingScopeInfo *CSI, ValueDecl *Var, SourceLocation Loc, const bool Diagnose, Sema &S) {\n  // Lambdas and captured statements are not allowed to capture __block\n  // variables; they don\'t support the expected semantics.\n  if (HasBlocksAttr && (IsLambda || isa<CapturedRegionScopeInfo>(CSI))) {\n    if (Diagnose) {\n      S.Diag(Loc, diag::err_capture_block_variable) << Var << !IsLambda;"}}
},
},
["err_capture_default_first"]={
["err_capture_default_first"]={
[f]="capture default must be first",
[f]="capture default must be first",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="capture default must be first",
[i]=m,
[j]="capture default must be first",
[j]="capture default must be first",
[c]=m,
[b]=a,
[b]="capture default must be first",
[h]=B,
[i]=a,
[d]={"ee05167cc42b",1594102083,"[OpenMP] Allow traits for the OpenMP context selector `isa`"},
[h]=o,
[k]={{"clang/lib/Parse/ParseExprCXX.cpp",870,"/// Parse a lambda introducer.\n/// \\param Intro A LambdaIntroducer filled in with information about the\n///        contents of the lambda-introducer.\n/// \\param Tentative If non-null, we are disambiguating between a\n///        lambda-introducer and some other construct. In this mode, we do not\n///        produce any diagnostics or take any other irreversible action unless\n///        we\'re sure that this is a lambda-expression.\n/// \\return \\c true if parsing (or disambiguation) failed with a diagnostic and\n///        the caller should bail out / recover.\nbool Parser::ParseLambdaIntroducer(LambdaIntroducer &Intro, LambdaIntroducerTentativeParse *Tentative) {\n  while (Tok.isNot(tok::r_square)) {\n    if (Tok.is(tok::star)) {\n    } else if (Tok.is(tok::kw_this)) {\n    } else if (Tok.isOneOf(tok::amp, tok::equal) && NextToken().isOneOf(tok::comma, tok::r_square) && Intro.Default == LCD_None) {\n      return Invalid([&] { Diag(Tok.getLocation(), diag::err_capture_default_first); });"}}
[g]={"ee05167cc42b",1594102083,"[OpenMP] Allow traits for the OpenMP context selector `isa`"}
},
},
["err_capture_default_non_local"]={
["err_capture_default_non_local"]={
[f]="non-local lambda expression cannot have a capture-default",
[f]="non-local lambda expression cannot have a capture-default",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="non-local lambda expression cannot have a capture-default",
[g]="non-local lambda expression cannot have a capture-default",
[c]=m,
[i]=m,
[b]="non\\-local lambda expression cannot have a capture\\-default",
[j]="non\\-local lambda expression cannot have a capture\\-default",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"3d584b0ced40",1391723348,"PR18128: a lambda capture-default is not permitted for a non-local lambda"}
[d]={"3d584b0ced40",1391723348,"PR18128: a lambda capture-default is not permitted for a non-local lambda"},
[k]={{lb,1077,"void Sema::ActOnLambdaClosureQualifiers(LambdaIntroducer &Intro, SourceLocation MutableLoc) {\n  // C++11 [expr.prim.lambda]p9:\n  //  A lambda-expression whose smallest enclosing scope is a block scope is a\n  //  local lambda expression; any other lambda expression shall not have a\n  //  capture-default or simple-capture in its lambda-introducer.\n  //\n  // For simple-captures, this is covered by the check below that any named\n  // entity is a variable that can be captured.\n  //\n  // For DR1632, we also allow a capture-default in any context where we can\n  // odr-use \'this\' (in particular, in a default initializer for a non-static\n  // data member).\n  if (Intro.Default != LCD_None && !LSI->Lambda->getParent()->isFunctionOrMethod() &&\n    Diag(Intro.DefaultLoc, diag::err_capture_default_non_local);"}}
},
},
["err_capture_does_not_name_variable"]={
["err_capture_does_not_name_variable"]={
[f]="A in capture list does not name a variable",
[f]="A in capture list does not name a variable",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 in capture list does not name a variable",
[g]="%0 in capture list does not name a variable",
[c]=m,
[i]=m,
[b]="(.*?) in capture list does not name a variable",
[j]="(.*?) in capture list does not name a variable",
[i]=a,
[b]=a,
[h]=Q,
[h]="Lambda Issue",
[g]={"44803326d4e8",1325898497,"Lambdas: semantic analysis of explicit captures."}
[d]={"44803326d4e8",1325898497,"Lambdas: semantic analysis of explicit captures."},
[k]={{lb,998,"void Sema::ActOnLambdaExpressionAfterIntroducer(LambdaIntroducer &Intro, Scope *CurrentScope) {\n  for (auto C = Intro.Captures.begin(), E = Intro.Captures.end(); C != E; PrevCaptureLoc = C->Loc, ++C) {\n    // C++11 [expr.prim.lambda]p10:\n    //  [...] each such lookup shall find a variable with automatic storage\n    //  duration declared in the reaching scope of the local lambda expression.\n    // Note that the \'reaching scope\' check happens in tryCaptureVariable().\n    if (!Var) {\n      Diag(C->Loc, diag::err_capture_does_not_name_variable) << C->Id;"}}
},
},
["err_capture_more_than_once"]={
["err_capture_more_than_once"]={
[f]="A can appear only once in a capture list",
[f]="A can appear only once in a capture list",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 can appear only once in a capture list",
[g]="%0 can appear only once in a capture list",
[c]=m,
[i]=m,
[b]="(.*?) can appear only once in a capture list",
[j]="(.*?) can appear only once in a capture list",
[i]=a,
[b]=a,
[h]=Q,
[h]="Lambda Issue",
[g]={"44803326d4e8",1325898497,"Lambdas: semantic analysis of explicit captures."}
[d]={"44803326d4e8",1325898497,"Lambdas: semantic analysis of explicit captures."},
[k]={{lb,886,"void Sema::ActOnLambdaExpressionAfterIntroducer(LambdaIntroducer &Intro, Scope *CurrentScope) {\n  for (auto C = Intro.Captures.begin(), E = Intro.Captures.end(); C != E; PrevCaptureLoc = C->Loc, ++C) {\n    if (C->Kind == LCK_This || C->Kind == LCK_StarThis) {\n      // C++11 [expr.prim.lambda]p8:\n      //  An identifier or this shall not appear more than once in a\n      //  lambda-capture.\n      if (LSI->isCXXThisCaptured()) {\n        Diag(C->Loc, diag::err_capture_more_than_once) << \"\'this\'\" << SourceRange(LSI->getCXXThisCapture().getLocation()) << FixItHint::CreateRemoval(SourceRange(getLocForEndOfToken(PrevCaptureLoc), C->Loc));"},{lb,1007,"void Sema::ActOnLambdaExpressionAfterIntroducer(LambdaIntroducer &Intro, Scope *CurrentScope) {\n  for (auto C = Intro.Captures.begin(), E = Intro.Captures.end(); C != E; PrevCaptureLoc = C->Loc, ++C) {\n    // C++11 [expr.prim.lambda]p8:\n    //  An identifier or this shall not appear more than once in a\n    //  lambda-capture.\n    if (auto [It, Inserted] = CaptureNames.insert(std::pair{C->Id, Var}); !Inserted) {\n      if (C->InitKind == LambdaCaptureInitKind::NoInit && !Var->isInitCapture()) {\n        Diag(C->Loc, diag::err_capture_more_than_once) << C->Id << It->second->getBeginLoc() << FixItHint::CreateRemoval(SourceRange(getLocForEndOfToken(PrevCaptureLoc), C->Loc));"},{lb,1011,"void Sema::ActOnLambdaExpressionAfterIntroducer(LambdaIntroducer &Intro, Scope *CurrentScope) {\n  for (auto C = Intro.Captures.begin(), E = Intro.Captures.end(); C != E; PrevCaptureLoc = C->Loc, ++C) {\n    // C++11 [expr.prim.lambda]p8:\n    //  An identifier or this shall not appear more than once in a\n    //  lambda-capture.\n    if (auto [It, Inserted] = CaptureNames.insert(std::pair{C->Id, Var}); !Inserted) {\n      if (C->InitKind == LambdaCaptureInitKind::NoInit && !Var->isInitCapture()) {\n      } else\n        Diag(C->Loc, diag::err_capture_more_than_once) << C->Id;"}}
},
},
["err_capture_non_automatic_variable"]={
["err_capture_non_automatic_variable"]={
[f]="A cannot be captured because it does not have automatic storage duration",
[f]="A cannot be captured because it does not have automatic storage duration",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 cannot be captured because it does not have automatic storage duration",
[g]="%0 cannot be captured because it does not have automatic storage duration",
[c]=m,
[i]=m,
[b]="(.*?) cannot be captured because it does not have automatic storage duration",
[j]="(.*?) cannot be captured because it does not have automatic storage duration",
[i]=a,
[b]=a,
[h]=Q,
[h]="Lambda Issue",
[g]={"44803326d4e8",1325898497,"Lambdas: semantic analysis of explicit captures."}
[d]={"44803326d4e8",1325898497,"Lambdas: semantic analysis of explicit captures."},
[k]={{lb,1022,"void Sema::ActOnLambdaExpressionAfterIntroducer(LambdaIntroducer &Intro, Scope *CurrentScope) {\n  for (auto C = Intro.Captures.begin(), E = Intro.Captures.end(); C != E; PrevCaptureLoc = C->Loc, ++C) {\n    if (!Underlying->hasLocalStorage()) {\n      Diag(C->Loc, diag::err_capture_non_automatic_variable) << C->Id;"}}
},
},
["err_capture_of_abstract_type"]={
["err_capture_of_abstract_type"]={
[f]="by-copy capture of value of abstract type A",
[f]="by-copy capture of value of abstract type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="by-copy capture of value of abstract type %0",
[g]="by-copy capture of value of abstract type %0",
[c]=m,
[i]=m,
[b]="by\\-copy capture of value of abstract type (.*?)",
[j]="by\\-copy capture of value of abstract type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"71fe0e8a832b",1381465521,"Diagnose by-copy captures of abstract classes."}
[d]={"71fe0e8a832b",1381465521,"Diagnose by-copy captures of abstract classes."},
[k]={{y,16839,"/// Capture the given variable in the lambda.\nstatic bool captureInLambda(LambdaScopeInfo *LSI, ValueDecl *Var, SourceLocation Loc, const bool BuildAndDiagnose, QualType &CaptureType, QualType &DeclRefType, const bool RefersToCapturedVariable, const Sema::TryCaptureKind Kind, SourceLocation EllipsisLoc, const bool IsTopScope, Sema &S, bool Invalid) {\n  // Compute the type of the field that will capture this variable.\n  if (ByRef) {\n  } else {\n    // Make sure that by-copy captures are of a complete and non-abstract type.\n    if (!Invalid && BuildAndDiagnose) {\n      else if (S.RequireNonAbstractType(Loc, CaptureType, diag::err_capture_of_abstract_type))"}}
},
},
["err_capture_of_incomplete_or_sizeless_type"]={
["err_capture_of_incomplete_or_sizeless_type"]={
[f]="by-copy capture of variable A with ... type B",
[f]="by-copy capture of variable A with ... type B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="by-copy capture of variable %0 with %select{incomplete|sizeless}1 type %2",
[g]="by-copy capture of variable %0 with %select{incomplete|sizeless}1 type %2",
[c]=m,
[i]=m,
[b]="by\\-copy capture of variable (.*?) with (?:incomplete|sizeless) type (.*?)",
[j]="by\\-copy capture of variable (.*?) with (?:incomplete|sizeless) type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={C,1576908663,B}
[d]={W,1576908663,V},
[k]={{y,16837,"/// Capture the given variable in the lambda.\nstatic bool captureInLambda(LambdaScopeInfo *LSI, ValueDecl *Var, SourceLocation Loc, const bool BuildAndDiagnose, QualType &CaptureType, QualType &DeclRefType, const bool RefersToCapturedVariable, const Sema::TryCaptureKind Kind, SourceLocation EllipsisLoc, const bool IsTopScope, Sema &S, bool Invalid) {\n  // Compute the type of the field that will capture this variable.\n  if (ByRef) {\n  } else {\n    // Make sure that by-copy captures are of a complete and non-abstract type.\n    if (!Invalid && BuildAndDiagnose) {\n      if (!CaptureType->isDependentType() && S.RequireCompleteSizedType(Loc, CaptureType, diag::err_capture_of_incomplete_or_sizeless_type, Var->getDeclName()))"}}
},
},
["err_carries_dependency_missing_on_first_decl"]={
["err_carries_dependency_missing_on_first_decl"]={
[f]="... declared \'[[carries_dependency]]\' after its first declaration",
[f]="... declared \'[[carries_dependency]]\' after its first declaration",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{function|parameter}0 declared \'[[carries_dependency]]\' after its first declaration",
[g]="%select{function|parameter}0 declared \'[[carries_dependency]]\' after its first declaration",
[c]=m,
[i]=m,
[b]="(?:function|parameter) declared \'\\[\\[carries_dependency\\]\\]\' after its first declaration",
[j]="(?:function|parameter) declared \'\\[\\[carries_dependency\\]\\]\' after its first declaration",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e233fbfc16fe",1359412965,"Finish semantic analysis for [[carries_dependency]] attribute."}
[d]={"e233fbfc16fe",1359412965,"Finish semantic analysis for [[carries_dependency]] attribute."},
[k]={{q,3016,"/// mergeParamDeclAttributes - Copy attributes from the old parameter\n/// to the new one.\nstatic void mergeParamDeclAttributes(ParmVarDecl *newDecl, const ParmVarDecl *oldDecl, Sema &S) {\n  if (CDA && !oldDecl->hasAttr<CarriesDependencyAttr>()) {\n    S.Diag(CDA->getLocation(), diag::err_carries_dependency_missing_on_first_decl) << 1 /*Param*/;"},{q,3636,"/// MergeFunctionDecl - We just parsed a function \'New\' from\n/// declarator D which has the same name and scope as a previous\n/// declaration \'Old\'.  Figure out how to resolve this situation,\n/// merging decls or emitting diagnostics as appropriate.\n///\n/// In C++, New and Old must be declarations that are not\n/// overloaded. Use IsOverload to determine whether New and Old are\n/// overloaded, and to select the Old declaration that New should be\n/// merged with.\n///\n/// Returns true if there was an error, false otherwise.\nbool Sema::MergeFunctionDecl(FunctionDecl *New, NamedDecl *&OldD, Scope *S, bool MergeTypeWithOld, bool NewDeclIsDefn) {\n  if (getLangOpts().CPlusPlus) {\n    if (CDA && !Old->hasAttr<CarriesDependencyAttr>()) {\n      Diag(CDA->getLocation(), diag::err_carries_dependency_missing_on_first_decl) << 0 /*Function*/;"}}
},
},
["err_carries_dependency_param_not_function_decl"]={
["err_carries_dependency_param_not_function_decl"]={
[f]="\'[[carries_dependency]]\' attribute only allowed on parameter in a function declaration or lambda",
[f]="\'[[carries_dependency]]\' attribute only allowed on parameter in a function declaration or lambda",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'[[carries_dependency]]\' attribute only allowed on parameter in a function declaration or lambda",
[g]="\'[[carries_dependency]]\' attribute only allowed on parameter in a function declaration or lambda",
[c]=m,
[i]=m,
[b]="\'\\[\\[carries_dependency\\]\\]\' attribute only allowed on parameter in a function declaration or lambda",
[j]="\'\\[\\[carries_dependency\\]\\]\' attribute only allowed on parameter in a function declaration or lambda",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e233fbfc16fe",1359412965,"Finish semantic analysis for [[carries_dependency]] attribute."}
[d]={"e233fbfc16fe",1359412965,"Finish semantic analysis for [[carries_dependency]] attribute."},
[k]={{p,2083,"static void handleDependencyAttr(Sema &S, Scope *Scope, Decl *D, const ParsedAttr &AL) {\n  if (isa<ParmVarDecl>(D)) {\n    // [[carries_dependency]] can only be applied to a parameter if it is a\n    // parameter of a function declaration or lambda.\n    if (!(Scope->getFlags() & clang::Scope::FunctionDeclarationScope)) {\n      S.Diag(AL.getLoc(), diag::err_carries_dependency_param_not_function_decl);"}}
},
},
["err_case_not_in_switch"]={
["err_case_not_in_switch"]={
[f]="\'case\' statement not in switch statement",
[f]="\'case\' statement not in switch statement",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'case\' statement not in switch statement",
[i]=m,
[j]="\'case\' statement not in switch statement",
[j]="\'case\' statement not in switch statement",
[c]=m,
[b]=a,
[b]="\'case\' statement not in switch statement",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{R,474,"StmtResult Sema::ActOnCaseStmt(SourceLocation CaseLoc, ExprResult LHSVal, SourceLocation DotDotDotLoc, ExprResult RHSVal, SourceLocation ColonLoc) {\n  if (getCurFunction()->SwitchStack.empty()) {\n    Diag(CaseLoc, diag::err_case_not_in_switch);"}}
[g]={q,1237025389,p}
},
},
["err_cast_from_randomized_struct"]={
["err_cast_from_randomized_struct"]={
[f]="casting from randomized structure pointer type A to B",
[f]="casting from randomized structure pointer type A to B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="casting from randomized structure pointer type %0 to %1",
[g]="casting from randomized structure pointer type %0 to %1",
[c]=m,
[i]=m,
[b]="casting from randomized structure pointer type (.*?) to (.*?)",
[j]="casting from randomized structure pointer type (.*?) to (.*?)",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={rb,1620530452,sb}
[d]={"cb08f4aa4467",1620530452,"Support warn_unused_result on typedefs"},
[k]={{w,2786,"/// Check the semantics of a C-style cast operation, in C.\nvoid CastOperation::CheckCStyleCast() {\n  if (isa<PointerType>(SrcType) && isa<PointerType>(DestType)) {\n    if (SrcRD && DestRD && SrcRD->hasAttr<RandomizeLayoutAttr>() && SrcRD != DestRD) {\n      Self.Diag(OpRange.getBegin(), diag::err_cast_from_randomized_struct) << SrcType << DestType;"}}
},
},
["err_cast_pointer_from_non_pointer_int"]={
["err_cast_pointer_from_non_pointer_int"]={
[f]="operand of type A cannot be cast to a pointer type",
[f]="operand of type A cannot be cast to a pointer type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="operand of type %0 cannot be cast to a pointer type",
[g]="operand of type %0 cannot be cast to a pointer type",
[c]=m,
[i]=m,
[b]="operand of type (.*?) cannot be cast to a pointer type",
[j]="operand of type (.*?) cannot be cast to a pointer type",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"f4e3ad6500ca",1241144638,"PR4013 and PR4105: pointer-like types can only be cast to/from integers "}
[d]={"f4e3ad6500ca",1241144638,"PR4013 and PR4105: pointer-like types can only be cast to/from integers "},
[k]={{w,2714,"/// Check the semantics of a C-style cast operation, in C.\nvoid CastOperation::CheckCStyleCast() {\n  // If either type is a pointer, the other type has to be either an\n  // integer or a pointer.\n  if (!DestType->isArithmeticType()) {\n    if (!SrcType->isIntegralType(Self.Context) && SrcType->isArithmeticType()) {\n      Self.Diag(SrcExpr.get()->getExprLoc(), diag::err_cast_pointer_from_non_pointer_int) << SrcType << SrcExpr.get()->getSourceRange();"}}
},
},
["err_cast_pointer_to_non_pointer_int"]={
["err_cast_pointer_to_non_pointer_int"]={
[f]="pointer cannot be cast to type A",
[f]="pointer cannot be cast to type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="pointer cannot be cast to type %0",
[g]="pointer cannot be cast to type %0",
[c]=m,
[i]=m,
[b]="pointer cannot be cast to type (.*?)",
[j]="pointer cannot be cast to type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"f4e3ad6500ca",1241144638,"PR4013 and PR4105: pointer-like types can only be cast to/from integers "}
[d]={"f4e3ad6500ca",1241144638,"PR4013 and PR4105: pointer-like types can only be cast to/from integers "},
[k]={{w,2721,"/// Check the semantics of a C-style cast operation, in C.\nvoid CastOperation::CheckCStyleCast() {\n  // If either type is a pointer, the other type has to be either an\n  // integer or a pointer.\n  if (!DestType->isArithmeticType()) {\n  } else if (!SrcType->isArithmeticType()) {\n    if (!DestType->isIntegralType(Self.Context) && DestType->isArithmeticType()) {\n      Self.Diag(SrcExpr.get()->getBeginLoc(), diag::err_cast_pointer_to_non_pointer_int) << DestType << SrcExpr.get()->getSourceRange();"}}
},
},
["err_cast_selector_expr"]={
["err_cast_selector_expr"]={
[f]="cannot type cast @selector expression",
[f]="cannot type cast @selector expression",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="cannot type cast @selector expression",
[i]=m,
[j]="cannot type cast @selector expression",
[j]="cannot type cast @selector expression",
[c]=m,
[b]=a,
[b]="cannot type cast @selector expression",
[h]=o,
[i]=a,
[d]={"88fead8c4821",1243028572,"Cannot type cast @selector expressions."},
[h]=n,
[k]={{w,2705,"/// Check the semantics of a C-style cast operation, in C.\nvoid CastOperation::CheckCStyleCast() {\n  if (isa<ObjCSelectorExpr>(SrcExpr.get())) {\n    Self.Diag(SrcExpr.get()->getExprLoc(), diag::err_cast_selector_expr);"}}
[g]={"88fead8c4821",1243028572,"Cannot type cast @selector expressions."}
},
},
["err_catch_incomplete"]={
["err_catch_incomplete"]={
[f]="cannot catch incomplete type A",
[f]="cannot catch incomplete type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot catch incomplete type %0",
[g]="cannot catch incomplete type %0",
[c]=m,
[i]=m,
[b]="cannot catch incomplete type (.*?)",
[j]="cannot catch incomplete type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{v,14178,"/// Perform semantic analysis for the variable declaration that\n/// occurs within a C++ catch clause, returning the newly-created\n/// variable.\nVarDecl *Sema::BuildExceptionDeclaration(Scope *S, TypeSourceInfo *TInfo, SourceLocation StartLoc, SourceLocation Loc, IdentifierInfo *Name) {\n  unsigned DK = diag::err_catch_incomplete;"}}
},
},
["err_catch_incomplete_ptr"]={
["err_catch_incomplete_ptr"]={
[f]="cannot catch pointer to incomplete type A",
[f]="cannot catch pointer to incomplete type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot catch pointer to incomplete type %0",
[g]="cannot catch pointer to incomplete type %0",
[c]=m,
[i]=m,
[b]="cannot catch pointer to incomplete type (.*?)",
[j]="cannot catch pointer to incomplete type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{v,14182,"/// Perform semantic analysis for the variable declaration that\n/// occurs within a C++ catch clause, returning the newly-created\n/// variable.\nVarDecl *Sema::BuildExceptionDeclaration(Scope *S, TypeSourceInfo *TInfo, SourceLocation StartLoc, SourceLocation Loc, IdentifierInfo *Name) {\n  if (const PointerType *Ptr = BaseType->getAs<PointerType>()) {\n    DK = diag::err_catch_incomplete_ptr;"}}
},
},
["err_catch_incomplete_ref"]={
["err_catch_incomplete_ref"]={
[f]="cannot catch reference to incomplete type A",
[f]="cannot catch reference to incomplete type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot catch reference to incomplete type %0",
[g]="cannot catch reference to incomplete type %0",
[c]=m,
[i]=m,
[b]="cannot catch reference to incomplete type (.*?)",
[j]="cannot catch reference to incomplete type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{v,14187,"/// Perform semantic analysis for the variable declaration that\n/// occurs within a C++ catch clause, returning the newly-created\n/// variable.\nVarDecl *Sema::BuildExceptionDeclaration(Scope *S, TypeSourceInfo *TInfo, SourceLocation StartLoc, SourceLocation Loc, IdentifierInfo *Name) {\n  if (const PointerType *Ptr = BaseType->getAs<PointerType>()) {\n  } else if (const ReferenceType *Ref = BaseType->getAs<ReferenceType>()) {\n    DK = diag::err_catch_incomplete_ref;"}}
},
},
["err_catch_param_not_objc_type"]={
["err_catch_param_not_objc_type"]={
[f]="@catch parameter is not a pointer to an interface type",
[f]="@catch parameter is not a pointer to an interface type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="@catch parameter is not a pointer to an interface type",
[i]=m,
[j]="@catch parameter is not a pointer to an interface type",
[j]="@catch parameter is not a pointer to an interface type",
[c]=m,
[b]=a,
[b]="@catch parameter is not a pointer to an interface type",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{I,4303,"/// Build a type-check a new Objective-C exception variable declaration.\nVarDecl *Sema::BuildObjCExceptionDecl(TypeSourceInfo *TInfo, QualType T, SourceLocation StartLoc, SourceLocation IdLoc, IdentifierInfo *Id, bool Invalid) {\n  // An @catch parameter must be an unqualified object pointer type;\n  // FIXME: Recover from \"NSObject foo\" by inserting the * in \"NSObject *foo\"?\n  if (Invalid) {\n  } else if (T->isDependentType()) {\n  } else if (T->isObjCQualifiedIdType()) {\n  } else if (T->isObjCIdType()) {\n } else if (!T->isObjCObjectPointerType()) {\n    Diag(IdLoc, diag::err_catch_param_not_objc_type);"},{I,4306,"/// Build a type-check a new Objective-C exception variable declaration.\nVarDecl *Sema::BuildObjCExceptionDecl(TypeSourceInfo *TInfo, QualType T, SourceLocation StartLoc, SourceLocation IdLoc, IdentifierInfo *Id, bool Invalid) {\n  // An @catch parameter must be an unqualified object pointer type;\n  // FIXME: Recover from \"NSObject foo\" by inserting the * in \"NSObject *foo\"?\n  if (Invalid) {\n  } else if (T->isDependentType()) {\n  } else if (T->isObjCQualifiedIdType()) {\n  } else if (T->isObjCIdType()) {\n  } else if (!T->isObjCObjectPointerType()) {\n  } else if (!T->castAs<ObjCObjectPointerType>()->getInterfaceType()) {\n    Diag(IdLoc, diag::err_catch_param_not_objc_type);"}}
[g]={q,1237025389,p}
},
},
["err_catch_rvalue_ref"]={
["err_catch_rvalue_ref"]={
[f]="cannot catch exceptions by rvalue reference",
[f]="cannot catch exceptions by rvalue reference",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="cannot catch exceptions by rvalue reference",
[i]=m,
[j]="cannot catch exceptions by rvalue reference",
[j]="cannot catch exceptions by rvalue reference",
[c]=m,
[b]=a,
[b]="cannot catch exceptions by rvalue reference",
[h]=o,
[i]=a,
[d]={"b28b40712121",1237765767,"Disallow catching exceptions by rvalue reference."},
[h]=n,
[k]={{v,14167,"/// Perform semantic analysis for the variable declaration that\n/// occurs within a C++ catch clause, returning the newly-created\n/// variable.\nVarDecl *Sema::BuildExceptionDeclaration(Scope *S, TypeSourceInfo *TInfo, SourceLocation StartLoc, SourceLocation Loc, IdentifierInfo *Name) {\n  // C++ 15.3p1: The exception-declaration shall not denote an incomplete type.\n  // The exception-declaration shall not denote a pointer or reference to an\n  // incomplete type, other than [cv] void*.\n  // N2844 forbids rvalue references.\n  if (!ExDeclType->isDependentType() && ExDeclType->isRValueReferenceType()) {\n    Diag(Loc, diag::err_catch_rvalue_ref);"}}
[g]={"b28b40712121",1237765767,"Disallow catching exceptions by rvalue reference."}
},
},
["err_catch_sizeless"]={
["err_catch_sizeless"]={
[f]="cannot catch ...sizeless type A",
[f]="cannot catch ...sizeless type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot catch %select{|reference to }0sizeless type %1",
[g]="cannot catch %select{|reference to }0sizeless type %1",
[c]=m,
[i]=m,
[b]="cannot catch (?:|reference to )sizeless type (.*?)",
[j]="cannot catch (?:|reference to )sizeless type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={C,1576908663,B}
[d]={W,1576908663,V},
[k]={{v,14198,"/// Perform semantic analysis for the variable declaration that\n/// occurs within a C++ catch clause, returning the newly-created\n/// variable.\nVarDecl *Sema::BuildExceptionDeclaration(Scope *S, TypeSourceInfo *TInfo, SourceLocation StartLoc, SourceLocation Loc, IdentifierInfo *Name) {\n  if (!Invalid && Mode != 1 && BaseType->isSizelessType()) {\n    Diag(Loc, diag::err_catch_sizeless) << (Mode == 2 ? 1 : 0) << BaseType;"}}
},
},
["err_catch_variably_modified"]={
["err_catch_variably_modified"]={
[f]="cannot catch variably modified type A",
[f]="cannot catch variably modified type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot catch variably modified type %0",
[g]="cannot catch variably modified type %0",
[c]=m,
[i]=m,
[b]="cannot catch variably modified type (.*?)",
[j]="cannot catch variably modified type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e56d1a0d5000",1465401907,"[Sema] Don\'t permit catching variably modified types"}
[d]={"e56d1a0d5000",1465401907,"[Sema] Don\'t permit catching variably modified types"},
[k]={{v,14172,"/// Perform semantic analysis for the variable declaration that\n/// occurs within a C++ catch clause, returning the newly-created\n/// variable.\nVarDecl *Sema::BuildExceptionDeclaration(Scope *S, TypeSourceInfo *TInfo, SourceLocation StartLoc, SourceLocation Loc, IdentifierInfo *Name) {\n  if (ExDeclType->isVariablyModifiedType()) {\n    Diag(Loc, diag::err_catch_variably_modified) << ExDeclType;"}}
},
},
["err_category_forward_interface"]={
["err_category_forward_interface"]={
[f]="cannot define ... for undefined class A",
[f]="cannot define ... for undefined class A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot define %select{category|class extension}0 for undefined class %1",
[g]="cannot define %select{category|class extension}0 for undefined class %1",
[c]=m,
[i]=m,
[b]="cannot define (?:category|class extension) for undefined class (.*?)",
[j]="cannot define (?:category|class extension) for undefined class (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"4123a86faebb",1321308601,"Use Sema::RequireCompleteType to check for the completeness of"}
[d]={"4123a86faebb",1321308601,"Use Sema::RequireCompleteType to check for the completeness of"},
[k]={{I,1476,"ObjCCategoryDecl *Sema::ActOnStartCategoryInterface(SourceLocation AtInterfaceLoc, IdentifierInfo *ClassName, SourceLocation ClassLoc, ObjCTypeParamList *typeParamList, IdentifierInfo *CategoryName, SourceLocation CategoryLoc, Decl *const *ProtoRefs, unsigned NumProtoRefs, const SourceLocation *ProtoLocs, SourceLocation EndProtoLoc, const ParsedAttributesView &AttrList) {\n  if (!IDecl || RequireCompleteType(ClassLoc, Context.getObjCInterfaceType(IDecl), diag::err_category_forward_interface, CategoryName == nullptr)) {"}}
},
},
["err_category_property"]={
["err_category_property"]={
[f]="property declared in category A cannot be implemented in class implementation",
[f]="property declared in category A cannot be implemented in class implementation",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="property declared in category %0 cannot be implemented in class implementation",
[g]="property declared in category %0 cannot be implemented in class implementation",
[c]=m,
[i]=m,
[b]="property declared in category (.*?) cannot be implemented in class implementation",
[j]="property declared in category (.*?) cannot be implemented in class implementation",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={P,1480718311,O}
[d]={ub,1480718311,yb},
[k]={{P,932,"/// ActOnPropertyImplDecl - This routine performs semantic checks and\n/// builds the AST node for a property implementation declaration; declared\n/// as \\@synthesize or \\@dynamic.\n///\nDecl *Sema::ActOnPropertyImplDecl(Scope *S, SourceLocation AtLoc, SourceLocation PropertyLoc, bool Synthesize, IdentifierInfo *PropertyId, IdentifierInfo *PropertyIvar, SourceLocation PropertyIvarLoc, ObjCPropertyQueryKind QueryKind) {\n  if ((IC = dyn_cast<ObjCImplementationDecl>(ClassImpDecl))) {\n    if (const ObjCCategoryDecl *CD = dyn_cast<ObjCCategoryDecl>(property->getDeclContext())) {\n      if (!CD->IsClassExtension()) {\n        Diag(PropertyLoc, diag::err_category_property) << CD->getDeclName();"}}
},
},
["err_cc1_round_trip_fail_then_ok"]={
["err_cc1_round_trip_fail_then_ok"]={
[f]="original arguments parse failed, then succeeded in round-trip",
[f]="original arguments parse failed, then succeeded in round-trip",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="original arguments parse failed, then succeeded in round-trip",
[g]="original arguments parse failed, then succeeded in round-trip",
[c]=m,
[i]=m,
[b]="original arguments parse failed, then succeeded in round\\-trip",
[j]="original arguments parse failed, then succeeded in round\\-trip",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={Y,1585492323,X}
[d]={"0175999805cf",1585492323,"[AMDGPU] Add options -mamdgpu-ieee -mno-amdgpu-ieee"},
[k]={{O,573,"#endif\n  // Run the first parse on the original arguments with the dummy invocation and\n  // diagnostics.\n  if (!Parse(DummyInvocation, CommandLineArgs, DummyDiags, Argv0) || DummyDiags.getNumWarnings() != 0) {\n    Diags.Report(diag::err_cc1_round_trip_fail_then_ok);"}}
},
},
["err_cc1_round_trip_mismatch"]={
["err_cc1_round_trip_mismatch"]={
[f]="generated arguments do not match in round-trip",
[f]="generated arguments do not match in round-trip",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="generated arguments do not match in round-trip",
[g]="generated arguments do not match in round-trip",
[c]=m,
[i]=m,
[b]="generated arguments do not match in round\\-trip",
[j]="generated arguments do not match in round\\-trip",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={Y,1585492323,X}
[d]={"0175999805cf",1585492323,"[AMDGPU] Add options -mamdgpu-ieee -mno-amdgpu-ieee"},
[k]={{O,619,"#endif\n  // If we generated different arguments from what we assume are two\n  // semantically equivalent CompilerInvocations, the Generate function may\n  // be non-deterministic.\n  if (!Equal(GeneratedArgs, ComparisonArgs)) {\n    Diags.Report(diag::err_cc1_round_trip_mismatch);"}}
},
},
["err_cc1_round_trip_ok_then_fail"]={
["err_cc1_round_trip_ok_then_fail"]={
[f]="generated arguments parse failed in round-trip",
[f]="generated arguments parse failed in round-trip",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="generated arguments parse failed in round-trip",
[g]="generated arguments parse failed in round-trip",
[c]=m,
[i]=m,
[b]="generated arguments parse failed in round\\-trip",
[j]="generated arguments parse failed in round\\-trip",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={Y,1585492323,X}
[d]={"0175999805cf",1585492323,"[AMDGPU] Add options -mamdgpu-ieee -mno-amdgpu-ieee"},
[k]={{O,598,"#endif\n  // The first parse on original arguments succeeded, but second parse of\n  // generated arguments failed. Something must be wrong with the generator.\n  if (!Success2) {\n    Diags.Report(diag::err_cc1_round_trip_ok_then_fail);"}}
},
},
["err_cc1_unbounded_vscale_min"]={
["err_cc1_unbounded_vscale_min"]={
[f]="minimum vscale must be an unsigned integer greater than 0",
[f]="minimum vscale must be an unsigned integer greater than 0",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="minimum vscale must be an unsigned integer greater than 0",
[i]=m,
[j]="minimum vscale must be an unsigned integer greater than 0",
[j]="minimum vscale must be an unsigned integer greater than 0",
[c]=m,
[b]=a,
[b]="minimum vscale must be an unsigned integer greater than 0",
[i]=a,
[h]=a,
[h]=a,
[g]={F,1610286626,H}
[d]={"0687578728ea",1610286626,"[C++20][Modules][HU 2/5] Support searching Header Units in user or system search paths."},
[k]={{O,3393,"#include \"clang/Driver/Options.inc\"\n  // Error if -mvscale-min is unbounded.\n  if (Arg *A = Args.getLastArg(options::OPT_mvscale_min_EQ)) {\n    if (StringRef(A->getValue()).getAsInteger(10, VScaleMin) || VScaleMin == 0)\n      Diags.Report(diag::err_cc1_unbounded_vscale_min);"}}
},
},
["err_cconv_change"]={
["err_cconv_change"]={
[f]="function declared \'A\' here was previously declared ...",
[f]="function declared \'A\' here was previously declared ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="function declared \'%0\' here was previously declared %select{\'%2\'|without calling convention}1",
[g]="function declared \'%0\' here was previously declared %select{\'%2\'|without calling convention}1",
[c]=m,
[i]=m,
[b]="function declared \'(.*?)\' here was previously declared (?:\'(.*?)\'|without calling convention)",
[j]="function declared \'(.*?)\' here was previously declared (?:\'(.*?)\'|without calling convention)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"ab26cfa58de5",1265405516,"Standardize the parsing of function type attributes in a way that"}
[d]={"ab26cfa58de5",1265405516,"Standardize the parsing of function type attributes in a way that"},
[k]={{q,3425,"/// MergeFunctionDecl - We just parsed a function \'New\' from\n/// declarator D which has the same name and scope as a previous\n/// declaration \'Old\'.  Figure out how to resolve this situation,\n/// merging decls or emitting diagnostics as appropriate.\n///\n/// In C++, New and Old must be declarations that are not\n/// overloaded. Use IsOverload to determine whether New and Old are\n/// overloaded, and to select the Old declaration that New should be\n/// merged with.\n///\n/// Returns true if there was an error, false otherwise.\nbool Sema::MergeFunctionDecl(FunctionDecl *New, NamedDecl *&OldD, Scope *S, bool MergeTypeWithOld, bool NewDeclIsDefn) {\n  if (OldTypeInfo.getCC() != NewTypeInfo.getCC()) {\n    if (!NewCCExplicit) {\n    } else if (Old->getBuiltinID()) {\n    } else {\n      Diag(New->getLocation(), diag::err_cconv_change) << FunctionType::getNameForCallConv(NewTypeInfo.getCC()) << !FirstCCExplicit << (!FirstCCExplicit ? \"\" : FunctionType::getNameForCallConv(FI.getCC()));"}}
},
},
["err_cconv_incomplete_param_type"]={
["err_cconv_incomplete_param_type"]={
[f]="parameter A must have a complete type to use function B with the C calling convention",
[f]="parameter A must have a complete type to use function B with the C calling convention",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="parameter %0 must have a complete type to use function %1 with the %2 calling convention",
[g]="parameter %0 must have a complete type to use function %1 with the %2 calling convention",
[c]=m,
[i]=m,
[b]="parameter (.*?) must have a complete type to use function (.*?) with the (.*?) calling convention",
[j]="parameter (.*?) must have a complete type to use function (.*?) with the (.*?) calling convention",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e78333a0105d",1560207192,"Require stdcall etc parameters to be complete on ODR use"}
[d]={"e78333a0105d",1560207192,"Require stdcall etc parameters to be complete on ODR use"},
[k]={{y,16171,"/// Require that all of the parameter types of function be complete. Normally,\n/// parameter types are only required to be complete when a function is called\n/// or defined, but to mangle functions with certain calling conventions, the\n/// mangler needs to know the size of the parameter list. In this situation,\n/// MSVC doesn\'t emit an error or instantiate templates. Instead, MSVC mangles\n/// the function as _foo@0, i.e. zero bytes of parameters, which will usually\n/// result in a linker error. Clang doesn\'t implement this behavior, and instead\n/// attempts to error at compile time.\nstatic void CheckCompleteParameterTypesForMangler(Sema &S, FunctionDecl *FD, SourceLocation Loc) {\n  class ParamIncompleteTypeDiagnoser : public Sema::TypeDiagnoser {\n    void diagnose(Sema &S, SourceLocation Loc, QualType T) override {\n      S.Diag(Loc, diag::err_cconv_incomplete_param_type) << Param->getDeclName() << FD->getDeclName() << CCName;"}}
},
},
["err_cconv_knr"]={
["err_cconv_knr"]={
[f]="function with no prototype cannot use the A calling convention",
[f]="function with no prototype cannot use the A calling convention",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="function with no prototype cannot use the %0 calling convention",
[g]="function with no prototype cannot use the %0 calling convention",
[c]=m,
[i]=m,
[b]="function with no prototype cannot use the (.*?) calling convention",
[j]="function with no prototype cannot use the (.*?) calling convention",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"4976fd4ea971",1257305769,"Diagnose the use of \'fastcall\' on functions without prototypes or with"}
[d]={"4976fd4ea971",1257305769,"Diagnose the use of \'fastcall\' on functions without prototypes or with"},
[k]={{q,9036,"NamedDecl *Sema::ActOnFunctionDeclarator(Scope *S, Declarator &D, DeclContext *DC, TypeSourceInfo *TInfo, LookupResult &Previous, MultiTemplateParamsArg TemplateParamListsRef, bool &AddToScope) {\n  if (!getLangOpts().CPlusPlus) {\n    if (isa<FunctionNoProtoType>(FT) && !D.isFunctionDefinition()) {\n      if (!supportsVariadicCall(CC)) {\n        int DiagID = CC == CC_X86StdCall ? diag::warn_cconv_knr : diag::err_cconv_knr;"}}
},
},
["err_cconv_varargs"]={
["err_cconv_varargs"]={
[f]="variadic function cannot use A calling convention",
[f]="variadic function cannot use A calling convention",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="variadic function cannot use %0 calling convention",
[g]="variadic function cannot use %0 calling convention",
[c]=m,
[i]=m,
[b]="variadic function cannot use (.*?) calling convention",
[j]="variadic function cannot use (.*?) calling convention",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"4976fd4ea971",1257305769,"Diagnose the use of \'fastcall\' on functions without prototypes or with"}
[d]={"4976fd4ea971",1257305769,"Diagnose the use of \'fastcall\' on functions without prototypes or with"},
[k]={{r,7087,"/// Process an individual function attribute.  Returns true to\n/// indicate that the attribute was handled, false if it wasn\'t.\nstatic bool handleFunctionTypeAttr(TypeProcessingState &state, ParsedAttr &attr, QualType &type) {\n  // Diagnose use of variadic functions with calling conventions that\n  // don\'t support them (e.g. because they\'re callee-cleanup).\n  // We delay warning about this on unprototyped function declarations\n  // until after redeclaration checking, just in case we pick up a\n  // prototype that way.  And apparently we also \"delay\" warning about\n  // unprototyped function types in general, despite not necessarily having\n  // much ability to diagnose it later.\n  if (!supportsVariadicCall(CC)) {\n    if (FnP && FnP->isVariadic()) {\n      return S.Diag(attr.getLoc(), diag::err_cconv_varargs) << FunctionType::getNameForCallConv(CC);"}}
},
},
["err_cfstring_literal_not_string_constant"]={
["err_cfstring_literal_not_string_constant"]={
[f]="CFString literal is not a string constant",
[f]="CFString literal is not a string constant",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="CFString literal is not a string constant",
[i]=m,
[j]="CFString literal is not a string constant",
[j]="CFString literal is not a string constant",
[c]=m,
[b]=a,
[b]="CFString literal is not a string constant",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{s,7506,"/// CheckObjCString - Checks that the argument to the builtin\n/// CFString constructor is correct\n/// Note: It might also make sense to do the UTF-16 conversion here (would\n/// simplify the backend).\nbool Sema::CheckObjCString(Expr *Arg) {\n  if (!Literal || !Literal->isOrdinary()) {\n    Diag(Arg->getBeginLoc(), diag::err_cfstring_literal_not_string_constant) << Arg->getSourceRange();"},{G,54,"ExprResult Sema::ParseObjCStringLiteral(SourceLocation *AtLocs, ArrayRef<Expr *> Strings) {\n  // If we have a multi-part string, merge it all together.\n  if (Strings.size() != 1) {\n    for (Expr *E : Strings) {\n      // ObjC strings can\'t be wide or UTF.\n      if (!S->isOrdinary()) {\n        Diag(S->getBeginLoc(), diag::err_cfstring_literal_not_string_constant) << S->getSourceRange();"}}
[g]={q,1237025389,p}
},
},
["err_character_not_allowed"]={
["err_character_not_allowed"]={
[f]="unexpected character <U+A>",
[f]="unexpected character <U+A>",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="unexpected character <U+%0>",
[g]="unexpected character <U+%0>",
[c]=m,
[i]=m,
[b]="unexpected character \\<U\\+(.*?)\\>",
[j]="unexpected character \\<U\\+(.*?)\\>",
[i]=a,
[b]=a,
[h]=t,
[h]=gb,
[g]={w,1625925174,v}
[d]={N,1625925174,M},
[k]={{zb,1534,"static void diagnoseInvalidUnicodeCodepointInIdentifier(DiagnosticsEngine &Diags, const LangOptions &LangOpts, uint32_t CodePoint, CharSourceRange Range, bool IsFirst) {\n  if (!IsFirst || InvalidOnlyAtStart) {\n  } else {\n    Diags.Report(Range.getBegin(), diag::err_character_not_allowed) << Range << codepointAsHexString(CodePoint) << FixItHint::CreateRemoval(Range);"}}
},
},
["err_character_not_allowed_identifier"]={
["err_character_not_allowed_identifier"]={
[f]="character <U+A> not allowed ... an identifier",
[f]="character <U+A> not allowed ... an identifier",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="character <U+%0> not allowed %select{in|at the start of}1 an identifier",
[g]="character <U+%0> not allowed %select{in|at the start of}1 an identifier",
[c]=m,
[i]=m,
[b]="character \\<U\\+(.*?)\\> not allowed (?:in|at the start of) an identifier",
[j]="character \\<U\\+(.*?)\\> not allowed (?:in|at the start of) an identifier",
[i]=a,
[b]=a,
[h]=t,
[h]=gb,
[g]={w,1625925174,v}
[d]={N,1625925174,M},
[k]={{zb,1532,"static void diagnoseInvalidUnicodeCodepointInIdentifier(DiagnosticsEngine &Diags, const LangOptions &LangOpts, uint32_t CodePoint, CharSourceRange Range, bool IsFirst) {\n  if (!IsFirst || InvalidOnlyAtStart) {\n    Diags.Report(Range.getBegin(), diag::err_character_not_allowed_identifier) << Range << codepointAsHexString(CodePoint) << int(InvalidOnlyAtStart) << FixItHint::CreateRemoval(Range);"}}
},
},
["err_character_too_large"]={
["err_character_too_large"]={
[f]="character too large for enclosing character literal type",
[f]="character too large for enclosing character literal type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="character too large for enclosing character literal type",
[i]=m,
[j]="character too large for enclosing character literal type",
[j]="character too large for enclosing character literal type",
[c]=m,
[b]=a,
[b]="character too large for enclosing character literal type",
[h]=gb,
[i]=a,
[d]={"8b2b677f390d",1326889624,"Improves support for Unicode in character literals"},
[h]=t,
[k]={{"clang/lib/Lex/LiteralSupport.cpp",1591,"/// \\verbatim\n///      user-defined-character-literal: [C++11 lex.ext]\n///        character-literal ud-suffix\n///      ud-suffix:\n///        identifier\n///      character-literal: [C++11 lex.ccon]\n///        \' c-char-sequence \'\n///        u\' c-char-sequence \'\n///        U\' c-char-sequence \'\n///        L\' c-char-sequence \'\n///        u8\' c-char-sequence \' [C++1z lex.ccon]\n///      c-char-sequence:\n///        c-char\n///        c-char-sequence c-char\n///      c-char:\n///        any member of the source character set except the single-quote \',\n///          backslash \\, or new-line character\n///        escape-sequence\n///        universal-character-name\n///      escape-sequence:\n///        simple-escape-sequence\n///        octal-escape-sequence\n///        hexadecimal-escape-sequence\n///      simple-escape-sequence:\n///        one of \\\' \\\" \\? \\\\ \\a \\b \\f \\n \\r \\t \\v\n///      octal-escape-sequence:\n///        \\ octal-digit\n///        \\ octal-digit octal-digit\n///        \\ octal-digit octal-digit octal-digit\n///      hexadecimal-escape-sequence:\n///        \\x hexadecimal-digit\n///        hexadecimal-escape-sequence hexadecimal-digit\n///      universal-character-name: [C++11 lex.charset]\n///        \\u hex-quad\n///        \\U hex-quad hex-quad\n///      hex-quad:\n///        hex-digit hex-digit hex-digit hex-digit\n/// \\endverbatim\n///\nCharLiteralParser::CharLiteralParser(const char *begin, const char *end, SourceLocation Loc, Preprocessor &PP, tok::TokenKind kind) {\n  while (begin != end) {\n    // Is this a span of non-escape characters?\n    if (begin[0] != \'\\\\\') {\n      if (res != llvm::conversionOK) {\n      } else {\n        for (; tmp_out_start < buffer_begin; ++tmp_out_start) {\n          if (*tmp_out_start > largest_character_for_kind) {\n            PP.Diag(Loc, diag::err_character_too_large);"},{"clang/lib/Lex/LiteralSupport.cpp",1605,"/// \\verbatim\n///      user-defined-character-literal: [C++11 lex.ext]\n///        character-literal ud-suffix\n///      ud-suffix:\n///        identifier\n///      character-literal: [C++11 lex.ccon]\n///        \' c-char-sequence \'\n///        u\' c-char-sequence \'\n///        U\' c-char-sequence \'\n///        L\' c-char-sequence \'\n///        u8\' c-char-sequence \' [C++1z lex.ccon]\n///      c-char-sequence:\n///        c-char\n///        c-char-sequence c-char\n///      c-char:\n///        any member of the source character set except the single-quote \',\n///          backslash \\, or new-line character\n///        escape-sequence\n///        universal-character-name\n///      escape-sequence:\n///        simple-escape-sequence\n///        octal-escape-sequence\n///        hexadecimal-escape-sequence\n///      simple-escape-sequence:\n///        one of \\\' \\\" \\? \\\\ \\a \\b \\f \\n \\r \\t \\v\n///      octal-escape-sequence:\n///        \\ octal-digit\n///        \\ octal-digit octal-digit\n///        \\ octal-digit octal-digit octal-digit\n///      hexadecimal-escape-sequence:\n///        \\x hexadecimal-digit\n///        hexadecimal-escape-sequence hexadecimal-digit\n///      universal-character-name: [C++11 lex.charset]\n///        \\u hex-quad\n///        \\U hex-quad hex-quad\n///      hex-quad:\n///        hex-digit hex-digit hex-digit hex-digit\n/// \\endverbatim\n///\nCharLiteralParser::CharLiteralParser(const char *begin, const char *end, SourceLocation Loc, Preprocessor &PP, tok::TokenKind kind) {\n  while (begin != end) {\n    // Is this a Universal Character Name escape?\n    if (begin[1] == \'u\' || begin[1] == \'U\' || begin[1] == \'N\') {\n      if (!ProcessUCNEscape(TokBegin, begin, end, *buffer_begin, UcnLen, FullSourceLoc(Loc, PP.getSourceManager()), &PP.getDiagnostics(), PP.getLangOpts(), true)) {\n      } else if (*buffer_begin > largest_character_for_kind) {\n        PP.Diag(Loc, diag::err_character_too_large);"}}
[g]={"8b2b677f390d",1326889624,"Improves support for Unicode in character literals"}
},
},
["err_circular_inheritance"]={
["err_circular_inheritance"]={
[f]="circular inheritance between A and B",
[f]="circular inheritance between A and B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="circular inheritance between %0 and %1",
[g]="circular inheritance between %0 and %1",
[c]=m,
[i]=m,
[b]="circular inheritance between (.*?) and (.*?)",
[j]="circular inheritance between (.*?) and (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"620047011211",1352510297,"Diagnostic circular inheritance involving dependent base classes. We"}
[d]={"620047011211",1352510297,"Diagnostic circular inheritance involving dependent base classes. We"},
[k]={{v,2278,"/// Check the validity of a C++ base class specifier.\n///\n/// \\returns a new CXXBaseSpecifier if well-formed, emits diagnostics\n/// and returns NULL otherwise.\nCXXBaseSpecifier *Sema::CheckBaseSpecifier(CXXRecordDecl *Class, SourceRange SpecifierRange, bool Virtual, AccessSpecifier Access, TypeSourceInfo *TInfo, SourceLocation EllipsisLoc) {\n  if (BaseType->isDependentType()) {\n    // Make sure that we don\'t have circular inheritance among our dependent\n    // bases. For non-dependent bases, the check for completeness below handles\n    // this.\n    if (CXXRecordDecl *BaseDecl = BaseType->getAsCXXRecordDecl()) {\n      if (BaseDecl->getCanonicalDecl() == Class->getCanonicalDecl() || ((BaseDecl = BaseDecl->getDefinition()) && findCircularInheritance(Class, BaseDecl))) {\n        Diag(BaseLoc, diag::err_circular_inheritance) << BaseType << Context.getTypeDeclType(Class);"}}
},
},
["err_class_extension_after_impl"]={
["err_class_extension_after_impl"]={
[f]="cannot declare class extension for A after class implementation",
[f]="cannot declare class extension for A after class implementation",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot declare class extension for %0 after class implementation",
[g]="cannot declare class extension for %0 after class implementation",
[c]=m,
[i]=m,
[b]="cannot declare class extension for (.*?) after class implementation",
[j]="cannot declare class extension for (.*?) after class implementation",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e16cdb407a3f",1270241585,"diagnose declaring class extension after its implementation"}
[d]={"e16cdb407a3f",1270241585,"diagnose declaring class extension after its implementation"},
[k]={{I,1491,"ObjCCategoryDecl *Sema::ActOnStartCategoryInterface(SourceLocation AtInterfaceLoc, IdentifierInfo *ClassName, SourceLocation ClassLoc, ObjCTypeParamList *typeParamList, IdentifierInfo *CategoryName, SourceLocation CategoryLoc, Decl *const *ProtoRefs, unsigned NumProtoRefs, const SourceLocation *ProtoLocs, SourceLocation EndProtoLoc, const ParsedAttributesView &AttrList) {\n  if (!CategoryName && IDecl->getImplementation()) {\n    Diag(ClassLoc, diag::err_class_extension_after_impl) << ClassName;"}}
},
},
["err_class_marked_final_used_as_base"]={
["err_class_marked_final_used_as_base"]={
[f]="base A is marked \'...\'",
[f]="base A is marked \'...\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="base %0 is marked \'%select{final|sealed}1\'",
[g]="base %0 is marked \'%select{final|sealed}1\'",
[c]=m,
[i]=m,
[b]="base (.*?) is marked \'(?:final|sealed)\'",
[j]="base (.*?) is marked \'(?:final|sealed)\'",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"fc1eef48980e",1295718713,"Mark classes as final or explicit. Diagnose when a class marked \'final\' is used as a base."}
[d]={"fc1eef48980e",1295718713,"Mark classes as final or explicit. Diagnose when a class marked \'final\' is used as a base."},
[k]={{v,2362,"/// Check the validity of a C++ base class specifier.\n///\n/// \\returns a new CXXBaseSpecifier if well-formed, emits diagnostics\n/// and returns NULL otherwise.\nCXXBaseSpecifier *Sema::CheckBaseSpecifier(CXXRecordDecl *Class, SourceRange SpecifierRange, bool Virtual, AccessSpecifier Access, TypeSourceInfo *TInfo, SourceLocation EllipsisLoc) {\n  // C++ [class]p3:\n  //  If a class is marked final and it appears as a base-type-specifier in\n  //  base-clause, the program is ill-formed.\n  if (FinalAttr *FA = CXXBaseDecl->getAttr<FinalAttr>()) {\n    Diag(BaseLoc, diag::err_class_marked_final_used_as_base) << CXXBaseDecl->getDeclName() << FA->isSpelledAsSealed();"}}
},
},
["err_class_on_template_template_param"]={
["err_class_on_template_template_param"]={
[f]="template template parameter requires \'class\'... after the parameter list",
[f]="template template parameter requires \'class\'... after the parameter list",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="template template parameter requires \'class\'%select{| or \'typename\'}0 after the parameter list",
[g]="template template parameter requires \'class\'%select{| or \'typename\'}0 after the parameter list",
[c]=m,
[i]=m,
[b]="template template parameter requires \'class\'(?:| or \'typename\') after the parameter list",
[j]="template template parameter requires \'class\'(?:| or \'typename\') after the parameter list",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={"cbd8125a6ad2",1333690003,"Restrict fixit for missing \'class\' in template template parameters."}
[d]={"cbd8125a6ad2",1333690003,"Restrict fixit for missing \'class\' in template template parameters."},
[k]={{Hb,827,"/// ParseTemplateTemplateParameter - Handle the parsing of template\n/// template parameters.\n///\n///      type-parameter:    [C++ temp.param]\n///        template-head type-parameter-key ...[opt] identifier[opt]\n///        template-head type-parameter-key identifier[opt] = id-expression\n///      type-parameter-key:\n///        \'class\'\n///        \'typename\'      [C++1z]\n///      template-head:    [C++2a]\n///        \'template\' \'<\' template-parameter-list \'>\'\n///            requires-clause[opt]\nNamedDecl *Parser::ParseTemplateTemplateParameter(unsigned Depth, unsigned Position) {\n  // Provide an ExtWarn if the C++1z feature of using \'typename\' here is used.\n  // Generate a meaningful error if the user forgot to put class before the\n  // identifier, comma, or greater. Provide a fixit if the identifier, comma,\n  // or greater appear immediately or after \'struct\'. In the latter case,\n  // replace the keyword with \'class\'.\n  if (!TryConsumeToken(tok::kw_class)) {\n    if (Tok.is(tok::kw_typename)) {\n    } else if (Next.isOneOf(tok::identifier, tok::comma, tok::greater, tok::greatergreater, tok::ellipsis)) {\n      Diag(Tok.getLocation(), diag::err_class_on_template_template_param) << getLangOpts().CPlusPlus17 << (Replace ? FixItHint::CreateReplacement(Tok.getLocation(), \"class\") : FixItHint::CreateInsertion(Tok.getLocation(), \"class \"));"},{Hb,829,"/// ParseTemplateTemplateParameter - Handle the parsing of template\n/// template parameters.\n///\n///      type-parameter:    [C++ temp.param]\n///        template-head type-parameter-key ...[opt] identifier[opt]\n///        template-head type-parameter-key identifier[opt] = id-expression\n///      type-parameter-key:\n///        \'class\'\n///        \'typename\'      [C++1z]\n///      template-head:    [C++2a]\n///        \'template\' \'<\' template-parameter-list \'>\'\n///            requires-clause[opt]\nNamedDecl *Parser::ParseTemplateTemplateParameter(unsigned Depth, unsigned Position) {\n  // Provide an ExtWarn if the C++1z feature of using \'typename\' here is used.\n  // Generate a meaningful error if the user forgot to put class before the\n  // identifier, comma, or greater. Provide a fixit if the identifier, comma,\n  // or greater appear immediately or after \'struct\'. In the latter case,\n  // replace the keyword with \'class\'.\n  if (!TryConsumeToken(tok::kw_class)) {\n    if (Tok.is(tok::kw_typename)) {\n    } else if (Next.isOneOf(tok::identifier, tok::comma, tok::greater, tok::greatergreater, tok::ellipsis)) {\n    } else\n      Diag(Tok.getLocation(), diag::err_class_on_template_template_param) << getLangOpts().CPlusPlus17;"}}
},
},
["err_class_property_found"]={
["err_class_property_found"]={
[f]="property A is a class property; did you mean to access it with class \'B\'?",
[f]="property A is a class property; did you mean to access it with class \'B\'?",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="property %0 is a class property; did you mean to access it with class \'%1\'?",
[g]="property %0 is a class property; did you mean to access it with class \'%1\'?",
[c]=m,
[i]=m,
[b]="property (.*?) is a class property; did you mean to access it with class \'(.*?)\'\\?",
[j]="property (.*?) is a class property; did you mean to access it with class \'(.*?)\'\\?",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"2b2b1a920087",1467154909,"ObjC Class Property: diagnostics when accessing a class property using instance."}
[d]={"2b2b1a920087",1467154909,"ObjC Class Property: diagnostics when accessing a class property using instance."},
[k]={{G,1716,"/// HandleExprPropertyRefExpr - Handle foo.bar where foo is a pointer to an\n/// objective C interface.  This is a property reference expression.\nExprResult Sema::HandleExprPropertyRefExpr(const ObjCObjectPointerType *OPT, Expr *BaseExpr, SourceLocation OpLoc, DeclarationName MemberName, SourceLocation MemberLoc, SourceLocation SuperLoc, QualType SuperType, bool Super) {\n  if (TypoCorrection Corrected = CorrectTypo(DeclarationNameInfo(MemberName, MemberLoc), LookupOrdinaryName, nullptr, nullptr, CCC, CTK_ErrorRecovery, IFace, false, OPT)) {\n    if (TypoResult.isIdentifier() && TypoResult.getAsIdentifierInfo() == Member) {\n      if (ChosenDecl && isa<ObjCPropertyDecl>(ChosenDecl))\n        if (cast<ObjCPropertyDecl>(ChosenDecl)->isClassProperty()) {\n          Diag(MemberLoc, diag::err_class_property_found) << MemberName << OPT->getInterfaceDecl()->getName() << FixItHint::CreateReplacement(BaseExpr->getSourceRange(), OPT->getInterfaceDecl()->getName());"}}
},
},
["err_class_redeclared_with_different_access"]={
["err_class_redeclared_with_different_access"]={
[f]="A redeclared with \'B\' access",
[f]="A redeclared with \'B\' access",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%0 redeclared with \'%1\' access",
[g]="%0 redeclared with \'%1\' access",
[c]=m,
[i]=m,
[b]="(.*?) redeclared with \'(.*?)\' access",
[j]="(.*?) redeclared with \'(.*?)\' access",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"2ed6ceba1d90",1238027057,"Check that the access specifier of a member redeclaration is the same as the original declaration."}
[d]={"2ed6ceba1d90",1238027057,"Check that the access specifier of a member redeclaration is the same as the original declaration."},
[k]={{S,45,"/// SetMemberAccessSpecifier - Set the access specifier of a member.\n/// Returns true on error (when the previous member decl access specifier\n/// is different from the new member decl access specifier).\nbool Sema::SetMemberAccessSpecifier(NamedDecl *MemberDecl, NamedDecl *PrevMemberDecl, AccessSpecifier LexicalAS) {\n  // C++ [class.access.spec]p3: When a member is redeclared its access\n  // specifier must be same as its initial declaration.\n  if (LexicalAS != AS_none && LexicalAS != PrevMemberDecl->getAccess()) {\n    Diag(MemberDecl->getLocation(), diag::err_class_redeclared_with_different_access) << MemberDecl << LexicalAS;"}}
},
},
["err_class_stub_subclassing_mismatch"]={
["err_class_stub_subclassing_mismatch"]={
[f]="\'objc_class_stub\' attribute cannot be specified on a class that does not have the \'objc_subclassing_restricted\' attribute",
[f]="\'objc_class_stub\' attribute cannot be specified on a class that does not have the \'objc_subclassing_restricted\' attribute",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'objc_class_stub\' attribute cannot be specified on a class that does not have the \'objc_subclassing_restricted\' attribute",
[i]=m,
[j]="\'objc_class_stub\' attribute cannot be specified on a class that does not have the \'objc_subclassing_restricted\' attribute",
[j]="\'objc_class_stub\' attribute cannot be specified on a class that does not have the \'objc_subclassing_restricted\' attribute",
[c]=m,
[b]=a,
[b]="\'objc_class_stub\' attribute cannot be specified on a class that does not have the \'objc_subclassing_restricted\' attribute",
[h]=o,
[i]=a,
[d]={"2c91c3b7af7c",1559189341,"Add the `objc_class_stub` attribute."},
[h]=n,
[k]={{I,3457,"// Note: For class/category implementations, allMethods is always null.\nDecl *Sema::ActOnAtEnd(Scope *S, SourceRange AtEnd, ArrayRef<Decl *> allMethods, ArrayRef<DeclGroupPtrTy> allTUVars) {\n  if (ObjCImplementationDecl *IC = dyn_cast<ObjCImplementationDecl>(ClassDecl)) {\n  } else if (ObjCCategoryImplDecl *CatImplClass = dyn_cast<ObjCCategoryImplDecl>(ClassDecl)) {\n  } else if (const auto *IntfDecl = dyn_cast<ObjCInterfaceDecl>(ClassDecl)) {\n    if (IntfDecl->hasAttr<ObjCClassStubAttr>() && !IntfDecl->hasAttr<ObjCSubclassingRestrictedAttr>())\n      Diag(IntfDecl->getLocation(), diag::err_class_stub_subclassing_mismatch);"}}
[g]={"2c91c3b7af7c",1559189341,"Add the `objc_class_stub` attribute."}
},
},
["err_cmse_pi_are_incompatible"]={
["err_cmse_pi_are_incompatible"]={
[f]="cmse is not compatible with ...",
[f]="cmse is not compatible with ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cmse is not compatible with %select{RWPI|ROPI}0",
[g]="cmse is not compatible with %select{RWPI|ROPI}0",
[c]=m,
[i]=m,
[b]="cmse is not compatible with (?:RWPI|ROPI)",
[j]="cmse is not compatible with (?:RWPI|ROPI)",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={N,1534346725,M}
[d]={tb,1534346725,rb},
[k]={{"clang/lib/Driver/ToolChains/Clang.cpp",4563,"#endif\n  if (Args.hasArg(options::OPT_mcmse) && !Args.hasArg(options::OPT_fallow_unsupported)) {\n    if (IsROPI)\n      D.Diag(diag::err_cmse_pi_are_incompatible) << IsROPI;"},{"clang/lib/Driver/ToolChains/Clang.cpp",4565,"#endif\n  if (Args.hasArg(options::OPT_mcmse) && !Args.hasArg(options::OPT_fallow_unsupported)) {\n    if (IsRWPI)\n      D.Diag(diag::err_cmse_pi_are_incompatible) << !IsRWPI;"}}
},
},
["err_cocoa_naming_owned_rule"]={
["err_cocoa_naming_owned_rule"]={
[f]="property follows Cocoa naming convention for returning \'owned\' objects",
[f]="property follows Cocoa naming convention for returning \'owned\' objects",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="property follows Cocoa naming convention for returning \'owned\' objects",
[i]=m,
[j]="property follows Cocoa naming convention for returning \'owned\' objects",
[j]="property follows Cocoa naming convention for returning \'owned\' objects",
[c]=m,
[b]=a,
[b]="property follows Cocoa naming convention for returning \'owned\' objects",
[h]=o,
[i]=a,
[d]={"65b13779118c",1389315228,"ObjectiveC. 1) Warn when @dynamic (as well as synthesize) "},
[h]=n,
[k]={{P,1807,"void Sema::DiagnoseOwningPropertyGetterSynthesis(const ObjCImplementationDecl *D) {\n  for (const auto *PID : D->property_impls()) {\n    if (PD && !PD->hasAttr<NSReturnsNotRetainedAttr>() && !PD->isClassProperty()) {\n      if (family == OMF_alloc || family == OMF_copy || family == OMF_mutableCopy || family == OMF_new) {\n        if (getLangOpts().ObjCAutoRefCount)\n          Diag(PD->getLocation(), diag::err_cocoa_naming_owned_rule);"}}
[g]={"65b13779118c",1389315228,"ObjectiveC. 1) Warn when @dynamic (as well as synthesize) "}
},
},
["err_collection_expr_type"]={
["err_collection_expr_type"]={
[f]="the type A is not a pointer to a fast-enumerable object",
[f]="the type A is not a pointer to a fast-enumerable object",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="the type %0 is not a pointer to a fast-enumerable object",
[g]="the type %0 is not a pointer to a fast-enumerable object",
[c]=m,
[i]=m,
[b]="the type (.*?) is not a pointer to a fast\\-enumerable object",
[j]="the type (.*?) is not a pointer to a fast\\-enumerable object",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{R,1949,"ExprResult Sema::CheckObjCForCollectionOperand(SourceLocation forLoc, Expr *collection) {\n  if (!pointerType)\n    return Diag(forLoc, diag::err_collection_expr_type) << collection->getType() << collection->getSourceRange();"}}
},
},
["err_complex_mode_vector_type"]={
["err_complex_mode_vector_type"]={
[f]="type of machine mode does not support base vector types",
[f]="type of machine mode does not support base vector types",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="type of machine mode does not support base vector types",
[i]=m,
[j]="type of machine mode does not support base vector types",
[j]="type of machine mode does not support base vector types",
[c]=m,
[b]=a,
[b]="type of machine mode does not support base vector types",
[h]=o,
[i]=a,
[d]={"326057d0da96",1434699981,"[ATTRIBUTE] Support base vector types of __attribute__((mode)), patch by Alexey Frolov"},
[h]=n,
[k]={{p,4257,"void Sema::AddModeAttr(Decl *D, const AttributeCommonInfo &CI, IdentifierInfo *Name, bool InInstantiation) {\n  if (VectorSize.getBoolValue()) {\n  } else if (const auto *OldVT = OldTy->getAs<VectorType>()) {\n    // Complex machine mode does not support base vector types.\n    if (ComplexMode) {\n      Diag(AttrLoc, diag::err_complex_mode_vector_type);"}}
[g]={"326057d0da96",1434699981,"[ATTRIBUTE] Support base vector types of __attribute__((mode)), patch by Alexey Frolov"}
},
},
["err_compound_literal_with_address_space"]={
["err_compound_literal_with_address_space"]={
[f]="compound literal in function scope may not be qualified with an address space",
[f]="compound literal in function scope may not be qualified with an address space",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="compound literal in function scope may not be qualified with an address space",
[i]=m,
[j]="compound literal in function scope may not be qualified with an address space",
[j]="compound literal in function scope may not be qualified with an address space",
[c]=m,
[b]=a,
[b]="compound literal in function scope may not be qualified with an address space",
[h]=o,
[i]=a,
[d]={"7fa8af0abee8",1536175360,"Forbid address spaces on compound literals in local scope."},
[h]=n,
[k]={{y,6667,"ExprResult Sema::BuildCompoundLiteralExpr(SourceLocation LParenLoc, TypeSourceInfo *TInfo, SourceLocation RParenLoc, Expr *LiteralExpr) {\n  if (isFileScope) {\n  } else if (literalType.getAddressSpace() != LangAS::opencl_private && literalType.getAddressSpace() != LangAS::Default) {\n    Diag(LParenLoc, diag::err_compound_literal_with_address_space) << SourceRange(LParenLoc, LiteralExpr->getSourceRange().getEnd());"}}
[g]={"7fa8af0abee8",1536175360,"Forbid address spaces on compound literals in local scope."}
},
},
["err_compound_qualified_function_type"]={
["err_compound_qualified_function_type"]={
[f]="... to function type ...cannot have \'A\' qualifier",
[f]="... to function type ...cannot have \'A\' qualifier",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{block pointer|pointer|reference}0 to function type %select{%2 |}1cannot have \'%3\' qualifier",
[g]="%select{block pointer|pointer|reference}0 to function type %select{%2 |}1cannot have \'%3\' qualifier",
[c]=m,
[i]=m,
[b]="(?:block pointer|pointer|reference) to function type (?:(.*?) |)cannot have \'(.*?)\' qualifier",
[j]="(?:block pointer|pointer|reference) to function type (?:(.*?) |)cannot have \'(.*?)\' qualifier",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"63168c75333b",1328871911,"PR11684, core issue 1417:"}
[d]={"63168c75333b",1328871911,"PR11684, core issue 1417:"},
[k]={{r,1880,"/// Check whether the type T is a qualified function type, and if it is,\n/// diagnose that it cannot be contained within the given kind of declarator.\nstatic bool checkQualifiedFunction(Sema &S, QualType T, SourceLocation Loc, QualifiedFunctionKind QFK) {\n  S.Diag(Loc, diag::err_compound_qualified_function_type) << QFK << isa<FunctionType>(T.IgnoreParens()) << T << getFunctionQualifiersAsString(FPT);"}}
},
},
["err_concept_decls_may_only_appear_in_global_namespace_scope"]={
["err_concept_decls_may_only_appear_in_global_namespace_scope"]={
[f]="concept declarations may only appear in global or namespace scope",
[f]="concept declarations may only appear in global or namespace scope",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="concept declarations may only appear in global or namespace scope",
[i]=m,
[j]="concept declarations may only appear in global or namespace scope",
[j]="concept declarations may only appear in global or namespace scope",
[c]=m,
[b]=a,
[b]="concept declarations may only appear in global or namespace scope",
[h]=o,
[i]=a,
[d]={"d7aae33a9513",1562793949,"[Concepts] Concept definitions (D40381)"},
[h]=n,
[k]={{Cb,7368,"Decl *Sema::ActOnConceptDefinition(Scope *S, MultiTemplateParamsArg TemplateParameterLists, IdentifierInfo *Name, SourceLocation NameLoc, Expr *ConstraintExpr) {\n  if (!DC->getRedeclContext()->isFileContext()) {\n    Diag(NameLoc, diag::err_concept_decls_may_only_appear_in_global_namespace_scope);"}}
[g]={"d7aae33a9513",1562793949,"[Concepts] Concept definitions (D40381)"}
},
},
["err_concept_definition_not_identifier"]={
["err_concept_definition_not_identifier"]={
[f]="name defined in concept definition must be an identifier",
[f]="name defined in concept definition must be an identifier",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="name defined in concept definition must be an identifier",
[i]=m,
[j]="name defined in concept definition must be an identifier",
[j]="name defined in concept definition must be an identifier",
[c]=m,
[b]=a,
[b]="name defined in concept definition must be an identifier",
[i]=a,
[h]="Concepts Issue",
[h]="Concepts Issue",
[g]={"d7aae33a9513",1562793949,"[Concepts] Concept definitions (D40381)"}
[d]={"d7aae33a9513",1562793949,"[Concepts] Concept definitions (D40381)"},
[k]={{Hb,358,"/// \\brief Parse a single declaration that declares a concept.\n///\n/// \\param DeclEnd will receive the source location of the last token\n/// within this declaration.\n///\n/// \\returns the new declaration.\nDecl *Parser::ParseConceptDefinition(const ParsedTemplateInfo &TemplateInfo, SourceLocation &DeclEnd) {\n  if (SS.isNotEmpty())\n    Diag(SS.getBeginLoc(), diag::err_concept_definition_not_identifier);"},{Hb,372,"/// \\brief Parse a single declaration that declares a concept.\n///\n/// \\param DeclEnd will receive the source location of the last token\n/// within this declaration.\n///\n/// \\returns the new declaration.\nDecl *Parser::ParseConceptDefinition(const ParsedTemplateInfo &TemplateInfo, SourceLocation &DeclEnd) {\n  if (Result.getKind() != UnqualifiedIdKind::IK_Identifier) {\n    Diag(Result.getBeginLoc(), diag::err_concept_definition_not_identifier);"}}
},
},
["err_concept_extra_headers"]={
["err_concept_extra_headers"]={
[f]="extraneous template parameter list in concept definition",
[f]="extraneous template parameter list in concept definition",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="extraneous template parameter list in concept definition",
[i]=m,
[j]="extraneous template parameter list in concept definition",
[j]="extraneous template parameter list in concept definition",
[c]=m,
[b]=a,
[b]="extraneous template parameter list in concept definition",
[h]=o,
[i]=a,
[d]={"936de9d66600",1524624146,"[c++2a] [concepts] Add rudimentary parsing support for template concept declarations"},
[h]=n,
[k]={{Cb,7373,"Decl *Sema::ActOnConceptDefinition(Scope *S, MultiTemplateParamsArg TemplateParameterLists, IdentifierInfo *Name, SourceLocation NameLoc, Expr *ConstraintExpr) {\n  if (TemplateParameterLists.size() > 1) {\n    Diag(NameLoc, diag::err_concept_extra_headers);"}}
[g]={"936de9d66600",1524624146,"[c++2a] [concepts] Add rudimentary parsing support for template concept declarations"}
},
},
["err_concept_legacy_bool_keyword"]={
["err_concept_legacy_bool_keyword"]={
[f]="ISO C++ does not permit the \'bool\' keyword after \'concept\'",
[f]="ISO C++ does not permit the \'bool\' keyword after \'concept\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="ISO C++ does not permit the \'bool\' keyword after \'concept\'",
[g]="ISO C++ does not permit the \'bool\' keyword after \'concept\'",
[c]=m,
[i]=m,
[b]="ISO C\\+\\+ does not permit the \'bool\' keyword after \'concept\'",
[j]="ISO C\\+\\+ does not permit the \'bool\' keyword after \'concept\'",
[i]=a,
[b]=a,
[h]="Concepts Issue",
[h]="Concepts Issue",
[g]={"9061928ebbb1",1669659698,"Stop accepting \'bool\' in a concept declaration as an extension."}
[d]={"9061928ebbb1",1669659698,"Stop accepting \'bool\' in a concept declaration as an extension."},
[k]={{Hb,343,"/// \\brief Parse a single declaration that declares a concept.\n///\n/// \\param DeclEnd will receive the source location of the last token\n/// within this declaration.\n///\n/// \\returns the new declaration.\nDecl *Parser::ParseConceptDefinition(const ParsedTemplateInfo &TemplateInfo, SourceLocation &DeclEnd) {\n  if (TryConsumeToken(tok::kw_bool, BoolKWLoc))\n    Diag(Tok.getLocation(), diag::err_concept_legacy_bool_keyword) << FixItHint::CreateRemoval(SourceLocation(BoolKWLoc));"}}
},
},
["err_concept_no_associated_constraints"]={
["err_concept_no_associated_constraints"]={
[f]="concept cannot have associated constraints",
[f]="concept cannot have associated constraints",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="concept cannot have associated constraints",
[i]=m,
[j]="concept cannot have associated constraints",
[j]="concept cannot have associated constraints",
[c]=m,
[b]=a,
[b]="concept cannot have associated constraints",
[h]=o,
[i]=a,
[d]={"936de9d66600",1524624146,"[c++2a] [concepts] Add rudimentary parsing support for template concept declarations"},
[h]=n,
[k]={{Cb,7404,"Decl *Sema::ActOnConceptDefinition(Scope *S, MultiTemplateParamsArg TemplateParameterLists, IdentifierInfo *Name, SourceLocation NameLoc, Expr *ConstraintExpr) {\n  if (NewDecl->hasAssociatedConstraints()) {\n    Diag(NameLoc, diag::err_concept_no_associated_constraints);"}}
[g]={"936de9d66600",1524624146,"[c++2a] [concepts] Add rudimentary parsing support for template concept declarations"}
},
},
["err_concept_no_parameters"]={
["err_concept_no_parameters"]={
[f]="concept template parameter list must have at least one parameter; explicit specialization of concepts is not allowed",
[f]="concept template parameter list must have at least one parameter; explicit specialization of concepts is not allowed",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="concept template parameter list must have at least one parameter; explicit specialization of concepts is not allowed",
[i]=m,
[j]="concept template parameter list must have at least one parameter; explicit specialization of concepts is not allowed",
[j]="concept template parameter list must have at least one parameter; explicit specialization of concepts is not allowed",
[c]=m,
[b]=a,
[b]="concept template parameter list must have at least one parameter; explicit specialization of concepts is not allowed",
[h]=o,
[i]=a,
[d]={"d7aae33a9513",1562793949,"[Concepts] Concept definitions (D40381)"},
[h]=n,
[k]={{Cb,7380,"Decl *Sema::ActOnConceptDefinition(Scope *S, MultiTemplateParamsArg TemplateParameterLists, IdentifierInfo *Name, SourceLocation NameLoc, Expr *ConstraintExpr) {\n  if (Params->size() == 0) {\n    Diag(NameLoc, diag::err_concept_no_parameters);"}}
[g]={"d7aae33a9513",1562793949,"[Concepts] Concept definitions (D40381)"}
},
},
["err_cond_voidptr_arc"]={
["err_cond_voidptr_arc"]={
[f]="operands to conditional of types A and B are incompatible in ARC mode",
[f]="operands to conditional of types A and B are incompatible in ARC mode",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="operands to conditional of types%diff{ $ and $|}0,1 are incompatible in ARC mode",
[g]="operands to conditional of types%diff{ $ and $|}0,1 are incompatible in ARC mode",
[c]=m,
[i]=m,
[b]="operands to conditional of types(?: (.*?) and (.*?)|) are incompatible in ARC mode",
[j]="operands to conditional of types(?: (.*?) and (.*?)|) are incompatible in ARC mode",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"8a78a58188b7",1330129424,"Improve the diagnostic in ARC mode when a conditional with an Objective-C type and void* is used.  <..."}
[d]={"8a78a58188b7",1330129424,"Improve the diagnostic in ARC mode when a conditional with an Objective-C type and void* is used.  <..."},
[k]={{y,8086,"/// FindCompositeObjCPointerType - Helper method to find composite type of\n/// two objective-c pointer types of the two input expressions.\nQualType Sema::FindCompositeObjCPointerType(ExprResult &LHS, ExprResult &RHS, SourceLocation QuestionLoc) {\n  // Check Objective-C object pointer types and \'void *\'\n  if (LHSTy->isVoidPointerType() && RHSTy->isObjCObjectPointerType()) {\n    if (getLangOpts().ObjCAutoRefCount) {\n      Diag(QuestionLoc, diag::err_cond_voidptr_arc) << LHSTy << RHSTy << LHS.get()->getSourceRange() << RHS.get()->getSourceRange();"},{y,8104,"/// FindCompositeObjCPointerType - Helper method to find composite type of\n/// two objective-c pointer types of the two input expressions.\nQualType Sema::FindCompositeObjCPointerType(ExprResult &LHS, ExprResult &RHS, SourceLocation QuestionLoc) {\n  if (LHSTy->isObjCObjectPointerType() && RHSTy->isVoidPointerType()) {\n    if (getLangOpts().ObjCAutoRefCount) {\n      Diag(QuestionLoc, diag::err_cond_voidptr_arc) << LHSTy << RHSTy << LHS.get()->getSourceRange() << RHS.get()->getSourceRange();"}}
},
},
["err_conditional_ambiguous"]={
["err_conditional_ambiguous"]={
[f]="conditional expression is ambiguous; A can be converted to B and vice versa",
[f]="conditional expression is ambiguous; A can be converted to B and vice versa",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="conditional expression is ambiguous; %diff{$ can be converted to $ and vice versa|types can be convert to each other}0,1",
[g]="conditional expression is ambiguous; %diff{$ can be converted to $ and vice versa|types can be convert to each other}0,1",
[c]=m,
[i]=m,
[b]="conditional expression is ambiguous; (?:(.*?) can be converted to (.*?) and vice versa|types can be convert to each other)",
[j]="conditional expression is ambiguous; (?:(.*?) can be converted to (.*?) and vice versa|types can be convert to each other)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"1a99f441e64c",1239904287,"Fix a crash bug when comparing overload quality of conversion operators with conversion constructors..."}
[d]={"1a99f441e64c",1239904287,"Fix a crash bug when comparing overload quality of conversion operators with conversion constructors..."},
[k]={{x,5710,"/// Check the operands of ?: under C++ semantics.\n///\n/// See C++ [expr.cond]. Note that LHS is never null, even for the GNU x ?: y\n/// extension. In this case, LHS == Cond. (But they\'re not aliases.)\n///\n/// This function also implements GCC\'s vector extension and the\n/// OpenCL/ext_vector_type extension for conditionals. The vector extensions\n/// permit the use of a?b:c where the type of a is that of a integer vector with\n/// the same number of elements and size as the vectors of b and c. If one of\n/// either b or c is a scalar it is implicitly converted to match the type of\n/// the vector. Otherwise the expression is ill-formed. If both b and c are\n/// scalars, then b and c are checked and converted to the type of a if\n/// possible.\n///\n/// The expressions are evaluated differently for GCC\'s and OpenCL\'s extensions.\n/// For the GCC extension, the ?: operator is evaluated as\n///  (a[0] != 0 ? b[0] : c[0], .. , a[n] != 0 ? b[n] : c[n]).\n/// For the OpenCL extensions, the ?: operator is evaluated as\n///  (most-significant-bit-set(a[0])  ? b[0] : c[0], .. ,\n///    most-significant-bit-set(a[n]) ? b[n] : c[n]).\nQualType Sema::CXXCheckConditionalOperands(ExprResult &Cond, ExprResult &LHS, ExprResult &RHS, ExprValueKind &VK, ExprObjectKind &OK, SourceLocation QuestionLoc) {\n  // C++11 [expr.cond]p3\n  //  Otherwise, if the second and third operand have different types, and\n  //  either has (cv) class type [...] an attempt is made to convert each of\n  //  those operands to the type of the other.\n  if (!Context.hasSameType(LTy, RTy) && (LTy->isRecordType() || RTy->isRecordType())) {\n    //  If both can be converted, [...] the program is ill-formed.\n    if (HaveL2R && HaveR2L) {\n      Diag(QuestionLoc, diag::err_conditional_ambiguous) << LTy << RTy << LHS.get()->getSourceRange() << RHS.get()->getSourceRange();"}}
},
},
["err_conditional_ambiguous_ovl"]={
["err_conditional_ambiguous_ovl"]={
[f]="conditional expression is ambiguous; A and B can be converted to several common types",
[f]="conditional expression is ambiguous; A and B can be converted to several common types",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="conditional expression is ambiguous; %diff{$ and $|types}0,1 can be converted to several common types",
[g]="conditional expression is ambiguous; %diff{$ and $|types}0,1 can be converted to several common types",
[c]=m,
[i]=m,
[b]="conditional expression is ambiguous; (?:(.*?) and (.*?)|types) can be converted to several common types",
[j]="conditional expression is ambiguous; (?:(.*?) and (.*?)|types) can be converted to several common types",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"1a99f441e64c",1239904287,"Fix a crash bug when comparing overload quality of conversion operators with conversion constructors..."}
[d]={"1a99f441e64c",1239904287,"Fix a crash bug when comparing overload quality of conversion operators with conversion constructors..."},
[k]={{x,5408,"/// Try to find a common type for two according to C++0x 5.16p5.\n///\n/// This is part of the parameter validation for the ? operator. If either\n/// value operand is a class type, overload resolution is used to find a\n/// conversion to a common type.\nstatic bool FindConditionalOverload(Sema &Self, ExprResult &LHS, ExprResult &RHS, SourceLocation QuestionLoc) {\n  case OR_Ambiguous:\n    Self.Diag(QuestionLoc, diag::err_conditional_ambiguous_ovl) << LHS.get()->getType() << RHS.get()->getType() << LHS.get()->getSourceRange() << RHS.get()->getSourceRange();"}}
},
},
["err_conditional_vector_cond_result_mismatch"]={
["err_conditional_vector_cond_result_mismatch"]={
[f]="cannot mix vectors and extended vectors in a vector conditional",
[f]="cannot mix vectors and extended vectors in a vector conditional",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="cannot mix vectors and extended vectors in a vector conditional",
[i]=m,
[j]="cannot mix vectors and extended vectors in a vector conditional",
[j]="cannot mix vectors and extended vectors in a vector conditional",
[c]=m,
[b]=a,
[b]="cannot mix vectors and extended vectors in a vector conditional",
[h]=o,
[i]=a,
[d]={fb,1590001902,eb},
[h]=n,
[k]={{x,5469,"QualType Sema::CheckVectorConditionalTypes(ExprResult &Cond, ExprResult &LHS, ExprResult &RHS, SourceLocation QuestionLoc) {\n  if (LHSVT && RHSVT) {\n    if (isa<ExtVectorType>(CondVT) != isa<ExtVectorType>(LHSVT)) {\n      Diag(QuestionLoc, diag::err_conditional_vector_cond_result_mismatch) << /*isExtVector*/ isa<ExtVectorType>(CondVT);"}}
[g]={Z,1590001902,ab}
},
},
["err_conditional_vector_element_size"]={
["err_conditional_vector_element_size"]={
[f]="vector condition type A and result type B do not have elements of the same size",
[f]="vector condition type A and result type B do not have elements of the same size",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="vector condition type %0 and result type %1 do not have elements of the same size",
[g]="vector condition type %0 and result type %1 do not have elements of the same size",
[c]=m,
[i]=m,
[b]="vector condition type (.*?) and result type (.*?) do not have elements of the same size",
[j]="vector condition type (.*?) and result type (.*?) do not have elements of the same size",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e8d2aaf32021",1423031898,"OpenCL: handle ternary operator when the condition is a vector"}
[d]={"e8d2aaf32021",1423031898,"OpenCL: handle ternary operator when the condition is a vector"},
[k]={{y,7720,"/// Convert scalar operands to a vector that matches the\n///        condition in length.\n///\n/// Used when handling the OpenCL conditional operator where the\n/// condition is a vector while the other operands are scalar.\n///\n/// We first compute the \"result type\" for the scalar operands\n/// according to OpenCL v1.1 s6.3.i. Both operands are then converted\n/// into a vector of that type where the length matches the condition\n/// vector type. s6.11.6 requires that the element types of the result\n/// and the condition must have the same number of bits.\nstatic QualType OpenCLConvertScalarsToVectors(Sema &S, ExprResult &LHS, ExprResult &RHS, QualType CondTy, SourceLocation QuestionLoc) {\n  // Ensure that all types have the same number of bits\n  if (S.Context.getTypeSize(CV->getElementType()) != S.Context.getTypeSize(ResTy)) {\n    S.Diag(QuestionLoc, diag::err_conditional_vector_element_size) << CondTy << OS.str();"},{y,7765,"/// Return false if the vector condition type and the vector\n///        result type are compatible.\n///\n/// OpenCL v1.1 s6.11.6 requires that both vector types have the same\n/// number of elements, and their element types have the same number\n/// of bits.\nstatic bool checkVectorResult(Sema &S, QualType CondTy, QualType VecResTy, SourceLocation QuestionLoc) {\n  if (S.Context.getTypeSize(CVE) != S.Context.getTypeSize(RVE)) {\n    S.Diag(QuestionLoc, diag::err_conditional_vector_element_size) << CondTy << VecResTy;"},{x,5516,"QualType Sema::CheckVectorConditionalTypes(ExprResult &Cond, ExprResult &LHS, ExprResult &RHS, SourceLocation QuestionLoc) {\n  if (Context.getTypeSize(ResultElementTy) != Context.getTypeSize(CondElementTy)) {\n    Diag(QuestionLoc, diag::err_conditional_vector_element_size) << CondType << ResultType;"},{x,5583,"QualType Sema::CheckSizelessVectorConditionalTypes(ExprResult &Cond, ExprResult &LHS, ExprResult &RHS, SourceLocation QuestionLoc) {\n  if (Context.getTypeSize(ResultElementTy) != Context.getTypeSize(CondElementTy)) {\n    Diag(QuestionLoc, diag::err_conditional_vector_element_size) << CondType << ResultType;"}}
},
},
["err_conditional_vector_has_void"]={
["err_conditional_vector_has_void"]={
[f]="GNU vector conditional operand cannot be ...",
[f]="GNU vector conditional operand cannot be ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="GNU vector conditional operand cannot be %select{void|a throw expression}0",
[g]="GNU vector conditional operand cannot be %select{void|a throw expression}0",
[c]=m,
[i]=m,
[b]="GNU vector conditional operand cannot be (?:void|a throw expression)",
[j]="GNU vector conditional operand cannot be (?:void|a throw expression)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={tc,1575555459,oc}
[d]={"349636d2bfc3",1575555459,"Implement VectorType conditional operator GNU extension."},
[k]={{x,5659,"/// Check the operands of ?: under C++ semantics.\n///\n/// See C++ [expr.cond]. Note that LHS is never null, even for the GNU x ?: y\n/// extension. In this case, LHS == Cond. (But they\'re not aliases.)\n///\n/// This function also implements GCC\'s vector extension and the\n/// OpenCL/ext_vector_type extension for conditionals. The vector extensions\n/// permit the use of a?b:c where the type of a is that of a integer vector with\n/// the same number of elements and size as the vectors of b and c. If one of\n/// either b or c is a scalar it is implicitly converted to match the type of\n/// the vector. Otherwise the expression is ill-formed. If both b and c are\n/// scalars, then b and c are checked and converted to the type of a if\n/// possible.\n///\n/// The expressions are evaluated differently for GCC\'s and OpenCL\'s extensions.\n/// For the GCC extension, the ?: operator is evaluated as\n///  (a[0] != 0 ? b[0] : c[0], .. , a[n] != 0 ? b[n] : c[n]).\n/// For the OpenCL extensions, the ?: operator is evaluated as\n///  (most-significant-bit-set(a[0])  ? b[0] : c[0], .. ,\n///    most-significant-bit-set(a[n]) ? b[n] : c[n]).\nQualType Sema::CXXCheckConditionalOperands(ExprResult &Cond, ExprResult &LHS, ExprResult &RHS, ExprValueKind &VK, ExprObjectKind &OK, SourceLocation QuestionLoc) {\n  if (LVoid || RVoid) {\n    // Void expressions aren\'t legal in the vector-conditional expressions.\n    if (IsVectorConditional) {\n      Diag(DiagLoc.getBegin(), diag::err_conditional_vector_has_void) << DiagLoc << IsThrow;"}}
},
},
["err_conditional_vector_mismatched"]={
["err_conditional_vector_mismatched"]={
[f]="vector operands to the vector conditional must be the same type (A and B)}",
[f]="vector operands to the vector conditional must be the same type (A and B)}",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="vector operands to the vector conditional must be the same type %diff{($ and $)|}0,1}",
[g]="vector operands to the vector conditional must be the same type %diff{($ and $)|}0,1}",
[c]=m,
[i]=m,
[b]="vector operands to the vector conditional must be the same type (?:\\((.*?) and (.*?)\\)|)\\}",
[j]="vector operands to the vector conditional must be the same type (?:\\((.*?) and (.*?)\\)|)\\}",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Z,1590001902,ab}
[d]={fb,1590001902,eb},
[k]={{x,5475,"QualType Sema::CheckVectorConditionalTypes(ExprResult &Cond, ExprResult &LHS, ExprResult &RHS, SourceLocation QuestionLoc) {\n  if (LHSVT && RHSVT) {\n    // If both are vector types, they must be the same type.\n    if (!Context.hasSameType(LHSType, RHSType)) {\n      Diag(QuestionLoc, diag::err_conditional_vector_mismatched) << LHSType << RHSType;"},{x,5542,"QualType Sema::CheckSizelessVectorConditionalTypes(ExprResult &Cond, ExprResult &LHS, ExprResult &RHS, SourceLocation QuestionLoc) {\n  if (LHSBT && RHSBT) {\n    // If both are sizeless vector types, they must be the same type.\n    if (!Context.hasSameType(LHSType, RHSType)) {\n      Diag(QuestionLoc, diag::err_conditional_vector_mismatched) << LHSType << RHSType;"}}
},
},
["err_conditional_vector_operand_type"]={
["err_conditional_vector_operand_type"]={
[f]="enumeration type A is not allowed in a vector conditional",
[f]="enumeration type A is not allowed in a vector conditional",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="enumeration type %0 is not allowed in a vector conditional",
[g]="enumeration type %0 is not allowed in a vector conditional",
[c]=m,
[i]=m,
[b]="enumeration type (.*?) is not allowed in a vector conditional",
[j]="enumeration type (.*?) is not allowed in a vector conditional",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={tc,1575555459,oc}
[d]={"349636d2bfc3",1575555459,"Implement VectorType conditional operator GNU extension."},
[k]={{x,5493,"QualType Sema::CheckVectorConditionalTypes(ExprResult &Cond, ExprResult &LHS, ExprResult &RHS, SourceLocation QuestionLoc) {\n  if (LHSVT && RHSVT) {\n  } else if (LHSVT || RHSVT) {\n  } else {\n    if (ResultElementTy->isEnumeralType()) {\n      Diag(QuestionLoc, diag::err_conditional_vector_operand_type) << ResultElementTy;"},{x,5562,"QualType Sema::CheckSizelessVectorConditionalTypes(ExprResult &Cond, ExprResult &LHS, ExprResult &RHS, SourceLocation QuestionLoc) {\n  if (LHSBT && RHSBT) {\n  } else if (LHSBT || RHSBT) {\n  } else {\n    if (ResultElementTy->isEnumeralType()) {\n      Diag(QuestionLoc, diag::err_conditional_vector_operand_type) << ResultElementTy;"}}
},
},
["err_conditional_vector_size"]={
["err_conditional_vector_size"]={
[f]="vector condition type A and result type B do not have the same number of elements",
[f]="vector condition type A and result type B do not have the same number of elements",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="vector condition type %0 and result type %1 do not have the same number of elements",
[g]="vector condition type %0 and result type %1 do not have the same number of elements",
[c]=m,
[i]=m,
[b]="vector condition type (.*?) and result type (.*?) do not have the same number of elements",
[j]="vector condition type (.*?) and result type (.*?) do not have the same number of elements",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"e8d2aaf32021",1423031898,"OpenCL: handle ternary operator when the condition is a vector"}
[d]={"e8d2aaf32021",1423031898,"OpenCL: handle ternary operator when the condition is a vector"},
[k]={{y,7757,"/// Return false if the vector condition type and the vector\n///        result type are compatible.\n///\n/// OpenCL v1.1 s6.11.6 requires that both vector types have the same\n/// number of elements, and their element types have the same number\n/// of bits.\nstatic bool checkVectorResult(Sema &S, QualType CondTy, QualType VecResTy, SourceLocation QuestionLoc) {\n  if (CV->getNumElements() != RV->getNumElements()) {\n    S.Diag(QuestionLoc, diag::err_conditional_vector_size) << CondTy << VecResTy;"},{x,5511,"QualType Sema::CheckVectorConditionalTypes(ExprResult &Cond, ExprResult &LHS, ExprResult &RHS, SourceLocation QuestionLoc) {\n  if (ResultElementCount != CondElementCount) {\n    Diag(QuestionLoc, diag::err_conditional_vector_size) << CondType << ResultType;"},{x,5578,"QualType Sema::CheckSizelessVectorConditionalTypes(ExprResult &Cond, ExprResult &LHS, ExprResult &RHS, SourceLocation QuestionLoc) {\n  if (ResultElementCount != CondElementCount) {\n    Diag(QuestionLoc, diag::err_conditional_vector_size) << CondType << ResultType;"}}
},
},
["err_conditional_void_nonvoid"]={
["err_conditional_void_nonvoid"]={
[f]="... operand to ? is void, but ... operand is of type A",
[f]="... operand to ? is void, but ... operand is of type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{left|right}1 operand to ? is void, but %select{right|left}1 operand is of type %0",
[g]="%select{left|right}1 operand to ? is void, but %select{right|left}1 operand is of type %0",
[c]=m,
[i]=m,
[b]="(?:left|right) operand to \\? is void, but (?:right|left) operand is of type (.*?)",
[j]="(?:left|right) operand to \\? is void, but (?:right|left) operand is of type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"1a99f441e64c",1239904287,"Fix a crash bug when comparing overload quality of conversion operators with conversion constructors..."}
[d]={"1a99f441e64c",1239904287,"Fix a crash bug when comparing overload quality of conversion operators with conversion constructors..."},
[k]={{x,5678,"/// Check the operands of ?: under C++ semantics.\n///\n/// See C++ [expr.cond]. Note that LHS is never null, even for the GNU x ?: y\n/// extension. In this case, LHS == Cond. (But they\'re not aliases.)\n///\n/// This function also implements GCC\'s vector extension and the\n/// OpenCL/ext_vector_type extension for conditionals. The vector extensions\n/// permit the use of a?b:c where the type of a is that of a integer vector with\n/// the same number of elements and size as the vectors of b and c. If one of\n/// either b or c is a scalar it is implicitly converted to match the type of\n/// the vector. Otherwise the expression is ill-formed. If both b and c are\n/// scalars, then b and c are checked and converted to the type of a if\n/// possible.\n///\n/// The expressions are evaluated differently for GCC\'s and OpenCL\'s extensions.\n/// For the GCC extension, the ?: operator is evaluated as\n///  (a[0] != 0 ? b[0] : c[0], .. , a[n] != 0 ? b[n] : c[n]).\n/// For the OpenCL extensions, the ?: operator is evaluated as\n///  (most-significant-bit-set(a[0])  ? b[0] : c[0], .. ,\n///    most-significant-bit-set(a[n]) ? b[n] : c[n]).\nQualType Sema::CXXCheckConditionalOperands(ExprResult &Cond, ExprResult &LHS, ExprResult &RHS, ExprValueKind &VK, ExprObjectKind &OK, SourceLocation QuestionLoc) {\n  if (LVoid || RVoid) {\n    Diag(QuestionLoc, diag::err_conditional_void_nonvoid) << (LVoid ? RTy : LTy) << (LVoid ? 0 : 1) << LHS.get()->getSourceRange() << RHS.get()->getSourceRange();"}}
},
},
["err_config_scalar_return"]={
["err_config_scalar_return"]={
[f]="CUDA special function \'A\' must have scalar return type",
[f]="CUDA special function \'A\' must have scalar return type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="CUDA special function \'%0\' must have scalar return type",
[g]="CUDA special function \'%0\' must have scalar return type",
[c]=m,
[i]=m,
[b]="CUDA special function \'(.*?)\' must have scalar return type",
[j]="CUDA special function \'(.*?)\' must have scalar return type",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"9e2c81f00a0a",1297285472,"AST, Sema, Serialization: keep track of cudaConfigureCall"}
[d]={"9e2c81f00a0a",1297285472,"AST, Sema, Serialization: keep track of cudaConfigureCall"},
[k]={{q,9310,"NamedDecl *Sema::ActOnFunctionDeclarator(Scope *S, Declarator &D, DeclContext *DC, TypeSourceInfo *TInfo, LookupResult &Previous, MultiTemplateParamsArg TemplateParamListsRef, bool &AddToScope) {\n  if (getLangOpts().CUDA) {\n    if (II && II->isStr(getCudaConfigureFuncName()) && !NewFD->isInvalidDecl() && NewFD->getDeclContext()->getRedeclContext()->isTranslationUnit()) {\n      if (!R->castAs<FunctionType>()->getReturnType()->isScalarType())\n        Diag(NewFD->getLocation(), diag::err_config_scalar_return) << getCudaConfigureFuncName();"}}
},
},
["err_conflict_marker"]={
["err_conflict_marker"]={
[f]="version control conflict marker in file",
[f]="version control conflict marker in file",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="version control conflict marker in file",
[i]=m,
[j]="version control conflict marker in file",
[j]="version control conflict marker in file",
[c]=m,
[b]=a,
[b]="version control conflict marker in file",
[h]=gb,
[i]=a,
[d]={"7c027ee4c272",1260771417,"teach clang to recover gracefully from conflict markers left in source"},
[h]=t,
[k]={{zb,2918,"/// IsStartOfConflictMarker - If the specified pointer is the start of a version\n/// control conflict marker like \'<<<<<<<\', recognize it as such, emit an error\n/// and recover nicely.  This returns true if it is a conflict marker and false\n/// if not.\nbool Lexer::IsStartOfConflictMarker(const char *CurPtr) {\n  // Check to see if there is an ending marker somewhere in the buffer at the\n  // start of a line to terminate this conflict marker.\n  if (FindConflictEnd(CurPtr, BufferEnd, Kind)) {\n    Diag(CurPtr, diag::err_conflict_marker);"}}
[g]={"7c027ee4c272",1260771417,"teach clang to recover gracefully from conflict markers left in source"}
},
},
["err_conflicting_aliasing_type"]={
["err_conflicting_aliasing_type"]={
[f]="conflicting types for alias A",
[f]="conflicting types for alias A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="conflicting types for alias %0",
[g]="conflicting types for alias %0",
[c]=m,
[i]=m,
[b]="conflicting types for alias (.*?)",
[j]="conflicting types for alias (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{I,912,"/// ActOnCompatibilityAlias - this action is called after complete parsing of\n/// a \\@compatibility_alias declaration. It sets up the alias relationships.\nDecl *Sema::ActOnCompatibilityAlias(SourceLocation AtLoc, IdentifierInfo *AliasName, SourceLocation AliasLocation, IdentifierInfo *ClassName, SourceLocation ClassLocation) {\n  if (ADecl) {\n    Diag(AliasLocation, diag::err_conflicting_aliasing_type) << AliasName;"}}
},
},
["err_conflicting_aligned_options"]={
["err_conflicting_aligned_options"]={
[f]="conflicting option \'-fcoro-aligned-allocation\' and \'-fno-aligned-allocation\'",
[f]="conflicting option \'-fcoro-aligned-allocation\' and \'-fno-aligned-allocation\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="conflicting option \'-fcoro-aligned-allocation\' and \'-fno-aligned-allocation\'",
[g]="conflicting option \'-fcoro-aligned-allocation\' and \'-fno-aligned-allocation\'",
[c]=m,
[i]=m,
[b]="conflicting option \'\\-fcoro\\-aligned\\-allocation\' and \'\\-fno\\-aligned\\-allocation\'",
[j]="conflicting option \'\\-fcoro\\-aligned\\-allocation\' and \'\\-fno\\-aligned\\-allocation\'",
[i]=a,
[b]=a,
[h]=E,
[h]="Coroutines Issue",
[g]={w,1625925174,v}
[d]={N,1625925174,M}
},
},
["err_conflicting_codeseg_attribute"]={
["err_conflicting_codeseg_attribute"]={
[f]="conflicting code segment specifiers",
[f]="conflicting code segment specifiers",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="conflicting code segment specifiers",
[i]=m,
[j]="conflicting code segment specifiers",
[j]="conflicting code segment specifiers",
[c]=m,
[b]=a,
[b]="conflicting code segment specifiers",
[h]=o,
[i]=a,
[d]={"64144eb194c8",1526479037,"Add support for __declspec(code_seg(\"segname\"))"},
[h]=n,
[k]={{p,2980,"static void handleCodeSegAttr(Sema &S, Decl *D, const ParsedAttr &AL) {\n  if (const auto *ExistingAttr = D->getAttr<CodeSegAttr>()) {\n    if (!ExistingAttr->isImplicit()) {\n      S.Diag(AL.getLoc(), ExistingAttr->getName() == Str ? diag::warn_duplicate_codeseg_attribute : diag::err_conflicting_codeseg_attribute);"}}
[g]={"64144eb194c8",1526479037,"Add support for __declspec(code_seg(\"segname\"))"}
},
},
["err_conflicting_ivar_bitwidth"]={
["err_conflicting_ivar_bitwidth"]={
[f]="instance variable A has conflicting bit-field width",
[f]="instance variable A has conflicting bit-field width",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="instance variable %0 has conflicting bit-field width",
[g]="instance variable %0 has conflicting bit-field width",
[c]=m,
[i]=m,
[b]="instance variable (.*?) has conflicting bit\\-field width",
[j]="instance variable (.*?) has conflicting bit\\-field width",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{I,1794,"void Sema::CheckImplementationIvars(ObjCImplementationDecl *ImpDecl, ObjCIvarDecl **ivars, unsigned numIvars, SourceLocation RBrace) {\n  for (; numIvars > 0 && IVI != IVE; ++IVI) {\n    // First, make sure the types match.\n    if (!Context.hasSameType(ImplIvar->getType(), ClsIvar->getType())) {\n    } else if (ImplIvar->isBitField() && ClsIvar->isBitField() && ImplIvar->getBitWidthValue(Context) != ClsIvar->getBitWidthValue(Context)) {\n      Diag(ImplIvar->getBitWidth()->getBeginLoc(), diag::err_conflicting_ivar_bitwidth) << ImplIvar->getIdentifier();"}}
},
},
["err_conflicting_ivar_name"]={
["err_conflicting_ivar_name"]={
[f]="conflicting instance variable names: A vs B",
[f]="conflicting instance variable names: A vs B",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="conflicting instance variable names: %0 vs %1",
[g]="conflicting instance variable names: %0 vs %1",
[c]=m,
[i]=m,
[b]="conflicting instance variable names\\: (.*?) vs (.*?)",
[j]="conflicting instance variable names\\: (.*?) vs (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{I,1799,"void Sema::CheckImplementationIvars(ObjCImplementationDecl *ImpDecl, ObjCIvarDecl **ivars, unsigned numIvars, SourceLocation RBrace) {\n  for (; numIvars > 0 && IVI != IVE; ++IVI) {\n    // Make sure the names are identical.\n    if (ImplIvar->getIdentifier() != ClsIvar->getIdentifier()) {\n      Diag(ImplIvar->getLocation(), diag::err_conflicting_ivar_name) << ImplIvar->getIdentifier() << ClsIvar->getIdentifier();"}}
},
},
["err_conflicting_ivar_type"]={
["err_conflicting_ivar_type"]={
[f]="instance variable A has conflicting type: B vs C",
[f]="instance variable A has conflicting type: B vs C",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="instance variable %0 has conflicting type%diff{: $ vs $|}1,2",
[g]="instance variable %0 has conflicting type%diff{: $ vs $|}1,2",
[c]=m,
[i]=m,
[b]="instance variable (.*?) has conflicting type(?:\\: (.*?) vs (.*?)|)",
[j]="instance variable (.*?) has conflicting type(?:\\: (.*?) vs (.*?)|)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{I,1791,"void Sema::CheckImplementationIvars(ObjCImplementationDecl *ImpDecl, ObjCIvarDecl **ivars, unsigned numIvars, SourceLocation RBrace) {\n  for (; numIvars > 0 && IVI != IVE; ++IVI) {\n    // First, make sure the types match.\n    if (!Context.hasSameType(ImplIvar->getType(), ClsIvar->getType())) {\n      Diag(ImplIvar->getLocation(), diag::err_conflicting_ivar_type) << ImplIvar->getIdentifier() << ImplIvar->getType() << ClsIvar->getType();"}}
},
},
["err_conflicting_overriding_cc_attributes"]={
["err_conflicting_overriding_cc_attributes"]={
[f]="virtual function A has different calling convention attributes (B) than the function it overrides (which has calling convention C)",
[f]="virtual function A has different calling convention attributes (B) than the function it overrides (which has calling convention C)",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="virtual function %0 has different calling convention attributes %diff{($) than the function it overrides (which has calling convention $)|than the function it overrides}1,2",
[g]="virtual function %0 has different calling convention attributes %diff{($) than the function it overrides (which has calling convention $)|than the function it overrides}1,2",
[c]=m,
[i]=m,
[b]="virtual function (.*?) has different calling convention attributes (?:\\((.*?)\\) than the function it overrides \\(which has calling convention (.*?)\\)|than the function it overrides)",
[j]="virtual function (.*?) has different calling convention attributes (?:\\((.*?)\\) than the function it overrides \\(which has calling convention (.*?)\\)|than the function it overrides)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"02df2e08720f",1355075141,"Virtual method overrides can no longer have mismatched calling conventions.  This fixes PR14339."}
[d]={"02df2e08720f",1355075141,"Virtual method overrides can no longer have mismatched calling conventions.  This fixes PR14339."},
[k]={{v,15396,"bool Sema::CheckOverridingFunctionAttributes(const CXXMethodDecl *New, const CXXMethodDecl *Old) {\n  Diag(New->getLocation(), diag::err_conflicting_overriding_cc_attributes) << New->getDeclName() << New->getType() << Old->getType();"}}
},
},
["err_conflicting_super_class"]={
["err_conflicting_super_class"]={
[f]="conflicting super class name A",
[f]="conflicting super class name A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="conflicting super class name %0",
[g]="conflicting super class name %0",
[c]=m,
[i]=m,
[b]="conflicting super class name (.*?)",
[j]="conflicting super class name (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{I,1640,"ObjCImplementationDecl *Sema::ActOnStartClassImplementation(SourceLocation AtClassImplLoc, IdentifierInfo *ClassName, SourceLocation ClassLoc, IdentifierInfo *SuperClassname, SourceLocation SuperClassLoc, const ParsedAttributesView &Attrs) {\n  if (SuperClassname) {\n    if (PrevDecl && !isa<ObjCInterfaceDecl>(PrevDecl)) {\n    } else {\n      if (!SDecl)\n      else if (IDecl && !declaresSameEntity(IDecl->getSuperClass(), SDecl)) {\n        Diag(SuperClassLoc, diag::err_conflicting_super_class) << SDecl->getDeclName();"}}
},
},
["err_conflicting_types"]={
["err_conflicting_types"]={
[f]="conflicting types for A",
[f]="conflicting types for A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="conflicting types for %0",
[g]="conflicting types for %0",
[c]=m,
[i]=m,
[b]="conflicting types for (.*?)",
[j]="conflicting types for (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{q,3707,"/// MergeFunctionDecl - We just parsed a function \'New\' from\n/// declarator D which has the same name and scope as a previous\n/// declaration \'Old\'.  Figure out how to resolve this situation,\n/// merging decls or emitting diagnostics as appropriate.\n///\n/// In C++, New and Old must be declarations that are not\n/// overloaded. Use IsOverload to determine whether New and Old are\n/// overloaded, and to select the Old declaration that New should be\n/// merged with.\n///\n/// Returns true if there was an error, false otherwise.\nbool Sema::MergeFunctionDecl(FunctionDecl *New, NamedDecl *&OldD, Scope *S, bool MergeTypeWithOld, bool NewDeclIsDefn) {\n  // C: Function types need to be compatible, not identical. This handles\n  // duplicate function decls like \"void f(int); void f(enum X);\" properly.\n  if (!getLangOpts().CPlusPlus) {\n    // C99 6.7.5.3p15: ...If one type has a parameter type list and the other\n    // type is specified by a function definition that contains a (possibly\n    // empty) identifier list, both shall agree in the number of parameters\n    // and the type of each parameter shall be compatible with the type that\n    // results from the application of default argument promotions to the\n    // type of the corresponding identifier. ...\n    // This cannot be handled by ASTContext::typesAreCompatible() because that\n    // doesn\'t know whether the function type is for a definition or not when\n    // eventually calling ASTContext::mergeFunctionTypes(). The only situation\n    // we need to cover here is that the number of arguments agree as the\n    // default argument promotion rules were already checked by\n    // ASTContext::typesAreCompatible().\n    if (Old->hasPrototype() && !New->hasWrittenPrototype() && NewDeclIsDefn && Old->getNumParams() != New->getNumParams() && !Old->isImplicit()) {\n      Diag(New->getLocation(), diag::err_conflicting_types) << New;"},{q,3856,"/// MergeFunctionDecl - We just parsed a function \'New\' from\n/// declarator D which has the same name and scope as a previous\n/// declaration \'Old\'.  Figure out how to resolve this situation,\n/// merging decls or emitting diagnostics as appropriate.\n///\n/// In C++, New and Old must be declarations that are not\n/// overloaded. Use IsOverload to determine whether New and Old are\n/// overloaded, and to select the Old declaration that New should be\n/// merged with.\n///\n/// Returns true if there was an error, false otherwise.\nbool Sema::MergeFunctionDecl(FunctionDecl *New, NamedDecl *&OldD, Scope *S, bool MergeTypeWithOld, bool NewDeclIsDefn) {\n  Diag(New->getLocation(), diag::err_conflicting_types) << New->getDeclName();"}}
},
},
["err_constant_integer_arg_type"]={
["err_constant_integer_arg_type"]={
[f]="argument to A must be a constant integer",
[f]="argument to A must be a constant integer",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="argument to %0 must be a constant integer",
[g]="argument to %0 must be a constant integer",
[c]=m,
[i]=m,
[b]="argument to (.*?) must be a constant integer",
[j]="argument to (.*?) must be a constant integer",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"8d0c621ca600",1271471183,"Consolidate most of the integer constant expression builtin requirement"}
[d]={"8d0c621ca600",1271471183,"Consolidate most of the integer constant expression builtin requirement"},
[k]={{s,8201,"/// SemaBuiltinConstantArg - Handle a check if argument ArgNum of CallExpr\n/// TheCall is a constant expression.\nbool Sema::SemaBuiltinConstantArg(CallExpr *TheCall, int ArgNum, llvm::APSInt &Result) {\n  if (!(R = Arg->getIntegerConstantExpr(Context)))\n    return Diag(TheCall->getBeginLoc(), diag::err_constant_integer_arg_type) << FDecl->getDeclName() << Arg->getSourceRange();"}}
},
},
["err_consteval_override"]={
["err_consteval_override"]={
[f]="consteval function A cannot override a non-consteval function",
[f]="consteval function A cannot override a non-consteval function",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="consteval function %0 cannot override a non-consteval function",
[g]="consteval function %0 cannot override a non-consteval function",
[c]=m,
[i]=m,
[b]="consteval function (.*?) cannot override a non\\-consteval function",
[j]="consteval function (.*?) cannot override a non\\-consteval function",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={C,1576908663,B}
[d]={W,1576908663,V},
[k]={{v,6009,"/// Perform semantic checks on a class definition that has been\n/// completing, introducing implicitly-declared members, checking for\n/// abstract types, etc.\n///\n/// \\param S The scope in which the class was parsed. Null if we didn\'t just\n///        parse a class definition.\n/// \\param Record The completed class.\nvoid Sema::CheckCompletedCXXClass(Scope *S, CXXRecordDecl *Record) {\n  // Perform checks that can\'t be done until we know all the properties of a\n  // member function (whether it\'s defaulted, deleted, virtual, overriding,\n  // ...).\n  auto CheckCompletedMemberFunction = [&](CXXMethodDecl *MD) {\n    if (ReportOverrides(*this, MD->isConsteval() ? diag::err_consteval_override : diag::err_non_consteval_override, MD, [&](const CXXMethodDecl *V) { return MD->isConsteval() != V->isConsteval(); })) {"}}
},
},
["err_constexpr_body_invalid_stmt"]={
["err_constexpr_body_invalid_stmt"]={
[f]="statement not allowed in ... ...",
[f]="statement not allowed in ... ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="statement not allowed in %select{constexpr|consteval}1 %select{function|constructor}0",
[g]="statement not allowed in %select{constexpr|consteval}1 %select{function|constructor}0",
[c]=m,
[i]=m,
[b]="statement not allowed in (?:constexpr|consteval) (?:function|constructor)",
[j]="statement not allowed in (?:constexpr|consteval) (?:function|constructor)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Db,1317436288,Cb}
[d]={ab,1317436288,bb},
[k]={{v,1696,"/// Check the given declaration statement is legal within a constexpr function\n/// body. C++11 [dcl.constexpr]p3,p4, and C++1y [dcl.constexpr]p3.\n///\n/// \\return true if the body is OK (maybe only as an extension), false if we\n///        have diagnosed a problem.\nstatic bool CheckConstexprDeclStmt(Sema &SemaRef, const FunctionDecl *Dcl, DeclStmt *DS, SourceLocation &Cxx1yLoc, Sema::CheckConstexprKind Kind) {\n  // C++11 [dcl.constexpr]p3 and p4:\n  //  The definition of a constexpr function(p3) or constructor(p4) [...] shall\n  //  contain only\n  for (const auto *DclIt : DS->decls()) {\n    default:\n      if (Kind == Sema::CheckConstexprKind::Diagnose) {\n        SemaRef.Diag(DS->getBeginLoc(), diag::err_constexpr_body_invalid_stmt) << isa<CXXConstructorDecl>(Dcl) << Dcl->isConsteval();"},{v,1890,"/// Check the provided statement is allowed in a constexpr function\n/// definition.\nstatic bool CheckConstexprFunctionStmt(Sema &SemaRef, const FunctionDecl *Dcl, Stmt *S, SmallVectorImpl<SourceLocation> &ReturnStmts, SourceLocation &Cxx1yLoc, SourceLocation &Cxx2aLoc, SourceLocation &Cxx2bLoc, Sema::CheckConstexprKind Kind) {\n  if (Kind == Sema::CheckConstexprKind::Diagnose) {\n    SemaRef.Diag(S->getBeginLoc(), diag::err_constexpr_body_invalid_stmt) << isa<CXXConstructorDecl>(Dcl) << Dcl->isConsteval();"}}
},
},
["err_constexpr_body_no_return"]={
["err_constexpr_body_no_return"]={
[f]="no return statement in ... function",
[f]="no return statement in ... function",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="no return statement in %select{constexpr|consteval}0 function",
[g]="no return statement in %select{constexpr|consteval}0 function",
[c]=m,
[i]=m,
[b]="no return statement in (?:constexpr|consteval) function",
[j]="no return statement in (?:constexpr|consteval) function",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Db,1317436288,Cb}
[d]={ab,1317436288,bb},
[k]={{v,2012,"/// Check the body for the given constexpr function declaration only contains\n/// the permitted types of statement. C++11 [dcl.constexpr]p3,p4.\n///\n/// \\return true if the body is OK, false if we have found or diagnosed a\n/// problem.\nstatic bool CheckConstexprFunctionBody(Sema &SemaRef, const FunctionDecl *Dcl, Stmt *Body, Sema::CheckConstexprKind Kind) {\n  if (const CXXConstructorDecl *Constructor = dyn_cast<CXXConstructorDecl>(Dcl)) {\n  } else {\n    if (ReturnStmts.empty()) {\n      case Sema::CheckConstexprKind::Diagnose:\n        SemaRef.Diag(Dcl->getLocation(), OK ? diag::warn_cxx11_compat_constexpr_body_no_return : diag::err_constexpr_body_no_return) << Dcl->isConsteval();"}}
},
},
["err_constexpr_dtor"]={
["err_constexpr_dtor"]={
[f]="destructor cannot be declared ...",
[f]="destructor cannot be declared ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="destructor cannot be declared %select{<ERROR>|constexpr|consteval|constinit}0",
[g]="destructor cannot be declared %select{<ERROR>|constexpr|consteval|constinit}0",
[c]=m,
[i]=m,
[b]="destructor cannot be declared (?:constexpr|consteval|constinit)",
[j]="destructor cannot be declared (?:constexpr|consteval|constinit)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"a77a0a6bf221",1313442247,"Track in the AST whether a function is constexpr."}
[d]={"a77a0a6bf221",1313442247,"Track in the AST whether a function is constexpr."},
[k]={{q,8738,"NamedDecl *Sema::ActOnFunctionDeclarator(Scope *S, Declarator &D, DeclContext *DC, TypeSourceInfo *TInfo, LookupResult &Previous, MultiTemplateParamsArg TemplateParamListsRef, bool &AddToScope) {\n  if (getLangOpts().CPlusPlus) {\n    if (ConstexprKind != ConstexprSpecKind::Unspecified) {\n      // C++11 [dcl.constexpr]p3: functions declared constexpr are required to\n      // be either constructors or to return a literal type. Therefore,\n      // destructors cannot be declared constexpr.\n      if (isa<CXXDestructorDecl>(NewFD) && (!getLangOpts().CPlusPlus20 || ConstexprKind == ConstexprSpecKind::Consteval)) {\n        Diag(D.getDeclSpec().getConstexprSpecLoc(), diag::err_constexpr_dtor) << static_cast<int>(ConstexprKind);"}}
},
},
["err_constexpr_dtor_subobject"]={
["err_constexpr_dtor_subobject"]={
[f]="destructor cannot be declared ... because ... does not have a constexpr destructor",
[f]="destructor cannot be declared ... because ... does not have a constexpr destructor",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="destructor cannot be declared %select{<ERROR>|constexpr|consteval|constinit}0 because %select{data member %2|base class %3}1 does not have a constexpr destructor",
[g]="destructor cannot be declared %select{<ERROR>|constexpr|consteval|constinit}0 because %select{data member %2|base class %3}1 does not have a constexpr destructor",
[c]=m,
[i]=m,
[b]="destructor cannot be declared (?:constexpr|consteval|constinit) because (?:data member (.*?)|base class (.*?)) does not have a constexpr destructor",
[j]="destructor cannot be declared (?:constexpr|consteval|constinit) because (?:data member (.*?)|base class (.*?)) does not have a constexpr destructor",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={cb,1567434909,eb}
[d]={"7c11da0cfd33",1567434909,"[clang] New __attribute__((__clang_arm_mve_alias))."},
[k]={{v,1448,"/// Determine whether a destructor cannot be constexpr due to\nstatic bool CheckConstexprDestructorSubobjects(Sema &SemaRef, const CXXDestructorDecl *DD, Sema::CheckConstexprKind Kind) {\n  auto Check = [&](SourceLocation Loc, QualType T, const FieldDecl *FD) {\n    if (Kind == Sema::CheckConstexprKind::Diagnose) {\n      SemaRef.Diag(DD->getLocation(), diag::err_constexpr_dtor_subobject) << static_cast<int>(DD->getConstexprKind()) << !FD << (FD ? FD->getDeclName() : DeclarationName()) << T;"}}
},
},
["err_constexpr_if_condition_expression_is_not_constant"]={
["err_constexpr_if_condition_expression_is_not_constant"]={
[f]="constexpr if condition is not a constant expression",
[f]="constexpr if condition is not a constant expression",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="constexpr if condition is not a constant expression",
[i]=m,
[j]="constexpr if condition is not a constant expression",
[j]="constexpr if condition is not a constant expression",
[c]=m,
[b]=a,
[b]="constexpr if condition is not a constant expression",
[h]=o,
[i]=a,
[d]={Lb,1615397021,Kb},
[h]=n,
[k]={{x,3436,"/// CheckCXXBooleanCondition - Returns true if a conversion to bool is invalid.\nExprResult Sema::CheckCXXBooleanCondition(Expr *CondExpr, bool IsConstexpr) {\n  E = VerifyIntegerConstantExpression(E.get(), &Cond, diag::err_constexpr_if_condition_expression_is_not_constant);"}}
[g]={ub,1615397021,qb}
},
},
["err_constexpr_invalid_template_arg"]={
["err_constexpr_invalid_template_arg"]={
[f]="... to ...... is not allowed in a template argument",
[f]="... to ...... is not allowed in a template argument",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{pointer|reference}0 to %select{|subobject of }1%select{type_info object|string literal|temporary object|predefined \'%3\' variable}2 is not allowed in a template argument",
[g]="%select{pointer|reference}0 to %select{|subobject of }1%select{type_info object|string literal|temporary object|predefined \'%3\' variable}2 is not allowed in a template argument",
[c]=m,
[i]=m,
[b]="(?:pointer|reference) to (?:|subobject of )(?:type_info object|string literal|temporary object|predefined \'(.*?)\' variable) is not allowed in a template argument",
[j]="(?:pointer|reference) to (?:|subobject of )(?:type_info object|string literal|temporary object|predefined \'(.*?)\' variable) is not allowed in a template argument",
[i]=a,
[b]=a,
[h]=a,
[h]=a,
[g]={"7b3515880c22",1603602504,"For P0732R2, P1907R1: ensure that template parameter objects don\'t refer"}
[d]={"7b3515880c22",1603602504,"For P0732R2, P1907R1: ensure that template parameter objects don\'t refer"},
[k]={{Q,5083,"/// EvaluateConvertedConstantExpression - Evaluate an Expression\n/// That is a converted constant expression\n/// (which was built with BuildConvertedConstantExpression)\nstatic ExprResult EvaluateConvertedConstantExpression(Sema &S, Expr *E, QualType T, APValue &Value, Sema::CCEKind CCE, bool RequireInt, const APValue &PreNarrowingValue) {\n  // It\'s not a constant expression. Produce an appropriate diagnostic.\n  if (Notes.size() == 1 && Notes[0].second.getDiagID() == diag::note_invalid_subexpr_in_const_expr) {\n  } else if (!Notes.empty() && Notes[0].second.getDiagID() == diag::note_constexpr_invalid_template_arg) {\n    Notes[0].second.setDiagID(diag::err_constexpr_invalid_template_arg);"}}
},
},
["err_constexpr_local_var_non_literal_type"]={
["err_constexpr_local_var_non_literal_type"]={
[f]="variable of non-literal type A cannot be defined in a constexpr ... before C++23",
[f]="variable of non-literal type A cannot be defined in a constexpr ... before C++23",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="variable of non-literal type %1 cannot be defined in a constexpr %select{function|constructor}0 before C++23",
[g]="variable of non-literal type %1 cannot be defined in a constexpr %select{function|constructor}0 before C++23",
[c]=m,
[i]=m,
[b]="variable of non\\-literal type (.*?) cannot be defined in a constexpr (?:function|constructor) before C\\+\\+23",
[j]="variable of non\\-literal type (.*?) cannot be defined in a constexpr (?:function|constructor) before C\\+\\+23",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"d9f663b510c4",1366644711,"C++1y constexpr extensions, round 1: Allow most forms of declaration and"}
[d]={"d9f663b510c4",1366644711,"C++1y constexpr extensions, round 1: Allow most forms of declaration and"},
[k]={{v,1666,"/// Check the given declaration statement is legal within a constexpr function\n/// body. C++11 [dcl.constexpr]p3,p4, and C++1y [dcl.constexpr]p3.\n///\n/// \\return true if the body is OK (maybe only as an extension), false if we\n///        have diagnosed a problem.\nstatic bool CheckConstexprDeclStmt(Sema &SemaRef, const FunctionDecl *Dcl, DeclStmt *DS, SourceLocation &Cxx1yLoc, Sema::CheckConstexprKind Kind) {\n  // C++11 [dcl.constexpr]p3 and p4:\n  //  The definition of a constexpr function(p3) or constructor(p4) [...] shall\n  //  contain only\n  for (const auto *DclIt : DS->decls()) {\n    case Decl::Decomposition: {\n      if (VD->isThisDeclarationADefinition()) {\n        } else if (CheckLiteralType(SemaRef, Kind, VD->getLocation(), VD->getType(), diag::err_constexpr_local_var_non_literal_type, isa<CXXConstructorDecl>(Dcl))) {"}}
},
},
["err_constexpr_main"]={
["err_constexpr_main"]={
[f]="\'main\' is not allowed to be declared ...",
[f]="\'main\' is not allowed to be declared ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="\'main\' is not allowed to be declared %select{constexpr|consteval}0",
[g]="\'main\' is not allowed to be declared %select{constexpr|consteval}0",
[c]=m,
[i]=m,
[b]="\'main\' is not allowed to be declared (?:constexpr|consteval)",
[j]="\'main\' is not allowed to be declared (?:constexpr|consteval)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"3f333f2edf49",1328335817,"Disallow constexpr main."}
[d]={"3f333f2edf49",1328335817,"Disallow constexpr main."},
[k]={{q,10542,"void Sema::CheckMain(FunctionDecl *FD, const DeclSpec &DS) {\n  if (FD->isConstexpr()) {\n    Diag(DS.getConstexprSpecLoc(), diag::err_constexpr_main) << FD->isConsteval() << FixItHint::CreateRemoval(DS.getConstexprSpecLoc());"}}
},
},
["err_constexpr_non_literal_param"]={
["err_constexpr_non_literal_param"]={
[f]="... ...\'s A parameter type B is not a literal type",
[f]="... ...\'s A parameter type B is not a literal type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{constexpr|consteval}2 %select{function|constructor}1\'s %ordinal0 parameter type %3 is not a literal type",
[g]="%select{constexpr|consteval}2 %select{function|constructor}1\'s %ordinal0 parameter type %3 is not a literal type",
[c]=m,
[i]=m,
[b]="(?:constexpr|consteval) (?:function|constructor)\'s (.*?) parameter type (.*?) is not a literal type",
[j]="(?:constexpr|consteval) (?:function|constructor)\'s (.*?) parameter type (.*?) is not a literal type",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Db,1317436288,Cb}
[d]={ab,1317436288,bb},
[k]={{v,1473,"/// Check whether a function\'s parameter types are all literal types. If so,\n/// return true. If not, produce a suitable diagnostic and return false.\nstatic bool CheckConstexprParameterTypes(Sema &SemaRef, const FunctionDecl *FD, Sema::CheckConstexprKind Kind) {\n  for (FunctionProtoType::param_type_iterator i = FT->param_type_begin(), e = FT->param_type_end(); i != e; ++i, ++ArgIndex) {\n    if (CheckLiteralType(SemaRef, Kind, ParamLoc, *i, diag::err_constexpr_non_literal_param, ArgIndex + 1, PD->getSourceRange(), isa<CXXConstructorDecl>(FD), FD->isConsteval()))"}}
},
},
["err_constexpr_non_literal_return"]={
["err_constexpr_non_literal_return"]={
[f]="... function\'s return type A is not a literal type",
[f]="... function\'s return type A is not a literal type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{constexpr|consteval}0 function\'s return type %1 is not a literal type",
[g]="%select{constexpr|consteval}0 function\'s return type %1 is not a literal type",
[c]=m,
[i]=m,
[b]="(?:constexpr|consteval) function\'s return type (.*?) is not a literal type",
[j]="(?:constexpr|consteval) function\'s return type (.*?) is not a literal type",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Db,1317436288,Cb}
[d]={ab,1317436288,bb},
[k]={{v,1482,"/// Check whether a function\'s return type is a literal type. If so, return\n/// true. If not, produce a suitable diagnostic and return false.\nstatic bool CheckConstexprReturnType(Sema &SemaRef, const FunctionDecl *FD, Sema::CheckConstexprKind Kind) {\n  if (CheckLiteralType(SemaRef, Kind, FD->getLocation(), FD->getReturnType(), diag::err_constexpr_non_literal_return, FD->isConsteval()))"}}
},
},
["err_constexpr_redecl_mismatch"]={
["err_constexpr_redecl_mismatch"]={
[f]="... declaration of A follows ... declaration",
[f]="... declaration of A follows ... declaration",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{non-constexpr|constexpr|consteval}1 declaration of %0 follows %select{non-constexpr|constexpr|consteval}2 declaration",
[g]="%select{non-constexpr|constexpr|consteval}1 declaration of %0 follows %select{non-constexpr|constexpr|consteval}2 declaration",
[c]=m,
[i]=m,
[b]="(?:non\\-constexpr|constexpr|consteval) declaration of (.*?) follows (?:non\\-constexpr|constexpr|consteval) declaration",
[j]="(?:non\\-constexpr|constexpr|consteval) declaration of (.*?) follows (?:non\\-constexpr|constexpr|consteval) declaration",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Db,1317436288,Cb}
[d]={ab,1317436288,bb},
[k]={{v,603,"/// MergeCXXFunctionDecl - Merge two declarations of the same C++\n/// function, once we already know that they have the same\n/// type. Subroutine of MergeFunctionDecl. Returns true if there was an\n/// error, false otherwise.\nbool Sema::MergeCXXFunctionDecl(FunctionDecl *New, FunctionDecl *Old, Scope *S) {\n  // C++11 [dcl.constexpr]p1: If any declaration of a function or function\n  // template has a constexpr specifier then all its declarations shall\n  // contain the constexpr specifier.\n  if (New->getConstexprKind() != Old->getConstexprKind()) {\n    Diag(New->getLocation(), diag::err_constexpr_redecl_mismatch) << New << static_cast<int>(New->getConstexprKind()) << static_cast<int>(Old->getConstexprKind());"}}
},
},
["err_constexpr_return_missing_expr"]={
["err_constexpr_return_missing_expr"]={
[f]="non-void ... function A should return a value",
[f]="non-void ... function A should return a value",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="non-void %select{constexpr|consteval}1 function %0 should return a value",
[g]="non-void %select{constexpr|consteval}1 function %0 should return a value",
[c]=m,
[i]=m,
[b]="non\\-void (?:constexpr|consteval) function (.*?) should return a value",
[j]="non\\-void (?:constexpr|consteval) function (.*?) should return a value",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"2887ad35c58d",1418458376,"Sema: Constexpr functions must have return statements which have an expr"}
[d]={"2887ad35c58d",1418458376,"Sema: Constexpr functions must have return statements which have an expr"},
[k]={{R,3562,"StmtResult Sema::BuildReturnStmt(SourceLocation ReturnLoc, Expr *RetValExp, bool AllowRecovery) {\n  if (FnRetType->isVoidType()) {\n  } else if (!RetValExp && !HasDependentReturnType) {\n    if ((FD && FD->isInvalidDecl()) || FnRetType->containsErrors()) {\n    } else if (getLangOpts().CPlusPlus11 && FD && FD->isConstexpr()) {\n      Diag(ReturnLoc, diag::err_constexpr_return_missing_expr) << FD << FD->isConsteval();"}}
},
},
["err_constexpr_static_mem_var_requires_init"]={
["err_constexpr_static_mem_var_requires_init"]={
[f]="declaration of constexpr static data member A requires an initializer",
[f]="declaration of constexpr static data member A requires an initializer",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="declaration of constexpr static data member %0 requires an initializer",
[g]="declaration of constexpr static data member %0 requires an initializer",
[c]=m,
[i]=m,
[b]="declaration of constexpr static data member (.*?) requires an initializer",
[j]="declaration of constexpr static data member (.*?) requires an initializer",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"eda3c8469827",1320704177,"constexpr: static data members declared constexpr are required to have an"}
[d]={"eda3c8469827",1320704177,"constexpr: static data members declared constexpr are required to have an"},
[k]={{q,11953,"void Sema::ActOnUninitializedDecl(Decl *RealDecl) {\n  if (VarDecl *Var = dyn_cast<VarDecl>(RealDecl)) {\n    // C++11 [class.static.data]p3: A static data member can be declared with\n    // the constexpr specifier; if so, its declaration shall specify\n    // a brace-or-equal-initializer.\n    // C++11 [dcl.constexpr]p1: The constexpr specifier shall be applied only to\n    // the definition of a variable [...] or the declaration of a static data\n    // member.\n    if (Var->isConstexpr() && !Var->isThisDeclarationADefinition() && !Var->isThisDeclarationADemotedDefinition()) {\n      if (Var->isStaticDataMember()) {\n        // C++1z removes the relevant rule; the in-class declaration is always\n        // a definition there.\n        if (!getLangOpts().CPlusPlus17 && !Context.getTargetInfo().getCXXABI().isMicrosoft()) {\n          Diag(Var->getLocation(), diag::err_constexpr_static_mem_var_requires_init) << Var;"}}
},
},
["err_constexpr_tag"]={
["err_constexpr_tag"]={
[f]="... cannot be marked ...",
[f]="... cannot be marked ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{class|struct|interface|union|enum|enum class|enum struct}0 cannot be marked %select{<ERROR>|constexpr|consteval|constinit}1",
[g]="%select{class|struct|interface|union|enum|enum class|enum struct}0 cannot be marked %select{<ERROR>|constexpr|consteval|constinit}1",
[c]=m,
[i]=m,
[b]="(?:class|struct|interface|union|enum|enum class|enum struct) cannot be marked (?:constexpr|consteval|constinit)",
[j]="(?:class|struct|interface|union|enum|enum class|enum struct) cannot be marked (?:constexpr|consteval|constinit)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"a77a0a6bf221",1313442247,"Track in the AST whether a function is constexpr."}
[d]={"a77a0a6bf221",1313442247,"Track in the AST whether a function is constexpr."},
[k]={{q,4570,"/// ParsedFreeStandingDeclSpec - This method is invoked when a declspec with\n/// no declarator (e.g. \"struct foo;\") is parsed. It also accepts template\n/// parameters to cope with template friend declarations.\nDecl *Sema::ParsedFreeStandingDeclSpec(Scope *S, AccessSpecifier AS, DeclSpec &DS, const ParsedAttributesView &DeclAttrs, MultiTemplateParamsArg TemplateParams, bool IsExplicitInstantiation, RecordDecl *&AnonRecord) {\n  if (DS.hasConstexprSpecifier()) {\n    // C++0x [dcl.constexpr]p1: constexpr can only be applied to declarations\n    // and definitions of functions and variables.\n    // C++2a [dcl.constexpr]p1: The consteval specifier shall be applied only to\n    // the declaration of a function or function template\n    if (Tag)\n      Diag(DS.getConstexprSpecLoc(), diag::err_constexpr_tag) << GetDiagnosticTypeSpecifierID(DS) << static_cast<int>(DS.getConstexprSpecifier());"}}
},
},
["err_constexpr_var_non_literal"]={
["err_constexpr_var_non_literal"]={
[f]="constexpr variable cannot have non-literal type A",
[f]="constexpr variable cannot have non-literal type A",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="constexpr variable cannot have non-literal type %0",
[g]="constexpr variable cannot have non-literal type %0",
[c]=m,
[i]=m,
[b]="constexpr variable cannot have non\\-literal type (.*?)",
[j]="constexpr variable cannot have non\\-literal type (.*?)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"3607ffee5cca",1329105243,"Update constexpr implementation to match CWG\'s chosen approach for core issues"}
[d]={"3607ffee5cca",1329105243,"Update constexpr implementation to match CWG\'s chosen approach for core issues"},
[k]={{q,7734,"void Sema::CheckVariableDeclarationType(VarDecl *NewVD) {\n  if (NewVD->isConstexpr() && !T->isDependentType() && RequireLiteralType(NewVD->getLocation(), T, diag::err_constexpr_var_non_literal)) {"}}
},
},
["err_constexpr_var_requires_const_destruction"]={
["err_constexpr_var_requires_const_destruction"]={
[f]="constexpr variable A must have constant destruction",
[f]="constexpr variable A must have constant destruction",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="constexpr variable %0 must have constant destruction",
[g]="constexpr variable %0 must have constant destruction",
[c]=m,
[i]=m,
[b]="constexpr variable (.*?) must have constant destruction",
[j]="constexpr variable (.*?) must have constant destruction",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={cb,1567434909,eb}
[d]={"7c11da0cfd33",1567434909,"[clang] New __attribute__((__clang_arm_mve_alias))."},
[k]={{v,13587,"void Sema::FinalizeVarWithDestructor(VarDecl *VD, const RecordType *Record) {\n  // If the destructor is constexpr, check whether the variable has constant\n  // destruction now.\n  if (Destructor->isConstexpr()) {\n    if (!VD->evaluateDestruction(Notes) && VD->isConstexpr() && HasConstantInit) {\n      Diag(VD->getLocation(), diag::err_constexpr_var_requires_const_destruction) << VD;"}}
},
},
["err_constexpr_var_requires_const_init"]={
["err_constexpr_var_requires_const_init"]={
[f]="constexpr variable A must be initialized by a constant expression",
[f]="constexpr variable A must be initialized by a constant expression",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="constexpr variable %0 must be initialized by a constant expression",
[g]="constexpr variable %0 must be initialized by a constant expression",
[c]=m,
[i]=m,
[b]="constexpr variable (.*?) must be initialized by a constant expression",
[j]="constexpr variable (.*?) must be initialized by a constant expression",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"2316cd8b798b",1317323497,"constexpr: semantic checking for constexpr variables."}
[d]={"2316cd8b798b",1317323497,"constexpr: semantic checking for constexpr variables."},
[k]={{q,12075,"void Sema::ActOnUninitializedDecl(Decl *RealDecl) {\n  if (VarDecl *Var = dyn_cast<VarDecl>(RealDecl)) {\n    // Provide a specific diagnostic for uninitialized variable\n    // definitions with incomplete array type.\n    if (Type->isIncompleteArrayType()) {\n      if (Var->isConstexpr())\n        Diag(Var->getLocation(), diag::err_constexpr_var_requires_const_init) << Var;"},{q,12423,"void Sema::CheckCompleteVariableDeclaration(VarDecl *var) {\n  // Check whether the initializer is sufficiently constant.\n  if (getLangOpts().CPlusPlus && !type->isDependentType() && Init && !Init->isValueDependent() && (GlobalStorage || var->isConstexpr() || var->mightBeUsableInConstantExpressions(Context))) {\n    if (HasConstInit) {\n    } else if (var->isConstexpr()) {\n      Diag(DiagLoc, diag::err_constexpr_var_requires_const_init) << var << Init->getSourceRange();"},{E,7269,"ExprResult InitializationSequence::Perform(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, MultiExprArg Args, QualType *ResultType) {\n  if (!ZeroInitializationFixit.empty()) {\n    // The initialization would have succeeded with this fixit. Since the fixit\n    // is on the error, we need to build a valid AST in this case, so this isn\'t\n    // handled in the Failed() branch above.\n    if (!DestType->isRecordType() && VD && VD->isConstexpr()) {\n      S.Diag(Kind.getLocation(), diag::err_constexpr_var_requires_const_init) << VD << FixItHint::CreateInsertion(ZeroInitializationFixitLoc, ZeroInitializationFixit);"},{E,8387,"bool InitializationSequence::Diagnose(Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind, ArrayRef<Expr *> Args) {\n  case FK_DefaultInitOfConst:\n    if (Entity.getKind() == InitializedEntity::EK_Member && isa<CXXConstructorDecl>(S.CurContext)) {\n    } else if (const auto *VD = dyn_cast_if_present<VarDecl>(Entity.getDecl()); VD && VD->isConstexpr()) {\n      S.Diag(Kind.getLocation(), diag::err_constexpr_var_requires_const_init) << VD;"}}
},
},
["err_constexpr_virtual"]={
["err_constexpr_virtual"]={
[f]="virtual function cannot be constexpr",
[f]="virtual function cannot be constexpr",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="virtual function cannot be constexpr",
[i]=m,
[j]="virtual function cannot be constexpr",
[j]="virtual function cannot be constexpr",
[c]=m,
[b]=a,
[b]="virtual function cannot be constexpr",
[h]=o,
[i]=a,
[d]={ab,1317436288,bb},
[h]=n,
[k]={{v,1550,"// Check whether a function declaration satisfies the requirements of a\n// constexpr function definition or a constexpr constructor definition. If so,\n// return true. If not, produce appropriate diagnostics (unless asked not to by\n// Kind) and return false.\n//\n// This implements C++11 [dcl.constexpr]p3,4, as amended by DR1360.\nbool Sema::CheckConstexprFunctionDefinition(const FunctionDecl *NewFD, CheckConstexprKind Kind) {\n  if (!isa<CXXConstructorDecl>(NewFD)) {\n    if (Method && Method->isVirtual()) {\n      if (getLangOpts().CPlusPlus20) {\n      } else {\n        Diag(Method->getLocation(), diag::err_constexpr_virtual);"}}
[g]={Db,1317436288,Cb}
},
},
["err_constexpr_virtual_base"]={
["err_constexpr_virtual_base"]={
[f]="constexpr ... not allowed in ... with virtual base class",
[f]="constexpr ... not allowed in ... with virtual base class",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="constexpr %select{member function|constructor}0 not allowed in %select{struct|interface|class}1 with virtual base %plural{1:class|:classes}2",
[g]="constexpr %select{member function|constructor}0 not allowed in %select{struct|interface|class}1 with virtual base %plural{1:class|:classes}2",
[c]=m,
[i]=m,
[b]="constexpr (?:member function|constructor) not allowed in (?:struct|interface|class) with virtual base (?:class|classes)",
[j]="constexpr (?:member function|constructor) not allowed in (?:struct|interface|class) with virtual base (?:class|classes)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Db,1317436288,Cb}
[d]={ab,1317436288,bb},
[k]={{v,1528,"// Check whether a function declaration satisfies the requirements of a\n// constexpr function definition or a constexpr constructor definition. If so,\n// return true. If not, produce appropriate diagnostics (unless asked not to by\n// Kind) and return false.\n//\n// This implements C++11 [dcl.constexpr]p3,4, as amended by DR1360.\nbool Sema::CheckConstexprFunctionDefinition(const FunctionDecl *NewFD, CheckConstexprKind Kind) {\n  if (MD && MD->isInstance()) {\n    if (RD->getNumVBases()) {\n      Diag(NewFD->getLocation(), diag::err_constexpr_virtual_base) << isa<CXXConstructorDecl>(NewFD) << getRecordDiagFromTagKind(RD->getTagKind()) << RD->getNumVBases();"}}
},
},
["err_constexpr_vla"]={
["err_constexpr_vla"]={
[f]="variably-modified type A cannot be used in a constexpr ...",
[f]="variably-modified type A cannot be used in a constexpr ...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="variably-modified type %0 cannot be used in a constexpr %select{function|constructor}1",
[g]="variably-modified type %0 cannot be used in a constexpr %select{function|constructor}1",
[c]=m,
[i]=m,
[b]="variably\\-modified type (.*?) cannot be used in a constexpr (?:function|constructor)",
[j]="variably\\-modified type (.*?) cannot be used in a constexpr (?:function|constructor)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={Db,1317436288,Cb}
[d]={ab,1317436288,bb},
[k]={{v,1622,"/// Check the given declaration statement is legal within a constexpr function\n/// body. C++11 [dcl.constexpr]p3,p4, and C++1y [dcl.constexpr]p3.\n///\n/// \\return true if the body is OK (maybe only as an extension), false if we\n///        have diagnosed a problem.\nstatic bool CheckConstexprDeclStmt(Sema &SemaRef, const FunctionDecl *Dcl, DeclStmt *DS, SourceLocation &Cxx1yLoc, Sema::CheckConstexprKind Kind) {\n  // C++11 [dcl.constexpr]p3 and p4:\n  //  The definition of a constexpr function(p3) or constructor(p4) [...] shall\n  //  contain only\n  for (const auto *DclIt : DS->decls()) {\n    case Decl::TypeAlias: {\n      if (TN->getUnderlyingType()->isVariablyModifiedType()) {\n        // Don\'t allow variably-modified types in constexpr functions.\n        if (Kind == Sema::CheckConstexprKind::Diagnose) {\n          SemaRef.Diag(TL.getBeginLoc(), diag::err_constexpr_vla) << TL.getSourceRange() << TL.getType() << isa<CXXConstructorDecl>(Dcl);"}}
},
},
["err_constexpr_wrong_decl_kind"]={
["err_constexpr_wrong_decl_kind"]={
[f]="... can only be used in ... declarations",
[f]="... can only be used in ... declarations",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="%select{<ERROR>|constexpr|consteval|constinit}0 can only be used in %select{|variable and function|function|variable}0 declarations",
[g]="%select{<ERROR>|constexpr|consteval|constinit}0 can only be used in %select{|variable and function|function|variable}0 declarations",
[c]=m,
[i]=m,
[b]="(?:constexpr|consteval|constinit) can only be used in (?:|variable and function|function|variable) declarations",
[j]="(?:constexpr|consteval|constinit) can only be used in (?:|variable and function|function|variable) declarations",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"796ed03b8412",1560502580,"[C++20] add Basic consteval specifier"}
[d]={"796ed03b8412",1560502580,"[C++20] add Basic consteval specifier"},
[k]={{q,4572,"/// ParsedFreeStandingDeclSpec - This method is invoked when a declspec with\n/// no declarator (e.g. \"struct foo;\") is parsed. It also accepts template\n/// parameters to cope with template friend declarations.\nDecl *Sema::ParsedFreeStandingDeclSpec(Scope *S, AccessSpecifier AS, DeclSpec &DS, const ParsedAttributesView &DeclAttrs, MultiTemplateParamsArg TemplateParams, bool IsExplicitInstantiation, RecordDecl *&AnonRecord) {\n  if (DS.hasConstexprSpecifier()) {\n    // C++0x [dcl.constexpr]p1: constexpr can only be applied to declarations\n    // and definitions of functions and variables.\n    // C++2a [dcl.constexpr]p1: The consteval specifier shall be applied only to\n    // the declaration of a function or function template\n    if (Tag)\n    else\n      Diag(DS.getConstexprSpecLoc(), diag::err_constexpr_wrong_decl_kind) << static_cast<int>(DS.getConstexprSpecifier());"},{q,6905,"NamedDecl *Sema::ActOnVariableDeclarator(Scope *S, Declarator &D, DeclContext *DC, TypeSourceInfo *TInfo, LookupResult &Previous, MultiTemplateParamsArg TemplateParamLists, bool &AddToScope, ArrayRef<BindingDecl *> Bindings) {\n  case ConstexprSpecKind::Consteval:\n    Diag(D.getDeclSpec().getConstexprSpecLoc(), diag::err_constexpr_wrong_decl_kind) << static_cast<int>(D.getDeclSpec().getConstexprSpecifier());"},{q,8078,"static FunctionDecl *CreateNewFunctionDecl(Sema &SemaRef, Declarator &D, DeclContext *DC, QualType &R, TypeSourceInfo *TInfo, StorageClass SC, bool &IsVirtualOkay) {\n  if (ConstexprKind == ConstexprSpecKind::Constinit) {\n    SemaRef.Diag(D.getDeclSpec().getConstexprSpecLoc(), diag::err_constexpr_wrong_decl_kind) << static_cast<int>(ConstexprKind);"}}
},
},
["err_constinit_added_too_late"]={
["err_constinit_added_too_late"]={
[f]="\'constinit\' specifier added after initialization of variable",
[f]="\'constinit\' specifier added after initialization of variable",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'constinit\' specifier added after initialization of variable",
[i]=m,
[j]="\'constinit\' specifier added after initialization of variable",
[j]="\'constinit\' specifier added after initialization of variable",
[c]=m,
[b]=a,
[b]="\'constinit\' specifier added after initialization of variable",
[h]=o,
[i]=a,
[d]={"7c11da0cfd33",1567434909,"[clang] New __attribute__((__clang_arm_mve_alias))."},
[h]=n,
[k]={{q,2861,"static void diagnoseMissingConstinit(Sema &S, const VarDecl *InitDecl, const ConstInitAttr *CIAttr, bool AttrBeforeInit) {\n  if (AttrBeforeInit) {\n  } else {\n    S.Diag(CIAttr->getLocation(), CIAttr->isConstinit() ? diag::err_constinit_added_too_late : diag::warn_require_const_init_added_too_late) << FixItHint::CreateRemoval(SourceRange(CIAttr->getLocation()));"}}
[g]={cb,1567434909,eb}
},
},
["err_constinit_local_variable"]={
["err_constinit_local_variable"]={
[f]="local variable cannot be declared \'constinit\'",
[f]="local variable cannot be declared \'constinit\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="local variable cannot be declared \'constinit\'",
[i]=m,
[j]="local variable cannot be declared \'constinit\'",
[j]="local variable cannot be declared \'constinit\'",
[c]=m,
[b]=a,
[b]="local variable cannot be declared \'constinit\'",
[h]=o,
[i]=a,
[d]={"7c11da0cfd33",1567434909,"[clang] New __attribute__((__clang_arm_mve_alias))."},
[h]=n,
[k]={{q,6919,"NamedDecl *Sema::ActOnVariableDeclarator(Scope *S, Declarator &D, DeclContext *DC, TypeSourceInfo *TInfo, LookupResult &Previous, MultiTemplateParamsArg TemplateParamLists, bool &AddToScope, ArrayRef<BindingDecl *> Bindings) {\n  case ConstexprSpecKind::Constinit:\n    if (!NewVD->hasGlobalStorage())\n      Diag(D.getDeclSpec().getConstexprSpecLoc(), diag::err_constinit_local_variable);"}}
[g]={cb,1567434909,eb}
},
},
["err_constrained_non_templated_function"]={
["err_constrained_non_templated_function"]={
[f]="non-templated function cannot have a requires clause",
[f]="non-templated function cannot have a requires clause",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="non-templated function cannot have a requires clause",
[g]="non-templated function cannot have a requires clause",
[c]=m,
[i]=m,
[b]="non\\-templated function cannot have a requires clause",
[j]="non\\-templated function cannot have a requires clause",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={rb,1620530452,sb}
[d]={"cb08f4aa4467",1620530452,"Support warn_unused_result on typedefs"},
[k]={{q,10446,"/// Perform semantic checking of a new function declaration.\n///\n/// Performs semantic analysis of the new function declaration\n/// NewFD. This routine performs all semantic checking that does not\n/// require the actual declarator involved in the declaration, and is\n/// used both for the declaration of functions as they are parsed\n/// (called via ActOnDeclarator) and for the declaration of functions\n/// that have been instantiated via C++ template instantiation (called\n/// via InstantiateDecl).\n///\n/// \\param IsMemberSpecialization whether this new function declaration is\n/// a member specialization (that replaces any definition provided by the\n/// previous declaration).\n///\n/// This sets NewFD->isInvalidDecl() to true if there was an error.\n///\n/// \\returns true if the function declaration is a redeclaration.\nbool Sema::CheckFunctionDeclaration(Scope *S, FunctionDecl *NewFD, LookupResult &Previous, bool IsMemberSpecialization, bool DeclIsDefn) {\n  if (getLangOpts().CPlusPlus) {\n    // C++20: dcl.decl.general p4:\n    // The optional requires-clause ([temp.pre]) in an init-declarator or\n    // member-declarator shall be present only if the declarator declares a\n    // templated function ([dcl.fct]).\n    if (Expr *TRC = NewFD->getTrailingRequiresClause()) {\n      if (!NewFD->getDescribedFunctionTemplate() && // -a template\n        Diag(TRC->getBeginLoc(), diag::err_constrained_non_templated_function);"},{lb,1231,"void Sema::ActOnStartOfLambdaDefinition(LambdaIntroducer &Intro, Declarator &ParamInfo, const DeclSpec &DS) {\n  // C++20: dcl.decl.general p4:\n  // The optional requires-clause ([temp.pre]) in an init-declarator or\n  // member-declarator shall be present only if the declarator declares a\n  // templated function ([dcl.fct]).\n  if (Expr *TRC = Method->getTrailingRequiresClause()) {\n    // Note: we only have to check if this is defined in a template entity, OR\n    // if we are a template, since the rest don\'t apply. The requires clause\n    // applies to the call operator, which we already know is a member function,\n    // AND defined.\n    if (!Method->getDescribedFunctionTemplate() && !Method->isTemplated()) {\n      Diag(TRC->getBeginLoc(), diag::err_constrained_non_templated_function);"}}
},
},
["err_constrained_virtual_method"]={
["err_constrained_virtual_method"]={
[f]="virtual function cannot have a requires clause",
[f]="virtual function cannot have a requires clause",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="virtual function cannot have a requires clause",
[i]=m,
[j]="virtual function cannot have a requires clause",
[j]="virtual function cannot have a requires clause",
[c]=m,
[b]=a,
[b]="virtual function cannot have a requires clause",
[h]=o,
[i]=a,
[d]={"349636d2bfc3",1575555459,"Implement VectorType conditional operator GNU extension."},
[h]=n,
[k]={{q,10410,"/// Perform semantic checking of a new function declaration.\n///\n/// Performs semantic analysis of the new function declaration\n/// NewFD. This routine performs all semantic checking that does not\n/// require the actual declarator involved in the declaration, and is\n/// used both for the declaration of functions as they are parsed\n/// (called via ActOnDeclarator) and for the declaration of functions\n/// that have been instantiated via C++ template instantiation (called\n/// via InstantiateDecl).\n///\n/// \\param IsMemberSpecialization whether this new function declaration is\n/// a member specialization (that replaces any definition provided by the\n/// previous declaration).\n///\n/// This sets NewFD->isInvalidDecl() to true if there was an error.\n///\n/// \\returns true if the function declaration is a redeclaration.\nbool Sema::CheckFunctionDeclaration(Scope *S, FunctionDecl *NewFD, LookupResult &Previous, bool IsMemberSpecialization, bool DeclIsDefn) {\n  if (getLangOpts().CPlusPlus) {\n    // Find any virtual functions that this function overrides.\n    if (CXXMethodDecl *Method = dyn_cast<CXXMethodDecl>(NewFD)) {\n      if (Method->isVirtual() && NewFD->getTrailingRequiresClause())\n        Diag(NewFD->getTrailingRequiresClause()->getBeginLoc(), diag::err_constrained_virtual_method);"}}
[g]={tc,1575555459,oc}
},
},
["err_constraint_depends_on_self"]={
["err_constraint_depends_on_self"]={
[f]="satisfaction of constraint \'A\' depends on itself",
[f]="satisfaction of constraint \'A\' depends on itself",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="satisfaction of constraint \'%0\' depends on itself",
[g]="satisfaction of constraint \'%0\' depends on itself",
[c]=m,
[i]=m,
[b]="satisfaction of constraint \'(.*?)\' depends on itself",
[j]="satisfaction of constraint \'(.*?)\' depends on itself",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={w,1625925174,v}
[d]={N,1625925174,M},
[k]={{"clang/lib/Sema/SemaConcept.cpp",263,"static bool DiagRecursiveConstraintEval(Sema &S, llvm::FoldingSetNodeID &ID, const NamedDecl *Templ, const Expr *E, const MultiLevelTemplateArgumentList &MLTAL) {\n  // Note that we have to do this with our own collection, because there are\n  // times where a constraint-expression check can cause us to need to evaluate\n  // other constriants that are unrelated, such as when evaluating a recovery\n  // expression, or when trying to determine the constexpr-ness of special\n  // members. Otherwise we could just use the\n  // Sema::InstantiatingTemplate::isAlreadyBeingInstantiated function.\n  if (S.SatisfactionStackContains(Templ, ID)) {\n    S.Diag(E->getExprLoc(), diag::err_constraint_depends_on_self) << const_cast<Expr *>(E) << E->getSourceRange();"}}
},
},
["err_constructor_bad_name"]={
["err_constructor_bad_name"]={
[f]="missing return type for function A; did you mean the constructor name B?",
[f]="missing return type for function A; did you mean the constructor name B?",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="missing return type for function %0; did you mean the constructor name %1?",
[g]="missing return type for function %0; did you mean the constructor name %1?",
[c]=m,
[i]=m,
[b]="missing return type for function (.*?); did you mean the constructor name (.*?)\\?",
[j]="missing return type for function (.*?); did you mean the constructor name (.*?)\\?",
[i]=a,
[b]=a,
[h]=o,
[h]=B,
[g]={"fb8b7b9a1c52",1381795226,"PR17567: Improve diagnostic for a mistyped constructor name. If we see something"}
[d]={"fb8b7b9a1c52",1381795226,"PR17567: Improve diagnostic for a mistyped constructor name. If we see something"},
[k]={{D,2620,"/// ParseImplicitInt - This method is called when we have an non-typename\n/// identifier in a declspec (which normally terminates the decl spec) when\n/// the declspec has no type specifier.  In this case, the declspec is either\n/// malformed or is \"implicit int\" (in K&R and C89).\n///\n/// This method handles diagnosing this prettily and returns false if the\n/// declspec is done being processed.  If it recovers and thinks there may be\n/// other pieces of declspec after it, it returns true.\n///\nbool Parser::ParseImplicitInt(DeclSpec &DS, CXXScopeSpec *SS, const ParsedTemplateInfo &TemplateInfo, AccessSpecifier AS, DeclSpecContext DSC, ParsedAttributes &Attrs) {\n  // Determine whether this identifier could plausibly be the name of something\n  // being declared (with a missing type).\n  if (!isTypeSpecifier(DSC) && (!SS || DSC == DeclSpecContext::DSC_top_level || DSC == DeclSpecContext::DSC_class)) {\n    case tok::l_paren: {\n      // If we\'re in a context where we could be declaring a constructor,\n      // check whether this is a constructor declaration with a bogus name.\n      if (DSC == DeclSpecContext::DSC_class || (DSC == DeclSpecContext::DSC_top_level && SS)) {\n        if (Actions.isCurrentClassNameTypo(II, SS)) {\n          Diag(Loc, diag::err_constructor_bad_name) << Tok.getIdentifierInfo() << II << FixItHint::CreateReplacement(Tok.getLocation(), II->getName());"}}
},
},
["err_constructor_byvalue_arg"]={
["err_constructor_byvalue_arg"]={
[f]="copy constructor must pass its first argument by reference",
[f]="copy constructor must pass its first argument by reference",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="copy constructor must pass its first argument by reference",
[i]=m,
[j]="copy constructor must pass its first argument by reference",
[j]="copy constructor must pass its first argument by reference",
[c]=m,
[b]=a,
[b]="copy constructor must pass its first argument by reference",
[h]=o,
[i]=a,
[d]={A,1236199783,z},
[h]=n,
[k]={{v,9261,"/// CheckConstructor - Checks a fully-formed constructor for\n/// well-formedness, issuing any diagnostics required. Returns true if\n/// the constructor declarator is invalid.\nvoid Sema::CheckConstructor(CXXConstructorDecl *Constructor) {\n  // C++ [class.copy]p3:\n  //  A declaration of a constructor for a class X is ill-formed if\n  //  its first parameter is of type (optionally cv-qualified) X and\n  //  either there are no other parameters or else all other\n  //  parameters have default arguments.\n  if (!Constructor->isInvalidDecl() && Constructor->hasOneParamOrDefaultArgs() && Constructor->getTemplateSpecializationKind() != TSK_ImplicitInstantiation) {\n    if (Context.getCanonicalType(ParamType).getUnqualifiedType() == ClassTy) {\n      Diag(ParamLoc, diag::err_constructor_byvalue_arg) << FixItHint::CreateInsertion(ParamLoc, ConstRef);"}}
[g]={s,1236199783,r}
},
},
["err_constructor_cannot_be"]={
["err_constructor_cannot_be"]={
[f]="constructor cannot be declared \'A\'",
[f]="constructor cannot be declared \'A\'",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="constructor cannot be declared \'%0\'",
[g]="constructor cannot be declared \'%0\'",
[c]=m,
[i]=m,
[b]="constructor cannot be declared \'(.*?)\'",
[j]="constructor cannot be declared \'(.*?)\'",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={s,1236199783,r}
[d]={A,1236199783,z},
[k]={{v,9203,"/// CheckConstructorDeclarator - Called by ActOnDeclarator to check\n/// the well-formedness of the constructor declarator @p D with type @p\n/// R. If there are any errors in the declarator, this routine will\n/// emit diagnostics and set the invalid bit to true.  In any case, the type\n/// will be updated to reflect a well-formed type for the constructor and\n/// returned.\nQualType Sema::CheckConstructorDeclarator(Declarator &D, QualType R, StorageClass &SC) {\n  // C++ [class.ctor]p3:\n  //  A constructor shall not be virtual (10.3) or static (9.4). A\n  //  constructor can be invoked for a const, volatile or const\n  //  volatile object. A constructor shall not be declared const,\n  //  volatile, or const volatile (9.3.2).\n  if (isVirtual) {\n    if (!D.isInvalidType())\n      Diag(D.getIdentifierLoc(), diag::err_constructor_cannot_be) << \"virtual\" << SourceRange(D.getDeclSpec().getVirtualSpecLoc()) << SourceRange(D.getIdentifierLoc());"},{v,9208,"/// CheckConstructorDeclarator - Called by ActOnDeclarator to check\n/// the well-formedness of the constructor declarator @p D with type @p\n/// R. If there are any errors in the declarator, this routine will\n/// emit diagnostics and set the invalid bit to true.  In any case, the type\n/// will be updated to reflect a well-formed type for the constructor and\n/// returned.\nQualType Sema::CheckConstructorDeclarator(Declarator &D, QualType R, StorageClass &SC) {\n  if (SC == SC_Static) {\n    if (!D.isInvalidType())\n      Diag(D.getIdentifierLoc(), diag::err_constructor_cannot_be) << \"static\" << SourceRange(D.getDeclSpec().getStorageClassSpecLoc()) << SourceRange(D.getIdentifierLoc());"}}
},
},
["err_constructor_redeclared"]={
["err_constructor_redeclared"]={
[f]="constructor cannot be redeclared",
[f]="constructor cannot be redeclared",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="constructor cannot be redeclared",
[i]=m,
[j]="constructor cannot be redeclared",
[j]="constructor cannot be redeclared",
[c]=m,
[b]=a,
[b]="constructor cannot be redeclared",
[h]=o,
[i]=a,
[d]={A,1236199783,z},
[h]=n,
[k]={{q,3587,"/// MergeFunctionDecl - We just parsed a function \'New\' from\n/// declarator D which has the same name and scope as a previous\n/// declaration \'Old\'.  Figure out how to resolve this situation,\n/// merging decls or emitting diagnostics as appropriate.\n///\n/// In C++, New and Old must be declarations that are not\n/// overloaded. Use IsOverload to determine whether New and Old are\n/// overloaded, and to select the Old declaration that New should be\n/// merged with.\n///\n/// Returns true if there was an error, false otherwise.\nbool Sema::MergeFunctionDecl(FunctionDecl *New, NamedDecl *&OldD, Scope *S, bool MergeTypeWithOld, bool NewDeclIsDefn) {\n  if (getLangOpts().CPlusPlus) {\n    if (OldMethod && NewMethod) {\n      if (!isFriend && NewMethod->getLexicalDeclContext()->isRecord() && !IsClassScopeExplicitSpecialization) {\n        // C++ [class.mem]p1:\n        //  [...] A member shall not be declared twice in the\n        //  member-specification, except that a nested class or member\n        //  class template can be declared and then later defined.\n        if (!inTemplateInstantiation()) {\n          if (isa<CXXConstructorDecl>(OldMethod))\n            NewDiag = diag::err_constructor_redeclared;"}}
[g]={s,1236199783,r}
},
},
["err_constructor_return_type"]={
["err_constructor_return_type"]={
[f]="constructor cannot have a return type",
[f]="constructor cannot have a return type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="constructor cannot have a return type",
[i]=m,
[j]="constructor cannot have a return type",
[j]="constructor cannot have a return type",
[c]=m,
[b]=a,
[b]="constructor cannot have a return type",
[h]=o,
[i]=a,
[d]={A,1236199783,z},
[h]=n,
[k]={{q,8147,"static FunctionDecl *CreateNewFunctionDecl(Sema &SemaRef, Declarator &D, DeclContext *DC, QualType &R, TypeSourceInfo *TInfo, StorageClass SC, bool &IsVirtualOkay) {\n  if (Name.getNameKind() == DeclarationName::CXXConstructorName) {\n  } else if (Name.getNameKind() == DeclarationName::CXXDestructorName) {\n  } else if (Name.getNameKind() == DeclarationName::CXXConversionFunctionName) {\n  } else if (Name.getNameKind() == DeclarationName::CXXDeductionGuideName) {\n  } else if (DC->isRecord()) {\n    // If the name of the function is the same as the name of the record,\n    // then this must be an invalid constructor that has a return type.\n    // (The parser checks for a return type and makes the declarator a\n    // constructor if it has no return type).\n    if (Name.getAsIdentifierInfo() && Name.getAsIdentifierInfo() == cast<CXXRecordDecl>(DC)->getIdentifier()) {\n      SemaRef.Diag(D.getIdentifierLoc(), diag::err_constructor_return_type) << SourceRange(D.getDeclSpec().getTypeSpecTypeLoc()) << SourceRange(D.getIdentifierLoc());"},{v,9214,"/// CheckConstructorDeclarator - Called by ActOnDeclarator to check\n/// the well-formedness of the constructor declarator @p D with type @p\n/// R. If there are any errors in the declarator, this routine will\n/// emit diagnostics and set the invalid bit to true.  In any case, the type\n/// will be updated to reflect a well-formed type for the constructor and\n/// returned.\nQualType Sema::CheckConstructorDeclarator(Declarator &D, QualType R, StorageClass &SC) {\n  if (unsigned TypeQuals = D.getDeclSpec().getTypeQualifiers()) {\n    diagnoseIgnoredQualifiers(diag::err_constructor_return_type, TypeQuals, SourceLocation(), D.getDeclSpec().getConstSpecLoc(), D.getDeclSpec().getVolatileSpecLoc(), D.getDeclSpec().getRestrictSpecLoc(), D.getDeclSpec().getAtomicSpecLoc());"}}
[g]={s,1236199783,r}
},
},
["err_continuation_class"]={
["err_continuation_class"]={
[f]="class extension has no primary class",
[f]="class extension has no primary class",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="class extension has no primary class",
[i]=m,
[j]="class extension has no primary class",
[j]="class extension has no primary class",
[c]=m,
[b]=a,
[b]="class extension has no primary class",
[h]=o,
[i]=a,
[d]={A,1236199783,z},
[h]=n,
[k]={{P,360,"ObjCPropertyDecl *Sema::HandlePropertyInClassExtension(Scope *S, SourceLocation AtLoc, SourceLocation LParenLoc, FieldDeclarator &FD, Selector GetterSel, SourceLocation GetterNameLoc, Selector SetterSel, SourceLocation SetterNameLoc, const bool isReadWrite, unsigned &Attributes, const unsigned AttributesAsWritten, QualType T, TypeSourceInfo *TSI, tok::ObjCKeywordKind MethodImplKind) {\n  // We need to look in the @interface to see if the @property was\n  // already declared.\n  if (!CCPrimary) {\n    Diag(CDecl->getLocation(), diag::err_continuation_class);"}}
[g]={s,1236199783,r}
},
},
["err_continue_from_cond_var_init"]={
["err_continue_from_cond_var_init"]={
[f]="cannot jump from this continue statement to the loop increment; jump bypasses initialization of loop condition variable",
[f]="cannot jump from this continue statement to the loop increment; jump bypasses initialization of loop condition variable",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="cannot jump from this continue statement to the loop increment; jump bypasses initialization of loop condition variable",
[i]=m,
[j]="cannot jump from this continue statement to the loop increment; jump bypasses initialization of loop condition variable",
[j]="cannot jump from this continue statement to the loop increment; jump bypasses initialization of loop condition variable",
[c]=m,
[b]=a,
[b]="cannot jump from this continue statement to the loop increment; jump bypasses initialization of loop condition variable",
[h]=o,
[i]=a,
[d]={fb,1590001902,eb},
[h]=n,
[k]={{R,2864,"StmtResult Sema::ActOnContinueStmt(SourceLocation ContinueLoc, Scope *CurScope) {\n  if (S->isConditionVarScope()) {\n    return StmtError(Diag(ContinueLoc, diag::err_continue_from_cond_var_init));"}}
[g]={Z,1590001902,ab}
},
},
["err_continue_not_in_loop"]={
["err_continue_not_in_loop"]={
[f]="\'continue\' statement not in loop statement",
[f]="\'continue\' statement not in loop statement",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="\'continue\' statement not in loop statement",
[i]=m,
[j]="\'continue\' statement not in loop statement",
[j]="\'continue\' statement not in loop statement",
[c]=m,
[b]=a,
[b]="\'continue\' statement not in loop statement",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{R,2858,"StmtResult Sema::ActOnContinueStmt(SourceLocation ContinueLoc, Scope *CurScope) {\n  if (!S) {\n    return StmtError(Diag(ContinueLoc, diag::err_continue_not_in_loop));"}}
[g]={q,1237025389,p}
},
},
["err_conv_function_not_member"]={
["err_conv_function_not_member"]={
[f]="conversion function must be a non-static member function",
[f]="conversion function must be a non-static member function",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="conversion function must be a non-static member function",
[g]="conversion function must be a non-static member function",
[c]=m,
[i]=m,
[b]="conversion function must be a non\\-static member function",
[j]="conversion function must be a non\\-static member function",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={q,1237025389,p}
[d]={u,1237025389,t},
[k]={{q,8124,"static FunctionDecl *CreateNewFunctionDecl(Sema &SemaRef, Declarator &D, DeclContext *DC, QualType &R, TypeSourceInfo *TInfo, StorageClass SC, bool &IsVirtualOkay) {\n  if (Name.getNameKind() == DeclarationName::CXXConstructorName) {\n  } else if (Name.getNameKind() == DeclarationName::CXXDestructorName) {\n  } else if (Name.getNameKind() == DeclarationName::CXXConversionFunctionName) {\n    if (!DC->isRecord()) {\n      SemaRef.Diag(D.getIdentifierLoc(), diag::err_conv_function_not_member);"},{v,9439,"/// CheckConversionDeclarator - Called by ActOnDeclarator to check the\n/// well-formednes of the conversion function declarator @p D with\n/// type @p R. If there are any errors in the declarator, this routine\n/// will emit diagnostics and return true. Otherwise, it will return\n/// false. Either way, the type @p R will be updated to reflect a\n/// well-formed type for the conversion operator.\nvoid Sema::CheckConversionDeclarator(Declarator &D, QualType &R, StorageClass &SC) {\n  // C++ [class.conv.fct]p1:\n  //  Neither parameter types nor return type can be specified. The\n  //  type of a conversion function (8.3.5) is \"function taking no\n  //  parameter returning conversion-type-id.\"\n  if (SC == SC_Static) {\n    if (!D.isInvalidType())\n      Diag(D.getIdentifierLoc(), diag::err_conv_function_not_member) << SourceRange(D.getDeclSpec().getStorageClassSpecLoc()) << D.getName().getSourceRange();"}}
},
},
["err_conv_function_redeclared"]={
["err_conv_function_redeclared"]={
[f]="conversion function cannot be redeclared",
[f]="conversion function cannot be redeclared",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="conversion function cannot be redeclared",
[i]=m,
[j]="conversion function cannot be redeclared",
[j]="conversion function cannot be redeclared",
[c]=m,
[b]=a,
[b]="conversion function cannot be redeclared",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{q,3591,"/// MergeFunctionDecl - We just parsed a function \'New\' from\n/// declarator D which has the same name and scope as a previous\n/// declaration \'Old\'.  Figure out how to resolve this situation,\n/// merging decls or emitting diagnostics as appropriate.\n///\n/// In C++, New and Old must be declarations that are not\n/// overloaded. Use IsOverload to determine whether New and Old are\n/// overloaded, and to select the Old declaration that New should be\n/// merged with.\n///\n/// Returns true if there was an error, false otherwise.\nbool Sema::MergeFunctionDecl(FunctionDecl *New, NamedDecl *&OldD, Scope *S, bool MergeTypeWithOld, bool NewDeclIsDefn) {\n  if (getLangOpts().CPlusPlus) {\n    if (OldMethod && NewMethod) {\n      if (!isFriend && NewMethod->getLexicalDeclContext()->isRecord() && !IsClassScopeExplicitSpecialization) {\n        // C++ [class.mem]p1:\n        //  [...] A member shall not be declared twice in the\n        //  member-specification, except that a nested class or member\n        //  class template can be declared and then later defined.\n        if (!inTemplateInstantiation()) {\n          if (isa<CXXConstructorDecl>(OldMethod))\n          else if (isa<CXXDestructorDecl>(NewMethod))\n          else if (isa<CXXConversionDecl>(NewMethod))\n            NewDiag = diag::err_conv_function_redeclared;"}}
[g]={q,1237025389,p}
},
},
["err_conv_function_return_type"]={
["err_conv_function_return_type"]={
[f]="conversion function cannot have a return type",
[f]="conversion function cannot have a return type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="conversion function cannot have a return type",
[i]=m,
[j]="conversion function cannot have a return type",
[j]="conversion function cannot have a return type",
[c]=m,
[b]=a,
[b]="conversion function cannot have a return type",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{v,9457,"/// CheckConversionDeclarator - Called by ActOnDeclarator to check the\n/// well-formednes of the conversion function declarator @p D with\n/// type @p R. If there are any errors in the declarator, this routine\n/// will emit diagnostics and return true. Otherwise, it will return\n/// false. Either way, the type @p R will be updated to reflect a\n/// well-formed type for the conversion operator.\nvoid Sema::CheckConversionDeclarator(Declarator &D, QualType &R, StorageClass &SC) {\n  if (DS.hasTypeSpecifier() && !D.isInvalidType()) {\n    Diag(D.getIdentifierLoc(), diag::err_conv_function_return_type) << SourceRange(DS.getTypeSpecTypeLoc()) << SourceRange(D.getIdentifierLoc());"}}
[g]={q,1237025389,p}
},
},
["err_conv_function_to_array"]={
["err_conv_function_to_array"]={
[f]="conversion function cannot convert to an array type",
[f]="conversion function cannot convert to an array type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="conversion function cannot convert to an array type",
[i]=m,
[j]="conversion function cannot convert to an array type",
[j]="conversion function cannot convert to an array type",
[c]=m,
[b]=a,
[b]="conversion function cannot convert to an array type",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{v,9558,"/// CheckConversionDeclarator - Called by ActOnDeclarator to check the\n/// well-formednes of the conversion function declarator @p D with\n/// type @p R. If there are any errors in the declarator, this routine\n/// will emit diagnostics and return true. Otherwise, it will return\n/// false. Either way, the type @p R will be updated to reflect a\n/// well-formed type for the conversion operator.\nvoid Sema::CheckConversionDeclarator(Declarator &D, QualType &R, StorageClass &SC) {\n  // C++ [class.conv.fct]p4:\n  //  The conversion-type-id shall not represent a function type nor\n  //  an array type.\n  if (ConvType->isArrayType()) {\n    Diag(D.getIdentifierLoc(), diag::err_conv_function_to_array);"}}
[g]={q,1237025389,p}
},
},
["err_conv_function_to_function"]={
["err_conv_function_to_function"]={
[f]="conversion function cannot convert to a function type",
[f]="conversion function cannot convert to a function type",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="conversion function cannot convert to a function type",
[i]=m,
[j]="conversion function cannot convert to a function type",
[j]="conversion function cannot convert to a function type",
[c]=m,
[b]=a,
[b]="conversion function cannot convert to a function type",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{v,9562,"/// CheckConversionDeclarator - Called by ActOnDeclarator to check the\n/// well-formednes of the conversion function declarator @p D with\n/// type @p R. If there are any errors in the declarator, this routine\n/// will emit diagnostics and return true. Otherwise, it will return\n/// false. Either way, the type @p R will be updated to reflect a\n/// well-formed type for the conversion operator.\nvoid Sema::CheckConversionDeclarator(Declarator &D, QualType &R, StorageClass &SC) {\n  // C++ [class.conv.fct]p4:\n  //  The conversion-type-id shall not represent a function type nor\n  //  an array type.\n  if (ConvType->isArrayType()) {\n  } else if (ConvType->isFunctionType()) {\n    Diag(D.getIdentifierLoc(), diag::err_conv_function_to_function);"}}
[g]={q,1237025389,p}
},
},
["err_conv_function_variadic"]={
["err_conv_function_variadic"]={
[f]="conversion function cannot be variadic",
[f]="conversion function cannot be variadic",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="conversion function cannot be variadic",
[i]=m,
[j]="conversion function cannot be variadic",
[j]="conversion function cannot be variadic",
[c]=m,
[b]=a,
[b]="conversion function cannot be variadic",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{v,9479,"/// CheckConversionDeclarator - Called by ActOnDeclarator to check the\n/// well-formednes of the conversion function declarator @p D with\n/// type @p R. If there are any errors in the declarator, this routine\n/// will emit diagnostics and return true. Otherwise, it will return\n/// false. Either way, the type @p R will be updated to reflect a\n/// well-formed type for the conversion operator.\nvoid Sema::CheckConversionDeclarator(Declarator &D, QualType &R, StorageClass &SC) {\n  // Make sure we don\'t have any parameters.\n  if (Proto->getNumParams() > 0) {\n  } else if (Proto->isVariadic()) {\n    Diag(D.getIdentifierLoc(), diag::err_conv_function_variadic);"}}
[g]={q,1237025389,p}
},
},
["err_conv_function_with_complex_decl"]={
["err_conv_function_with_complex_decl"]={
[f]="cannot specify any part of a return type in the declaration of a conversion function...",
[f]="cannot specify any part of a return type in the declaration of a conversion function...",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[j]="cannot specify any part of a return type in the declaration of a conversion function%select{; put the complete type after \'operator\'|; use a typedef to declare a conversion to %1|; use an alias template to declare a conversion to %1|}0",
[g]="cannot specify any part of a return type in the declaration of a conversion function%select{; put the complete type after \'operator\'|; use a typedef to declare a conversion to %1|; use an alias template to declare a conversion to %1|}0",
[c]=m,
[i]=m,
[b]="cannot specify any part of a return type in the declaration of a conversion function(?:; put the complete type after \'operator\'|; use a typedef to declare a conversion to (.*?)|; use an alias template to declare a conversion to (.*?)|)",
[j]="cannot specify any part of a return type in the declaration of a conversion function(?:; put the complete type after \'operator\'|; use a typedef to declare a conversion to (.*?)|; use an alias template to declare a conversion to (.*?)|)",
[i]=a,
[b]=a,
[h]=n,
[h]=o,
[g]={"212fa2efb700",1271117071,"Diagnose declarations of conversion functions with declarators other than \'()\'."}
[d]={"212fa2efb700",1271117071,"Diagnose declarations of conversion functions with declarators other than \'()\'."},
[k]={{v,9465,"/// CheckConversionDeclarator - Called by ActOnDeclarator to check the\n/// well-formednes of the conversion function declarator @p D with\n/// type @p R. If there are any errors in the declarator, this routine\n/// will emit diagnostics and return true. Otherwise, it will return\n/// false. Either way, the type @p R will be updated to reflect a\n/// well-formed type for the conversion operator.\nvoid Sema::CheckConversionDeclarator(Declarator &D, QualType &R, StorageClass &SC) {\n  if (DS.hasTypeSpecifier() && !D.isInvalidType()) {\n  } else if (DS.getTypeQualifiers() && !D.isInvalidType()) {\n    Diag(D.getIdentifierLoc(), diag::err_conv_function_with_complex_decl) << SourceRange(D.getIdentifierLoc()) << 0;"},{v,9526,"/// CheckConversionDeclarator - Called by ActOnDeclarator to check the\n/// well-formednes of the conversion function declarator @p D with\n/// type @p R. If there are any errors in the declarator, this routine\n/// will emit diagnostics and return true. Otherwise, it will return\n/// false. Either way, the type @p R will be updated to reflect a\n/// well-formed type for the conversion operator.\nvoid Sema::CheckConversionDeclarator(Declarator &D, QualType &R, StorageClass &SC) {\n  // Diagnose \"&operator bool()\" and other such nonsense.  This\n  // is actually a gcc extension which we don\'t support.\n  if (Proto->getReturnType() != ConvType) {\n    auto &&DB = Diag(Loc, diag::err_conv_function_with_complex_decl);"}}
},
},
["err_conv_function_with_params"]={
["err_conv_function_with_params"]={
[f]="conversion function cannot have any parameters",
[f]="conversion function cannot have any parameters",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="conversion function cannot have any parameters",
[i]=m,
[j]="conversion function cannot have any parameters",
[j]="conversion function cannot have any parameters",
[c]=m,
[b]=a,
[b]="conversion function cannot have any parameters",
[h]=o,
[i]=a,
[d]={u,1237025389,t},
[h]=n,
[k]={{v,9473,"/// CheckConversionDeclarator - Called by ActOnDeclarator to check the\n/// well-formednes of the conversion function declarator @p D with\n/// type @p R. If there are any errors in the declarator, this routine\n/// will emit diagnostics and return true. Otherwise, it will return\n/// false. Either way, the type @p R will be updated to reflect a\n/// well-formed type for the conversion operator.\nvoid Sema::CheckConversionDeclarator(Declarator &D, QualType &R, StorageClass &SC) {\n  // Make sure we don\'t have any parameters.\n  if (Proto->getNumParams() > 0) {\n    Diag(D.getIdentifierLoc(), diag::err_conv_function_with_params);"}}
[g]={q,1237025389,p}
},
},
["err_convertvector_incompatible_vector"]={
["err_convertvector_incompatible_vector"]={
[f]="first two arguments to __builtin_convertvector must have the same number of elements",
[f]="first two arguments to __builtin_convertvector must have the same number of elements",
[d]=l,
[c]=l,
[e]=k,
[e]=n,
[g]="first two arguments to __builtin_convertvector must have the same number of elements",
[i]=m,
[j]="first two arguments to __builtin_convertvector must have the same number of elements",
[j]="first two arguments to __builtin_convertvector must have the same number of elements",
[c]=m,
[b]=a,
[b]="first two arguments to __builtin_convertvector must have the same number of elements",
[h]=o,
[i]=a,
[d]={"c4d7c82c7f73",1379474985,"Add the intrinsic __builtin_convertvector"},
[h]=n,
[k]={{s,7992,"/// SemaConvertVectorExpr - Handle __builtin_convertvector\nExprResult Sema::SemaConvertVectorExpr(Expr *E, TypeSourceInfo *TInfo, SourceLocation BuiltinLoc, SourceLocation RParenLoc) {\n  if (!SrcTy->isDependentType() && !DstTy->isDependentType()) {\n    if (SrcElts != DstElts)\n     return ExprError(Diag(BuiltinLoc, diag::err_convertvector_incompatible_vector) << E->getSourceRange());"}}
[g]={"c4d7c82c7f73",1379474985,"Add the intrinsic __builtin_convertvector"}
},
["err_convertvector_non_vector"]={
[f]="first argument to __builtin_convertvector must be a vector",
[d]=l,
[e]=k,
[j]="first argument to __builtin_convertvector must be a vector",
[c]=m,
[b]="first argument to __builtin_convertvector must be a vector",
[i]=a,
[h]=n,
[g]={"c4d7c82c7f73",1379474985,"Add the intrinsic __builtin_convertvector"}
},
["err_convertvector_non_vector_type"]={
[f]="second argument to __builtin_convertvector must be a vector type",
[d]=l,
[e]=k,
[j]="second argument to __builtin_convertvector must be a vector type",
[c]=m,
[b]="second argument to __builtin_convertvector must be a vector type",
[i]=a,
[h]=n,
[g]={"c4d7c82c7f73",1379474985,"Add the intrinsic __builtin_convertvector"}
},
["err_copy_capture_with_copy_default"]={
[f]="\'&\' must precede a capture when the capture default is \'=\'",
[d]=l,
[e]=k,
[j]="\'&\' must precede a capture when the capture default is \'=\'",
[c]=m,
[b]="\'&\' must precede a capture when the capture default is \'\\=\'",
[i]=a,
[h]=Q,
[g]={"44803326d4e8",1325898497,"Lambdas: semantic analysis of explicit captures."}
},
["err_coro_invalid_addr_of_label"]={
[f]="the GNU address of label extension is not allowed in coroutines.",
[d]=l,
[e]=k,
[j]="the GNU address of label extension is not allowed in coroutines.",
[c]=m,
[b]="the GNU address of label extension is not allowed in coroutines\\.",
[i]=a,
[h]=E,
[g]={w,1625925174,v}
},
["err_coroutine_handle_missing_member"]={
[f]="std::coroutine_handle must have a member named \'A\'",
[d]=l,
[e]=k,
[j]="std::coroutine_handle must have a member named \'%0\'",
[c]=m,
[b]="std\\:\\:coroutine_handle must have a member named \'(.*?)\'",
[i]=a,
[h]=E,
[g]={"6dcb0eb301c7",1489028983,"[coroutines] Build and pass coroutine_handle to await_suspend"}
},
["err_coroutine_invalid_func_context"]={
[f]="\'A\' cannot be used in ...",
[d]=l,
[e]=k,
[j]="\'%1\' cannot be used in %select{a constructor|a destructor|the \'main\' function|a constexpr function|a function with a deduced return type|a varargs function|a consteval function}0",
[c]=m,
[b]="\'(.*?)\' cannot be used in (?:a constructor|a destructor|the \'main\' function|a constexpr function|a function with a deduced return type|a varargs function|a consteval function)",
[i]=a,
[h]=E,
[g]={"c8efda7f8094",1477593808,"[coroutines] Add diagnostics for copy/move assignment operators and functions with deduced return ty..."}
},
["err_coroutine_objc_method"]={
[f]="Objective-C methods as coroutines are not yet supported",
[d]=l,
[e]=k,
[j]="Objective-C methods as coroutines are not yet supported",
[c]=m,
[b]="Objective\\-C methods as coroutines are not yet supported",
[i]=a,
[h]=E,
[g]={"cfd53b4e9993",1445494430,"[coroutines] Initial stub Sema functionality for handling coroutine await / yield / return."}
},
["err_coroutine_outside_function"]={
[f]="\'A\' cannot be used outside a function",
[d]=l,
[e]=k,
[j]="\'%0\' cannot be used outside a function",
[c]=m,
[b]="\'(.*?)\' cannot be used outside a function",
[i]=a,
[h]=E,
[g]={"cfd53b4e9993",1445494430,"[coroutines] Initial stub Sema functionality for handling coroutine await / yield / return."}
},
["err_coroutine_promise_final_suspend_requires_nothrow"]={
[f]="the expression \'co_await __promise.final_suspend()\' is required to be non-throwing",
[d]=l,
[e]=k,
[j]="the expression \'co_await __promise.final_suspend()\' is required to be non-throwing",
[c]=m,
[b]="the expression \'co_await __promise\\.final_suspend\\(\\)\' is required to be non\\-throwing",
[i]=a,
[h]=E,
[g]={G,1582847864,I}
},
["err_coroutine_promise_get_return_object_on_allocation_failure"]={
[f]="A: \'get_return_object_on_allocation_failure()\' must be a static member function",
[d]=l,
[e]=k,
[j]="%0: \'get_return_object_on_allocation_failure()\' must be a static member function",
[c]=m,
[b]="(.*?)\\: \'get_return_object_on_allocation_failure\\(\\)\' must be a static member function",
[i]=a,
[h]=E,
[g]={"3aa9eb38a076",1490657819,"[coroutines] Handle get_return_object_on_allocation_failure"}
},
["err_coroutine_promise_incompatible_return_functions"]={
[f]="the coroutine promise type A declares both \'return_value\' and \'return_void\'",
[d]=l,
[e]=k,
[j]="the coroutine promise type %0 declares both \'return_value\' and \'return_void\'",
[c]=m,
[b]="the coroutine promise type (.*?) declares both \'return_value\' and \'return_void\'",
[i]=a,
[h]=E,
[g]={"fc50f62caafd",1495724379,"[coroutines] Diagnose when promise types fail to declare either return_void or return_value."}
},
["err_coroutine_promise_new_requires_nothrow"]={
[f]="A is required to have a non-throwing noexcept specification when the promise type declares \'get_return_object_on_allocation_failure()\'",
[d]=l,
[e]=k,
[j]="%0 is required to have a non-throwing noexcept specification when the promise type declares \'get_return_object_on_allocation_failure()\'",
[c]=m,
[b]="(.*?) is required to have a non\\-throwing noexcept specification when the promise type declares \'get_return_object_on_allocation_failure\\(\\)\'",
[i]=a,
[h]=E,
[g]={"627a63cf5081",1492334399,"[coroutines] Fix building of new/delete expressions when get_return_object_on_allocation_failure() i..."}
},
["err_coroutine_promise_type_incomplete"]={
[f]="this function cannot be a coroutine: A is an incomplete type",
[d]=l,
[e]=k,
[j]="this function cannot be a coroutine: %0 is an incomplete type",
[c]=m,
[b]="this function cannot be a coroutine\\: (.*?) is an incomplete type",
[i]=a,
[h]=E,
[g]={"89bf0e725f6f",1488840748,"[coroutines] Improve diagnostics when building implicit constructs."}
},
["err_coroutine_promise_unhandled_exception_required"]={
[f]="A is required to declare the member \'unhandled_exception()\'",
[d]=l,
[e]=k,
[j]="%0 is required to declare the member \'unhandled_exception()\'",
[c]=m,
[b]="(.*?) is required to declare the member \'unhandled_exception\\(\\)\'",
[i]=a,
[h]=E,
[g]={"a9fdb346dbc6",1490229213,"[coroutines] Implement unhandled_exception changes."}
},
["err_coroutine_type_missing_specialization"]={
[f]="this function cannot be a coroutine: missing definition of specialization A",
[d]=l,
[e]=k,
[j]="this function cannot be a coroutine: missing definition of specialization %0",
[c]=m,
[b]="this function cannot be a coroutine\\: missing definition of specialization (.*?)",
[i]=a,
[h]=E,
[g]={"6dcb0eb301c7",1489028983,"[coroutines] Build and pass coroutine_handle to await_suspend"}
},
["err_coroutine_unevaluated_context"]={
[f]="\'A\' cannot be used in an unevaluated context",
[d]=l,
[e]=k,
[j]="\'%0\' cannot be used in an unevaluated context",
[c]=m,
[b]="\'(.*?)\' cannot be used in an unevaluated context",
[i]=a,
[h]=E,
[g]={"744b224bb511",1447988041,"[coroutines] Per latest wording paper, co_* are no longer permitted in any"}
},
["err_coroutine_unfound_nothrow_new"]={
[f]="unable to find ... for A",
[d]=l,
[e]=k,
[j]="unable to find %select{\'::operator new(size_t, nothrow_t)\'|\'::operator new(size_t, align_val_t, nothrow_t)\'}1 for %0",
[c]=m,
[b]="unable to find (?:\'\\:\\:operator new\\(size_t, nothrow_t\\)\'|\'\\:\\:operator new\\(size_t, align_val_t, nothrow_t\\)\') for (.*?)",
[i]=a,
[h]=E,
[g]={w,1625925174,v}
},
["err_coroutine_unusable_new"]={
[f]="\'operator new\' provided by A is not usable with the function signature of B",
[d]=l,
[e]=k,
[j]="\'operator new\' provided by %0 is not usable with the function signature of %1",
[c]=m,
[b]="\'operator new\' provided by (.*?) is not usable with the function signature of (.*?)",
[i]=a,
[h]=E,
[g]={rb,1620530452,sb}
},
["err_coroutine_within_handler"]={
[f]="\'A\' cannot be used in the handler of a try block",
[d]=l,
[e]=k,
[j]="\'%0\' cannot be used in the handler of a try block",
[c]=m,
[b]="\'(.*?)\' cannot be used in the handler of a try block",
[i]=a,
[h]=E,
[g]={"9db9b1a17501",1552681549,"[coroutines][PR40978] Emit error for co_yield within catch block"}
},
["err_covariant_return_ambiguous_derived_to_base_conv"]={
[f]="return type of virtual function A is not covariant with the return type of the function it overrides (ambiguous conversion from derived class B to base class C:D)",
[d]=l,
[e]=k,
[j]="return type of virtual function %3 is not covariant with the return type of the function it overrides (ambiguous conversion from derived class %0 to base class %1:%2)",
[c]=m,
[b]="return type of virtual function (.*?) is not covariant with the return type of the function it overrides \\(ambiguous conversion from derived class (.*?) to base class (.*?)\\:(.*?)\\)",
[i]=a,
[h]=n,
[g]={Ic,1242330739,Jc}
},
["err_covariant_return_inaccessible_base"]={
[f]="invalid covariant return for virtual function: A is a ... base class of B",
[d]=l,
[e]=k,
[j]="invalid covariant return for virtual function: %1 is a %select{private|protected}2 base class of %0",
[c]=m,
[b]="invalid covariant return for virtual function\\: (.*?) is a (?:private|protected) base class of (.*?)",
[i]=a,
[h]=n,
[g]={Ic,1242330739,Jc}
},
["err_covariant_return_incomplete"]={
[f]="return type of virtual function A is not covariant with the return type of the function it overrides (B is incomplete)",
[d]=l,
[e]=k,
[j]="return type of virtual function %0 is not covariant with the return type of the function it overrides (%1 is incomplete)",
[c]=m,
[b]="return type of virtual function (.*?) is not covariant with the return type of the function it overrides \\((.*?) is incomplete\\)",
[i]=a,
[h]=n,
[g]={"e60365b7b5c7",1262284464,"Make sure that an overriding return type is complete before checking if it\'s covariant. Fixes PR5920..."}
},
["err_covariant_return_not_derived"]={
[f]="return type of virtual function A is not covariant with the return type of the function it overrides (B is not derived from C)",
[d]=l,
[e]=k,
[j]="return type of virtual function %0 is not covariant with the return type of the function it overrides (%1 is not derived from %2)",
[c]=m,
[b]="return type of virtual function (.*?) is not covariant with the return type of the function it overrides \\((.*?) is not derived from (.*?)\\)",
[i]=a,
[h]=n,
[g]={Ic,1242330739,Jc}
},
["err_covariant_return_type_class_type_more_qualified"]={
[f]="return type of virtual function A is not covariant with the return type of the function it overrides (class type B is more qualified than class type C",
[d]=l,
[e]=k,
[j]="return type of virtual function %0 is not covariant with the return type of the function it overrides (class type %1 is more qualified than class type %2",
[c]=m,
[b]="return type of virtual function (.*?) is not covariant with the return type of the function it overrides \\(class type (.*?) is more qualified than class type (.*?)",
[i]=a,
[h]=n,
[g]={Ic,1242330739,Jc}
},
["err_covariant_return_type_different_qualifications"]={
[f]="return type of virtual function A is not covariant with the return type of the function it overrides (B has different qualifiers than C)",
[d]=l,
[e]=k,
[j]="return type of virtual function %0 is not covariant with the return type of the function it overrides (%1 has different qualifiers than %2)",
[c]=m,
[b]="return type of virtual function (.*?) is not covariant with the return type of the function it overrides \\((.*?) has different qualifiers than (.*?)\\)",
[i]=a,
[h]=n,
[g]={Ic,1242330739,Jc}
},
["err_cpu_dispatch_mismatch"]={
[f]="\'cpu_dispatch\' function redeclared with different CPUs",
[d]=l,
[e]=k,
[j]="\'cpu_dispatch\' function redeclared with different CPUs",
[c]=m,
[b]="\'cpu_dispatch\' function redeclared with different CPUs",
[i]=a,
[h]=a,
[g]={Gc,1532096008,Hc}
},
["err_cpu_specific_multiple_defs"]={
[f]="multiple \'cpu_specific\' functions cannot specify the same CPU: A",
[d]=l,
[e]=k,
[j]="multiple \'cpu_specific\' functions cannot specify the same CPU: %0",
[c]=m,
[b]="multiple \'cpu_specific\' functions cannot specify the same CPU\\: (.*?)",
[i]=a,
[h]=a,
[g]={Gc,1532096008,Hc}
},
["err_cpu_unsupported_isa"]={
[f]="CPU \'A\' does not support \'B\' execution mode",
[d]=l,
[e]=k,
[j]="CPU \'%0\' does not support \'%1\' execution mode",
[c]=m,
[b]="CPU \'(.*?)\' does not support \'(.*?)\' execution mode",
[i]=a,
[h]=a,
[g]={"83e57c232702",1501843218,"[Driver] Error if ARM mode was selected explicitly for M-profile CPUs."}
},
["err_ctor_dtor_returns_void"]={
[f]="... A must not return void expression",
[d]=l,
[e]=k,
[j]="%select{constructor|destructor}1 %0 must not return void expression",
[c]=m,
[b]="(?:constructor|destructor) (.*?) must not return void expression",
[i]=a,
[h]=n,
[g]={"a759848126ba",1386090608,"Issue diagnostic when constructor or destructor"}
},
["err_ctor_init_missing_comma"]={
[f]="missing \',\' between base or member initializers",
[d]=l,
[e]=k,
[j]="missing \',\' between base or member initializers",
[c]=m,
[b]="missing \',\' between base or member initializers",
[i]=a,
[h]=o,
[g]={"3465e26102ee",1283870110,"Improve diagnostic and recovery when missing a comma between base or"}
},
["err_ctu_error_opening"]={
[f]="error opening \'A\': required by the CrossTU functionality",
[d]=l,
[e]=k,
[j]="error opening \'%0\': required by the CrossTU functionality",
[c]=m,
[b]="error opening \'(.*?)\'\\: required by the CrossTU functionality",
[i]=a,
[h]=a,
[g]={"0f25c747a32a",1544758510,"Fix up diagnostics."}
},
["err_cuda_device_builtin_surftex_cls_template"]={
[f]="illegal device builtin ... reference class template A declared here",
[d]=l,
[e]=k,
[j]="illegal device builtin %select{surface|texture}0 reference class template %1 declared here",
[c]=m,
[b]="illegal device builtin (?:surface|texture) reference class template (.*?) declared here",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_cuda_device_builtin_surftex_ref_decl"]={
[f]="illegal device builtin ... reference type A declared here",
[d]=l,
[e]=k,
[j]="illegal device builtin %select{surface|texture}0 reference type %1 declared here",
[c]=m,
[b]="illegal device builtin (?:surface|texture) reference type (.*?) declared here",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_cuda_device_exceptions"]={
[f]="cannot use \'A\' in ... function",
[d]=l,
[e]=k,
[j]="cannot use \'%0\' in %select{__device__|__global__|__host__|__host__ __device__}1 function",
[c]=m,
[b]="cannot use \'(.*?)\' in (?:__device__|__global__|__host__|__host__ __device__) function",
[i]=a,
[h]=n,
[g]={"2a8db34044c3",1475102754,"[CUDA] Disallow exceptions in device code."}
},
["err_cuda_extern_shared"]={
[f]="__shared__ variable A cannot be \'extern\'",
[d]=l,
[e]=k,
[j]="__shared__ variable %0 cannot be \'extern\'",
[c]=m,
[b]="__shared__ variable (.*?) cannot be \'extern\'",
[i]=a,
[h]=n,
[g]={"1041101953da",1475279850,"[CUDA] Disallow \'extern __shared__\' variables."}
},
["err_cuda_host_shared"]={
[f]="__shared__ local variables not allowed in ... functions",
[d]=l,
[e]=k,
[j]="__shared__ local variables not allowed in %select{__device__|__global__|__host__|__host__ __device__}0 functions",
[c]=m,
[b]="__shared__ local variables not allowed in (?:__device__|__global__|__host__|__host__ __device__) functions",
[i]=a,
[h]=n,
[g]={"aa370bd0d77c",1476384313,"[CUDA] Disallow __shared__ variables in host functions."}
},
["err_cuda_nonstatic_constdev"]={
[f]="__constant__, __device__, and __managed__ are not allowed on non-static local variables",
[d]=l,
[e]=k,
[j]="__constant__, __device__, and __managed__ are not allowed on non-static local variables",
[c]=m,
[b]="__constant__, __device__, and __managed__ are not allowed on non\\-static local variables",
[i]=a,
[h]=n,
[g]={Z,1590001902,ab}
},
["err_cuda_ovl_target"]={
[f]="... function A cannot overload ... function B",
[d]=l,
[e]=k,
[j]="%select{__device__|__global__|__host__|__host__ __device__}0 function %1 cannot overload %select{__device__|__global__|__host__|__host__ __device__}2 function %3",
[c]=m,
[b]="(?:__device__|__global__|__host__|__host__ __device__) function (.*?) cannot overload (?:__device__|__global__|__host__|__host__ __device__) function (.*?)",
[i]=a,
[h]=n,
[g]={"13e9b4d76851",1481138836,"[CUDA] Improve target attribute checking for function templates."}
},
["err_cuda_unattributed_constexpr_cannot_overload_device"]={
[f]="constexpr function A without __host__ or __device__ attributes cannot overload __device__ function with same signature.  Add a __host__ attribute, or build with -fno-cuda-host-device-constexpr.",
[d]=l,
[e]=k,
[j]="constexpr function %0 without __host__ or __device__ attributes cannot overload __device__ function with same signature.  Add a __host__ attribute, or build with -fno-cuda-host-device-constexpr.",
[c]=m,
[b]="constexpr function (.*?) without __host__ or __device__ attributes cannot overload __device__ function with same signature\\.  Add a __host__ attribute, or build with \\-fno\\-cuda\\-host\\-device\\-constexpr\\.",
[i]=a,
[h]=n,
[g]={"ba122ab42fe5",1459380621,"[CUDA] Make unattributed constexpr functions implicitly host+device."}
},
["err_cuda_vla"]={
[f]="cannot use variable-length arrays in ... functions",
[d]=l,
[e]=k,
[j]="cannot use variable-length arrays in %select{__device__|__global__|__host__|__host__ __device__}0 functions",
[c]=m,
[b]="cannot use variable\\-length arrays in (?:__device__|__global__|__host__|__host__ __device__) functions",
[i]=a,
[h]=n,
[g]={"b17840de33e3",1475102758,"[CUDA] Disallow variable-length arrays in CUDA device code."}
},
["err_current_module_name_mismatch"]={
[f]="module name \'A\' specified on command line does not match name of module",
[d]=l,
[e]=k,
[j]="module name \'%0\' specified on command line does not match name of module",
[c]=m,
[b]="module name \'(.*?)\' specified on command line does not match name of module",
[i]=a,
[h]=x,
[g]={"964cc53d9a74",1471570986,"C++ Modules TS: support parsing the \'module\' declaration (including extensions"}
},
["err_cxx11_attribute_forbids_arguments"]={
[f]="attribute A cannot have an argument list",
[d]=l,
[e]=k,
[j]="attribute %0 cannot have an argument list",
[c]=m,
[b]="attribute (.*?) cannot have an argument list",
[i]=a,
[h]=o,
[g]={"3dff251da1bf",1334028307,"Parsing of C++11 attributes:"}
},
["err_cxx11_attribute_forbids_ellipsis"]={
[f]="attribute A cannot be used as an attribute pack",
[d]=l,
[e]=k,
[j]="attribute %0 cannot be used as an attribute pack",
[c]=m,
[b]="attribute (.*?) cannot be used as an attribute pack",
[i]=a,
[h]=o,
[g]={"3dff251da1bf",1334028307,"Parsing of C++11 attributes:"}
},
["err_cxx23_size_t_suffix"]={
[f]="\'size_t\' suffix for literals is a C++23 feature",
[d]=l,
[e]=k,
[j]="\'size_t\' suffix for literals is a C++23 feature",
[c]=m,
[b]="\'size_t\' suffix for literals is a C\\+\\+23 feature",
[i]=a,
[h]=a,
[g]={"33ee5c466346",1680613513,"[clang] Add Parse and Sema support for RegularKeyword attributes"}
},
["err_cyclic_alias"]={
[f]="... definition is part of a cycle",
[d]=l,
[e]=k,
[j]="%select{alias|ifunc}0 definition is part of a cycle",
[c]=m,
[b]="(?:alias|ifunc) definition is part of a cycle",
[i]=a,
[h]=a,
[g]={"208b5c0fa5ca",1382469973,"New fix for pr17535."}
},
["err_dangling_member"]={
[f]="... ...member A ... a temporary object whose lifetime would be shorter than the lifetime of the constructed object",
[d]=l,
[e]=k,
[j]="%select{reference|backing array for \'std::initializer_list\'}2 %select{|subobject of }1member %0 %select{binds to|is}2 a temporary object whose lifetime would be shorter than the lifetime of the constructed object",
[c]=m,
[b]="(?:reference|backing array for \'std\\:\\:initializer_list\') (?:|subobject of )member (.*?) (?:binds to|is) a temporary object whose lifetime would be shorter than the lifetime of the constructed object",
[i]=a,
[h]=n,
[g]={"0e3102d1dc04",1532393708,"Warn if a local variable\'s initializer retains a pointer/reference to a"}
},
["err_dealloc_bad_result_type"]={
[f]="dealloc return type must be correctly specified as \'void\' under ARC, instead of A",
[d]=l,
[e]=k,
[j]="dealloc return type must be correctly specified as \'void\' under ARC, instead of %0",
[c]=m,
[b]="dealloc return type must be correctly specified as \'void\' under ARC, instead of (.*?)",
[i]=a,
[h]=n,
[g]={P,1480718311,O}
},
["err_decimal_unsupported"]={
[f]="GNU decimal type extension not supported",
[d]=l,
[e]=k,
[j]="GNU decimal type extension not supported",
[c]=m,
[b]="GNU decimal type extension not supported",
[i]=a,
[h]=n,
[g]={"df24298b4033",1242190928,"reject use of the GNU _Decimal32 extension with a diagnostic, not an abort."}
},
["err_decl_attribute_invalid_on_stmt"]={
[f]="A... cannot be applied to a statement",
[d]=l,
[e]=k,
[j]="%0%select{ attribute|}1 cannot be applied to a statement",
[c]=m,
[b]="(.*?)(?: attribute|) cannot be applied to a statement",
[i]=a,
[h]=n,
[g]={"4f902c7eccd4",1457397175,"P0188R1: add support for standard [[fallthrough]] attribute. This is almost"}
},
["err_decl_negative_array_size"]={
[f]="\'A\' declared as an array with a negative size",
[d]=l,
[e]=k,
[j]="\'%0\' declared as an array with a negative size",
[c]=m,
[b]="\'(.*?)\' declared as an array with a negative size",
[i]=a,
[h]=n,
[g]={"a92409c3ec84",1294116275,"Enhance the diagnostic for negative array sizes to include the"}
},
["err_declaration_does_not_declare_param"]={
[f]="declaration does not declare a parameter",
[d]=l,
[e]=k,
[j]="declaration does not declare a parameter",
[c]=m,
[b]="declaration does not declare a parameter",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_declarator_need_ident"]={
[f]="declarator requires an identifier",
[d]=l,
[e]=k,
[j]="declarator requires an identifier",
[c]=m,
[b]="declarator requires an identifier",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_declspec_after_virtspec"]={
[f]="\'A\' qualifier may not appear after the virtual specifier \'B\'",
[d]=l,
[e]=k,
[j]="\'%0\' qualifier may not appear after the virtual specifier \'%1\'",
[c]=m,
[b]="\'(.*?)\' qualifier may not appear after the virtual specifier \'(.*?)\'",
[i]=a,
[h]=o,
[g]={"9a7adfcf3ac0",1427202167,"Diagnose declspecs occuring after virt-specifier-seq and generate fixit hints"}
},
["err_declspec_keyword_has_no_effect"]={
[f]="A cannot appear here, place it after \"...\" to apply it to the type declaration",
[d]=l,
[e]=k,
[j]="%0 cannot appear here, place it after \"%select{class|struct|interface|union|enum}1\" to apply it to the type declaration",
[c]=m,
[b]="(.*?) cannot appear here, place it after \"(?:class|struct|interface|union|enum)\" to apply it to the type declaration",
[i]=a,
[h]=n,
[g]={w,1625925174,v}
},
["err_declspec_thread_on_thread_variable"]={
[f]="\'__declspec(thread)\' applied to variable that already has a thread-local storage specifier",
[d]=l,
[e]=k,
[j]="\'__declspec(thread)\' applied to variable that already has a thread-local storage specifier",
[c]=m,
[b]="\'__declspec\\(thread\\)\' applied to variable that already has a thread\\-local storage specifier",
[i]=a,
[h]=n,
[g]={"7d6d2705f68d",1398914207,"Add support for __declspec(thread) under -fms-extensions"}
},
["err_decltype_auto_cannot_be_combined"]={
[f]="\'decltype(auto)\' cannot be combined with other type specifiers",
[d]=l,
[e]=k,
[j]="\'decltype(auto)\' cannot be combined with other type specifiers",
[c]=m,
[b]="\'decltype\\(auto\\)\' cannot be combined with other type specifiers",
[i]=a,
[h]=n,
[g]={"74aeef50a0cc",1366992935,"Implement C++1y decltype(auto)."}
},
["err_decltype_auto_compound_type"]={
[f]="cannot form ... \'decltype(auto)\'",
[d]=l,
[e]=k,
[j]="cannot form %select{pointer to|reference to|array of}0 \'decltype(auto)\'",
[c]=m,
[b]="cannot form (?:pointer to|reference to|array of) \'decltype\\(auto\\)\'",
[i]=a,
[h]=n,
[g]={"74aeef50a0cc",1366992935,"Implement C++1y decltype(auto)."}
},
["err_decltype_auto_function_declarator_not_declaration"]={
[f]="\'decltype(auto)\' can only be used as a return type in a function declaration",
[d]=l,
[e]=k,
[j]="\'decltype(auto)\' can only be used as a return type in a function declaration",
[c]=m,
[b]="\'decltype\\(auto\\)\' can only be used as a return type in a function declaration",
[i]=a,
[h]=n,
[g]={"74aeef50a0cc",1366992935,"Implement C++1y decltype(auto)."}
},
["err_decltype_auto_initializer_list"]={
[f]="cannot deduce \'decltype(auto)\' from initializer list",
[d]=l,
[e]=k,
[j]="cannot deduce \'decltype(auto)\' from initializer list",
[c]=m,
[b]="cannot deduce \'decltype\\(auto\\)\' from initializer list",
[i]=a,
[h]=n,
[g]={"74aeef50a0cc",1366992935,"Implement C++1y decltype(auto)."}
},
["err_decltype_auto_invalid"]={
[f]="\'decltype(auto)\' not allowed here",
[d]=l,
[e]=k,
[j]="\'decltype(auto)\' not allowed here",
[c]=m,
[b]="\'decltype\\(auto\\)\' not allowed here",
[i]=a,
[h]=n,
[g]={"ef2cd8f8c30d",1486586348,"More fixes for places where \'decltype(auto)\' is permitted in the C++ grammar but makes no sense."}
},
["err_decltype_in_declarator"]={
[f]="\'decltype\' cannot be used to name a declaration",
[d]=l,
[e]=k,
[j]="\'decltype\' cannot be used to name a declaration",
[c]=m,
[b]="\'decltype\' cannot be used to name a declaration",
[i]=a,
[h]=n,
[g]={"42b99e08e63c",1323763416,"Disallow decltype in qualified declarator-ids."}
},
["err_decomp_decl_ambiguous_base"]={
[f]="cannot decompose members of ambiguous base class A of B:C",
[d]=l,
[e]=k,
[j]="cannot decompose members of ambiguous base class %1 of %0:%2",
[c]=m,
[b]="cannot decompose members of ambiguous base class (.*?) of (.*?)\\:(.*?)",
[i]=a,
[h]=n,
[g]={Fb,1470954346,zb}
},
["err_decomp_decl_anon_union_member"]={
[f]="cannot decompose class type A because it has an anonymous ... member",
[d]=l,
[e]=k,
[j]="cannot decompose class type %0 because it has an anonymous %select{struct|union}1 member",
[c]=m,
[b]="cannot decompose class type (.*?) because it has an anonymous (?:struct|union) member",
[i]=a,
[h]=n,
[g]={Fb,1470954346,zb}
},
["err_decomp_decl_constraint"]={
[f]="decomposition declaration cannot be declared with constrained \'auto\'",
[d]=l,
[e]=k,
[j]="decomposition declaration cannot be declared with constrained \'auto\'",
[c]=m,
[b]="decomposition declaration cannot be declared with constrained \'auto\'",
[i]=a,
[h]=n,
[g]={w,1625925174,v}
},
["err_decomp_decl_context"]={
[f]="decomposition declaration not permitted in this context",
[d]=l,
[e]=k,
[j]="decomposition declaration not permitted in this context",
[c]=m,
[b]="decomposition declaration not permitted in this context",
[i]=a,
[h]=n,
[g]={Ob,1469230619,Rb}
},
["err_decomp_decl_inaccessible_base"]={
[f]="cannot decompose members of inaccessible base class A of B",
[d]=l,
[e]=k,
[j]="cannot decompose members of inaccessible base class %1 of %0",
[c]=m,
[b]="cannot decompose members of inaccessible base class (.*?) of (.*?)",
[i]=a,
[h]=n,
[g]={"5c9b3b757623",1537913564,"P0969R0: allow structured binding of accessible members, not only public members."}
},
["err_decomp_decl_inaccessible_field"]={
[f]="cannot decompose ... member A of B",
[d]=l,
[e]=k,
[j]="cannot decompose %select{private|protected}0 member %1 of %3",
[c]=m,
[b]="cannot decompose (?:private|protected) member (.*?) of (.*?)",
[i]=a,
[h]=n,
[g]={"5c9b3b757623",1537913564,"P0969R0: allow structured binding of accessible members, not only public members."}
},
["err_decomp_decl_lambda"]={
[f]="cannot decompose lambda closure type",
[d]=l,
[e]=k,
[j]="cannot decompose lambda closure type",
[c]=m,
[b]="cannot decompose lambda closure type",
[i]=a,
[h]=n,
[g]={Z,1590001902,ab}
},
["err_decomp_decl_multiple_bases_with_members"]={
[f]="cannot decompose class type A: ... B have non-static data members",
[d]=l,
[e]=k,
[j]="cannot decompose class type %1: %select{its base classes %2 and|both it and its base class}0 %3 have non-static data members",
[c]=m,
[b]="cannot decompose class type (.*?)\\: (?:its base classes (.*?) and|both it and its base class) (.*?) have non\\-static data members",
[i]=a,
[h]=n,
[g]={Fb,1470954346,zb}
},
["err_decomp_decl_not_alone"]={
[f]="decomposition declaration must be the only declaration in its group",
[d]=l,
[e]=k,
[j]="decomposition declaration must be the only declaration in its group",
[c]=m,
[b]="decomposition declaration must be the only declaration in its group",
[i]=a,
[h]=n,
[g]={Ob,1469230619,Rb}
},
["err_decomp_decl_parens"]={
[f]="decomposition declaration cannot be declared with parentheses",
[d]=l,
[e]=k,
[j]="decomposition declaration cannot be declared with parentheses",
[c]=m,
[b]="decomposition declaration cannot be declared with parentheses",
[i]=a,
[h]=n,
[g]={Ob,1469230619,Rb}
},
["err_decomp_decl_requires_init"]={
[f]="decomposition declaration A requires an initializer",
[d]=l,
[e]=k,
[j]="decomposition declaration %0 requires an initializer",
[c]=m,
[b]="decomposition declaration (.*?) requires an initializer",
[i]=a,
[h]=n,
[g]={Fb,1470954346,zb}
},
["err_decomp_decl_spec"]={
[f]="decomposition declaration cannot be declared \'A\'",
[d]=l,
[e]=k,
[j]="decomposition declaration cannot be declared %plural{1:\'%1\'|:with \'%1\' specifiers}0",
[c]=m,
[b]="decomposition declaration cannot be declared (?:\'(.*?)\'|with \'(.*?)\' specifiers)",
[i]=a,
[h]=n,
[g]={Ob,1469230619,Rb}
},
["err_decomp_decl_std_tuple_element_not_specialized"]={
[f]="cannot decompose this type; \'std::tuple_element<A>::type\' does not name a type",
[d]=l,
[e]=k,
[j]="cannot decompose this type; \'std::tuple_element<%0>::type\' does not name a type",
[c]=m,
[b]="cannot decompose this type; \'std\\:\\:tuple_element\\<(.*?)\\>\\:\\:type\' does not name a type",
[i]=a,
[h]=n,
[g]={Fb,1470954346,zb}
},
["err_decomp_decl_std_tuple_size_not_constant"]={
[f]="cannot decompose this type; \'std::tuple_size<A>::value\' is not a valid integral constant expression",
[d]=l,
[e]=k,
[j]="cannot decompose this type; \'std::tuple_size<%0>::value\' is not a valid integral constant expression",
[c]=m,
[b]="cannot decompose this type; \'std\\:\\:tuple_size\\<(.*?)\\>\\:\\:value\' is not a valid integral constant expression",
[i]=a,
[h]=n,
[g]={Fb,1470954346,zb}
},
["err_decomp_decl_template"]={
[f]="decomposition declaration template not supported",
[d]=l,
[e]=k,
[j]="decomposition declaration template not supported",
[c]=m,
[b]="decomposition declaration template not supported",
[i]=a,
[h]=n,
[g]={Ob,1469230619,Rb}
},
["err_decomp_decl_type"]={
[f]="decomposition declaration cannot be declared with type A; declared type must be \'auto\' or reference to \'auto\'",
[d]=l,
[e]=k,
[j]="decomposition declaration cannot be declared with type %0; declared type must be \'auto\' or reference to \'auto\'",
[c]=m,
[b]="decomposition declaration cannot be declared with type (.*?); declared type must be \'auto\' or reference to \'auto\'",
[i]=a,
[h]=n,
[g]={Ob,1469230619,Rb}
},
["err_decomp_decl_unbindable_type"]={
[f]="cannot decompose ... type A",
[d]=l,
[e]=k,
[j]="cannot decompose %select{union|non-class, non-array}1 type %2",
[c]=m,
[b]="cannot decompose (?:union|non\\-class, non\\-array) type (.*?)",
[i]=a,
[h]=n,
[g]={Fb,1470954346,zb}
},
["err_decomp_decl_wrong_number_bindings"]={
[f]="type A decomposes into B element, but ... name was provided",
[d]=l,
[e]=k,
[j]="type %0 decomposes into %3 %plural{1:element|:elements}2, but %select{%plural{0:no|:only %1}1|%1}4 %plural{1:name was|:names were}1 provided",
[c]=m,
[b]="type (.*?) decomposes into (.*?) (?:element|elements), but (?:(?:no|only (.*?))|(.*?)) (?:name was|names were) provided",
[i]=a,
[h]=n,
[g]={Fb,1470954346,zb}
},
["err_decrement_bool"]={
[f]="cannot decrement expression of type bool",
[d]=l,
[e]=k,
[j]="cannot decrement expression of type bool",
[c]=m,
[b]="cannot decrement expression of type bool",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_deduced_class_template_compound_type"]={
[f]="cannot ... deduced class template specialization type",
[d]=l,
[e]=k,
[j]="cannot %select{form pointer to|form reference to|form array of|form function returning|use parentheses when declaring variable with}0 deduced class template specialization type",
[c]=m,
[b]="cannot (?:form pointer to|form reference to|form array of|form function returning|use parentheses when declaring variable with) deduced class template specialization type",
[i]=a,
[h]=n,
[g]={"600b5261c4c5",1485463247,"PR0091R3: Implement parsing support for using templates as types."}
},
["err_deduced_class_template_ctor_ambiguous"]={
[f]="ambiguous deduction for template arguments of A",
[d]=l,
[e]=k,
[j]="ambiguous deduction for template arguments of %0",
[c]=m,
[b]="ambiguous deduction for template arguments of (.*?)",
[i]=a,
[h]=n,
[g]={Vb,1486667864,bc}
},
["err_deduced_class_template_ctor_no_viable"]={
[f]="no viable constructor or deduction guide for deduction of template arguments of A",
[d]=l,
[e]=k,
[j]="no viable constructor or deduction guide for deduction of template arguments of %0",
[c]=m,
[b]="no viable constructor or deduction guide for deduction of template arguments of (.*?)",
[i]=a,
[h]=n,
[g]={Vb,1486667864,bc}
},
["err_deduced_class_template_deleted"]={
[f]="class template argument deduction for A selected a deleted constructor",
[d]=l,
[e]=k,
[j]="class template argument deduction for %0 selected a deleted constructor",
[c]=m,
[b]="class template argument deduction for (.*?) selected a deleted constructor",
[i]=a,
[h]=n,
[g]={Vb,1486667864,bc}
},
["err_deduced_class_template_explicit"]={
[f]="class template argument deduction for A selected an explicit ... for copy-list-initialization",
[d]=l,
[e]=k,
[j]="class template argument deduction for %0 selected an explicit %select{constructor|deduction guide}1 for copy-list-initialization",
[c]=m,
[b]="class template argument deduction for (.*?) selected an explicit (?:constructor|deduction guide) for copy\\-list\\-initialization",
[i]=a,
[h]=n,
[g]={Vb,1486667864,bc}
},
["err_deduced_class_template_incomplete"]={
[f]="template A has no definition and no ...deduction guides for deduction of template arguments",
[d]=l,
[e]=k,
[j]="template %0 has no definition and no %select{|viable }1deduction guides for deduction of template arguments",
[c]=m,
[b]="template (.*?) has no definition and no (?:|viable )deduction guides for deduction of template arguments",
[i]=a,
[h]=n,
[g]={Vb,1486667864,bc}
},
["err_deduced_non_class_template_specialization_type"]={
[f]="... A requires template arguments; argument deduction only allowed for class templates",
[d]=l,
[e]=k,
[j]="%select{<error>|function template|variable template|alias template|template template parameter|concept|template}0 %1 requires template arguments; argument deduction only allowed for class templates",
[c]=m,
[b]="(?:function template|variable template|alias template|template template parameter|concept|template) (.*?) requires template arguments; argument deduction only allowed for class templates",
[i]=a,
[h]=n,
[g]={Vb,1486667864,bc}
},
["err_deduced_non_type_template_arg_type_mismatch"]={
[f]="deduced non-type template argument does not have the same type as the corresponding template parameter (A vs B)",
[d]=l,
[e]=k,
[j]="deduced non-type template argument does not have the same type as the corresponding template parameter%diff{ ($ vs $)|}0,1",
[c]=m,
[b]="deduced non\\-type template argument does not have the same type as the corresponding template parameter(?: \\((.*?) vs (.*?)\\)|)",
[i]=a,
[h]=n,
[g]={"d5cb1ddb2cf4",1269744163,"After performing template argument deduction for a function template,"}
},
["err_deduced_return_type"]={
[f]="deduced return types are a C++14 extension",
[d]=l,
[e]=k,
[j]="deduced return types are a C++14 extension",
[c]=m,
[b]="deduced return types are a C\\+\\+14 extension",
[i]=a,
[h]=n,
[g]={"2add11460050",1392416252,"Fix crash-on-invalid if decltype(auto) is used as a deduced return type in"}
},
["err_deduced_tst"]={
[f]="typename specifier refers to ...; argument deduction not allowed here",
[d]=l,
[e]=k,
[j]="typename specifier refers to %select{class template|function template|variable template|alias template|template template parameter|template}0; argument deduction not allowed here",
[c]=m,
[b]="typename specifier refers to (?:class template|function template|variable template|alias template|template template parameter|template); argument deduction not allowed here",
[i]=a,
[h]=n,
[g]={"6d485ff455ea",1576172311,"Improve static checks for sprintf and __builtin___sprintf_chk"}
},
["err_deduction_guide_bad_trailing_return_type"]={
[f]="deduced type A of deduction guide is not ...a specialization of template B",
[d]=l,
[e]=k,
[j]="deduced type %1 of deduction guide is not %select{|written as }2a specialization of template %0",
[c]=m,
[b]="deduced type (.*?) of deduction guide is not (?:|written as )a specialization of template (.*?)",
[i]=a,
[h]=n,
[g]={"3817e4a40c90",1486756190,"[c++1z] Disallow deduction guides with deduced types that don\'t syntactically match the template bei..."}
},
["err_deduction_guide_defines_function"]={
[f]="deduction guide cannot have a function definition",
[d]=l,
[e]=k,
[j]="deduction guide cannot have a function definition",
[c]=m,
[b]="deduction guide cannot have a function definition",
[i]=a,
[h]=n,
[g]={"c88aa3f3a6f0",1486517249,"Diagnose an attempt to give a deduction-guide a function body."}
},
["err_deduction_guide_invalid_specifier"]={
[f]="deduction guide cannot be declared \'A\'",
[d]=l,
[e]=k,
[j]="deduction guide cannot be declared \'%0\'",
[c]=m,
[b]="deduction guide cannot be declared \'(.*?)\'",
[i]=a,
[h]=n,
[g]={"f283fdcd5096",1486514125,"P0091R3: Improved syntactic checking of deduction-guides."}
},
["err_deduction_guide_name_not_class_template"]={
[f]="cannot specify deduction guide for ... A",
[d]=l,
[e]=k,
[j]="cannot specify deduction guide for %select{<error>|function template|variable template|alias template|template template parameter|concept|dependent template name}0 %1",
[c]=m,
[b]="cannot specify deduction guide for (?:function template|variable template|alias template|template template parameter|concept|dependent template name) (.*?)",
[i]=a,
[h]=n,
[g]={"3584515018da",1486431450,"P0091R3: Implement basic parsing support for C++17 deduction-guides."}
},
["err_deduction_guide_no_trailing_return_type"]={
[f]="deduction guide declaration without trailing return type",
[d]=l,
[e]=k,
[j]="deduction guide declaration without trailing return type",
[c]=m,
[b]="deduction guide declaration without trailing return type",
[i]=a,
[h]=n,
[g]={"3584515018da",1486431450,"P0091R3: Implement basic parsing support for C++17 deduction-guides."}
},
["err_deduction_guide_redeclared"]={
[f]="redeclaration of deduction guide",
[d]=l,
[e]=k,
[j]="redeclaration of deduction guide",
[c]=m,
[b]="redeclaration of deduction guide",
[i]=a,
[h]=n,
[g]={"5fe2ddbdf47d",1556928540,"[clang] adding explicit(bool) from c++2a"}
},
["err_deduction_guide_specialized"]={
[f]="deduction guide cannot be ...",
[d]=l,
[e]=k,
[j]="deduction guide cannot be %select{explicitly instantiated|explicitly specialized}0",
[c]=m,
[b]="deduction guide cannot be (?:explicitly instantiated|explicitly specialized)",
[i]=a,
[h]=n,
[g]={"19a311a483ba",1486680471,"Disallow explicit instantiation and explicit specialization for deduction guides."}
},
["err_deduction_guide_template_not_deducible"]={
[f]="deduction guide template contains ... that cannot be deduced",
[d]=l,
[e]=k,
[j]="deduction guide template contains %select{a template parameter|template parameters}0 that cannot be deduced",
[c]=m,
[b]="deduction guide template contains (?:a template parameter|template parameters) that cannot be deduced",
[i]=a,
[h]=n,
[g]={"4e05eaa9e84a",1487205407,"[c++1z] Diagnose non-deducible template parameters in deduction guide templates, per [temp.param]p11..."}
},
["err_deduction_guide_with_complex_decl"]={
[f]="cannot specify any part of a return type in the declaration of a deduction guide",
[d]=l,
[e]=k,
[j]="cannot specify any part of a return type in the declaration of a deduction guide",
[c]=m,
[b]="cannot specify any part of a return type in the declaration of a deduction guide",
[i]=a,
[h]=n,
[g]={"3584515018da",1486431450,"P0091R3: Implement basic parsing support for C++17 deduction-guides."}
},
["err_deduction_guide_wrong_access"]={
[f]="deduction guide has different access from the corresponding member template",
[d]=l,
[e]=k,
[j]="deduction guide has different access from the corresponding member template",
[c]=m,
[b]="deduction guide has different access from the corresponding member template",
[i]=a,
[h]=n,
[g]={"e4899c16480d",1527718423,"PR37631: verify that a member deduction guide has the same access as its template."}
},
["err_deduction_guide_wrong_scope"]={
[f]="deduction guide must be declared in the same scope as template A",
[d]=l,
[e]=k,
[j]="deduction guide must be declared in the same scope as template %q0",
[c]=m,
[b]="deduction guide must be declared in the same scope as template (.*?)",
[i]=a,
[h]=n,
[g]={"278890f85bba",1486759198,"[c++1z] Enforce restriction that deduction guide is declared in the same scope as its template."}
},
["err_deep_exception_specs_differ"]={
[f]="exception specifications of ... types differ",
[d]=l,
[e]=k,
[j]="exception specifications of %select{return|argument}0 types differ",
[c]=m,
[b]="exception specifications of (?:return|argument) types differ",
[i]=a,
[h]=n,
[g]={"a44822fdb645",1255536569,"Have the exception specification checkers take partial diagnostics. Use this to merge two diagnostic..."}
},
["err_default_arg_in_partial_spec"]={
[f]="default template argument in a class template partial specialization",
[d]=l,
[e]=k,
[j]="default template argument in a class template partial specialization",
[c]=m,
[b]="default template argument in a class template partial specialization",
[i]=a,
[h]=n,
[g]={"d52220513fbc",1244835782,"Verify that the template parameters of a class template partial"}
},
["err_default_arg_makes_ctor_special"]={
[f]="addition of default argument on redeclaration makes this constructor a ... constructor",
[d]=l,
[e]=k,
[j]="addition of default argument on redeclaration makes this constructor a %select{default|copy|move}0 constructor",
[c]=m,
[b]="addition of default argument on redeclaration makes this constructor a (?:default|copy|move) constructor",
[i]=a,
[h]=n,
[g]={"58c3cc12dacc",1354074324,"C++ core issue 1344, PR10618: promote \"addition of default argument makes this"}
},
["err_default_arg_unparsed"]={
[f]="unexpected end of default argument expression",
[d]=l,
[e]=k,
[j]="unexpected end of default argument expression",
[c]=m,
[b]="unexpected end of default argument expression",
[i]=a,
[h]=o,
[g]={"c0dc36b21309",1281388093,"Change warning about incomplete parsing of C++ default arg to error and provide a test case; thanks ..."}
},
["err_default_delete_in_multiple_declaration"]={
[f]="\'= ...\' is a function definition and must occur in a standalone declaration",
[d]=l,
[e]=k,
[j]="\'= %select{default|delete}0\' is a function definition and must occur in a standalone declaration",
[c]=m,
[b]="\'\\= (?:default|delete)\' is a function definition and must occur in a standalone declaration",
[i]=a,
[h]=o,
[g]={"5a7fa250ab78",1305180949,"Properly parse the \'default\' and \'delete\' keywords."}
},
["err_default_init_const"]={
[f]="default initialization of an object of const type A...",
[d]=l,
[e]=k,
[j]="default initialization of an object of const type %0%select{| without a user-provided default constructor}1",
[c]=m,
[b]="default initialization of an object of const type (.*?)(?:| without a user\\-provided default constructor)",
[i]=a,
[h]=n,
[g]={"85dabae6ad94",1260927482,"Switch the C++ new expression over to InitializationSequence, rather"}
},
["err_default_member_initializer_cycle"]={
[f]="default member initializer for A uses itself",
[d]=l,
[e]=k,
[j]="default member initializer for %0 uses itself",
[c]=m,
[b]="default member initializer for (.*?) uses itself",
[i]=a,
[h]=n,
[g]={G,1582847864,I}
},
["err_default_member_initializer_not_yet_parsed"]={
[f]="default member initializer for A needed within definition of enclosing class B outside of member functions",
[d]=l,
[e]=k,
[j]="default member initializer for %1 needed within definition of enclosing class %0 outside of member functions",
[c]=m,
[b]="default member initializer for (.*?) needed within definition of enclosing class (.*?) outside of member functions",
[i]=a,
[h]=n,
[g]={G,1582847864,I}
},
["err_default_not_in_switch"]={
[f]="\'default\' statement not in switch statement",
[d]=l,
[e]=k,
[j]="\'default\' statement not in switch statement",
[c]=m,
[b]="\'default\' statement not in switch statement",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_default_special_members"]={
[f]="only special member functions ...may be defaulted",
[d]=l,
[e]=k,
[j]="only special member functions %select{|and comparison operators }0may be defaulted",
[c]=m,
[b]="only special member functions (?:|and comparison operators )may be defaulted",
[i]=a,
[h]=o,
[g]={"1adeff92bc65",1304566588,"Implement some framework for defaulted constructors."}
},
["err_default_template_template_parameter_not_template"]={
[f]="default template argument for a template template parameter must be a class template",
[d]=l,
[e]=k,
[j]="default template argument for a template template parameter must be a class template",
[c]=m,
[b]="default template argument for a template template parameter must be a class template",
[i]=a,
[h]=o,
[g]={"9167f8bbd534",1257901240,"Introduce a new representation for template template"}
},
["err_defaulted_comparison_cannot_deduce_undeduced_auto"]={
[f]="return type of defaulted \'operator<=>\' cannot be deduced because three-way comparison for ... A has a deduced return type and is not yet defined",
[d]=l,
[e]=k,
[j]="return type of defaulted \'operator<=>\' cannot be deduced because three-way comparison for %select{|member|base class}0 %1 has a deduced return type and is not yet defined",
[c]=m,
[b]="return type of defaulted \'operator\\<\\=\\>\' cannot be deduced because three\\-way comparison for (?:|member|base class) (.*?) has a deduced return type and is not yet defined",
[i]=a,
[h]=n,
[g]={mb,1576809732,lb}
},
["err_defaulted_comparison_deduced_return_type_not_auto"]={
[f]="deduced return type for defaulted ... comparison operator must be \'auto\', not A",
[d]=l,
[e]=k,
[j]="deduced return type for defaulted %select{<ERROR>|equality|three-way|equality|relational}0 comparison operator must be \'auto\', not %1",
[c]=m,
[b]="deduced return type for defaulted (?:equality|three\\-way|equality|relational) comparison operator must be \'auto\', not (.*?)",
[i]=a,
[h]=n,
[g]={ic,1575504770,jc}
},
["err_defaulted_comparison_non_const"]={
[f]="defaulted member ... comparison operator must be const-qualified",
[d]=l,
[e]=k,
[j]="defaulted member %select{<ERROR>|equality|three-way|equality|relational}0 comparison operator must be const-qualified",
[c]=m,
[b]="defaulted member (?:equality|three\\-way|equality|relational) comparison operator must be const\\-qualified",
[i]=a,
[h]=n,
[g]={cb,1567434909,eb}
},
["err_defaulted_comparison_not_friend"]={
[f]="... comparison operator is not a friend of ...A",
[d]=l,
[e]=k,
[j]="%select{<ERROR>|equality|three-way|equality|relational}0 comparison operator is not a friend of %select{|incomplete class }1%2",
[c]=m,
[b]="(?:equality|three\\-way|equality|relational) comparison operator is not a friend of (?:|incomplete class )(.*?)",
[i]=a,
[h]=n,
[g]={R,1616787805,S}
},
["err_defaulted_comparison_num_args"]={
[f]="... ... comparison operator comparison operator must have ... parameters",
[d]=l,
[e]=k,
[j]="%select{non-member|member}0 %select{<ERROR>|equality|three-way|equality|relational}1 comparison operator comparison operator must have %select{2|1}0 parameters",
[c]=m,
[b]="(?:non\\-member|member) (?:equality|three\\-way|equality|relational) comparison operator comparison operator must have (?:2|1) parameters",
[i]=a,
[h]=n,
[g]={R,1616787805,S}
},
["err_defaulted_comparison_param"]={
[f]="invalid parameter type for defaulted ... comparison operator; found A, expected B...",
[d]=l,
[e]=k,
[j]="invalid parameter type for defaulted %select{<ERROR>|equality|three-way|equality|relational}0 comparison operator; found %1, expected %2%select{| or %4}3",
[c]=m,
[b]="invalid parameter type for defaulted (?:equality|three\\-way|equality|relational) comparison operator; found (.*?), expected (.*?)(?:| or (.*?))",
[i]=a,
[h]=n,
[g]={cb,1567434909,eb}
},
["err_defaulted_comparison_param_mismatch"]={
[f]="parameters for defaulted ... comparison operator must have the same type (found A vs B)",
[d]=l,
[e]=k,
[j]="parameters for defaulted %select{<ERROR>|equality|three-way|equality|relational}0 comparison operator must have the same type%diff{ (found $ vs $)|}1,2",
[c]=m,
[b]="parameters for defaulted (?:equality|three\\-way|equality|relational) comparison operator must have the same type(?: \\(found (.*?) vs (.*?)\\)|)",
[i]=a,
[h]=n,
[g]={ic,1575504770,jc}
},
["err_defaulted_comparison_param_unknown"]={
[f]="invalid parameter type for non-member defaulted ... comparison operator; found A, expected class or reference to a constant class",
[d]=l,
[e]=k,
[j]="invalid parameter type for non-member defaulted %select{<ERROR>|equality|three-way|equality|relational}0 comparison operator; found %1, expected class or reference to a constant class",
[c]=m,
[b]="invalid parameter type for non\\-member defaulted (?:equality|three\\-way|equality|relational) comparison operator; found (.*?), expected class or reference to a constant class",
[i]=a,
[h]=n,
[g]={R,1616787805,S}
},
["err_defaulted_comparison_return_type_not_bool"]={
[f]="return type for defaulted ... comparison operator must be \'bool\', not A",
[d]=l,
[e]=k,
[j]="return type for defaulted %select{<ERROR>|equality|three-way|equality|relational}0 comparison operator must be \'bool\', not %1",
[c]=m,
[b]="return type for defaulted (?:equality|three\\-way|equality|relational) comparison operator must be \'bool\', not (.*?)",
[i]=a,
[h]=n,
[g]={cb,1567434909,eb}
},
["err_defaulted_comparison_template"]={
[f]="comparison operator template cannot be defaulted",
[d]=l,
[e]=k,
[j]="comparison operator template cannot be defaulted",
[c]=m,
[b]="comparison operator template cannot be defaulted",
[i]=a,
[h]=n,
[g]={cb,1567434909,eb}
},
["err_defaulted_copy_assign_not_ref"]={
[f]="the parameter for an explicitly-defaulted copy assignment operator must be an lvalue reference type",
[d]=l,
[e]=k,
[j]="the parameter for an explicitly-defaulted copy assignment operator must be an lvalue reference type",
[c]=m,
[b]="the parameter for an explicitly\\-defaulted copy assignment operator must be an lvalue reference type",
[i]=a,
[h]=n,
[g]={"604aeb384998",1305665083,"Fix some minor bugs and add a lot more test cases for defaulted"}
},
["err_defaulted_special_member_copy_const_param"]={
[f]="the parameter for this explicitly-defaulted copy ... is const, but a member or base requires it to be non-const",
[d]=l,
[e]=k,
[j]="the parameter for this explicitly-defaulted copy %select{constructor|assignment operator}0 is const, but a member or base requires it to be non-const",
[c]=m,
[b]="the parameter for this explicitly\\-defaulted copy (?:constructor|assignment operator) is const, but a member or base requires it to be non\\-const",
[i]=a,
[h]=n,
[g]={ac,1337056791,dc}
},
["err_defaulted_special_member_move_const_param"]={
[f]="the parameter for an explicitly-defaulted move ... may not be const",
[d]=l,
[e]=k,
[j]="the parameter for an explicitly-defaulted move %select{constructor|assignment operator}0 may not be const",
[c]=m,
[b]="the parameter for an explicitly\\-defaulted move (?:constructor|assignment operator) may not be const",
[i]=a,
[h]=n,
[g]={ac,1337056791,dc}
},
["err_defaulted_special_member_params"]={
[f]="an explicitly-defaulted ...constructor cannot have default arguments",
[d]=l,
[e]=k,
[j]="an explicitly-defaulted %select{|copy |move }0constructor cannot have default arguments",
[c]=m,
[b]="an explicitly\\-defaulted (?:|copy |move )constructor cannot have default arguments",
[i]=a,
[h]=n,
[g]={ac,1337056791,dc}
},
["err_defaulted_special_member_quals"]={
[f]="an explicitly-defaulted ... assignment operator may not have \'const\'... or \'volatile\' qualifiers",
[d]=l,
[e]=k,
[j]="an explicitly-defaulted %select{copy|move}0 assignment operator may not have \'const\'%select{, \'constexpr\'|}1 or \'volatile\' qualifiers",
[c]=m,
[b]="an explicitly\\-defaulted (?:copy|move) assignment operator may not have \'const\'(?:, \'constexpr\'|) or \'volatile\' qualifiers",
[i]=a,
[h]=n,
[g]={ac,1337056791,dc}
},
["err_defaulted_special_member_return_type"]={
[f]="explicitly-defaulted ... assignment operator must return A",
[d]=l,
[e]=k,
[j]="explicitly-defaulted %select{copy|move}0 assignment operator must return %1",
[c]=m,
[b]="explicitly\\-defaulted (?:copy|move) assignment operator must return (.*?)",
[i]=a,
[h]=n,
[g]={ac,1337056791,dc}
},
["err_defaulted_special_member_variadic"]={
[f]="an explicitly-defaulted ...constructor cannot be variadic",
[d]=l,
[e]=k,
[j]="an explicitly-defaulted %select{|copy |move }0constructor cannot be variadic",
[c]=m,
[b]="an explicitly\\-defaulted (?:|copy |move )constructor cannot be variadic",
[i]=a,
[h]=n,
[g]={"c2f865e8e5df",1354847161,"Add file missed from r169574!"}
},
["err_defaulted_special_member_volatile_param"]={
[f]="the parameter for an explicitly-defaulted ... may not be volatile",
[d]=l,
[e]=k,
[j]="the parameter for an explicitly-defaulted %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor}0 may not be volatile",
[c]=m,
[b]="the parameter for an explicitly\\-defaulted (?:default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor) may not be volatile",
[i]=a,
[h]=n,
[g]={ac,1337056791,dc}
},
["err_defined_macro_name"]={
[f]="\'defined\' cannot be used as a macro name",
[d]=l,
[e]=k,
[j]="\'defined\' cannot be used as a macro name",
[c]=m,
[b]="\'defined\' cannot be used as a macro name",
[i]=a,
[h]=t,
[g]={s,1236199783,r}
},
["err_definition_of_explicitly_defaulted_member"]={
[f]="definition of explicitly defaulted ...",
[d]=l,
[e]=k,
[j]="definition of explicitly defaulted %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor|function}0",
[c]=m,
[b]="definition of explicitly defaulted (?:default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor|function)",
[i]=a,
[h]=n,
[g]={"6d5b96c6b3ef",1304988582,"Further implement defaulting constructors."}
},
["err_definition_of_implicitly_declared_member"]={
[f]="definition of implicitly declared ...",
[d]=l,
[e]=k,
[j]="definition of implicitly declared %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor|function}1",
[c]=m,
[b]="definition of implicitly declared (?:default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor|function)",
[i]=a,
[h]=n,
[g]={"1ed86de0800f",1259966047,"Forgot this."}
},
["err_delegating_ctor"]={
[f]="delegating constructors are permitted only in C++11",
[d]=l,
[e]=k,
[j]="delegating constructors are permitted only in C++11",
[c]=m,
[b]="delegating constructors are permitted only in C\\+\\+11",
[i]=a,
[h]=n,
[g]={"0bf8a492fd75",1318970984,"-Wc++98-compat and -Wc++98-compat-pedantic warnings for Sema, part 1."}
},
["err_delegating_initializer_alone"]={
[f]="an initializer for a delegating constructor must appear alone",
[d]=l,
[e]=k,
[j]="an initializer for a delegating constructor must appear alone",
[c]=m,
[b]="an initializer for a delegating constructor must appear alone",
[i]=a,
[h]=n,
[g]={"c5575cced8a7",1298747593,"Implement delegating constructors partially."}
},
["err_delete_explicit_conversion"]={
[f]="converting delete expression from type A to type B invokes an explicit conversion function",
[d]=l,
[e]=k,
[j]="converting delete expression from type %0 to type %1 invokes an explicit conversion function",
[c]=m,
[b]="converting delete expression from type (.*?) to type (.*?) invokes an explicit conversion function",
[i]=a,
[h]=n,
[g]={"ccc11811052d",1369163148,"Refactor places which perform contextual implicit conversions to go through a"}
},
["err_delete_incomplete_class_type"]={
[f]="deleting incomplete class type A; no conversions to pointer type",
[d]=l,
[e]=k,
[j]="deleting incomplete class type %0; no conversions to pointer type",
[c]=m,
[b]="deleting incomplete class type (.*?); no conversions to pointer type",
[i]=a,
[h]=n,
[g]={"f65f490ae987",1280414675,"When deleting a value of class type, make sure that type is complete"}
},
["err_delete_operand"]={
[f]="cannot delete expression of type A",
[d]=l,
[e]=k,
[j]="cannot delete expression of type %0",
[c]=m,
[b]="cannot delete expression of type (.*?)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_deleted_decl_not_first"]={
[f]="deleted definition must be first declaration",
[d]=l,
[e]=k,
[j]="deleted definition must be first declaration",
[c]=m,
[b]="deleted definition must be first declaration",
[i]=a,
[h]=n,
[g]={"f769df5ef9d7",1237933677,"Parse deleted function definitions and hook them up to Doug\'s machinery."}
},
["err_deleted_function_use"]={
[f]="attempt to use a deleted function",
[d]=l,
[e]=k,
[j]="attempt to use a deleted function",
[c]=m,
[b]="attempt to use a deleted function",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_deleted_inherited_ctor_use"]={
[f]="constructor inherited by A from base class B is implicitly deleted",
[d]=l,
[e]=k,
[j]="constructor inherited by %0 from base class %1 is implicitly deleted",
[c]=m,
[b]="constructor inherited by (.*?) from base class (.*?) is implicitly deleted",
[i]=a,
[h]=n,
[g]={"80a4702d022f",1467162627,"Mark inheriting constructors as deleted if the corresponding defaulted default"}
},
["err_deleted_main"]={
[f]="\'main\' is not allowed to be deleted",
[d]=l,
[e]=k,
[j]="\'main\' is not allowed to be deleted",
[c]=m,
[b]="\'main\' is not allowed to be deleted",
[i]=a,
[h]=n,
[g]={"b63b6ee9a00e",1390354999,"Enforce restrictions that \'main\' is not allowed to be deleted, or to be used by"}
},
["err_deleted_non_function"]={
[f]="only functions can have deleted definitions",
[d]=l,
[e]=k,
[j]="only functions can have deleted definitions",
[c]=m,
[b]="only functions can have deleted definitions",
[i]=a,
[h]=o,
[g]={"f769df5ef9d7",1237933677,"Parse deleted function definitions and hook them up to Doug\'s machinery."}
},
["err_deleted_override"]={
[f]="deleted function A cannot override a non-deleted function",
[d]=l,
[e]=k,
[j]="deleted function %0 cannot override a non-deleted function",
[c]=m,
[b]="deleted function (.*?) cannot override a non\\-deleted function",
[i]=a,
[h]=n,
[g]={"7e414261f647",1350434878,"Implement C++ 10.3p16 - overrides involving deleted functions must match."}
},
["err_delimited_escape_empty"]={
[f]="delimited escape sequence cannot be empty",
[d]=l,
[e]=k,
[j]="delimited escape sequence cannot be empty",
[c]=m,
[b]="delimited escape sequence cannot be empty",
[i]=a,
[h]=t,
[g]={w,1625925174,v}
},
["err_delimited_escape_invalid"]={
[f]="invalid digit \'A\' in escape sequence",
[d]=l,
[e]=k,
[j]="invalid digit \'%0\' in escape sequence",
[c]=m,
[b]="invalid digit \'(.*?)\' in escape sequence",
[i]=a,
[h]=t,
[g]={w,1625925174,v}
},
["err_delimited_escape_missing_brace"]={
[f]="expected \'{\' after \'\\A\' escape sequence",
[d]=l,
[e]=k,
[j]="expected \'{\' after \'\\%0\' escape sequence",
[c]=m,
[b]="expected \'\\{\' after \'\\\\(.*?)\' escape sequence",
[i]=a,
[h]=t,
[g]={w,1625925174,v}
},
["err_dep_source_scanner_missing_semi_after_at_import"]={
[f]="could not find \';\' after @import",
[d]=l,
[e]=k,
[j]="could not find \';\' after @import",
[c]=m,
[b]="could not find \';\' after @import",
[i]=a,
[h]="Dependency Directive Source Scanner Issue",
[g]={w,1625925174,v}
},
["err_dep_source_scanner_unexpected_tokens_at_import"]={
[f]="unexpected extra tokens at end of @import declaration",
[d]=l,
[e]=k,
[j]="unexpected extra tokens at end of @import declaration",
[c]=m,
[b]="unexpected extra tokens at end of @import declaration",
[i]=a,
[h]="Dependency Directive Source Scanner Issue",
[g]={w,1625925174,v}
},
["err_dependent_deduced_tst"]={
[f]="typename specifier refers to ... member in A; argument deduction not allowed here",
[d]=l,
[e]=k,
[j]="typename specifier refers to %select{class template|function template|variable template|alias template|template template parameter|template}0 member in %1; argument deduction not allowed here",
[c]=m,
[b]="typename specifier refers to (?:class template|function template|variable template|alias template|template template parameter|template) member in (.*?); argument deduction not allowed here",
[i]=a,
[h]=n,
[g]={"c95726ea3937",1485751108,"Towards P0091R3: parsing support for class template argument deduction in typename-specifiers."}
},
["err_dependent_function_template_spec_no_match"]={
[f]="no candidate function template was found for dependent friend function template specialization",
[d]=l,
[e]=k,
[j]="no candidate function template was found for dependent friend function template specialization",
[c]=m,
[b]="no candidate function template was found for dependent friend function template specialization",
[i]=a,
[h]=n,
[g]={"0b75dc5fa2e0",1532032820,"[Sema] Diagnose an invalid dependent function template specialization"}
},
["err_dependent_nested_name_spec"]={
[f]="nested name specifier for a declaration cannot depend on a template parameter",
[d]=l,
[e]=k,
[j]="nested name specifier for a declaration cannot depend on a template parameter",
[c]=m,
[b]="nested name specifier for a declaration cannot depend on a template parameter",
[i]=a,
[h]=n,
[g]={"ba41d01b5970",1272127121,"Be more careful around dependent nested-name-specifiers, complaining"}
},
["err_dependent_non_type_arg_in_partial_spec"]={
[f]="type of specialized non-type template argument depends on a template parameter of the partial specialization",
[d]=l,
[e]=k,
[j]="type of specialized non-type template argument depends on a template parameter of the partial specialization",
[c]=m,
[b]="type of specialized non\\-type template argument depends on a template parameter of the partial specialization",
[i]=a,
[h]=n,
[g]={"8cfd2ba76d3c",1244841662,"Diagnose the incorrect use of non-type template arguments for class"}
},
["err_dependent_tag_decl"]={
[f]="... of ... in a dependent scope",
[d]=l,
[e]=k,
[j]="%select{declaration|definition}0 of %select{struct|interface|union|class|enum}1 in a dependent scope",
[c]=m,
[b]="(?:declaration|definition) of (?:struct|interface|union|class|enum) in a dependent scope",
[i]=a,
[h]=n,
[g]={"ba41d01b5970",1272127121,"Be more careful around dependent nested-name-specifiers, complaining"}
},
["err_dependent_typed_non_type_arg_in_partial_spec"]={
[f]="non-type template argument specializes a template parameter with dependent type A",
[d]=l,
[e]=k,
[j]="non-type template argument specializes a template parameter with dependent type %0",
[c]=m,
[b]="non\\-type template argument specializes a template parameter with dependent type (.*?)",
[i]=a,
[h]=n,
[g]={"8cfd2ba76d3c",1244841662,"Diagnose the incorrect use of non-type template arguments for class"}
},
["err_dereference_incomplete_type"]={
[f]="dereference of pointer to incomplete type A",
[d]=l,
[e]=k,
[j]="dereference of pointer to incomplete type %0",
[c]=m,
[b]="dereference of pointer to incomplete type (.*?)",
[i]=a,
[h]=n,
[g]={"c4fc3a2ba52d",1364245789,"Emit an error message instead of crashing when dereferencing an incomplete pointer type."}
},
["err_designated_init_attr_non_init"]={
[f]="\'objc_designated_initializer\' attribute only applies to init methods of interface or class extension declarations",
[d]=l,
[e]=k,
[j]="\'objc_designated_initializer\' attribute only applies to init methods of interface or class extension declarations",
[c]=m,
[b]="\'objc_designated_initializer\' attribute only applies to init methods of interface or class extension declarations",
[i]=a,
[h]=n,
[g]={"81d3f45137e1",1550089957,"[Sema] Delay checking whether objc_designated_initializer is being applied to an init method"}
},
["err_designated_init_for_non_aggregate"]={
[f]="initialization of non-aggregate type A with a designated initializer list",
[d]=l,
[e]=k,
[j]="initialization of non-aggregate type %0 with a designated initializer list",
[c]=m,
[b]="initialization of non\\-aggregate type (.*?) with a designated initializer list",
[i]=a,
[h]=n,
[g]={w,1625925174,v}
},
["err_designator_for_scalar_or_sizeless_init"]={
[f]="designator in initializer for ... type A",
[d]=l,
[e]=k,
[j]="designator in initializer for %select{scalar|indivisible sizeless}0 type %1",
[c]=m,
[b]="designator in initializer for (?:scalar|indivisible sizeless) type (.*?)",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_designator_into_flexible_array_member"]={
[f]="designator into flexible array member subobject",
[d]=l,
[e]=k,
[j]="designator into flexible array member subobject",
[c]=m,
[b]="designator into flexible array member subobject",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_destroy_attr_on_non_static_var"]={
[f]="... attribute can only be applied to a variable with static or thread storage duration",
[d]=l,
[e]=k,
[j]="%select{no_destroy|always_destroy}0 attribute can only be applied to a variable with static or thread storage duration",
[c]=m,
[b]="(?:no_destroy|always_destroy) attribute can only be applied to a variable with static or thread storage duration",
[i]=a,
[h]=n,
[g]={"5a559e64a919",1534872246,"Add a new flag and attributes to control static destructor registration"}
},
["err_destroying_operator_delete_not_usual"]={
[f]="destroying operator delete can have only an optional size and optional alignment parameter",
[d]=l,
[e]=k,
[j]="destroying operator delete can have only an optional size and optional alignment parameter",
[c]=m,
[b]="destroying operator delete can have only an optional size and optional alignment parameter",
[i]=a,
[h]=n,
[g]={"5b34958b46dc",1507859736,"Support for destroying operator delete, per C++2a proposal P0722."}
},
["err_destructor_cannot_be"]={
[f]="destructor cannot be declared \'A\'",
[d]=l,
[e]=k,
[j]="destructor cannot be declared \'%0\'",
[c]=m,
[b]="destructor cannot be declared \'(.*?)\'",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_destructor_expr_mismatch"]={
[f]="identifier A in object destruction expression does not name the type B of the object being destroyed",
[d]=l,
[e]=k,
[j]="identifier %0 in object destruction expression does not name the type %1 of the object being destroyed",
[c]=m,
[b]="identifier (.*?) in object destruction expression does not name the type (.*?) of the object being destroyed",
[i]=a,
[h]=n,
[g]={mb,1576809732,lb}
},
["err_destructor_expr_nontype"]={
[f]="identifier A in object destruction expression does not name a type",
[d]=l,
[e]=k,
[j]="identifier %0 in object destruction expression does not name a type",
[c]=m,
[b]="identifier (.*?) in object destruction expression does not name a type",
[i]=a,
[h]=n,
[g]={mb,1576809732,lb}
},
["err_destructor_expr_type_mismatch"]={
[f]="destructor type A in object destruction expression does not match the type B of the object being destroyed",
[d]=l,
[e]=k,
[j]="destructor type %0 in object destruction expression does not match the type %1 of the object being destroyed",
[c]=m,
[b]="destructor type (.*?) in object destruction expression does not match the type (.*?) of the object being destroyed",
[i]=a,
[h]=n,
[g]={"4cf85a725af0",1299277928,"When clearing a LookupResult structure, clear out the naming class,"}
},
["err_destructor_name"]={
[f]="expected the class name after \'~\' to name the enclosing class",
[d]=l,
[e]=k,
[j]="expected the class name after \'~\' to name the enclosing class",
[c]=m,
[b]="expected the class name after \'~\' to name the enclosing class",
[i]=a,
[h]=n,
[g]={"b154ecafa62f",1248190130,"Diagnose when a destructor uses a unrelated class type as its name."}
},
["err_destructor_name_nontype"]={
[f]="identifier A after \'~\' in destructor name does not name a type",
[d]=l,
[e]=k,
[j]="identifier %0 after \'~\' in destructor name does not name a type",
[c]=m,
[b]="identifier (.*?) after \'~\' in destructor name does not name a type",
[i]=a,
[h]=n,
[g]={mb,1576809732,lb}
},
["err_destructor_not_member"]={
[f]="destructor must be a non-static member function",
[d]=l,
[e]=k,
[j]="destructor must be a non-static member function",
[c]=m,
[b]="destructor must be a non\\-static member function",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_destructor_redeclared"]={
[f]="destructor cannot be redeclared",
[d]=l,
[e]=k,
[j]="destructor cannot be redeclared",
[c]=m,
[b]="destructor cannot be redeclared",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_destructor_return_type"]={
[f]="destructor cannot have a return type",
[d]=l,
[e]=k,
[j]="destructor cannot have a return type",
[c]=m,
[b]="destructor cannot have a return type",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_destructor_template"]={
[f]="destructor cannot be declared as a template",
[d]=l,
[e]=k,
[j]="destructor cannot be declared as a template",
[c]=m,
[b]="destructor cannot be declared as a template",
[i]=a,
[h]=n,
[g]={"93ded320269f",1299278755,"Diagnose destructor templates. Fixes PR7904."}
},
["err_destructor_template_id"]={
[f]="destructor name A does not refer to a template",
[d]=l,
[e]=k,
[j]="destructor name %0 does not refer to a template",
[c]=m,
[b]="destructor name (.*?) does not refer to a template",
[i]=a,
[h]=o,
[g]={"fe17d2550b84",1266347380,"Improve parsing and instantiation of destructor names, so that we can"}
},
["err_destructor_tilde_identifier"]={
[f]="expected a class name after \'~\' to name a destructor",
[d]=l,
[e]=k,
[j]="expected a class name after \'~\' to name a destructor",
[c]=m,
[b]="expected a class name after \'~\' to name a destructor",
[i]=a,
[h]=o,
[g]={"fe17d2550b84",1266347380,"Improve parsing and instantiation of destructor names, so that we can"}
},
["err_destructor_tilde_scope"]={
[f]="\'~\' in destructor name should be after nested name specifier",
[d]=l,
[e]=k,
[j]="\'~\' in destructor name should be after nested name specifier",
[c]=m,
[b]="\'~\' in destructor name should be after nested name specifier",
[i]=a,
[h]=o,
[g]={"efa6f736e63a",1409969172,"Add error, recovery and fixit for \"~A::A() {...}\"."}
},
["err_destructor_variadic"]={
[f]="destructor cannot be variadic",
[d]=l,
[e]=k,
[j]="destructor cannot be variadic",
[c]=m,
[b]="destructor cannot be variadic",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_destructor_with_params"]={
[f]="destructor cannot have any parameters",
[d]=l,
[e]=k,
[j]="destructor cannot have any parameters",
[c]=m,
[b]="destructor cannot have any parameters",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_diagnose_if_invalid_diagnostic_type"]={
[f]="invalid diagnostic type for \'diagnose_if\'; use \"error\" or \"warning\" instead",
[d]=l,
[e]=k,
[j]="invalid diagnostic type for \'diagnose_if\'; use \"error\" or \"warning\" instead",
[c]=m,
[b]="invalid diagnostic type for \'diagnose_if\'; use \"error\" or \"warning\" instead",
[i]=a,
[h]=n,
[g]={"177399e2277c",1483935134,"Add the diagnose_if attribute to clang."}
},
["err_different_asm_label"]={
[f]="conflicting asm label",
[d]=l,
[e]=k,
[j]="conflicting asm label",
[c]=m,
[b]="conflicting asm label",
[i]=a,
[h]=n,
[g]={"6ee53bc0850c",1449869335,"Error on redeclaring with a conflicting asm label and on redeclaring with an asm label after the fir..."}
},
["err_different_language_linkage"]={
[f]="declaration of A has a different language linkage",
[d]=l,
[e]=k,
[j]="declaration of %0 has a different language linkage",
[c]=m,
[b]="declaration of (.*?) has a different language linkage",
[i]=a,
[h]=n,
[g]={"cffa95d73f78",1356580580,"Implement dcl.link paragraph 5."}
},
["err_different_pass_object_size_params"]={
[f]="conflicting pass_object_size attributes on parameters",
[d]=l,
[e]=k,
[j]="conflicting pass_object_size attributes on parameters",
[c]=m,
[b]="conflicting pass_object_size attributes on parameters",
[i]=a,
[h]=n,
[g]={"3e3bb95b6951",1449093488,"Add the `pass_object_size` attribute to clang."}
},
["err_different_return_type_for_overriding_virtual_function"]={
[f]="virtual function A has a different return type (B) than the function it overrides (which has return type C)",
[d]=l,
[e]=k,
[j]="virtual function %0 has a different return type %diff{($) than the function it overrides (which has return type $)|than the function it overrides}1,2",
[c]=m,
[b]="virtual function (.*?) has a different return type (?:\\((.*?)\\) than the function it overrides \\(which has return type (.*?)\\)|than the function it overrides)",
[i]=a,
[h]=n,
[g]={"f2a2e338ffec",1242263344,"Add return type checking for overriding virtual functions. We currently don\'t check covariance but t..."}
},
["err_digit_separator_not_between_digits"]={
[f]="digit separator cannot appear at ... of digit sequence",
[d]=l,
[e]=k,
[j]="digit separator cannot appear at %select{start|end}0 of digit sequence",
[c]=m,
[b]="digit separator cannot appear at (?:start|end) of digit sequence",
[i]=a,
[h]=t,
[g]={"fde948529789",1380166386,"Implement C++1y digit separator proposal (\' as a digit separator). This is not"}
},
["err_dimension_expr_not_constant_integer"]={
[f]="dimension expression does not evaluate to a constant unsigned int",
[d]=l,
[e]=k,
[j]="dimension expression does not evaluate to a constant unsigned int",
[c]=m,
[b]="dimension expression does not evaluate to a constant unsigned int",
[i]=a,
[h]=n,
[g]={"d35222283949",1303956406,"A few corrections to type traits that missed the last checkin"}
},
["err_direct_selector_expression"]={
[f]="@selector expression formed with direct selector A",
[d]=l,
[e]=k,
[j]="@selector expression formed with direct selector %0",
[c]=m,
[b]="@selector expression formed with direct selector (.*?)",
[i]=a,
[h]=n,
[g]={bb,1573050950,db}
},
["err_disallowed_duplicate_attribute"]={
[f]="attribute A cannot appear more than once on a declaration",
[d]=l,
[e]=k,
[j]="attribute %0 cannot appear more than once on a declaration",
[c]=m,
[b]="attribute (.*?) cannot appear more than once on a declaration",
[i]=a,
[h]=n,
[g]={R,1616787805,S}
},
["err_distant_exception_spec"]={
[f]="exception specifications are not allowed beyond a single level of indirection",
[d]=l,
[e]=k,
[j]="exception specifications are not allowed beyond a single level of indirection",
[c]=m,
[b]="exception specifications are not allowed beyond a single level of indirection",
[i]=a,
[h]=n,
[g]={"10b9de45c376",1243609265,"Disallow exception specifications on multi-level indirections."}
},
["err_downcast_from_inaccessible_base"]={
[f]="cannot cast ... base class A to B",
[d]=l,
[e]=k,
[j]="cannot cast %select{private|protected}2 base class %1 to %0",
[c]=m,
[b]="cannot cast (?:private|protected) base class (.*?) to (.*?)",
[i]=a,
[h]=n,
[g]={"9f831dbbcdfa",1248536498,"Implement C++ semantics for C-style and functional-style casts. This regresses Clang extension conve..."}
},
["err_drv_I_dash_not_supported"]={
[f]="\'A\' not supported, please use -iquote instead",
[d]=l,
[e]=k,
[j]="\'%0\' not supported, please use -iquote instead",
[c]=m,
[b]="\'(.*?)\' not supported, please use \\-iquote instead",
[i]=a,
[h]=a,
[g]={"38b6279ce414",1256781224,"Reject -I- in driver instead of clang-cc."}
},
["err_drv_Xopenmp_target_missing_triple"]={
[f]="cannot deduce implicit triple value for -Xopenmp-target, specify triple using -Xopenmp-target=<triple>",
[d]=l,
[e]=k,
[j]="cannot deduce implicit triple value for -Xopenmp-target, specify triple using -Xopenmp-target=<triple>",
[c]=m,
[b]="cannot deduce implicit triple value for \\-Xopenmp\\-target, specify triple using \\-Xopenmp\\-target\\=\\<triple\\>",
[i]=a,
[h]=a,
[g]={"47e0cf378c79",1502120351,"[OpenMP] Add flag for specifying the target device architecture for OpenMP device offloading"}
},
["err_drv_alignment_not_power_of_two"]={
[f]="alignment is not a power of 2 in \'A\'",
[d]=l,
[e]=k,
[j]="alignment is not a power of 2 in \'%0\'",
[c]=m,
[b]="alignment is not a power of 2 in \'(.*?)\'",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_amdgpu_ieee_without_no_honor_nans"]={
[f]="invalid argument \'-mno-amdgpu-ieee\' only allowed with relaxed NaN handling",
[d]=l,
[e]=k,
[j]="invalid argument \'-mno-amdgpu-ieee\' only allowed with relaxed NaN handling",
[c]=m,
[b]="invalid argument \'\\-mno\\-amdgpu\\-ieee\' only allowed with relaxed NaN handling",
[i]=a,
[h]=a,
[g]={Y,1585492323,X}
},
["err_drv_arg_requires_bitcode_input"]={
[f]="option \'A\' requires input to be LLVM bitcode",
[d]=l,
[e]=k,
[j]="option \'%0\' requires input to be LLVM bitcode",
[c]=m,
[b]="option \'(.*?)\' requires input to be LLVM bitcode",
[i]=a,
[h]=a,
[g]={N,1534346725,M}
},
["err_drv_argument_not_allowed_with"]={
[f]="invalid argument \'A\' not allowed with \'B\'",
[d]=l,
[e]=k,
[j]="invalid argument \'%0\' not allowed with \'%1\'",
[c]=m,
[b]="invalid argument \'(.*?)\' not allowed with \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"c196421fbcfe",1238084592,"Driver: Add darwin::Link tool."}
},
["err_drv_argument_only_allowed_with"]={
[f]="invalid argument \'A\' only allowed with \'B\'",
[d]=l,
[e]=k,
[j]="invalid argument \'%0\' only allowed with \'%1\'",
[c]=m,
[b]="invalid argument \'(.*?)\' only allowed with \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"c196421fbcfe",1238084592,"Driver: Add darwin::Link tool."}
},
["err_drv_bad_offload_arch_combo"]={
[f]="invalid offload arch combinations: \'A\' and \'B\' (for a specific processor, a feature should either exist in all offload archs, or not exist in any offload archs)",
[d]=l,
[e]=k,
[j]="invalid offload arch combinations: \'%0\' and \'%1\' (for a specific processor, a feature should either exist in all offload archs, or not exist in any offload archs)",
[c]=m,
[b]="invalid offload arch combinations\\: \'(.*?)\' and \'(.*?)\' \\(for a specific processor, a feature should either exist in all offload archs, or not exist in any offload archs\\)",
[i]=a,
[h]=a,
[g]={Y,1585492323,X}
},
["err_drv_bad_target_id"]={
[f]="invalid target ID \'A\'; format is a processor name followed by an optional colon-delimited list of features followed by an enable/disable sign (e.g., \'gfx908:sramecc+:xnack-\')",
[d]=l,
[e]=k,
[j]="invalid target ID \'%0\'; format is a processor name followed by an optional colon-delimited list of features followed by an enable/disable sign (e.g., \'gfx908:sramecc+:xnack-\')",
[c]=m,
[b]="invalid target ID \'(.*?)\'; format is a processor name followed by an optional colon\\-delimited list of features followed by an enable\\/disable sign \\(e\\.g\\., \'gfx908\\:sramecc\\+\\:xnack\\-\'\\)",
[i]=a,
[h]=a,
[g]={Y,1585492323,X}
},
["err_drv_bitcode_unsupported_on_toolchain"]={
[f]="-fembed-bitcode is not supported on versions of iOS prior to 6.0",
[d]=l,
[e]=k,
[j]="-fembed-bitcode is not supported on versions of iOS prior to 6.0",
[c]=m,
[b]="\\-fembed\\-bitcode is not supported on versions of iOS prior to 6\\.0",
[i]=a,
[h]=a,
[g]={"574b0f2f9ca8",1456794478,"Introduce -fembed-bitcode driver option"}
},
["err_drv_cannot_mix_options"]={
[f]="cannot specify \'A\' along with \'B\'",
[d]=l,
[e]=k,
[j]="cannot specify \'%1\' along with \'%0\'",
[c]=m,
[b]="cannot specify \'(.*?)\' along with \'(.*?)\'",
[i]=a,
[h]=a,
[g]={N,1534346725,M}
},
["err_drv_cannot_open_config_file"]={
[f]="configuration file \'A\' cannot be opened: B",
[d]=l,
[e]=k,
[j]="configuration file \'%0\' cannot be opened: %1",
[c]=m,
[b]="configuration file \'(.*?)\' cannot be opened\\: (.*?)",
[i]=a,
[h]=a,
[g]={"17eb198de934",1665752829,"Handle errors in expansion of response files"}
},
["err_drv_cannot_open_randomize_layout_seed_file"]={
[f]="cannot read randomize layout seed file \'A\'",
[d]=l,
[e]=k,
[j]="cannot read randomize layout seed file \'%0\'",
[c]=m,
[b]="cannot read randomize layout seed file \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"c5e5b54350fe",1645456106,"[CUDA] Add driver support for compiling CUDA with the new driver"}
},
["err_drv_cannot_read_config_file"]={
[f]="cannot read configuration file \'A\': B",
[d]=l,
[e]=k,
[j]="cannot read configuration file \'%0\': %1",
[c]=m,
[b]="cannot read configuration file \'(.*?)\'\\: (.*?)",
[i]=a,
[h]=a,
[g]={"c92ca91472b9",1514656766,"Enable configuration files in clang"}
},
["err_drv_cc_print_options_failure"]={
[f]="unable to open CC_PRINT_OPTIONS file: A",
[d]=l,
[e]=k,
[j]="unable to open CC_PRINT_OPTIONS file: %0",
[c]=m,
[b]="unable to open CC_PRINT_OPTIONS file\\: (.*?)",
[i]=a,
[h]=a,
[g]={"6a8efa8a79e7",1269072119,"Driver: Support CC_PRINT_OPTIONS, used for logging the compile commands (in -v style) to a file."}
},
["err_drv_clang_unsupported"]={
[f]="the clang compiler does not support \'A\'",
[d]=l,
[e]=k,
[j]="the clang compiler does not support \'%0\'",
[c]=m,
[b]="the clang compiler does not support \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"adeeb052adb5",1243018940,"Don\'t warn about -funit-at-a-time, and reject -fno-unit-at-a-time."}
},
["err_drv_clang_unsupported_opt_cxx_darwin_i386"]={
[f]="the clang compiler does not support \'A\' for C++ on Darwin/i386",
[d]=l,
[e]=k,
[j]="the clang compiler does not support \'%0\' for C++ on Darwin/i386",
[c]=m,
[b]="the clang compiler does not support \'(.*?)\' for C\\+\\+ on Darwin\\/i386",
[i]=a,
[h]=a,
[g]={"fcc49a8f1f0b",1273688398,"Driver/Darwin/i386: Don\'t allow compiling C++ with -fapple-kext, we don\'t support the necessary ABI ..."}
},
["err_drv_clang_unsupported_opt_faltivec"]={
[f]="the clang compiler does not support \'A\', B",
[d]=l,
[e]=k,
[j]="the clang compiler does not support \'%0\', %1",
[c]=m,
[b]="the clang compiler does not support \'(.*?)\', (.*?)",
[i]=a,
[h]=a,
[g]={"758aad76d880",1490133978,"Remove the -faltivec alias option and replace it with -maltivec everywhere."}
},
["err_drv_clang_unsupported_opt_pg_darwin"]={
[f]="the clang compiler does not support -pg option on ...",
[d]=l,
[e]=k,
[j]="the clang compiler does not support -pg option on %select{Darwin|versions of OS X 10.9 and later}0",
[c]=m,
[b]="the clang compiler does not support \\-pg option on (?:Darwin|versions of OS X 10\\.9 and later)",
[i]=a,
[h]=a,
[g]={N,1534346725,M}
},
["err_drv_command_failed"]={
[f]="A command failed with exit code B (use -v to see invocation)",
[d]=l,
[e]=k,
[j]="%0 command failed with exit code %1 (use -v to see invocation)",
[c]=m,
[b]="(.*?) command failed with exit code (.*?) \\(use \\-v to see invocation\\)",
[i]=a,
[h]=a,
[g]={"aa246cafaa7b",1246475679,"Driver: Improve diagnostics for failed commands."}
},
["err_drv_command_failure"]={
[f]="unable to execute command: A",
[d]=l,
[e]=k,
[j]="unable to execute command: %0",
[c]=m,
[b]="unable to execute command\\: (.*?)",
[i]=a,
[h]=a,
[g]={"64316c49a6b6",1237416264,"Driver: Execute jobs; no pipe support yet."}
},
["err_drv_command_signalled"]={
[f]="A command failed due to signal (use -v to see invocation)",
[d]=l,
[e]=k,
[j]="%0 command failed due to signal (use -v to see invocation)",
[c]=m,
[b]="(.*?) command failed due to signal \\(use \\-v to see invocation\\)",
[i]=a,
[h]=a,
[g]={"aa246cafaa7b",1246475679,"Driver: Improve diagnostics for failed commands."}
},
["err_drv_compilationdatabase"]={
[f]="compilation database \'A\' could not be opened: B",
[d]=l,
[e]=k,
[j]="compilation database \'%0\' could not be opened: %1",
[c]=m,
[b]="compilation database \'(.*?)\' could not be opened\\: (.*?)",
[i]=a,
[h]=a,
[g]={"cbc872549cf8",1481042002,"Allow clang to write compilation database records."}
},
["err_drv_config_file_not_found"]={
[f]="configuration file \'A\' cannot be found",
[d]=l,
[e]=k,
[j]="configuration file \'%0\' cannot be found",
[c]=m,
[b]="configuration file \'(.*?)\' cannot be found",
[i]=a,
[h]=a,
[g]={"c92ca91472b9",1514656766,"Enable configuration files in clang"}
},
["err_drv_conflicting_deployment_targets"]={
[f]="conflicting deployment targets, both \'A\' and \'B\' are present in environment",
[d]=l,
[e]=k,
[j]="conflicting deployment targets, both \'%0\' and \'%1\' are present in environment",
[c]=m,
[b]="conflicting deployment targets, both \'(.*?)\' and \'(.*?)\' are present in environment",
[i]=a,
[h]=a,
[g]={"d54669d30b8f",1264470319,"Driver/Darwin: Honor IPHONEOS_DEPLOYMENT_TARGET."}
},
["err_drv_cuda_bad_gpu_arch"]={
[f]="unsupported CUDA gpu architecture: A",
[d]=l,
[e]=k,
[j]="unsupported CUDA gpu architecture: %0",
[c]=m,
[b]="unsupported CUDA gpu architecture\\: (.*?)",
[i]=a,
[h]=a,
[g]={"7bf779859a2c",1452554833,"[CUDA] Reject values for --cuda-gpu-arch that are not of the form /sm_\\d+/."}
},
["err_drv_cuda_host_arch"]={
[f]="unsupported architecture \'A\' for host compilation",
[d]=l,
[e]=k,
[j]="unsupported architecture \'%0\' for host compilation",
[c]=m,
[b]="unsupported architecture \'(.*?)\' for host compilation",
[i]=a,
[h]=a,
[g]={"00f31d514c05",1526066074,"[HIP] Diagnose unsupported host triple"}
},
["err_drv_cuda_offload_only_emit_bc"]={
[f]="CUDA offload target is supported only along with --emit-llvm",
[d]=l,
[e]=k,
[j]="CUDA offload target is supported only along with --emit-llvm",
[c]=m,
[b]="CUDA offload target is supported only along with \\-\\-emit\\-llvm",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_cuda_version_unsupported"]={
[f]="GPU arch A is supported by CUDA versions between B and C (inclusive), but installation at D is E; use \'--cuda-path\' to specify a different CUDA install, pass a different GPU arch with \'--cuda-gpu-arch\', or pass \'--no-cuda-version-check\'",
[d]=l,
[e]=k,
[j]="GPU arch %0 is supported by CUDA versions between %1 and %2 (inclusive), but installation at %3 is %4; use \'--cuda-path\' to specify a different CUDA install, pass a different GPU arch with \'--cuda-gpu-arch\', or pass \'--no-cuda-version-check\'",
[c]=m,
[b]="GPU arch (.*?) is supported by CUDA versions between (.*?) and (.*?) \\(inclusive\\), but installation at (.*?) is (.*?); use \'\\-\\-cuda\\-path\' to specify a different CUDA install, pass a different GPU arch with \'\\-\\-cuda\\-gpu\\-arch\', or pass \'\\-\\-no\\-cuda\\-version\\-check\'",
[i]=a,
[h]=a,
[g]={"066494d8c1a1",1508967126,"[CUDA] Print an error if you try to compile with < sm_30 on CUDA 9."}
},
["err_drv_darwin_sdk_missing_arclite"]={
[f]="SDK does not contain \'libarclite\' at the path \'A\'; try increasing the minimum deployment target",
[d]=l,
[e]=k,
[j]="SDK does not contain \'libarclite\' at the path \'%0\'; try increasing the minimum deployment target",
[c]=m,
[b]="SDK does not contain \'libarclite\' at the path \'(.*?)\'; try increasing the minimum deployment target",
[i]=a,
[h]=a,
[g]={"1d511e1864f1",1684763280,"[ARM][Driver] Warn if -mhard-float is incompatible"}
},
["err_drv_defsym_invalid_format"]={
[f]="defsym must be of the form: sym=value: A",
[d]=l,
[e]=k,
[j]="defsym must be of the form: sym=value: %0",
[c]=m,
[b]="defsym must be of the form\\: sym\\=value\\: (.*?)",
[i]=a,
[h]=a,
[g]={"6d1d36c4b7c3",1480992556,"[clang] Fix D26214: Move error handling out of MC and to the callers."}
},
["err_drv_defsym_invalid_symval"]={
[f]="value is not an integer: A",
[d]=l,
[e]=k,
[j]="value is not an integer: %0",
[c]=m,
[b]="value is not an integer\\: (.*?)",
[i]=a,
[h]=a,
[g]={"6d1d36c4b7c3",1480992556,"[clang] Fix D26214: Move error handling out of MC and to the callers."}
},
["err_drv_duplicate_config"]={
[f]="no more than one option \'--config\' is allowed",
[d]=l,
[e]=k,
[j]="no more than one option \'--config\' is allowed",
[c]=m,
[b]="no more than one option \'\\-\\-config\' is allowed",
[i]=a,
[h]=a,
[g]={"c92ca91472b9",1514656766,"Enable configuration files in clang"}
},
["err_drv_dxc_missing_target_profile"]={
[f]="target profile option (-T) is missing",
[d]=l,
[e]=k,
[j]="target profile option (-T) is missing",
[c]=m,
[b]="target profile option \\(\\-T\\) is missing",
[i]=a,
[h]=a,
[g]={Ac,1651866463,yc}
},
["err_drv_emit_llvm_link"]={
[f]="-emit-llvm cannot be used when linking",
[d]=l,
[e]=k,
[j]="-emit-llvm cannot be used when linking",
[c]=m,
[b]="\\-emit\\-llvm cannot be used when linking",
[i]=a,
[h]=a,
[g]={"e8025644b279",1377440829,"Produce an error when trying to link with -emit-llvm."}
},
["err_drv_expand_response_file"]={
[f]="failed to expand response file: A",
[d]=l,
[e]=k,
[j]="failed to expand response file: %0",
[c]=m,
[b]="failed to expand response file\\: (.*?)",
[i]=a,
[h]=a,
[g]={"6adb9a0602bc",1678065956,"[AMDGPU] Emit predefined macro `__AMDGCN_CUMODE__`"}
},
["err_drv_expecting_fopenmp_with_fopenmp_targets"]={
[f]="\'-fopenmp-targets\' must be used in conjunction with a \'-fopenmp\' option compatible with offloading; e.g., \'-fopenmp=libomp\' or \'-fopenmp=libiomp5\'",
[d]=l,
[e]=k,
[j]="\'-fopenmp-targets\' must be used in conjunction with a \'-fopenmp\' option compatible with offloading; e.g., \'-fopenmp=libomp\' or \'-fopenmp=libiomp5\'",
[c]=m,
[b]="\'\\-fopenmp\\-targets\' must be used in conjunction with a \'\\-fopenmp\' option compatible with offloading; e\\.g\\., \'\\-fopenmp\\=libomp\' or \'\\-fopenmp\\=libiomp5\'",
[i]=a,
[h]=a,
[g]={"39f9da2a8752",1477586285,"[Driver][OpenMP] Create tool chains for OpenMP offloading kind."}
},
["err_drv_extract_api_wrong_kind"]={
[f]="header file \'A\' input \'B\' does not match the type of prior input in api extraction; use \'-x C\' to override",
[d]=l,
[e]=k,
[j]="header file \'%0\' input \'%1\' does not match the type of prior input in api extraction; use \'-x %2\' to override",
[c]=m,
[b]="header file \'(.*?)\' input \'(.*?)\' does not match the type of prior input in api extraction; use \'\\-x (.*?)\' to override",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_failed_to_deduce_target_from_arch"]={
[f]="failed to deduce triple for target architecture \'A\'; specify the triple using \'-fopenmp-targets\' and \'-Xopenmp-target\' instead.",
[d]=l,
[e]=k,
[j]="failed to deduce triple for target architecture \'%0\'; specify the triple using \'-fopenmp-targets\' and \'-Xopenmp-target\' instead.",
[c]=m,
[b]="failed to deduce triple for target architecture \'(.*?)\'; specify the triple using \'\\-fopenmp\\-targets\' and \'\\-Xopenmp\\-target\' instead\\.",
[i]=a,
[h]=a,
[g]={"509b631f84e9",1651788595,"[OpenMP] Try to Infer target triples using the offloading architecture"}
},
["err_drv_force_crash"]={
[f]="failing because ...",
[d]=l,
[e]=k,
[j]="failing because %select{environment variable \'FORCE_CLANG_DIAGNOSTICS_CRASH\' is set|\'-gen-reproducer\' is used}0",
[c]=m,
[b]="failing because (?:environment variable \'FORCE_CLANG_DIAGNOSTICS_CRASH\' is set|\'\\-gen\\-reproducer\' is used)",
[i]=a,
[h]=a,
[g]={"940a6d73ce06",1356472587,"Produce an actual error before attempting to attach notes to it when bailing out"}
},
["err_drv_gnustep_objc_runtime_incompatible_binary"]={
[f]="GNUstep Objective-C runtime version A incompatible with target binary format",
[d]=l,
[e]=k,
[j]="GNUstep Objective-C runtime version %0 incompatible with target binary format",
[c]=m,
[b]="GNUstep Objective\\-C runtime version (.*?) incompatible with target binary format",
[i]=a,
[h]=a,
[g]={"79356eefc055",1526969363,"GNUstep Objective-C ABI version 2"}
},
["err_drv_header_unit_extra_inputs"]={
[f]="multiple inputs are not valid for header units (first extra \'A\')",
[d]=l,
[e]=k,
[j]="multiple inputs are not valid for header units (first extra \'%0\')",
[c]=m,
[b]="multiple inputs are not valid for header units \\(first extra \'(.*?)\'\\)",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_hipspv_no_hip_path"]={
[f]="\'--hip-path\' must be specified when offloading to SPIR-V....",
[d]=l,
[e]=k,
[j]="\'--hip-path\' must be specified when offloading to SPIR-V%select{| unless %1 is given}0.",
[c]=m,
[b]="\'\\-\\-hip\\-path\' must be specified when offloading to SPIR\\-V(?:| unless (.*?) is given)\\.",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_hlsl_unsupported_target"]={
[f]="HLSL code generation is unsupported for target \'A\'",
[d]=l,
[e]=k,
[j]="HLSL code generation is unsupported for target \'%0\'",
[c]=m,
[b]="HLSL code generation is unsupported for target \'(.*?)\'",
[i]=a,
[h]=a,
[g]={Ac,1651866463,yc}
},
["err_drv_incompatible_omp_arch"]={
[f]="OpenMP target architecture \'A\' pointer size is incompatible with host \'B\'",
[d]=l,
[e]=k,
[j]="OpenMP target architecture \'%0\' pointer size is incompatible with host \'%1\'",
[c]=m,
[b]="OpenMP target architecture \'(.*?)\' pointer size is incompatible with host \'(.*?)\'",
[i]=a,
[h]=a,
[g]={Y,1585492323,X}
},
["err_drv_incompatible_options"]={
[f]="the combination of \'A\' and \'B\' is incompatible",
[d]=l,
[e]=k,
[j]="the combination of \'%0\' and \'%1\' is incompatible",
[c]=m,
[b]="the combination of \'(.*?)\' and \'(.*?)\' is incompatible",
[i]=a,
[h]=a,
[g]={"f89327e28bc1",1672206488,"[Driver] [Modules] Support -fmodule-output (1/2)"}
},
["err_drv_incompatible_unwindlib"]={
[f]="--rtlib=libgcc requires --unwindlib=libgcc",
[d]=l,
[e]=k,
[j]="--rtlib=libgcc requires --unwindlib=libgcc",
[c]=m,
[b]="\\-\\-rtlib\\=libgcc requires \\-\\-unwindlib\\=libgcc",
[i]=a,
[h]=a,
[g]={N,1534346725,M}
},
["err_drv_invalid_Xarch_argument_with_args"]={
[f]="invalid Xarch argument: \'A\', options requiring arguments are unsupported",
[d]=l,
[e]=k,
[j]="invalid Xarch argument: \'%0\', options requiring arguments are unsupported",
[c]=m,
[b]="invalid Xarch argument\\: \'(.*?)\', options requiring arguments are unsupported",
[i]=a,
[h]=a,
[g]={"6914a98ccd70",1303407141,"Driver: Improve -Xarch argument diagnostics a bit."}
},
["err_drv_invalid_Xopenmp_target_with_args"]={
[f]="invalid -Xopenmp-target argument: \'A\', options requiring arguments are unsupported",
[d]=l,
[e]=k,
[j]="invalid -Xopenmp-target argument: \'%0\', options requiring arguments are unsupported",
[c]=m,
[b]="invalid \\-Xopenmp\\-target argument\\: \'(.*?)\', options requiring arguments are unsupported",
[i]=a,
[h]=a,
[g]={"47e0cf378c79",1502120351,"[OpenMP] Add flag for specifying the target device architecture for OpenMP device offloading"}
},
["err_drv_invalid_arch_name"]={
[f]="invalid arch name \'A\'",
[d]=l,
[e]=k,
[j]="invalid arch name \'%0\'",
[c]=m,
[b]="invalid arch name \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"9c3f7c4a4bb1",1252453050,"Validate arguments to -arch."}
},
["err_drv_invalid_argument_to_option"]={
[f]="invalid argument \'A\' to -B",
[d]=l,
[e]=k,
[j]="invalid argument \'%0\' to -%1",
[c]=m,
[b]="invalid argument \'(.*?)\' to \\-(.*?)",
[i]=a,
[h]=a,
[g]={N,1534346725,M}
},
["err_drv_invalid_cf_runtime_abi"]={
[f]="invalid CoreFoundation Runtime ABI \'A\'; must be one of \'objc\', \'standalone\', \'swift\', \'swift-5.0\', \'swift-4.2\', \'swift-4.1\'",
[d]=l,
[e]=k,
[j]="invalid CoreFoundation Runtime ABI \'%0\'; must be one of \'objc\', \'standalone\', \'swift\', \'swift-5.0\', \'swift-4.2\', \'swift-4.1\'",
[c]=m,
[b]="invalid CoreFoundation Runtime ABI \'(.*?)\'; must be one of \'objc\', \'standalone\', \'swift\', \'swift\\-5\\.0\', \'swift\\-4\\.2\', \'swift\\-4\\.1\'",
[i]=a,
[h]=a,
[g]={N,1534346725,M}
},
["err_drv_invalid_darwin_version"]={
[f]="invalid Darwin version number: A",
[d]=l,
[e]=k,
[j]="invalid Darwin version number: %0",
[c]=m,
[b]="invalid Darwin version number\\: (.*?)",
[i]=a,
[h]=a,
[g]={"7f2600244c21",1237573311,"Driver: Parse Darwin version out of target triple."}
},
["err_drv_invalid_diagnotics_hotness_threshold"]={
[f]="invalid argument in \'A\', only integer or \'auto\' is supported",
[d]=l,
[e]=k,
[j]="invalid argument in \'%0\', only integer or \'auto\' is supported",
[c]=m,
[b]="invalid argument in \'(.*?)\', only integer or \'auto\' is supported",
[i]=a,
[h]=a,
[g]={Y,1585492323,X}
},
["err_drv_invalid_diagnotics_misexpect_tolerance"]={
[f]="invalid argument in \'A\', only integers are supported",
[d]=l,
[e]=k,
[j]="invalid argument in \'%0\', only integers are supported",
[c]=m,
[b]="invalid argument in \'(.*?)\', only integers are supported",
[i]=a,
[h]=a,
[g]={"c5e5b54350fe",1645456106,"[CUDA] Add driver support for compiling CUDA with the new driver"}
},
["err_drv_invalid_directx_shader_module"]={
[f]="invalid profile : A",
[d]=l,
[e]=k,
[j]="invalid profile : %0",
[c]=m,
[b]="invalid profile \\: (.*?)",
[i]=a,
[h]=a,
[g]={"c5e5b54350fe",1645456106,"[CUDA] Add driver support for compiling CUDA with the new driver"}
},
["err_drv_invalid_empty_dxil_validator_version"]={
[f]="invalid validator version : A\nIf validator major version is 0, minor version must also be 0.",
[d]=l,
[e]=k,
[j]="invalid validator version : %0\nIf validator major version is 0, minor version must also be 0.",
[c]=m,
[b]="invalid validator version \\: (.*?)\nIf validator major version is 0, minor version must also be 0\\.",
[i]=a,
[h]=a,
[g]={"73417c517644",1650064974,"[HLSL][clang][Driver] Support validator version command line option."}
},
["err_drv_invalid_format_dxil_validator_version"]={
[f]="invalid validator version : A\nFormat of validator version is \"<major>.<minor>\" (ex:\"1.4\").",
[d]=l,
[e]=k,
[j]="invalid validator version : %0\nFormat of validator version is \"<major>.<minor>\" (ex:\"1.4\").",
[c]=m,
[b]="invalid validator version \\: (.*?)\nFormat of validator version is \"\\<major\\>\\.\\<minor\\>\" \\(ex\\:\"1\\.4\"\\)\\.",
[i]=a,
[h]=a,
[g]={"73417c517644",1650064974,"[HLSL][clang][Driver] Support validator version command line option."}
},
["err_drv_invalid_gcc_install_dir"]={
[f]="\'A\' does not contain a GCC installation",
[d]=l,
[e]=k,
[j]="\'%0\' does not contain a GCC installation",
[c]=m,
[b]="\'(.*?)\' does not contain a GCC installation",
[i]=a,
[h]=a,
[g]={Ac,1651866463,yc}
},
["err_drv_invalid_gcc_output_type"]={
[f]="invalid output type \'A\' for use with gcc tool",
[d]=l,
[e]=k,
[j]="invalid output type \'%0\' for use with gcc tool",
[c]=m,
[b]="invalid output type \'(.*?)\' for use with gcc tool",
[i]=a,
[h]=a,
[g]={"aeea8ac3d82b",1265858181,"Driver: Add -rewrite-objc, which is an interface to clang -cc1 -rewrite-objc."}
},
["err_drv_invalid_int_value"]={
[f]="invalid integral value \'A\' in \'B\'",
[d]=l,
[e]=k,
[j]="invalid integral value \'%1\' in \'%0\'",
[c]=m,
[b]="invalid integral value \'(.*?)\' in \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"0ac66427a9f2",1259531573,"clang -cc1: Use proper diagnostics for all parsing errors."}
},
["err_drv_invalid_linker_name"]={
[f]="invalid linker name in argument \'A\'",
[d]=l,
[e]=k,
[j]="invalid linker name in argument \'%0\'",
[c]=m,
[b]="invalid linker name in argument \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"e6dcfaf127c7",1384006612,"Add support for -fuse-ld=."}
},
["err_drv_invalid_malign_branch_EQ"]={
[f]="invalid argument \'A\' to -malign-branch=; each element must be one of: B",
[d]=l,
[e]=k,
[j]="invalid argument \'%0\' to -malign-branch=; each element must be one of: %1",
[c]=m,
[b]="invalid argument \'(.*?)\' to \\-malign\\-branch\\=; each element must be one of\\: (.*?)",
[i]=a,
[h]=a,
[g]={N,1534346725,M}
},
["err_drv_invalid_mfloat_abi"]={
[f]="invalid float ABI \'A\'",
[d]=l,
[e]=k,
[j]="invalid float ABI \'%0\'",
[c]=m,
[b]="invalid float ABI \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"7848592ec652",1252623609,"Initial handling of -m{soft-float,hard-float,float-abi=} for ARM."}
},
["err_drv_invalid_mtp"]={
[f]="invalid thread pointer reading mode \'A\'",
[d]=l,
[e]=k,
[j]="invalid thread pointer reading mode \'%0\'",
[c]=m,
[b]="invalid thread pointer reading mode \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"3ac5ab7e1da1",1505212858,"[ARM] Option for reading thread pointer from coprocessor register"}
},
["err_drv_invalid_object_mode"]={
[f]="OBJECT_MODE setting A is not recognized and is not a valid setting",
[d]=l,
[e]=k,
[j]="OBJECT_MODE setting %0 is not recognized and is not a valid setting",
[c]=m,
[b]="OBJECT_MODE setting (.*?) is not recognized and is not a valid setting",
[i]=a,
[h]=a,
[g]={Y,1585492323,X}
},
["err_drv_invalid_omp_target"]={
[f]="OpenMP target is invalid: \'A\'",
[d]=l,
[e]=k,
[j]="OpenMP target is invalid: \'%0\'",
[c]=m,
[b]="OpenMP target is invalid\\: \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"4d5f0bbea1ec",1452010984,"[OpenMP] Offloading descriptor registration and device codegen."}
},
["err_drv_invalid_or_unsupported_offload_target"]={
[f]="invalid or unsupported offload target: \'A\'",
[d]=l,
[e]=k,
[j]="invalid or unsupported offload target: \'%0\'",
[c]=m,
[b]="invalid or unsupported offload target\\: \'(.*?)\'",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_invalid_os_in_arg"]={
[f]="invalid OS value \'A\' in \'B\'",
[d]=l,
[e]=k,
[j]="invalid OS value \'%0\' in \'%1\'",
[c]=m,
[b]="invalid OS value \'(.*?)\' in \'(.*?)\'",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_invalid_output_with_multiple_archs"]={
[f]="cannot use \'A\' output with multiple -arch options",
[d]=l,
[e]=k,
[j]="cannot use \'%0\' output with multiple -arch options",
[c]=m,
[b]="cannot use \'(.*?)\' output with multiple \\-arch options",
[i]=a,
[h]=a,
[g]={"f479c1293ea4",1236883218,"Driver: Add majority of driver-driver implementation."}
},
["err_drv_invalid_range_dxil_validator_version"]={
[f]="invalid validator version : A\nValidator version must be less than or equal to current internal version.",
[d]=l,
[e]=k,
[j]="invalid validator version : %0\nValidator version must be less than or equal to current internal version.",
[c]=m,
[b]="invalid validator version \\: (.*?)\nValidator version must be less than or equal to current internal version\\.",
[i]=a,
[h]=a,
[g]={"73417c517644",1650064974,"[HLSL][clang][Driver] Support validator version command line option."}
},
["err_drv_invalid_remap_file"]={
[f]="invalid option \'A\' not of the form <from-file>;<to-file>",
[d]=l,
[e]=k,
[j]="invalid option \'%0\' not of the form <from-file>;<to-file>",
[c]=m,
[b]="invalid option \'(.*?)\' not of the form \\<from\\-file\\>;\\<to\\-file\\>",
[i]=a,
[h]=a,
[g]={"6048e7fdc0f6",1259817076,"Add clang -cc1 support for -remap-file."}
},
["err_drv_invalid_riscv_arch_name"]={
[f]="invalid arch name \'A\', B",
[d]=l,
[e]=k,
[j]="invalid arch name \'%0\', %1",
[c]=m,
[b]="invalid arch name \'(.*?)\', (.*?)",
[i]=a,
[h]=a,
[g]={"c85505450ab6",1524696158,"[RISCV] More validations on the input value of -march="}
},
["err_drv_invalid_riscv_cpu_name_for_target"]={
[f]="cpu \'A\' does not support rv...",
[d]=l,
[e]=k,
[j]="cpu \'%0\' does not support rv%select{32|64}1",
[c]=m,
[b]="cpu \'(.*?)\' does not support rv(?:32|64)",
[i]=a,
[h]=a,
[g]={"6adb9a0602bc",1678065956,"[AMDGPU] Emit predefined macro `__AMDGCN_CUMODE__`"}
},
["err_drv_invalid_rtlib_name"]={
[f]="invalid runtime library name in argument \'A\'",
[d]=l,
[e]=k,
[j]="invalid runtime library name in argument \'%0\'",
[c]=m,
[b]="invalid runtime library name in argument \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"f4916cde7668",1323298995,"Driver: Add a --rtlib={compiler-rt,libgcc} argument which I plan to use to allow"}
},
["err_drv_invalid_stdlib_name"]={
[f]="invalid library name in argument \'A\'",
[d]=l,
[e]=k,
[j]="invalid library name in argument \'%0\'",
[c]=m,
[b]="invalid library name in argument \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"092b6fb18709",1284505960,"Driver: Add a -stdlib= argument which can be used to select the C++ standard"}
},
["err_drv_invalid_thread_model_for_target"]={
[f]="invalid thread model \'A\' in \'B\' for this target",
[d]=l,
[e]=k,
[j]="invalid thread model \'%0\' in \'%1\' for this target",
[c]=m,
[b]="invalid thread model \'(.*?)\' in \'(.*?)\' for this target",
[i]=a,
[h]=a,
[g]={"b140a100a047",1412373464,"CFE Knob for: Add a thread-model knob for lowering atomics on baremetal & single threaded systems"}
},
["err_drv_invalid_unwindlib_name"]={
[f]="invalid unwind library name in argument \'A\'",
[d]=l,
[e]=k,
[j]="invalid unwind library name in argument \'%0\'",
[c]=m,
[b]="invalid unwind library name in argument \'(.*?)\'",
[i]=a,
[h]=a,
[g]={N,1534346725,M}
},
["err_drv_invalid_value"]={
[f]="invalid value \'A\' in \'B\'",
[d]=l,
[e]=k,
[j]="invalid value \'%1\' in \'%0\'",
[c]=m,
[b]="invalid value \'(.*?)\' in \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"0ac66427a9f2",1259531573,"clang -cc1: Use proper diagnostics for all parsing errors."}
},
["err_drv_invalid_value_with_suggestion"]={
[f]="invalid value \'A\' in \'B\', expected one of: C",
[d]=l,
[e]=k,
[j]="invalid value \'%1\' in \'%0\', expected one of: %2",
[c]=m,
[b]="invalid value \'(.*?)\' in \'(.*?)\', expected one of\\: (.*?)",
[i]=a,
[h]=a,
[g]={Y,1585492323,X}
},
["err_drv_invalid_version_number"]={
[f]="invalid version number in \'A\'",
[d]=l,
[e]=k,
[j]="invalid version number in \'%0\'",
[c]=m,
[b]="invalid version number in \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"c196421fbcfe",1238084592,"Driver: Add darwin::Link tool."}
},
["err_drv_loongarch_invalid_mfpu_EQ"]={
[f]="invalid argument \'A\' to -mfpu=; must be one of: 64, 32, none, 0 (alias for none)",
[d]=l,
[e]=k,
[j]="invalid argument \'%0\' to -mfpu=; must be one of: 64, 32, none, 0 (alias for none)",
[c]=m,
[b]="invalid argument \'(.*?)\' to \\-mfpu\\=; must be one of\\: 64, 32, none, 0 \\(alias for none\\)",
[i]=a,
[h]=a,
[g]={"1f67dc8b7c22",1666243490,"[Driver] Enable nested configuration files"}
},
["err_drv_lto_without_lld"]={
[f]="LTO requires -fuse-ld=lld",
[d]=l,
[e]=k,
[j]="LTO requires -fuse-ld=lld",
[c]=m,
[b]="LTO requires \\-fuse\\-ld\\=lld",
[i]=a,
[h]=a,
[g]={"aaf519136482",1488224419,"enable -flto=thin in clang-cl"}
},
["err_drv_malformed_sanitizer_coverage_allowlist"]={
[f]="malformed sanitizer coverage allowlist: \'A\'",
[d]=l,
[e]=k,
[j]="malformed sanitizer coverage allowlist: \'%0\'",
[c]=m,
[b]="malformed sanitizer coverage allowlist\\: \'(.*?)\'",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_malformed_sanitizer_coverage_ignorelist"]={
[f]="malformed sanitizer coverage ignorelist: \'A\'",
[d]=l,
[e]=k,
[j]="malformed sanitizer coverage ignorelist: \'%0\'",
[c]=m,
[b]="malformed sanitizer coverage ignorelist\\: \'(.*?)\'",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_malformed_sanitizer_ignorelist"]={
[f]="malformed sanitizer ignorelist: \'A\'",
[d]=l,
[e]=k,
[j]="malformed sanitizer ignorelist: \'%0\'",
[c]=m,
[b]="malformed sanitizer ignorelist\\: \'(.*?)\'",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_malformed_sanitizer_metadata_ignorelist"]={
[f]="malformed sanitizer metadata ignorelist: \'A\'",
[d]=l,
[e]=k,
[j]="malformed sanitizer metadata ignorelist: \'%0\'",
[c]=m,
[b]="malformed sanitizer metadata ignorelist\\: \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"421215b919d0",1676018048,"[SanitizerBinaryMetadata] Support ignore list"}
},
["err_drv_mg_requires_m_or_mm"]={
[f]="option \'-MG\' requires \'-M\' or \'-MM\'",
[d]=l,
[e]=k,
[j]="option \'-MG\' requires \'-M\' or \'-MM\'",
[c]=m,
[b]="option \'\\-MG\' requires \'\\-M\' or \'\\-MM\'",
[i]=a,
[h]=a,
[g]={"77b0e7f2969a",1310499315,"Implement -MG.  Fixes PR9613"}
},
["err_drv_minws_unsupported_input_type"]={
[f]="\'-fminimize-whitespace\' invalid for input of type A",
[d]=l,
[e]=k,
[j]="\'-fminimize-whitespace\' invalid for input of type %0",
[c]=m,
[b]="\'\\-fminimize\\-whitespace\' invalid for input of type (.*?)",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_missing_arg_mtp"]={
[f]="missing argument to \'A\'",
[d]=l,
[e]=k,
[j]="missing argument to \'%0\'",
[c]=m,
[b]="missing argument to \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"3ac5ab7e1da1",1505212858,"[ARM] Option for reading thread pointer from coprocessor register"}
},
["err_drv_missing_argument"]={
[f]="argument to \'A\' is missing (expected B valueC)",
[d]=l,
[e]=k,
[j]="argument to \'%0\' is missing (expected %1 value%s1)",
[c]=m,
[b]="argument to \'(.*?)\' is missing \\(expected (.*?) value(.*?)\\)",
[i]=a,
[h]=a,
[g]={"d8500f3b0f54",1237764403,"Driver: Implement \'missing argument\' error."}
},
["err_drv_missing_sanitizer_ignorelist"]={
[f]="missing sanitizer ignorelist: \'A\'",
[d]=l,
[e]=k,
[j]="missing sanitizer ignorelist: \'%0\'",
[c]=m,
[b]="missing sanitizer ignorelist\\: \'(.*?)\'",
[i]=a,
[h]=a,
[g]={Ac,1651866463,yc}
},
["err_drv_mix_cuda_hip"]={
[f]="mixed CUDA and HIP compilation is not supported",
[d]=l,
[e]=k,
[j]="mixed CUDA and HIP compilation is not supported",
[c]=m,
[b]="mixed CUDA and HIP compilation is not supported",
[i]=a,
[h]=a,
[g]={"f5a6b96c0fc9",1526066499,"[HIP] Set proper triple and offload kind for the toolchain"}
},
["err_drv_module_header_wrong_kind"]={
[f]="header file \'A\' input type \'B\' does not match type of prior input in module compilation; use \'-x C\' to override",
[d]=l,
[e]=k,
[j]="header file \'%0\' input type \'%1\' does not match type of prior input in module compilation; use \'-x %2\' to override",
[c]=m,
[b]="header file \'(.*?)\' input type \'(.*?)\' does not match type of prior input in module compilation; use \'\\-x (.*?)\' to override",
[i]=a,
[h]=a,
[g]={N,1534346725,M}
},
["err_drv_module_output_with_multiple_arch"]={
[f]="option \'-fmodule-output\' can\'t be used with multiple arch options",
[d]=l,
[e]=k,
[j]="option \'-fmodule-output\' can\'t be used with multiple arch options",
[c]=m,
[b]="option \'\\-fmodule\\-output\' can\'t be used with multiple arch options",
[i]=a,
[h]=a,
[g]={"f89327e28bc1",1672206488,"[Driver] [Modules] Support -fmodule-output (1/2)"}
},
["err_drv_modules_validate_once_requires_timestamp"]={
[f]="option \'-fmodules-validate-once-per-build-session\' requires \'-fbuild-session-timestamp=<seconds since Epoch>\' or \'-fbuild-session-file=<file>\'",
[d]=l,
[e]=k,
[j]="option \'-fmodules-validate-once-per-build-session\' requires \'-fbuild-session-timestamp=<seconds since Epoch>\' or \'-fbuild-session-file=<file>\'",
[c]=m,
[b]="option \'\\-fmodules\\-validate\\-once\\-per\\-build\\-session\' requires \'\\-fbuild\\-session\\-timestamp\\=\\<seconds since Epoch\\>\' or \'\\-fbuild\\-session\\-file\\=\\<file\\>\'",
[i]=a,
[h]=a,
[g]={"f430da4de68b",1392201194,"Add an option to allow Clang verify source files for a module only once during"}
},
["err_drv_needs_hvx"]={
[f]="A requires HVX, use -mhvx/-mhvx= to enable it",
[d]=l,
[e]=k,
[j]="%0 requires HVX, use -mhvx/-mhvx= to enable it",
[c]=m,
[b]="(.*?) requires HVX, use \\-mhvx\\/\\-mhvx\\= to enable it",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_needs_hvx_version"]={
[f]="A is not supported on HVX B",
[d]=l,
[e]=k,
[j]="%0 is not supported on HVX %1",
[c]=m,
[b]="(.*?) is not supported on HVX (.*?)",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_negative_columns"]={
[f]="invalid value \'A\' in \'B\', value must be \'none\' or a positive integer",
[d]=l,
[e]=k,
[j]="invalid value \'%1\' in \'%0\', value must be \'none\' or a positive integer",
[c]=m,
[b]="invalid value \'(.*?)\' in \'(.*?)\', value must be \'none\' or a positive integer",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_no_ast_support"]={
[f]="\'A\': unable to use AST files with this tool",
[d]=l,
[e]=k,
[j]="\'%0\': unable to use AST files with this tool",
[c]=m,
[b]="\'(.*?)\'\\: unable to use AST files with this tool",
[i]=a,
[h]=a,
[g]={"6cdf83c19279",1251824266,"Add driver support for -emit-ast and AST compilation steps."}
},
["err_drv_no_cuda_installation"]={
[f]="cannot find CUDA installation; provide its path via \'--cuda-path\', or pass \'-nocudainc\' to build without CUDA includes",
[d]=l,
[e]=k,
[j]="cannot find CUDA installation; provide its path via \'--cuda-path\', or pass \'-nocudainc\' to build without CUDA includes",
[c]=m,
[b]="cannot find CUDA installation; provide its path via \'\\-\\-cuda\\-path\', or pass \'\\-nocudainc\' to build without CUDA includes",
[i]=a,
[h]=a,
[g]={"423019d05989",1460765471,"[CUDA] Raise an error if the CUDA install can\'t be found."}
},
["err_drv_no_cuda_libdevice"]={
[f]="cannot find libdevice for A; provide path to different CUDA installation via \'--cuda-path\', or pass \'-nocudalib\' to build without linking with libdevice",
[d]=l,
[e]=k,
[j]="cannot find libdevice for %0; provide path to different CUDA installation via \'--cuda-path\', or pass \'-nocudalib\' to build without linking with libdevice",
[c]=m,
[b]="cannot find libdevice for (.*?); provide path to different CUDA installation via \'\\-\\-cuda\\-path\', or pass \'\\-nocudalib\' to build without linking with libdevice",
[i]=a,
[h]=a,
[g]={"02a1e973a80a",1470179571,"[CUDA] Fix libdevice selection."}
},
["err_drv_no_hip_runtime"]={
[f]="cannot find HIP runtime; provide its path via \'--rocm-path\', or pass \'-nogpuinc\' to build without HIP runtime",
[d]=l,
[e]=k,
[j]="cannot find HIP runtime; provide its path via \'--rocm-path\', or pass \'-nogpuinc\' to build without HIP runtime",
[c]=m,
[b]="cannot find HIP runtime; provide its path via \'\\-\\-rocm\\-path\', or pass \'\\-nogpuinc\' to build without HIP runtime",
[i]=a,
[h]=a,
[g]={Y,1585492323,X}
},
["err_drv_no_hipspv_device_lib"]={
[f]="cannot find HIP device library...; provide its path via \'--hip-path\' or \'--hip-device-lib-path\', or pass \'-nogpulib\' to build without HIP device library",
[d]=l,
[e]=k,
[j]="cannot find HIP device library%select{| for %1}0; provide its path via \'--hip-path\' or \'--hip-device-lib-path\', or pass \'-nogpulib\' to build without HIP device library",
[c]=m,
[b]="cannot find HIP device library(?:| for (.*?)); provide its path via \'\\-\\-hip\\-path\' or \'\\-\\-hip\\-device\\-lib\\-path\', or pass \'\\-nogpulib\' to build without HIP device library",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_no_input_files"]={
[f]="no input files",
[d]=l,
[e]=k,
[j]="no input files",
[c]=m,
[b]="no input files",
[i]=a,
[h]=a,
[g]={q,1237025389,p}
},
["err_drv_no_linker_llvm_support"]={
[f]="\'A\': unable to pass LLVM bit-code files to linker",
[d]=l,
[e]=k,
[j]="\'%0\': unable to pass LLVM bit-code files to linker",
[c]=m,
[b]="\'(.*?)\'\\: unable to pass LLVM bit\\-code files to linker",
[i]=a,
[h]=a,
[g]={"e3e263fb713f",1241295293,"Driver: Generate an error when trying to pass an LLVM bc input to a"}
},
["err_drv_no_module_support"]={
[f]="\'A\': unable to use module files with this tool",
[d]=l,
[e]=k,
[j]="\'%0\': unable to use module files with this tool",
[c]=m,
[b]="\'(.*?)\'\\: unable to use module files with this tool",
[i]=a,
[h]=a,
[g]={"bf7fc9c542f2",1364402838,"<rdar://problem/13509689> Introduce -module-file-info option that provides information about a parti..."}
},
["err_drv_no_neon_modifier"]={
[f]="[no]neon is not accepted as modifier, please use [no]simd instead",
[d]=l,
[e]=k,
[j]="[no]neon is not accepted as modifier, please use [no]simd instead",
[c]=m,
[b]="\\[no\\]neon is not accepted as modifier, please use \\[no\\]simd instead",
[i]=a,
[h]=a,
[g]={"110db6f2ad20",1405667002,"[AArch64] Implement Clang CLI interface proposal about \"-march\"."}
},
["err_drv_no_rocm_device_lib"]={
[f]="cannot find ROCm device library...; provide its path via \'--rocm-path\' or \'--rocm-device-lib-path\', or pass \'-nogpulib\' to build without ROCm device library",
[d]=l,
[e]=k,
[j]="cannot find ROCm device library%select{| for %1|for ABI version %1}0; provide its path via \'--rocm-path\' or \'--rocm-device-lib-path\', or pass \'-nogpulib\' to build without ROCm device library",
[c]=m,
[b]="cannot find ROCm device library(?:| for (.*?)|for ABI version (.*?)); provide its path via \'\\-\\-rocm\\-path\' or \'\\-\\-rocm\\-device\\-lib\\-path\', or pass \'\\-nogpulib\' to build without ROCm device library",
[i]=a,
[h]=a,
[g]={N,1534346725,M}
},
["err_drv_no_such_file"]={
[f]="no such file or directory: \'A\'",
[d]=l,
[e]=k,
[j]="no such file or directory: \'%0\'",
[c]=m,
[b]="no such file or directory\\: \'(.*?)\'",
[i]=a,
[h]=a,
[g]={gc,1236852856,cc}
},
["err_drv_no_such_file_with_suggestion"]={
[f]="no such file or directory: \'A\'; did you mean \'B\'?",
[d]=l,
[e]=k,
[j]="no such file or directory: \'%0\'; did you mean \'%1\'?",
[c]=m,
[b]="no such file or directory\\: \'(.*?)\'; did you mean \'(.*?)\'\\?",
[i]=a,
[h]=a,
[g]={N,1534346725,M}
},
["err_drv_offload_bad_gpu_arch"]={
[f]="unsupported A gpu architecture: B",
[d]=l,
[e]=k,
[j]="unsupported %0 gpu architecture: %1",
[c]=m,
[b]="unsupported (.*?) gpu architecture\\: (.*?)",
[i]=a,
[h]=a,
[g]={"509b631f84e9",1651788595,"[OpenMP] Try to Infer target triples using the offloading architecture"}
},
["err_drv_omp_host_ir_file_not_found"]={
[f]="provided host compiler IR file \'A\' is required to generate code for OpenMP target regions but cannot be found",
[d]=l,
[e]=k,
[j]="provided host compiler IR file \'%0\' is required to generate code for OpenMP target regions but cannot be found",
[c]=m,
[b]="provided host compiler IR file \'(.*?)\' is required to generate code for OpenMP target regions but cannot be found",
[i]=a,
[h]=a,
[g]={"4d5f0bbea1ec",1452010984,"[OpenMP] Offloading descriptor registration and device codegen."}
},
["err_drv_omp_host_target_not_supported"]={
[f]="target \'A\' is not a supported OpenMP host target",
[d]=l,
[e]=k,
[j]="target \'%0\' is not a supported OpenMP host target",
[c]=m,
[b]="target \'(.*?)\' is not a supported OpenMP host target",
[i]=a,
[h]=a,
[g]={"3f465c095b22",1454724754,"[OpenMP] Reorganize code to allow specialized code generation for different devices."}
},
["err_drv_omp_offload_target_bcruntime_not_found"]={
[f]="bitcode library \'A\' does not exist",
[d]=l,
[e]=k,
[j]="bitcode library \'%0\' does not exist",
[c]=m,
[b]="bitcode library \'(.*?)\' does not exist",
[i]=a,
[h]=a,
[g]={Y,1585492323,X}
},
["err_drv_omp_offload_target_cuda_version_not_support"]={
[f]="NVPTX target requires CUDA 9.2 or above; CUDA A detected",
[d]=l,
[e]=k,
[j]="NVPTX target requires CUDA 9.2 or above; CUDA %0 detected",
[c]=m,
[b]="NVPTX target requires CUDA 9\\.2 or above; CUDA (.*?) detected",
[i]=a,
[h]=a,
[g]={Y,1585492323,X}
},
["err_drv_omp_offload_target_missingbcruntime"]={
[f]="no library \'A\' found in the default clang lib directory or in LIBRARY_PATH; use \'--libomptarget-B-bc-path\' to specify C bitcode library",
[d]=l,
[e]=k,
[j]="no library \'%0\' found in the default clang lib directory or in LIBRARY_PATH; use \'--libomptarget-%1-bc-path\' to specify %1 bitcode library",
[c]=m,
[b]="no library \'(.*?)\' found in the default clang lib directory or in LIBRARY_PATH; use \'\\-\\-libomptarget\\-(.*?)\\-bc\\-path\' to specify (.*?) bitcode library",
[i]=a,
[h]=a,
[g]={Y,1585492323,X}
},
["err_drv_only_one_offload_target_supported"]={
[f]="only one offload target is supported",
[d]=l,
[e]=k,
[j]="only one offload target is supported",
[c]=m,
[b]="only one offload target is supported",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_optimization_remark_format"]={
[f]="unknown remark serializer format: \'A\'",
[d]=l,
[e]=k,
[j]="unknown remark serializer format: \'%0\'",
[c]=m,
[b]="unknown remark serializer format\\: \'(.*?)\'",
[i]=a,
[h]=a,
[g]={N,1534346725,M}
},
["err_drv_optimization_remark_pattern"]={
[f]="in pattern \'A\': B",
[d]=l,
[e]=k,
[j]="in pattern \'%1\': %0",
[c]=m,
[b]="in pattern \'(.*?)\'\\: (.*?)",
[i]=a,
[h]=a,
[g]={"829b1700484d",1397667264,"Add support for optimization reports."}
},
["err_drv_out_file_argument_with_multiple_sources"]={
[f]="cannot specify \'AB\' when compiling multiple source files",
[d]=l,
[e]=k,
[j]="cannot specify \'%0%1\' when compiling multiple source files",
[c]=m,
[b]="cannot specify \'(.*?)(.*?)\' when compiling multiple source files",
[i]=a,
[h]=a,
[g]={"9c1659b5b703",1382136544,"clang-cl: diagnose setting asm listing filename with multiple inputs"}
},
["err_drv_output_argument_with_multiple_files"]={
[f]="cannot specify -o when generating multiple output files",
[d]=l,
[e]=k,
[j]="cannot specify -o when generating multiple output files",
[c]=m,
[b]="cannot specify \\-o when generating multiple output files",
[i]=a,
[h]=a,
[g]={"e75d834c7cd9",1237186611,"Driver: Implement majority tool binding logic."}
},
["err_drv_preamble_format"]={
[f]="incorrect format for -preamble-bytes=N,END",
[d]=l,
[e]=k,
[j]="incorrect format for -preamble-bytes=N,END",
[c]=m,
[b]="incorrect format for \\-preamble\\-bytes\\=N,END",
[i]=a,
[h]=a,
[g]={"3f4bea064644",1280180180,"Introduce basic support for loading a precompiled preamble while"}
},
["err_drv_print_header_env_var"]={
[f]="environment variable CC_PRINT_HEADERS_... has invalid value A",
[d]=l,
[e]=k,
[j]="environment variable CC_PRINT_HEADERS_%select{FORMAT|FILTERING}0 has invalid value %1",
[c]=m,
[b]="environment variable CC_PRINT_HEADERS_(?:FORMAT|FILTERING) has invalid value (.*?)",
[i]=a,
[h]=a,
[g]={"3738ce05a70c",1668637223,"Add support for a backdoor driver option that enables emitting header"}
},
["err_drv_print_header_env_var_combination"]={
[f]="unsupported combination: CC_PRINT_HEADERS_FORMAT=A and CC_PRINT_HEADERS_FILTERING=B",
[d]=l,
[e]=k,
[j]="unsupported combination: CC_PRINT_HEADERS_FORMAT=%0 and CC_PRINT_HEADERS_FILTERING=%1",
[c]=m,
[b]="unsupported combination\\: CC_PRINT_HEADERS_FORMAT\\=(.*?) and CC_PRINT_HEADERS_FILTERING\\=(.*?)",
[i]=a,
[h]=a,
[g]={"3738ce05a70c",1668637223,"Add support for a backdoor driver option that enables emitting header"}
},
["err_drv_print_header_env_var_combination_cc1"]={
[f]="unsupported combination: -header-include-format=A and -header-include-filtering=B",
[d]=l,
[e]=k,
[j]="unsupported combination: -header-include-format=%0 and -header-include-filtering=%1",
[c]=m,
[b]="unsupported combination\\: \\-header\\-include\\-format\\=(.*?) and \\-header\\-include\\-filtering\\=(.*?)",
[i]=a,
[h]=a,
[g]={"3738ce05a70c",1668637223,"Add support for a backdoor driver option that enables emitting header"}
},
["err_drv_riscv_unsupported_with_linker_relaxation"]={
[f]="A is unsupported with RISC-V linker relaxation (-mrelax)",
[d]=l,
[e]=k,
[j]="%0 is unsupported with RISC-V linker relaxation (-mrelax)",
[c]=m,
[b]="(.*?) is unsupported with RISC\\-V linker relaxation \\(\\-mrelax\\)",
[i]=a,
[h]=a,
[g]={Ac,1651866463,yc}
},
["err_drv_ropi_incompatible_with_cxx"]={
[f]="ROPI is not compatible with c++",
[d]=l,
[e]=k,
[j]="ROPI is not compatible with c++",
[c]=m,
[b]="ROPI is not compatible with c\\+\\+",
[i]=a,
[h]=a,
[g]={"218c4cbd3d7c",1470670120,"[ARM] Command-line options for embedded position-independent code"}
},
["err_drv_ropi_rwpi_incompatible_with_pic"]={
[f]="embedded and GOT-based position independence are incompatible",
[d]=l,
[e]=k,
[j]="embedded and GOT-based position independence are incompatible",
[c]=m,
[b]="embedded and GOT\\-based position independence are incompatible",
[i]=a,
[h]=a,
[g]={"218c4cbd3d7c",1470670120,"[ARM] Command-line options for embedded position-independent code"}
},
["err_drv_small_columns"]={
[f]="invalid value \'A\' in \'B\', value must be \'C\' or greater",
[d]=l,
[e]=k,
[j]="invalid value \'%1\' in \'%0\', value must be \'%2\' or greater",
[c]=m,
[b]="invalid value \'(.*?)\' in \'(.*?)\', value must be \'(.*?)\' or greater",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_ssp_missing_offset_argument"]={
[f]="\'A\' is used without \'-mstack-protector-guard-offset\', and there is no default",
[d]=l,
[e]=k,
[j]="\'%0\' is used without \'-mstack-protector-guard-offset\', and there is no default",
[c]=m,
[b]="\'(.*?)\' is used without \'\\-mstack\\-protector\\-guard\\-offset\', and there is no default",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_target_variant_invalid"]={
[f]="unsupported \'A\' value \'B\'; use \'ios-macabi\' instead",
[d]=l,
[e]=k,
[j]="unsupported \'%0\' value \'%1\'; use \'ios-macabi\' instead",
[c]=m,
[b]="unsupported \'(.*?)\' value \'(.*?)\'; use \'ios\\-macabi\' instead",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_trivial_auto_var_init_stop_after_invalid_value"]={
[f]="\'-ftrivial-auto-var-init-stop-after=*\' only accepts positive integers",
[d]=l,
[e]=k,
[j]="\'-ftrivial-auto-var-init-stop-after=*\' only accepts positive integers",
[c]=m,
[b]="\'\\-ftrivial\\-auto\\-var\\-init\\-stop\\-after\\=\\*\' only accepts positive integers",
[i]=a,
[h]=a,
[g]={Y,1585492323,X}
},
["err_drv_trivial_auto_var_init_stop_after_missing_dependency"]={
[f]="\'-ftrivial-auto-var-init-stop-after=*\' is used without \'-ftrivial-auto-var-init=zero\' or \'-ftrivial-auto-var-init=pattern\'",
[d]=l,
[e]=k,
[j]="\'-ftrivial-auto-var-init-stop-after=*\' is used without \'-ftrivial-auto-var-init=zero\' or \'-ftrivial-auto-var-init=pattern\'",
[c]=m,
[b]="\'\\-ftrivial\\-auto\\-var\\-init\\-stop\\-after\\=\\*\' is used without \'\\-ftrivial\\-auto\\-var\\-init\\=zero\' or \'\\-ftrivial\\-auto\\-var\\-init\\=pattern\'",
[i]=a,
[h]=a,
[g]={Y,1585492323,X}
},
["err_drv_unable_to_remove_file"]={
[f]="unable to remove file: A",
[d]=l,
[e]=k,
[j]="unable to remove file: %0",
[c]=m,
[b]="unable to remove file\\: (.*?)",
[i]=a,
[h]=a,
[g]={"6c17bfd99b1c",1237414563,"Driver: Cleanup temporary/result files."}
},
["err_drv_unable_to_set_working_directory"]={
[f]="unable to set working directory: A",
[d]=l,
[e]=k,
[j]="unable to set working directory: %0",
[c]=m,
[b]="unable to set working directory\\: (.*?)",
[i]=a,
[h]=a,
[g]={N,1534346725,M}
},
["err_drv_undetermined_gpu_arch"]={
[f]="cannot determine A architecture: B; consider passing it via \'C\'",
[d]=l,
[e]=k,
[j]="cannot determine %0 architecture: %1; consider passing it via \'%2\'",
[c]=m,
[b]="cannot determine (.*?) architecture\\: (.*?); consider passing it via \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"f89327e28bc1",1672206488,"[Driver] [Modules] Support -fmodule-output (1/2)"}
},
["err_drv_unknown_argument"]={
[f]="unknown argument: \'A\'",
[d]=l,
[e]=k,
[j]="unknown argument: \'%0\'",
[c]=m,
[b]="unknown argument\\: \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"0ac66427a9f2",1259531573,"clang -cc1: Use proper diagnostics for all parsing errors."}
},
["err_drv_unknown_argument_with_suggestion"]={
[f]="unknown argument \'A\'; did you mean \'B\'?",
[d]=l,
[e]=k,
[j]="unknown argument \'%0\'; did you mean \'%1\'?",
[c]=m,
[b]="unknown argument \'(.*?)\'; did you mean \'(.*?)\'\\?",
[i]=a,
[h]=a,
[g]={"24910765e266",1515198340,"[Driver] Suggest correctly spelled driver options"}
},
["err_drv_unknown_indirect_jump_opt"]={
[f]="unknown \'-mindirect-jump=\' option \'A\'",
[d]=l,
[e]=k,
[j]="unknown \'-mindirect-jump=\' option \'%0\'",
[c]=m,
[b]="unknown \'\\-mindirect\\-jump\\=\' option \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"0bc2d9b0c5ef",1519171505,"[mips] Spectre variant two mitigation for MIPSR2"}
},
["err_drv_unknown_language"]={
[f]="language not recognized: \'A\'",
[d]=l,
[e]=k,
[j]="language not recognized: \'%0\'",
[c]=m,
[b]="language not recognized\\: \'(.*?)\'",
[i]=a,
[h]=a,
[g]={gc,1236852856,cc}
},
["err_drv_unknown_objc_runtime"]={
[f]="unknown or ill-formed Objective-C runtime \'A\'",
[d]=l,
[e]=k,
[j]="unknown or ill-formed Objective-C runtime \'%0\'",
[c]=m,
[b]="unknown or ill\\-formed Objective\\-C runtime \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"5fb5df9c8385",1340173126,"Restructure how the driver communicates information about the"}
},
["err_drv_unknown_stdin_type"]={
[f]="-E or -x required when input is from standard input",
[d]=l,
[e]=k,
[j]="-E or -x required when input is from standard input",
[c]=m,
[b]="\\-E or \\-x required when input is from standard input",
[i]=a,
[h]=a,
[g]={gc,1236852856,cc}
},
["err_drv_unknown_stdin_type_clang_cl"]={
[f]="use /Tc or /Tp to set input type for standard input",
[d]=l,
[e]=k,
[j]="use /Tc or /Tp to set input type for standard input",
[c]=m,
[b]="use \\/Tc or \\/Tp to set input type for standard input",
[i]=a,
[h]=a,
[g]={"cfdd8b54cfae",1390957480,"clang-cl: Better error message when trying to compile stdin (PR18640)"}
},
["err_drv_unknown_target_triple"]={
[f]="unknown target triple \'A\'",
[d]=l,
[e]=k,
[j]="unknown target triple \'%0\'",
[c]=m,
[b]="unknown target triple \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"6adb9a0602bc",1678065956,"[AMDGPU] Emit predefined macro `__AMDGCN_CUMODE__`"}
},
["err_drv_unsupported_embed_bitcode"]={
[f]="A is not supported with -fembed-bitcode",
[d]=l,
[e]=k,
[j]="%0 is not supported with -fembed-bitcode",
[c]=m,
[b]="(.*?) is not supported with \\-fembed\\-bitcode",
[i]=a,
[h]=a,
[g]={N,1534346725,M}
},
["err_drv_unsupported_fpatchable_function_entry_argument"]={
[f]="the second argument of \'-fpatchable-function-entry\' must be smaller than the first argument",
[d]=l,
[e]=k,
[j]="the second argument of \'-fpatchable-function-entry\' must be smaller than the first argument",
[c]=m,
[b]="the second argument of \'\\-fpatchable\\-function\\-entry\' must be smaller than the first argument",
[i]=a,
[h]=a,
[g]={N,1534346725,M}
},
["err_drv_unsupported_indirect_jump_opt"]={
[f]="\'-mindirect-jump=A\' is unsupported with the \'B\' architecture",
[d]=l,
[e]=k,
[j]="\'-mindirect-jump=%0\' is unsupported with the \'%1\' architecture",
[c]=m,
[b]="\'\\-mindirect\\-jump\\=(.*?)\' is unsupported with the \'(.*?)\' architecture",
[i]=a,
[h]=a,
[g]={"0bc2d9b0c5ef",1519171505,"[mips] Spectre variant two mitigation for MIPSR2"}
},
["err_drv_unsupported_noabicalls_pic"]={
[f]="position-independent code requires \'-mabicalls\'",
[d]=l,
[e]=k,
[j]="position-independent code requires \'-mabicalls\'",
[c]=m,
[b]="position\\-independent code requires \'\\-mabicalls\'",
[i]=a,
[h]=a,
[g]={"f9b3fc5e2bc7",1525702794,"[mips] Improve handling of -fno-[pic/PIC] option"}
},
["err_drv_unsupported_opt"]={
[f]="unsupported option \'A\'",
[d]=l,
[e]=k,
[j]="unsupported option \'%0\'",
[c]=m,
[b]="unsupported option \'(.*?)\'",
[i]=a,
[h]=a,
[g]={gc,1236852856,cc}
},
["err_drv_unsupported_opt_for_language_mode"]={
[f]="unsupported option \'A\' for language mode \'B\'",
[d]=l,
[e]=k,
[j]="unsupported option \'%0\' for language mode \'%1\'",
[c]=m,
[b]="unsupported option \'(.*?)\' for language mode \'(.*?)\'",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_drv_unsupported_opt_for_target"]={
[f]="unsupported option \'A\' for target \'B\'",
[d]=l,
[e]=k,
[j]="unsupported option \'%0\' for target \'%1\'",
[c]=m,
[b]="unsupported option \'(.*?)\' for target \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"76a943be7bee",1353297123,"Completely re-work how the Clang driver interprets PIC and PIE options."}
},
["err_drv_unsupported_opt_with_suggestion"]={
[f]="unsupported option \'A\'; did you mean \'B\'?",
[d]=l,
[e]=k,
[j]="unsupported option \'%0\'; did you mean \'%1\'?",
[c]=m,
[b]="unsupported option \'(.*?)\'; did you mean \'(.*?)\'\\?",
[i]=a,
[h]=a,
[g]={"24910765e266",1515198340,"[Driver] Suggest correctly spelled driver options"}
},
["err_drv_unsupported_option_argument"]={
[f]="unsupported argument \'A\' to option \'B\'",
[d]=l,
[e]=k,
[j]="unsupported argument \'%1\' to option \'%0\'",
[c]=m,
[b]="unsupported argument \'(.*?)\' to option \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"2b4de14b1d0c",1287441375,"Driver/IA: Accept and ignore -force_cpusubtype_ALL, as in \'clang -c"}
},
["err_drv_unsupported_rtlib_for_platform"]={
[f]="unsupported runtime library \'A\' for platform \'B\'",
[d]=l,
[e]=k,
[j]="unsupported runtime library \'%0\' for platform \'%1\'",
[c]=m,
[b]="unsupported runtime library \'(.*?)\' for platform \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"f4916cde7668",1323298995,"Driver: Add a --rtlib={compiler-rt,libgcc} argument which I plan to use to allow"}
},
["err_drv_unsupported_static_sanitizer_darwin"]={
[f]="static A runtime is not supported on darwin",
[d]=l,
[e]=k,
[j]="static %0 runtime is not supported on darwin",
[c]=m,
[b]="static (.*?) runtime is not supported on darwin",
[i]=a,
[h]=a,
[g]={"4e7d40e0928c",1677697623,"[Sanitizers] Error out for -static-libsan on darwin"}
},
["err_dtor_expr_without_call"]={
[f]="reference to ... must be called...",
[d]=l,
[e]=k,
[j]="reference to %select{destructor|pseudo-destructor}0 must be called%select{|; did you mean to call it with no arguments?}1",
[c]=m,
[b]="reference to (?:destructor|pseudo\\-destructor) must be called(?:|; did you mean to call it with no arguments\\?)",
[i]=a,
[h]=n,
[g]={"bddb73fa1df4",1252088980,"If a destructor is referenced or a pseudo-destructor expression is"}
},
["err_dup_implementation_category"]={
[f]="reimplementation of category A for class B",
[d]=l,
[e]=k,
[j]="reimplementation of category %1 for class %0",
[c]=m,
[b]="reimplementation of category (.*?) for class (.*?)",
[i]=a,
[h]=n,
[g]={"6d9fab76195c",1248134753,"- Introduce ASTContext::getObjCImplementation() and ASTContext::setObjCImplementation() which use a ..."}
},
["err_dup_implementation_class"]={
[f]="reimplementation of class A",
[d]=l,
[e]=k,
[j]="reimplementation of class %0",
[c]=m,
[b]="reimplementation of class (.*?)",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_dup_virtual"]={
[f]="duplicate \'virtual\' in base specifier",
[d]=l,
[e]=k,
[j]="duplicate \'virtual\' in base specifier",
[c]=m,
[b]="duplicate \'virtual\' in base specifier",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_duplicate_base_class"]={
[f]="base class A specified more than once as a direct base class",
[d]=l,
[e]=k,
[j]="base class %0 specified more than once as a direct base class",
[c]=m,
[b]="base class (.*?) specified more than once as a direct base class",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_duplicate_case"]={
[f]="duplicate case value \'A\'",
[d]=l,
[e]=k,
[j]="duplicate case value \'%0\'",
[c]=m,
[b]="duplicate case value \'(.*?)\'",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_duplicate_case_differing_expr"]={
[f]="duplicate case value: \'A\' and \'B\' both equal \'C\'",
[d]=l,
[e]=k,
[j]="duplicate case value: \'%0\' and \'%1\' both equal \'%2\'",
[c]=m,
[b]="duplicate case value\\: \'(.*?)\' and \'(.*?)\' both equal \'(.*?)\'",
[i]=a,
[h]=n,
[g]={"9841df655e37",1337146378,"Produce more useful \'duplicate case\' diagnostics. Fixes PR9243, from Terry Long!"}
},
["err_duplicate_class_def"]={
[f]="duplicate interface definition for class A",
[d]=l,
[e]=k,
[j]="duplicate interface definition for class %0",
[c]=m,
[b]="duplicate interface definition for class (.*?)",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_duplicate_class_virt_specifier"]={
[f]="class already marked \'A\'",
[d]=l,
[e]=k,
[j]="class already marked \'%0\'",
[c]=m,
[b]="class already marked \'(.*?)\'",
[i]=a,
[h]=o,
[g]={"4b63d0e0a7e5",1295715406,"Parse class-virt-specifier-seqs."}
},
["err_duplicate_declspec"]={
[f]="duplicate \'A\' declaration specifier",
[d]=l,
[e]=k,
[j]="duplicate \'%0\' declaration specifier",
[c]=m,
[b]="duplicate \'(.*?)\' declaration specifier",
[i]=a,
[h]=a,
[g]={"5fe2ddbdf47d",1556928540,"[clang] adding explicit(bool) from c++2a"}
},
["err_duplicate_default_assoc"]={
[f]="duplicate default generic association",
[d]=l,
[e]=k,
[j]="duplicate default generic association",
[c]=m,
[b]="duplicate default generic association",
[i]=a,
[h]=o,
[g]={Kb,1302827748,Sb}
},
["err_duplicate_ivar_declaration"]={
[f]="instance variable is already declared",
[d]=l,
[e]=k,
[j]="instance variable is already declared",
[c]=m,
[b]="instance variable is already declared",
[i]=a,
[h]=n,
[g]={"34e3cef4836d",1266613134,"Start supporting declaration of ivars in @implementation"}
},
["err_duplicate_ivar_use"]={
[f]="synthesized properties A and B both claim instance variable C",
[d]=l,
[e]=k,
[j]="synthesized properties %0 and %1 both claim instance variable %2",
[c]=m,
[b]="synthesized properties (.*?) and (.*?) both claim instance variable (.*?)",
[i]=a,
[h]=n,
[g]={P,1480718311,O}
},
["err_duplicate_mangled_name"]={
[f]="definition with same mangled name \'A\' as another definition",
[d]=l,
[e]=k,
[j]="definition with same mangled name \'%0\' as another definition",
[c]=m,
[b]="definition with same mangled name \'(.*?)\' as another definition",
[i]=a,
[h]=a,
[g]={"f405dd62ecd6",1385232095,"[CodeGen] If there is a function definition with duplicate mangled name, emit an error instead of as..."}
},
["err_duplicate_member"]={
[f]="duplicate member A",
[d]=l,
[e]=k,
[j]="duplicate member %0",
[c]=m,
[b]="duplicate member (.*?)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_duplicate_method_decl"]={
[f]="duplicate declaration of method A",
[d]=l,
[e]=k,
[j]="duplicate declaration of method %0",
[c]=m,
[b]="duplicate declaration of method (.*?)",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_duplicate_property"]={
[f]="property has a previous declaration",
[d]=l,
[e]=k,
[j]="property has a previous declaration",
[c]=m,
[b]="property has a previous declaration",
[i]=a,
[h]=n,
[g]={"057a17e4c518",1261010949,"Diagnose duplicate declaration of a property. Fixes"}
},
["err_duplicate_virt_specifier"]={
[f]="class member already marked \'A\'",
[d]=l,
[e]=k,
[j]="class member already marked \'%0\'",
[c]=m,
[b]="class member already marked \'(.*?)\'",
[i]=a,
[h]=o,
[g]={"5610490cdfd7",1295233547,"Change ParseOptionalCXX0XVirtSpecifierSeq to take a VirtSpecifiers struct."}
},
["err_dynamic_and_noexcept_specification"]={
[f]="cannot have both throw() and noexcept() clause on the same function",
[d]=l,
[e]=k,
[j]="cannot have both throw() and noexcept() clause on the same function",
[c]=m,
[b]="cannot have both throw\\(\\) and noexcept\\(\\) clause on the same function",
[i]=a,
[h]=o,
[g]={"965b0e3106c1",1299336316,"Parser support for noexcept specifications."}
},
["err_dynamic_property_ivar_decl"]={
[f]="dynamic property cannot have instance variable specification",
[d]=l,
[e]=k,
[j]="dynamic property cannot have instance variable specification",
[c]=m,
[b]="dynamic property cannot have instance variable specification",
[i]=a,
[h]=n,
[g]={P,1480718311,O}
},
["err_dynamic_var_init"]={
[f]="dynamic initialization is not supported for __device__, __constant__, __shared__, and __managed__ variables.",
[d]=l,
[e]=k,
[j]="dynamic initialization is not supported for __device__, __constant__, __shared__, and __managed__ variables.",
[c]=m,
[b]="dynamic initialization is not supported for __device__, __constant__, __shared__, and __managed__ variables\\.",
[i]=a,
[h]=n,
[g]={"97c01c35f8da",1454452188,"[CUDA] Do not allow dynamic initialization of global device side variables."}
},
["err_early_catch_all"]={
[f]="catch-all handler must come last",
[d]=l,
[e]=k,
[j]="catch-all handler must come last",
[c]=m,
[b]="catch\\-all handler must come last",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_ellipsis_first_param"]={
[f]="ISO C requires a named parameter before \'...\'",
[d]=l,
[e]=k,
[j]="ISO C requires a named parameter before \'...\'",
[c]=m,
[b]="ISO C requires a named parameter before \'\\.\\.\\.\'",
[i]=a,
[h]=n,
[g]={"1b13dab60860",1399824371,"Parameter/argument terminology fixes"}
},
["err_ellipsis_in_declarator_not_parameter"]={
[f]="only function and template parameters can be parameter packs",
[d]=l,
[e]=k,
[j]="only function and template parameters can be parameter packs",
[c]=m,
[b]="only function and template parameters can be parameter packs",
[i]=a,
[h]=n,
[g]={"27b4c16fefde",1293144282,"Implement parsing of function parameter packs and non-type template"}
},
["err_embedded_directive"]={
[f]="embedding a #A directive within macro arguments is not supported",
[d]=l,
[e]=k,
[j]="embedding a #%0 directive within macro arguments is not supported",
[c]=m,
[b]="embedding a \\#(.*?) directive within macro arguments is not supported",
[i]=a,
[h]=t,
[g]={"f2d3bc047406",1419752569,"Lex: Don\'t let annotation tokens get into macro expansion"}
},
["err_empty_enum"]={
[f]="use of empty enum",
[d]=l,
[e]=k,
[j]="use of empty enum",
[c]=m,
[b]="use of empty enum",
[i]=a,
[h]=o,
[g]={P,1480718311,O}
},
["err_empty_requires_expr"]={
[f]="a requires expression must contain at least one requirement",
[d]=l,
[e]=k,
[j]="a requires expression must contain at least one requirement",
[c]=m,
[b]="a requires expression must contain at least one requirement",
[i]=a,
[h]=o,
[g]={"739b410f1ff5",1570627358,"Add a warning, flags and pragmas to limit the number of pre-processor tokens in a translation unit"}
},
["err_empty_scalar_initializer"]={
[f]="scalar initializer cannot be empty",
[d]=l,
[e]=k,
[j]="scalar initializer cannot be empty",
[c]=m,
[b]="scalar initializer cannot be empty",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_empty_sizeless_initializer"]={
[f]="initializer for sizeless type A cannot be empty",
[d]=l,
[e]=k,
[j]="initializer for sizeless type %0 cannot be empty",
[c]=m,
[b]="initializer for sizeless type (.*?) cannot be empty",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_enum_invalid_underlying"]={
[f]="non-integral type A is an invalid underlying type",
[d]=l,
[e]=k,
[j]="non-integral type %0 is an invalid underlying type",
[c]=m,
[b]="non\\-integral type (.*?) is an invalid underlying type",
[i]=a,
[h]=n,
[g]={Wb,1286581827,Yb}
},
["err_enum_mode_vector_type"]={
[f]="mode A is not supported for enumeration types",
[d]=l,
[e]=k,
[j]="mode %0 is not supported for enumeration types",
[c]=m,
[b]="mode (.*?) is not supported for enumeration types",
[i]=a,
[h]=n,
[g]={"d9e2dcdb424f",1454421039,"Fix for PR8901: attribute \"mode\" rejected for enums and dependent types."}
},
["err_enum_redeclare_fixed_mismatch"]={
[f]="enumeration previously declared with ...fixed underlying type",
[d]=l,
[e]=k,
[j]="enumeration previously declared with %select{non|}0fixed underlying type",
[c]=m,
[b]="enumeration previously declared with (?:non|)fixed underlying type",
[i]=a,
[h]=n,
[g]={Wb,1286581827,Yb}
},
["err_enum_redeclare_scoped_mismatch"]={
[f]="enumeration previously declared as ...scoped",
[d]=l,
[e]=k,
[j]="enumeration previously declared as %select{un|}0scoped",
[c]=m,
[b]="enumeration previously declared as (?:un|)scoped",
[i]=a,
[h]=n,
[g]={Wb,1286581827,Yb}
},
["err_enum_redeclare_type_mismatch"]={
[f]="enumeration redeclared with different underlying type A (was B)",
[d]=l,
[e]=k,
[j]="enumeration redeclared with different underlying type %0 (was %1)",
[c]=m,
[b]="enumeration redeclared with different underlying type (.*?) \\(was (.*?)\\)",
[i]=a,
[h]=n,
[g]={Wb,1286581827,Yb}
},
["err_enum_template"]={
[f]="enumeration cannot be a template",
[d]=l,
[e]=k,
[j]="enumeration cannot be a template",
[c]=m,
[b]="enumeration cannot be a template",
[i]=a,
[h]=o,
[g]={"dc70c3abc081",1267552394,"Diagnose the declaration of enum templates. Also, be a bit more"}
},
["err_enumerator_does_not_exist"]={
[f]="enumerator A does not exist in instantiation of B",
[d]=l,
[e]=k,
[j]="enumerator %0 does not exist in instantiation of %1",
[c]=m,
[b]="enumerator (.*?) does not exist in instantiation of (.*?)",
[i]=a,
[h]=n,
[g]={"169f2190013d",1332793696,"Add a special-case diagnostic for one of the more obnoxious special cases of"}
},
["err_enumerator_list_missing_comma"]={
[f]="missing \',\' between enumerators",
[d]=l,
[e]=k,
[j]="missing \',\' between enumerators",
[c]=m,
[b]="missing \',\' between enumerators",
[i]=a,
[h]=o,
[g]={"ce66d028771d",1283871068,"Improve recovery when a comma is missing between enumerators in an"}
},
["err_enumerator_too_large"]={
[f]="enumerator value is not representable in the underlying type A",
[d]=l,
[e]=k,
[j]="enumerator value is not representable in the underlying type %0",
[c]=m,
[b]="enumerator value is not representable in the underlying type (.*?)",
[i]=a,
[h]=n,
[g]={Wb,1286581827,Yb}
},
["err_enumerator_unnamed_no_def"]={
[f]="unnamed enumeration must be a definition",
[d]=l,
[e]=k,
[j]="unnamed enumeration must be a definition",
[c]=m,
[b]="unnamed enumeration must be a definition",
[i]=a,
[h]=o,
[g]={"6cd5ae4dfa75",1298343324,"Fix a little bug in the handling of enumeration types with a fixed"}
},
["err_enumerator_wrapped"]={
[f]="enumerator value A is not representable in the underlying type B",
[d]=l,
[e]=k,
[j]="enumerator value %0 is not representable in the underlying type %1",
[c]=m,
[b]="enumerator value (.*?) is not representable in the underlying type (.*?)",
[i]=a,
[h]=n,
[g]={Wb,1286581827,Yb}
},
["err_escape_too_large"]={
[f]="... escape sequence out of range",
[d]=l,
[e]=k,
[j]="%select{hex|octal}0 escape sequence out of range",
[c]=m,
[b]="(?:hex|octal) escape sequence out of range",
[i]=a,
[h]=t,
[g]={"7f5ff2175f68",1447466995,"Use %select to merge similar diagnostics. NFC"}
},
["err_event_t_addr_space_qual"]={
[f]="the event_t type can only be used with __private address space qualifier",
[d]=l,
[e]=k,
[j]="the event_t type can only be used with __private address space qualifier",
[c]=m,
[b]="the event_t type can only be used with __private address space qualifier",
[i]=a,
[h]=n,
[g]={"1b4fb3e08b28",1358685071,"Implement OpenCL event_t as Clang builtin type, including event_t related OpenCL restrictions (OpenC..."}
},
["err_except_spec_unparsed"]={
[f]="unexpected end of exception specification",
[d]=l,
[e]=k,
[j]="unexpected end of exception specification",
[c]=m,
[b]="unexpected end of exception specification",
[i]=a,
[h]=o,
[g]={"433e05306fa0",1334600847,"Implement the last part of C++ [class.mem]p2, delaying the parsing of"}
},
["err_exception_spec_cycle"]={
[f]="exception specification of A uses itself",
[d]=l,
[e]=k,
[j]="exception specification of %0 uses itself",
[c]=m,
[b]="exception specification of (.*?) uses itself",
[i]=a,
[h]=n,
[g]={"54f18e8a8570",1472609721,"PR12298 et al: don\'t recursively instantiate a template specialization from"}
},
["err_exception_spec_in_typedef"]={
[f]="exception specifications are not allowed in ...",
[d]=l,
[e]=k,
[j]="exception specifications are not allowed in %select{typedefs|type aliases}0",
[c]=m,
[b]="exception specifications are not allowed in (?:typedefs|type aliases)",
[i]=a,
[h]=n,
[g]={"fb3f1794e112",1243770447,"Disallow exception specs on typedefs."}
},
["err_exception_spec_incomplete_type"]={
[f]="exception specification needed for member of incomplete class A",
[d]=l,
[e]=k,
[j]="exception specification needed for member of incomplete class %0",
[c]=m,
[b]="exception specification needed for member of incomplete class (.*?)",
[i]=a,
[h]=n,
[g]={"5159bbad8b2b",1536186637,"PR38627: Fix handling of exception specification adjustment for"}
},
["err_exception_spec_not_parsed"]={
[f]="exception specification is not available until end of class definition",
[d]=l,
[e]=k,
[j]="exception specification is not available until end of class definition",
[c]=m,
[b]="exception specification is not available until end of class definition",
[i]=a,
[h]=n,
[g]={"0b3a46247edb",1415908917,"PR21437, final part of DR1330: delay-parsing of exception-specifications. This"}
},
["err_exceptions_disabled"]={
[f]="cannot use \'A\' with exceptions disabled",
[d]=l,
[e]=k,
[j]="cannot use \'%0\' with exceptions disabled",
[c]=m,
[b]="cannot use \'(.*?)\' with exceptions disabled",
[i]=a,
[h]=n,
[g]={"68b36aff4676",1298143604,"Disallow try/catch/throw when exceptions are disabled."}
},
["err_excess_initializers"]={
[f]="excess elements in ... initializer",
[d]=l,
[e]=k,
[j]="excess elements in %select{array|vector|scalar|union|struct}0 initializer",
[c]=m,
[b]="excess elements in (?:array|vector|scalar|union|struct) initializer",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_excess_initializers_for_sizeless_type"]={
[f]="excess elements in initializer for indivisible sizeless type A",
[d]=l,
[e]=k,
[j]="excess elements in initializer for indivisible sizeless type %0",
[c]=m,
[b]="excess elements in initializer for indivisible sizeless type (.*?)",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_excess_initializers_in_char_array_initializer"]={
[f]="excess elements in char array initializer",
[d]=l,
[e]=k,
[j]="excess elements in char array initializer",
[c]=m,
[b]="excess elements in char array initializer",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_expected"]={
[f]="expected A",
[d]=l,
[e]=k,
[j]="expected %0",
[c]=m,
[b]="expected (.*?)",
[i]=a,
[h]=o,
[g]={"ec543279db99",1387878510,"Support and use token kinds as diagnostic arguments"}
},
["err_expected_after"]={
[f]="expected A after B",
[d]=l,
[e]=k,
[j]="expected %1 after %0",
[c]=m,
[b]="expected (.*?) after (.*?)",
[i]=a,
[h]=o,
[g]={"ec543279db99",1387878510,"Support and use token kinds as diagnostic arguments"}
},
["err_expected_allocator_clause"]={
[f]="expected an \'allocator\' clause inside of the target region; provide an \'allocator\' clause or use \'requires\' directive with the \'dynamic_allocators\' clause",
[d]=l,
[e]=k,
[j]="expected an \'allocator\' clause inside of the target region; provide an \'allocator\' clause or use \'requires\' directive with the \'dynamic_allocators\' clause",
[c]=m,
[b]="expected an \'allocator\' clause inside of the target region; provide an \'allocator\' clause or use \'requires\' directive with the \'dynamic_allocators\' clause",
[i]=a,
[h]=u,
[g]={"2213dd61d623",1553265699,"[OPENMP]Emit error message for allocate directive without allocator"}
},
["err_expected_allocator_expression"]={
[f]="expected an allocator expression inside of the target region; provide an allocator expression or use \'requires\' directive with the \'dynamic_allocators\' clause",
[d]=l,
[e]=k,
[j]="expected an allocator expression inside of the target region; provide an allocator expression or use \'requires\' directive with the \'dynamic_allocators\' clause",
[c]=m,
[b]="expected an allocator expression inside of the target region; provide an allocator expression or use \'requires\' directive with the \'dynamic_allocators\' clause",
[i]=a,
[h]=u,
[g]={"84c8baeef71e",1554137819,"[OPENMP]Allocate clause allocator in target region."}
},
["err_expected_begin_assumes"]={
[f]="\'#pragma omp end assumes\' with no matching \'#pragma omp begin assumes\'",
[d]=l,
[e]=k,
[j]="\'#pragma omp end assumes\' with no matching \'#pragma omp begin assumes\'",
[c]=m,
[b]="\'\\#pragma omp end assumes\' with no matching \'\\#pragma omp begin assumes\'",
[i]=a,
[h]=o,
[g]={"38d18d93534d",1601621202,"[SVE] Add support to vectorize_width loop pragma for scalable vectors"}
},
["err_expected_begin_declare_variant"]={
[f]="\'#pragma omp end declare variant\' with no matching \'#pragma omp begin declare variant\'",
[d]=l,
[e]=k,
[j]="\'#pragma omp end declare variant\' with no matching \'#pragma omp begin declare variant\'",
[c]=m,
[b]="\'\\#pragma omp end declare variant\' with no matching \'\\#pragma omp begin declare variant\'",
[i]=a,
[h]=o,
[g]={zc,1582039343,rc}
},
["err_expected_callable_argument"]={
[f]="expected a callable expression as A argument to B, found C",
[d]=l,
[e]=k,
[j]="expected a callable expression as %ordinal0 argument to %1, found %2",
[c]=m,
[b]="expected a callable expression as (.*?) argument to (.*?), found (.*?)",
[i]=a,
[h]=n,
[g]={rb,1620530452,sb}
},
["err_expected_capture"]={
[f]="expected variable name or \'this\' in lambda capture list",
[d]=l,
[e]=k,
[j]="expected variable name or \'this\' in lambda capture list",
[c]=m,
[b]="expected variable name or \'this\' in lambda capture list",
[i]=a,
[h]=o,
[g]={"db0b9f126459",1312471847,"Parsing of C++0x lambda expressions, from John Freeman with help from"}
},
["err_expected_case_before_expression"]={
[f]="expected \'case\' keyword before expression",
[d]=l,
[e]=k,
[j]="expected \'case\' keyword before expression",
[c]=m,
[b]="expected \'case\' keyword before expression",
[i]=a,
[h]=o,
[g]={"2c850c09801b",1303422266,"Add a fixit suggest for missing case keywords inside a switch scope.  For instance, in the following..."}
},
["err_expected_catch"]={
[f]="expected catch",
[d]=l,
[e]=k,
[j]="expected catch",
[c]=m,
[b]="expected catch",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_class_name"]={
[f]="expected class name",
[d]=l,
[e]=k,
[j]="expected class name",
[c]=m,
[b]="expected class name",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_class_name_not_template"]={
[f]="\'typename\' is redundant; base classes are implicitly types",
[d]=l,
[e]=k,
[j]="\'typename\' is redundant; base classes are implicitly types",
[c]=m,
[b]="\'typename\' is redundant; base classes are implicitly types",
[i]=a,
[h]=o,
[g]={"dd58d4ca8fbc",1319568401,"Handle redundant \'typename\' on base class specifications."}
},
["err_expected_class_or_namespace"]={
[f]="A is not a class...",
[d]=l,
[e]=k,
[j]="%0 is not a class%select{ or namespace|, namespace, or enumeration}1",
[c]=m,
[b]="(.*?) is not a class(?: or namespace|, namespace, or enumeration)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_expected_colon_after_setter_name"]={
[f]="method name referenced in property setter attribute must end with \':\'",
[d]=l,
[e]=k,
[j]="method name referenced in property setter attribute must end with \':\'",
[c]=m,
[b]="method name referenced in property setter attribute must end with \'\\:\'",
[i]=a,
[h]=t,
[g]={"8efe0ec89928",1266272411,"Issue a bettter diagnostics for incorrect property setter name."}
},
["err_expected_coloncolon_after_super"]={
[f]="expected \'::\' after \'__super\'",
[d]=l,
[e]=k,
[j]="expected \'::\' after \'__super\'",
[c]=m,
[b]="expected \'\\:\\:\' after \'__super\'",
[i]=a,
[h]=o,
[g]={"67860249e064",1411691300,"-ms-extensions: Implement __super scope specifier (PR13236)."}
},
["err_expected_comma_greater"]={
[f]="expected \',\' or \'>\' in template-parameter-list",
[d]=l,
[e]=k,
[j]="expected \',\' or \'>\' in template-parameter-list",
[c]=m,
[b]="expected \',\' or \'\\>\' in template\\-parameter\\-list",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_comma_or_rsquare"]={
[f]="expected \',\' or \']\' in lambda capture list",
[d]=l,
[e]=k,
[j]="expected \',\' or \']\' in lambda capture list",
[c]=m,
[b]="expected \',\' or \'\\]\' in lambda capture list",
[i]=a,
[h]=o,
[g]={"db0b9f126459",1312471847,"Parsing of C++0x lambda expressions, from John Freeman with help from"}
},
["err_expected_either"]={
[f]="expected A or B",
[d]=l,
[e]=k,
[j]="expected %0 or %1",
[c]=m,
[b]="expected (.*?) or (.*?)",
[i]=a,
[h]=o,
[g]={"ec543279db99",1387878510,"Support and use token kinds as diagnostic arguments"}
},
["err_expected_end_declare_target_or_variant"]={
[f]="expected \'#pragma omp end declare ...\'",
[d]=l,
[e]=k,
[j]="expected \'#pragma omp end declare %select{target|variant}0\'",
[c]=m,
[b]="expected \'\\#pragma omp end declare (?:target|variant)\'",
[i]=a,
[h]=o,
[g]={zc,1582039343,rc}
},
["err_expected_end_of_enumerator"]={
[f]="expected \'= constant-expression\' or end of enumerator definition",
[d]=l,
[e]=k,
[j]="expected \'= constant-expression\' or end of enumerator definition",
[c]=m,
[b]="expected \'\\= constant\\-expression\' or end of enumerator definition",
[i]=a,
[h]=o,
[g]={"2e3ecb660ad8",1388471163,"Recover from errors in enum definition"}
},
["err_expected_equal_designator"]={
[f]="expected \'=\' or another designator",
[d]=l,
[e]=k,
[j]="expected \'=\' or another designator",
[c]=m,
[b]="expected \'\\=\' or another designator",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_expression"]={
[f]="expected expression",
[d]=l,
[e]=k,
[j]="expected expression",
[c]=m,
[b]="expected expression",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_external_declaration"]={
[f]="expected external declaration",
[d]=l,
[e]=k,
[j]="expected external declaration",
[c]=m,
[b]="expected external declaration",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_field_designator"]={
[f]="expected a field designator, such as \'.field = 4\'",
[d]=l,
[e]=k,
[j]="expected a field designator, such as \'.field = 4\'",
[c]=m,
[b]="expected a field designator, such as \'\\.field \\= 4\'",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_fn_body"]={
[f]="expected function body after function declarator",
[d]=l,
[e]=k,
[j]="expected function body after function declarator",
[c]=m,
[b]="expected function body after function declarator",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_fold_operator"]={
[f]="expected a foldable binary operator in fold expression",
[d]=l,
[e]=k,
[j]="expected a foldable binary operator in fold expression",
[c]=m,
[b]="expected a foldable binary operator in fold expression",
[i]=a,
[h]=o,
[g]={vc,1415423236,nc}
},
["err_expected_id_building_module"]={
[f]="expected a module name in \'__building_module\' expression",
[d]=l,
[e]=k,
[j]="expected a module name in \'__building_module\' expression",
[c]=m,
[b]="expected a module name in \'__building_module\' expression",
[i]=a,
[h]=t,
[g]={"c83de30addc1",1348587892,"Introduce builtin macros to determine whether we\'re building a"}
},
["err_expected_init_in_condition"]={
[f]="variable declaration in condition must have an initializer",
[d]=l,
[e]=k,
[j]="variable declaration in condition must have an initializer",
[c]=m,
[b]="variable declaration in condition must have an initializer",
[i]=a,
[h]=o,
[g]={"2a15b7460577",1329893349,"Accept braced-init-lists in conditions, and, in passing, dramatically improve"}
},
["err_expected_init_in_condition_lparen"]={
[f]="variable declaration in condition cannot have a parenthesized initializer",
[d]=l,
[e]=k,
[j]="variable declaration in condition cannot have a parenthesized initializer",
[c]=m,
[b]="variable declaration in condition cannot have a parenthesized initializer",
[i]=a,
[h]=o,
[g]={"2a15b7460577",1329893349,"Accept braced-init-lists in conditions, and, in passing, dramatically improve"}
},
["err_expected_kernel_void_return_type"]={
[f]="kernel must have void return type",
[d]=l,
[e]=k,
[j]="kernel must have void return type",
[c]=m,
[b]="kernel must have void return type",
[i]=a,
[h]=n,
[g]={"0f86433efbaa",1359575332,"Add OpenCL error that a kernel function must have void return type. Includes a test case."}
},
["err_expected_lambda_body"]={
[f]="expected body of lambda expression",
[d]=l,
[e]=k,
[j]="expected body of lambda expression",
[c]=m,
[b]="expected body of lambda expression",
[i]=a,
[h]=o,
[g]={"db0b9f126459",1312471847,"Parsing of C++0x lambda expressions, from John Freeman with help from"}
},
["err_expected_lbrace_after_base_specifiers"]={
[f]="expected \'{\' after base class list",
[d]=l,
[e]=k,
[j]="expected \'{\' after base class list",
[c]=m,
[b]="expected \'\\{\' after base class list",
[i]=a,
[h]=o,
[g]={"2d814c305e24",1261259338,"Parse base specifiers within the scope of the class.  This is possibly not"}
},
["err_expected_lbrace_in_compound_literal"]={
[f]="expected \'{\' in compound literal",
[d]=l,
[e]=k,
[j]="expected \'{\' in compound literal",
[c]=m,
[b]="expected \'\\{\' in compound literal",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_less_after"]={
[f]="expected \'<\' after \'A\'",
[d]=l,
[e]=k,
[j]="expected \'<\' after \'%0\'",
[c]=m,
[b]="expected \'\\<\' after \'(.*?)\'",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_lparen_after"]={
[f]="expected \'(\' after \'A\'",
[d]=l,
[e]=k,
[j]="expected \'(\' after \'%0\'",
[c]=m,
[b]="expected \'\\(\' after \'(.*?)\'",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_lparen_after_type"]={
[f]="expected \'(\' for function-style cast or type construction",
[d]=l,
[e]=k,
[j]="expected \'(\' for function-style cast or type construction",
[c]=m,
[b]="expected \'\\(\' for function\\-style cast or type construction",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_member_name_or_semi"]={
[f]="expected member name or \';\' after declaration specifiers",
[d]=l,
[e]=k,
[j]="expected member name or \';\' after declaration specifiers",
[c]=m,
[b]="expected member name or \';\' after declaration specifiers",
[i]=a,
[h]=o,
[g]={q,1237025389,p}
},
["err_expected_member_name_or_semi_objcxx_keyword"]={
[f]="expected member name or \';\' after declaration specifiers; A is a keyword in Objective-C++",
[d]=l,
[e]=k,
[j]="expected member name or \';\' after declaration specifiers; %0 is a keyword in Objective-C++",
[c]=m,
[b]="expected member name or \';\' after declaration specifiers; (.*?) is a keyword in Objective\\-C\\+\\+",
[i]=a,
[h]=o,
[g]={"f127821140b1",1491922913,"[Parser][ObjC++] Improve diagnostics and recovery when C++ keywords are used"}
},
["err_expected_member_or_base_name"]={
[f]="expected class member or base class name",
[d]=l,
[e]=k,
[j]="expected class member or base class name",
[c]=m,
[b]="expected class member or base class name",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_method_body"]={
[f]="expected method body",
[d]=l,
[e]=k,
[j]="expected method body",
[c]=m,
[b]="expected method body",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_minus_or_plus"]={
[f]="method type specifier must start with \'-\' or \'+\'",
[d]=l,
[e]=k,
[j]="method type specifier must start with \'-\' or \'+\'",
[c]=m,
[b]="method type specifier must start with \'\\-\' or \'\\+\'",
[i]=a,
[h]=o,
[g]={"d077f719be76",1270250140,"Improve diagnosing when a method type does not start with \'-\'|\'+\'"}
},
["err_expected_namespace_name"]={
[f]="expected namespace name",
[d]=l,
[e]=k,
[j]="expected namespace name",
[c]=m,
[b]="expected namespace name",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_objc_container"]={
[f]="\'@end\' must appear in an Objective-C context",
[d]=l,
[e]=k,
[j]="\'@end\' must appear in an Objective-C context",
[c]=m,
[b]="\'@end\' must appear in an Objective\\-C context",
[i]=a,
[h]=o,
[g]={"c6c8d9356dc0",1323163523,"Extend warnings for missing \'@end\'."}
},
["err_expected_parameter_pack"]={
[f]="expected the name of a parameter pack",
[d]=l,
[e]=k,
[j]="expected the name of a parameter pack",
[c]=m,
[b]="expected the name of a parameter pack",
[i]=a,
[h]=o,
[g]={"820ba7ba43a2",1294162438,"Implement the sizeof...(pack) expression to compute the length of a"}
},
["err_expected_parentheses_around_typename"]={
[f]="expected parentheses around type name in A expression",
[d]=l,
[e]=k,
[j]="expected parentheses around type name in %0 expression",
[c]=m,
[b]="expected parentheses around type name in (.*?) expression",
[i]=a,
[h]=o,
[g]={"767c1f84283a",1381278143,"Make wording for certain invalid unary expressions more consistent."}
},
["err_expected_property_name"]={
[f]="expected property name",
[d]=l,
[e]=k,
[j]="expected property name",
[c]=m,
[b]="expected property name",
[i]=a,
[h]=o,
[g]={"5566290b341e",1256490288,"In objc mode, every identifier in a cast expression was using doing a"}
},
["err_expected_punc"]={
[f]="expected \')\' or \',\' after \'A\'",
[d]=l,
[e]=k,
[j]="expected \')\' or \',\' after \'%0\'",
[c]=m,
[b]="expected \'\\)\' or \',\' after \'(.*?)\'",
[i]=a,
[h]=o,
[g]={"4bb0980d9628",1392061815,"MS ABI: Add support for #pragma pointers_to_members"}
},
["err_expected_qualified_after_typename"]={
[f]="expected a qualified name after \'typename\'",
[d]=l,
[e]=k,
[j]="expected a qualified name after \'typename\'",
[c]=m,
[b]="expected a qualified name after \'typename\'",
[i]=a,
[h]=o,
[g]={"333489bba35d",1238195448,"Initial implementation of parsing, semantic analysis, and template"}
},
["err_expected_rparen_after"]={
[f]="expected \')\' after \'A\'",
[d]=l,
[e]=k,
[j]="expected \')\' after \'%0\'",
[c]=m,
[b]="expected \'\\)\' after \'(.*?)\'",
[i]=a,
[h]=o,
[g]={"4bb0980d9628",1392061815,"MS ABI: Add support for #pragma pointers_to_members"}
},
["err_expected_selector_for_method"]={
[f]="expected selector for Objective-C method",
[d]=l,
[e]=k,
[j]="expected selector for Objective-C method",
[c]=m,
[b]="expected selector for Objective\\-C method",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_semantic_identifier"]={
[f]="expected HLSL Semantic identifier",
[d]=l,
[e]=k,
[j]="expected HLSL Semantic identifier",
[c]=m,
[b]="expected HLSL Semantic identifier",
[i]=a,
[h]=a,
[g]={"1fdf952deeb9",1648668015,"[HLSL] Add Semantic syntax, and SV_GroupIndex"}
},
["err_expected_semi_after_attribute_list"]={
[f]="expected \';\' after attribute list",
[d]=l,
[e]=k,
[j]="expected \';\' after attribute list",
[c]=m,
[b]="expected \';\' after attribute list",
[i]=a,
[h]=o,
[g]={"34a9566c8c3b",1244938068,"improve localizability by not passing english phrases into "}
},
["err_expected_semi_after_expr"]={
[f]="expected \';\' after expression",
[d]=l,
[e]=k,
[j]="expected \';\' after expression",
[c]=m,
[b]="expected \';\' after expression",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_semi_after_method_proto"]={
[f]="expected \';\' after method prototype",
[d]=l,
[e]=k,
[j]="expected \';\' after method prototype",
[c]=m,
[b]="expected \';\' after method prototype",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_semi_after_namespace_name"]={
[f]="expected \';\' after namespace name",
[d]=l,
[e]=k,
[j]="expected \';\' after namespace name",
[c]=m,
[b]="expected \';\' after namespace name",
[i]=a,
[h]=o,
[g]={"34a9566c8c3b",1244938068,"improve localizability by not passing english phrases into "}
},
["err_expected_semi_after_static_assert"]={
[f]="expected \';\' after \'A\'",
[d]=l,
[e]=k,
[j]="expected \';\' after \'%0\'",
[c]=m,
[b]="expected \';\' after \'(.*?)\'",
[i]=a,
[h]=o,
[g]={q,1237025389,p}
},
["err_expected_semi_after_stmt"]={
[f]="expected \';\' after A statement",
[d]=l,
[e]=k,
[j]="expected \';\' after %0 statement",
[c]=m,
[b]="expected \';\' after (.*?) statement",
[i]=a,
[h]=o,
[g]={"34a9566c8c3b",1244938068,"improve localizability by not passing english phrases into "}
},
["err_expected_semi_decl_list"]={
[f]="expected \';\' at end of declaration list",
[d]=l,
[e]=k,
[j]="expected \';\' at end of declaration list",
[c]=m,
[b]="expected \';\' at end of declaration list",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_semi_declaration"]={
[f]="expected \';\' at end of declaration",
[d]=l,
[e]=k,
[j]="expected \';\' at end of declaration",
[c]=m,
[b]="expected \';\' at end of declaration",
[i]=a,
[h]=o,
[g]={"ef50e9978389",1249006835,"sp."}
},
["err_expected_semi_for"]={
[f]="expected \';\' in \'for\' statement specifier",
[d]=l,
[e]=k,
[j]="expected \';\' in \'for\' statement specifier",
[c]=m,
[b]="expected \';\' in \'for\' statement specifier",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_semi_requirement"]={
[f]="expected \';\' at end of requirement",
[d]=l,
[e]=k,
[j]="expected \';\' at end of requirement",
[c]=m,
[b]="expected \';\' at end of requirement",
[i]=a,
[h]=o,
[g]={"739b410f1ff5",1570627358,"Add a warning, flags and pragmas to limit the number of pre-processor tokens in a translation unit"}
},
["err_expected_sequence_or_directive"]={
[f]="expected an OpenMP \'directive\' or \'sequence\' attribute argument",
[d]=l,
[e]=k,
[j]="expected an OpenMP \'directive\' or \'sequence\' attribute argument",
[c]=m,
[b]="expected an OpenMP \'directive\' or \'sequence\' attribute argument",
[i]=a,
[h]=o,
[g]={Lb,1612659633,Gb}
},
["err_expected_star_this_capture"]={
[f]="expected \'this\' following \'*\' in lambda capture list",
[d]=l,
[e]=k,
[j]="expected \'this\' following \'*\' in lambda capture list",
[c]=m,
[b]="expected \'this\' following \'\\*\' in lambda capture list",
[i]=a,
[h]=o,
[g]={"dc6b596ebbd3",1458552337,"[Cxx1z] Implement Lambda Capture of *this by Value as [=,*this] (P0018R3)"}
},
["err_expected_statement"]={
[f]="expected statement",
[d]=l,
[e]=k,
[j]="expected statement",
[c]=m,
[b]="expected statement",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_string_literal"]={
[f]="expected string literal ...",
[d]=l,
[e]=k,
[j]="expected string literal %select{in %1|for diagnostic message in static_assert|for optional message in \'availability\' attribute|for %select{language name|source container name|USR}1 in \'external_source_symbol\' attribute}0",
[c]=m,
[b]="expected string literal (?:in (.*?)|for diagnostic message in static_assert|for optional message in \'availability\' attribute|for (?:language name|source container name|USR) in \'external_source_symbol\' attribute)",
[i]=a,
[h]=t,
[g]={s,1236199783,r}
},
["err_expected_struct_pointer_argument"]={
[f]="expected pointer to struct as A argument to B, found C",
[d]=l,
[e]=k,
[j]="expected pointer to struct as %ordinal0 argument to %1, found %2",
[c]=m,
[b]="expected pointer to struct as (.*?) argument to (.*?), found (.*?)",
[i]=a,
[h]=n,
[g]={rb,1620530452,sb}
},
["err_expected_template"]={
[f]="expected template",
[d]=l,
[e]=k,
[j]="expected template",
[c]=m,
[b]="expected template",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_template_parameter"]={
[f]="expected template parameter",
[d]=l,
[e]=k,
[j]="expected template parameter",
[c]=m,
[b]="expected template parameter",
[i]=a,
[h]=o,
[g]={"89f13cb5bfde",1333755239,"Remove \"parse error\" in favor of more descriptive diagnostics."}
},
["err_expected_token_instead_of_objcxx_keyword"]={
[f]="expected A; B is a keyword in Objective-C++",
[d]=l,
[e]=k,
[j]="expected %0; %1 is a keyword in Objective-C++",
[c]=m,
[b]="expected (.*?); (.*?) is a keyword in Objective\\-C\\+\\+",
[i]=a,
[h]=o,
[g]={"f127821140b1",1491922913,"[Parser][ObjC++] Improve diagnostics and recovery when C++ keywords are used"}
},
["err_expected_type"]={
[f]="expected a type",
[d]=l,
[e]=k,
[j]="expected a type",
[c]=m,
[b]="expected a type",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_type_name_after_typename"]={
[f]="expected an identifier or template-id after \'::\'",
[d]=l,
[e]=k,
[j]="expected an identifier or template-id after \'::\'",
[c]=m,
[b]="expected an identifier or template\\-id after \'\\:\\:\'",
[i]=a,
[h]=o,
[g]={"dce2b62b7006",1238545739,"Parsing, semantic analysis, and template instantiation for typename"}
},
["err_expected_unqualified_id"]={
[f]="expected ...",
[d]=l,
[e]=k,
[j]="expected %select{identifier|unqualified-id}0",
[c]=m,
[b]="expected (?:identifier|unqualified\\-id)",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_expected_version"]={
[f]="expected a version of the form \'major[.minor[.subminor]]\'",
[d]=l,
[e]=k,
[j]="expected a version of the form \'major[.minor[.subminor]]\'",
[c]=m,
[b]="expected a version of the form \'major\\[\\.minor\\[\\.subminor\\]\\]\'",
[i]=a,
[h]=o,
[g]={Dc,1300841403,pc}
},
["err_expected_while"]={
[f]="expected \'while\' in do/while loop",
[d]=l,
[e]=k,
[j]="expected \'while\' in do/while loop",
[c]=m,
[b]="expected \'while\' in do\\/while loop",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_experimental_clang_interp_failed"]={
[f]="the experimental clang interpreter failed to evaluate an expression",
[d]=l,
[e]=k,
[j]="the experimental clang interpreter failed to evaluate an expression",
[c]=m,
[b]="the experimental clang interpreter failed to evaluate an expression",
[i]=a,
[h]=a,
[g]={"a55909505497",1567177329,"[Clang Interpreter] Initial patch for the constexpr interpreter"}
},
["err_explicit_instantiation_ambiguous"]={
[f]="partial ordering for explicit instantiation of A is ambiguous",
[d]=l,
[e]=k,
[j]="partial ordering for explicit instantiation of %0 is ambiguous",
[c]=m,
[b]="partial ordering for explicit instantiation of (.*?) is ambiguous",
[i]=a,
[h]=n,
[g]={lc,1253904180,kc}
},
["err_explicit_instantiation_constexpr"]={
[f]="explicit instantiation cannot be \'constexpr\'",
[d]=l,
[e]=k,
[j]="explicit instantiation cannot be \'constexpr\'",
[c]=m,
[b]="explicit instantiation cannot be \'constexpr\'",
[i]=a,
[h]=n,
[g]={"465841e48c92",1318622282,"[temp.explicit]p1: constexpr cannot be specified in explicit instantiations."}
},
["err_explicit_instantiation_data_member_not_instantiated"]={
[f]="explicit instantiation refers to static data member A that is not an instantiation",
[d]=l,
[e]=k,
[j]="explicit instantiation refers to static data member %q0 that is not an instantiation",
[c]=m,
[b]="explicit instantiation refers to static data member (.*?) that is not an instantiation",
[i]=a,
[h]=n,
[g]={lc,1253904180,kc}
},
["err_explicit_instantiation_declaration_after_definition"]={
[f]="explicit instantiation declaration (with \'extern\') follows explicit instantiation definition (without \'extern\')",
[d]=l,
[e]=k,
[j]="explicit instantiation declaration (with \'extern\') follows explicit instantiation definition (without \'extern\')",
[c]=m,
[b]="explicit instantiation declaration \\(with \'extern\'\\) follows explicit instantiation definition \\(without \'extern\'\\)",
[i]=a,
[h]=n,
[g]={"d6ba93dc6eb6",1255622045,"Check the interactions between explicit instantiations and template"}
},
["err_explicit_instantiation_dependent"]={
[f]="explicit instantiation has dependent template arguments",
[d]=l,
[e]=k,
[j]="explicit instantiation has dependent template arguments",
[c]=m,
[b]="explicit instantiation has dependent template arguments",
[i]=a,
[h]=n,
[g]={G,1582847864,I}
},
["err_explicit_instantiation_duplicate"]={
[f]="duplicate explicit instantiation of A",
[d]=l,
[e]=k,
[j]="duplicate explicit instantiation of %0",
[c]=m,
[b]="duplicate explicit instantiation of (.*?)",
[i]=a,
[h]=n,
[g]={"f61eca93c05f",1242239300,"Improve the semantic checking for explicit instantiations of"}
},
["err_explicit_instantiation_enum"]={
[f]="enumerations cannot be explicitly instantiated",
[d]=l,
[e]=k,
[j]="enumerations cannot be explicitly instantiated",
[c]=m,
[b]="enumerations cannot be explicitly instantiated",
[i]=a,
[h]=o,
[g]={"2ec748cd5a66",1242260891,"Implement explicit instantiations of member classes of class templates, e.g.,"}
},
["err_explicit_instantiation_in_class"]={
[f]="explicit instantiation of A in class scope",
[d]=l,
[e]=k,
[j]="explicit instantiation of %0 in class scope",
[c]=m,
[b]="explicit instantiation of (.*?) in class scope",
[i]=a,
[h]=n,
[g]={"6cc1df5d3d52",1278979804,"Provide a special diagnostic for attempts to explicitly specialize"}
},
["err_explicit_instantiation_inline"]={
[f]="explicit instantiation cannot be \'inline\'",
[d]=l,
[e]=k,
[j]="explicit instantiation cannot be \'inline\'",
[c]=m,
[b]="explicit instantiation cannot be \'inline\'",
[i]=a,
[h]=n,
[g]={"3c74d41d2711",1255551273,"Testing and some minor fixes for explicit template instantiation."}
},
["err_explicit_instantiation_internal_linkage"]={
[f]="explicit instantiation declaration of A with internal linkage",
[d]=l,
[e]=k,
[j]="explicit instantiation declaration of %0 with internal linkage",
[c]=m,
[b]="explicit instantiation declaration of (.*?) with internal linkage",
[i]=a,
[h]=n,
[g]={"eeab4518e1d7",1556063280,"C++ DR2387: a variable template declared wtih (or instantiated with) a"}
},
["err_explicit_instantiation_member_function_not_instantiated"]={
[f]="explicit instantiation refers to member function A that is not an instantiation",
[d]=l,
[e]=k,
[j]="explicit instantiation refers to member function %q0 that is not an instantiation",
[c]=m,
[b]="explicit instantiation refers to member function (.*?) that is not an instantiation",
[i]=a,
[h]=n,
[g]={lc,1253904180,kc}
},
["err_explicit_instantiation_must_be_global"]={
[f]="explicit instantiation of A must occur at global scope",
[d]=l,
[e]=k,
[j]="explicit instantiation of %0 must occur at global scope",
[c]=m,
[b]="explicit instantiation of (.*?) must occur at global scope",
[i]=a,
[h]=n,
[g]={"e47f5a76ccd7",1255563694,"Additional semantic checking for explicit template instantiations,"}
},
["err_explicit_instantiation_nontemplate_type"]={
[f]="explicit instantiation of non-templated type A",
[d]=l,
[e]=k,
[j]="explicit instantiation of non-templated type %0",
[c]=m,
[b]="explicit instantiation of non\\-templated type (.*?)",
[i]=a,
[h]=n,
[g]={"2ec748cd5a66",1242260891,"Implement explicit instantiations of member classes of class templates, e.g.,"}
},
["err_explicit_instantiation_not_known"]={
[f]="explicit instantiation of A does not refer to a function template, variable template, member function, member class, or static data member",
[d]=l,
[e]=k,
[j]="explicit instantiation of %0 does not refer to a function template, variable template, member function, member class, or static data member",
[c]=m,
[b]="explicit instantiation of (.*?) does not refer to a function template, variable template, member function, member class, or static data member",
[i]=a,
[h]=n,
[g]={lc,1253904180,kc}
},
["err_explicit_instantiation_of_typedef"]={
[f]="explicit instantiation of typedef A",
[d]=l,
[e]=k,
[j]="explicit instantiation of typedef %0",
[c]=m,
[b]="explicit instantiation of typedef (.*?)",
[i]=a,
[h]=n,
[g]={lc,1253904180,kc}
},
["err_explicit_instantiation_out_of_scope"]={
[f]="explicit instantiation of A not in a namespace enclosing B",
[d]=l,
[e]=k,
[j]="explicit instantiation of %0 not in a namespace enclosing %1",
[c]=m,
[b]="explicit instantiation of (.*?) not in a namespace enclosing (.*?)",
[i]=a,
[h]=n,
[g]={"2ec748cd5a66",1242260891,"Implement explicit instantiations of member classes of class templates, e.g.,"}
},
["err_explicit_instantiation_requires_name"]={
[f]="explicit instantiation declaration requires a name",
[d]=l,
[e]=k,
[j]="explicit instantiation declaration requires a name",
[c]=m,
[b]="explicit instantiation declaration requires a name",
[i]=a,
[h]=n,
[g]={lc,1253904180,kc}
},
["err_explicit_instantiation_storage_class"]={
[f]="explicit instantiation cannot have a storage class",
[d]=l,
[e]=k,
[j]="explicit instantiation cannot have a storage class",
[c]=m,
[b]="explicit instantiation cannot have a storage class",
[i]=a,
[h]=n,
[g]={"781ba6e4071e",1306004010,"Diagnose the presence of storage-class-specifiers on explicit"}
},
["err_explicit_instantiation_undefined_func_template"]={
[f]="explicit instantiation of undefined function template A",
[d]=l,
[e]=k,
[j]="explicit instantiation of undefined function template %0",
[c]=m,
[b]="explicit instantiation of undefined function template (.*?)",
[i]=a,
[h]=n,
[g]={"a8b89d26224a",1255615549,"Diagnose explicit instantiations of function templates and member"}
},
["err_explicit_instantiation_undefined_member"]={
[f]="explicit instantiation of undefined ... A of class template B",
[d]=l,
[e]=k,
[j]="explicit instantiation of undefined %select{member class|member function|static data member}0 %1 of class template %2",
[c]=m,
[b]="explicit instantiation of undefined (?:member class|member function|static data member) (.*?) of class template (.*?)",
[i]=a,
[h]=n,
[g]={"a8b89d26224a",1255615549,"Diagnose explicit instantiations of function templates and member"}
},
["err_explicit_instantiation_undefined_var_template"]={
[f]="explicit instantiation of undefined variable template A",
[d]=l,
[e]=k,
[j]="explicit instantiation of undefined variable template %q0",
[c]=m,
[b]="explicit instantiation of undefined variable template (.*?)",
[i]=a,
[h]=n,
[g]={"39a1e507ff0b",1375750985,"Started implementing variable templates. Top level declarations should be fully supported, up to som..."}
},
["err_explicit_instantiation_unqualified_wrong_namespace"]={
[f]="explicit instantiation of A must occur in namespace B",
[d]=l,
[e]=k,
[j]="explicit instantiation of %q0 must occur in namespace %1",
[c]=m,
[b]="explicit instantiation of (.*?) must occur in namespace (.*?)",
[i]=a,
[h]=n,
[g]={"e47f5a76ccd7",1255563694,"Additional semantic checking for explicit template instantiations,"}
},
["err_explicit_instantiation_with_definition"]={
[f]="explicit template instantiation cannot have a definition; if this definition is meant to be an explicit specialization, add \'<>\' after the \'template\' keyword",
[d]=l,
[e]=k,
[j]="explicit template instantiation cannot have a definition; if this definition is meant to be an explicit specialization, add \'<>\' after the \'template\' keyword",
[c]=m,
[b]="explicit template instantiation cannot have a definition; if this definition is meant to be an explicit specialization, add \'\\<\\>\' after the \'template\' keyword",
[i]=a,
[h]=o,
[g]={"1b57ff32a828",1242170750,"Implement parsing for explicit instantiations of class templates, e.g.,"}
},
["err_explicit_instantiation_without_template_id"]={
[f]="explicit instantiation of A must specify a template argument list",
[d]=l,
[e]=k,
[j]="explicit instantiation of %q0 must specify a template argument list",
[c]=m,
[b]="explicit instantiation of (.*?) must specify a template argument list",
[i]=a,
[h]=n,
[g]={"ef985ac91c07",1379470212,"Fix accepts-invalid if a variable template explicit instantiation is missing an"}
},
["err_explicit_non_ctor_or_conv_function"]={
[f]="\'explicit\' can only be applied to a constructor or conversion function",
[d]=l,
[e]=k,
[j]="\'explicit\' can only be applied to a constructor or conversion function",
[c]=m,
[b]="\'explicit\' can only be applied to a constructor or conversion function",
[i]=a,
[h]=n,
[g]={"77babdb99a99",1264351786,"Implement [dcl.fct.spec]p6."}
},
["err_explicit_non_function"]={
[f]="\'explicit\' can only appear on non-static member functions",
[d]=l,
[e]=k,
[j]="\'explicit\' can only appear on non-static member functions",
[c]=m,
[b]="\'explicit\' can only appear on non\\-static member functions",
[i]=a,
[h]=n,
[g]={"574c74537027",1239133077,"Diagnose uses of function specifiers on declarations which don\'t declare"}
},
["err_explicit_out_of_class"]={
[f]="\'explicit\' can only be specified inside the class definition",
[d]=l,
[e]=k,
[j]="\'explicit\' can only be specified inside the class definition",
[c]=m,
[b]="\'explicit\' can only be specified inside the class definition",
[i]=a,
[h]=n,
[g]={"77babdb99a99",1264351786,"Implement [dcl.fct.spec]p6."}
},
["err_explicit_spec_non_template"]={
[f]="explicit ... of ...template A B",
[d]=l,
[e]=k,
[j]="explicit %select{specialization|instantiation}0 of %select{non-|undeclared }3template %1 %2",
[c]=m,
[b]="explicit (?:specialization|instantiation) of (?:non\\-|undeclared )template (.*?) (.*?)",
[i]=a,
[h]=o,
[g]={"916462b2f7b2",1256939218,"Improve diagnostics when parsing something like"}
},
["err_explicit_specialization_inconsistent_storage_class"]={
[f]="explicit specialization has extraneous, inconsistent storage class \'...\'",
[d]=l,
[e]=k,
[j]="explicit specialization has extraneous, inconsistent storage class \'%select{none|extern|static|__private_extern__|auto|register}0\'",
[c]=m,
[b]="explicit specialization has extraneous, inconsistent storage class \'(?:none|extern|static|__private_extern__|auto|register)\'",
[i]=a,
[h]=n,
[g]={"84265a09d625",1308287348,"When an explicit specialization has a storage specifier, error if that"}
},
["err_exponent_has_no_digits"]={
[f]="exponent has no digits",
[d]=l,
[e]=k,
[j]="exponent has no digits",
[c]=m,
[b]="exponent has no digits",
[i]=a,
[h]=t,
[g]={s,1236199783,r}
},
["err_export_anon_ns_internal"]={
[f]="anonymous namespaces cannot be exported",
[d]=l,
[e]=k,
[j]="anonymous namespaces cannot be exported",
[c]=m,
[b]="anonymous namespaces cannot be exported",
[i]=a,
[h]=x,
[g]={w,1625925174,v}
},
["err_export_empty"]={
[f]="export declaration cannot be empty",
[d]=l,
[e]=k,
[j]="export declaration cannot be empty",
[c]=m,
[b]="export declaration cannot be empty",
[i]=a,
[h]=x,
[g]={"8df390f9ebc8",1473376494,"C++ Modules TS: Add parsing and some semantic analysis support for"}
},
["err_export_in_private_module_fragment"]={
[f]="export declaration cannot be used in a private module fragment",
[d]=l,
[e]=k,
[j]="export declaration cannot be used in a private module fragment",
[c]=m,
[b]="export declaration cannot be used in a private module fragment",
[i]=a,
[h]=x,
[g]={"a5bbbfef156c",1555621974,"[c++2a] Add semantic support for private module fragments."}
},
["err_export_inline_not_defined"]={
[f]="inline function not defined...",
[d]=l,
[e]=k,
[j]="inline function not defined%select{| before the private module fragment}0",
[c]=m,
[b]="inline function not defined(?:| before the private module fragment)",
[i]=a,
[h]=x,
[g]={w,1625925174,v}
},
["err_export_internal"]={
[f]="declaration of A with internal linkage cannot be exported",
[d]=l,
[e]=k,
[j]="declaration of %0 with internal linkage cannot be exported",
[c]=m,
[b]="declaration of (.*?) with internal linkage cannot be exported",
[i]=a,
[h]=x,
[g]={"e181de7f4fe9",1555973411,"[c++2a] Implement semantic restrictions for \'export\' declarations."}
},
["err_export_non_namespace_scope_name"]={
[f]="cannot export A as it is not at namespace scope",
[d]=l,
[e]=k,
[j]="cannot export %0 as it is not at namespace scope",
[c]=m,
[b]="cannot export (.*?) as it is not at namespace scope",
[i]=a,
[h]=n,
[g]={R,1616787805,S}
},
["err_export_not_in_module_interface"]={
[f]="export declaration can only be used within a module purview",
[d]=l,
[e]=k,
[j]="export declaration can only be used within a module purview",
[c]=m,
[b]="export declaration can only be used within a module purview",
[i]=a,
[h]=x,
[g]={"145e15a37b7d",1493075550,"[modules ts] Diagnose \'export\' declarations outside of a module interface."}
},
["err_export_partition_impl"]={
[f]="module partition implementations cannot be exported",
[d]=l,
[e]=k,
[j]="module partition implementations cannot be exported",
[c]=m,
[b]="module partition implementations cannot be exported",
[i]=a,
[h]=x,
[g]={hb,1620118562,jb}
},
["err_export_using_internal"]={
[f]="using declaration referring to A with ... linkage cannot be exported",
[d]=l,
[e]=k,
[j]="using declaration referring to %1 with %select{internal|module|unknown}0 linkage cannot be exported",
[c]=m,
[b]="using declaration referring to (.*?) with (?:internal|module|unknown) linkage cannot be exported",
[i]=a,
[h]=x,
[g]={"e181de7f4fe9",1555973411,"[c++2a] Implement semantic restrictions for \'export\' declarations."}
},
["err_export_within_anonymous_namespace"]={
[f]="export declaration appears within anonymous namespace",
[d]=l,
[e]=k,
[j]="export declaration appears within anonymous namespace",
[c]=m,
[b]="export declaration appears within anonymous namespace",
[i]=a,
[h]=x,
[g]={"e181de7f4fe9",1555973411,"[c++2a] Implement semantic restrictions for \'export\' declarations."}
},
["err_export_within_export"]={
[f]="export declaration appears within another export declaration",
[d]=l,
[e]=k,
[j]="export declaration appears within another export declaration",
[c]=m,
[b]="export declaration appears within another export declaration",
[i]=a,
[h]=x,
[g]={"3b66056a3f50",1474925243,"[Modules TS] Diagnose \'export\' declaration within \'export\' declaration."}
},
["err_expr_not_cce"]={
[f]="... is not a constant expression",
[d]=l,
[e]=k,
[j]="%select{case value|enumerator value|non-type template argument|array size|explicit specifier argument|noexcept specifier argument|call to \'size()\'|call to \'data()\'}0 is not a constant expression",
[c]=m,
[b]="(?:case value|enumerator value|non\\-type template argument|array size|explicit specifier argument|noexcept specifier argument|call to \'size\\(\\)\'|call to \'data\\(\\)\') is not a constant expression",
[i]=a,
[h]=n,
[g]={"f8379a0fc359",1326930952,"constexpr: converted constant expression handling for enumerator values, case"}
},
["err_expr_not_ice"]={
[f]="expression is not an ... constant expression",
[d]=l,
[e]=k,
[j]="expression is not an %select{integer|integral}0 constant expression",
[c]=m,
[b]="expression is not an (?:integer|integral) constant expression",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_expr_not_string_literal"]={
[f]="expression is not a string literal",
[d]=l,
[e]=k,
[j]="expression is not a string literal",
[c]=m,
[b]="expression is not a string literal",
[i]=a,
[h]=n,
[g]={"59b2d8390941",1434390661,"This patch implements clang support for the ACLE special register intrinsics"}
},
["err_ext_vector_component_exceeds_length"]={
[f]="vector component access exceeds type A",
[d]=l,
[e]=k,
[j]="vector component access exceeds type %0",
[c]=m,
[b]="vector component access exceeds type (.*?)",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_ext_vector_component_name_illegal"]={
[f]="illegal vector component name \'A\'",
[d]=l,
[e]=k,
[j]="illegal vector component name \'%0\'",
[c]=m,
[b]="illegal vector component name \'(.*?)\'",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_extdefmap_parsing"]={
[f]="error parsing index file: \'A\' line: B \'<USR-Length>:<USR> <File-Path>\' format expected",
[d]=l,
[e]=k,
[j]="error parsing index file: \'%0\' line: %1 \'<USR-Length>:<USR> <File-Path>\' format expected",
[c]=m,
[b]="error parsing index file\\: \'(.*?)\' line\\: (.*?) \'\\<USR\\-Length\\>\\:\\<USR\\> \\<File\\-Path\\>\' format expected",
[i]=a,
[h]=a,
[g]={"8c48705a1975",1547142244,"[analyzer][CrossTU][NFC] Generalize to external definitions instead of external functions"}
},
["err_extern_c_global_conflict"]={
[f]="declaration of A ... conflicts with declaration ...",
[d]=l,
[e]=k,
[j]="declaration of %1 %select{with C language linkage|in global scope}0 conflicts with declaration %select{in global scope|with C language linkage}0",
[c]=m,
[b]="declaration of (.*?) (?:with C language linkage|in global scope) conflicts with declaration (?:in global scope|with C language linkage)",
[i]=a,
[h]=n,
[g]={"902befa2773d",1372457031,"PR7927, PR16247: Reimplement handling of matching extern \"C\" declarations"}
},
["err_extern_def_in_header_unit"]={
[f]="non-inline external definitions are not permitted in C++ header units",
[d]=l,
[e]=k,
[j]="non-inline external definitions are not permitted in C++ header units",
[c]=m,
[b]="non\\-inline external definitions are not permitted in C\\+\\+ header units",
[i]=a,
[h]=x,
[g]={w,1625925174,v}
},
["err_extern_non_extern"]={
[f]="extern declaration of A follows non-extern declaration",
[d]=l,
[e]=k,
[j]="extern declaration of %0 follows non-extern declaration",
[c]=m,
[b]="extern declaration of (.*?) follows non\\-extern declaration",
[i]=a,
[h]=n,
[g]={"819f61094216",1296457486,"Diagnose if extern local variable is followed by non-extern and vice-versa."}
},
["err_external_source_symbol_duplicate_clause"]={
[f]="duplicate A clause in an \'external_source_symbol\' attribute",
[d]=l,
[e]=k,
[j]="duplicate %0 clause in an \'external_source_symbol\' attribute",
[c]=m,
[b]="duplicate (.*?) clause in an \'external_source_symbol\' attribute",
[i]=a,
[h]=o,
[g]={"d5d27e16d423",1488391585,"Introduce an \'external_source_symbol\' attribute that describes the origin"}
},
["err_external_source_symbol_expected_keyword"]={
[f]="expected \'language\', \'defined_in\', \'generated_declaration\', or \'USR\'",
[d]=l,
[e]=k,
[j]="expected \'language\', \'defined_in\', \'generated_declaration\', or \'USR\'",
[c]=m,
[b]="expected \'language\', \'defined_in\', \'generated_declaration\', or \'USR\'",
[i]=a,
[h]=o,
[g]={"d5d27e16d423",1488391585,"Introduce an \'external_source_symbol\' attribute that describes the origin"}
},
["err_extract_api_ignores_file_not_found"]={
[f]="file \'A\' specified by \'--extract-api-ignores=\' not found",
[d]=y,
[e]=z,
[j]="file \'%0\' specified by \'--extract-api-ignores=\' not found",
[c]=A,
[b]="file \'(.*?)\' specified by \'\\-\\-extract\\-api\\-ignores\\=\' not found",
[i]=a,
[h]=a,
[g]={"a033dbbe5c43",1666225776,"[Clang] Give Clang the ability to use a shared stat cache"}
},
["err_extraneous_closing_brace"]={
[f]="extraneous closing brace (\'}\')",
[d]=l,
[e]=k,
[j]="extraneous closing brace (\'}\')",
[c]=m,
[b]="extraneous closing brace \\(\'\\}\'\\)",
[i]=a,
[h]=o,
[g]={"e1df10a79ea0",1326762267,"Improve diagnostics for dangling \'}\'."}
},
["err_extraneous_rparen_in_condition"]={
[f]="extraneous \')\' after condition, expected a statement",
[d]=l,
[e]=k,
[j]="extraneous \')\' after condition, expected a statement",
[c]=m,
[b]="extraneous \'\\)\' after condition, expected a statement",
[i]=a,
[h]=o,
[g]={"70d449889924",1335630260,"improve error recovery for extra \')\'s after a if/switch/while condition.  Before:"}
},
["err_extraneous_token_before_semi"]={
[f]="extraneous \'A\' before \';\'",
[d]=l,
[e]=k,
[j]="extraneous \'%0\' before \';\'",
[c]=m,
[b]="extraneous \'(.*?)\' before \';\'",
[i]=a,
[h]=o,
[g]={"45d6bdfa88d5",1283872991,"Improve recovery when there is a stray \']\' or \')\' before the \';\' at"}
},
["err_falloff_nonvoid_block"]={
[f]="non-void block does not return a value",
[d]=l,
[e]=k,
[j]="non-void block does not return a value",
[c]=m,
[b]="non\\-void block does not return a value",
[i]=a,
[h]=n,
[g]={"3bf1ab48d304",1248818641,"Add noreturn support for blocks."}
},
["err_fallthrough_attr_invalid_placement"]={
[f]="fallthrough annotation does not directly precede switch label",
[d]=l,
[e]=k,
[j]="fallthrough annotation does not directly precede switch label",
[c]=m,
[b]="fallthrough annotation does not directly precede switch label",
[i]=a,
[h]=n,
[g]={"4f902c7eccd4",1457397175,"P0188R1: add support for standard [[fallthrough]] attribute. This is almost"}
},
["err_fallthrough_attr_outside_switch"]={
[f]="fallthrough annotation is outside switch statement",
[d]=l,
[e]=k,
[j]="fallthrough annotation is outside switch statement",
[c]=m,
[b]="fallthrough annotation is outside switch statement",
[i]=a,
[h]=n,
[g]={"84837d5b5aa0",1336069659,"Add -Wimplicit-fallthrough warning flag, which warns on fallthrough between"}
},
["err_fallthrough_attr_wrong_target"]={
[f]="A attribute is only allowed on empty statements",
[d]=l,
[e]=k,
[j]="%0 attribute is only allowed on empty statements",
[c]=m,
[b]="(.*?) attribute is only allowed on empty statements",
[i]=a,
[h]=n,
[g]={"84837d5b5aa0",1336069659,"Add -Wimplicit-fallthrough warning flag, which warns on fallthrough between"}
},
["err_fe_action_not_available"]={
[f]="action A not compiled in",
[d]=l,
[e]=k,
[j]="action %0 not compiled in",
[c]=m,
[b]="action (.*?) not compiled in",
[i]=a,
[h]=a,
[g]={"d93c8c008efe",1355414982,"Dont use/link ARCMT, StaticAnalyzer and Rewriter to clang when the user"}
},
["err_fe_ast_file_modified"]={
[f]="file \'A\' has been modified since the ... \'B\' was built: ... changed...",
[d]=y,
[e]=z,
[j]="file \'%0\' has been modified since the %select{precompiled header|module file|AST file}1 \'%2\' was built: %select{size|mtime|content}3 changed%select{| (was %5, now %6)}4",
[c]=A,
[b]="file \'(.*?)\' has been modified since the (?:precompiled header|module file|AST file) \'(.*?)\' was built\\: (?:size|mtime|content) changed(?:| \\(was (.*?), now (.*?)\\))",
[i]=a,
[h]=U,
[g]={"c8c9415644fa",1477092903,"Module: correctly set the module file kind when emitting file_modified."}
},
["err_fe_backend_error_attr"]={
[f]="call to \'A\' declared with \'error\' attribute: B",
[d]=l,
[e]=k,
[j]="call to \'%0\' declared with \'error\' attribute: %1",
[c]=m,
[b]="call to \'(.*?)\' declared with \'error\' attribute\\: (.*?)",
[i]=a,
[h]="Backend Issue",
[g]={"846e562dcc6a",1629911893,"[Clang] add support for error+warning fn attrs"}
},
["err_fe_backend_resource_limit"]={
[f]="A (B) exceeds limit (C) in \'D\'",
[d]=l,
[e]=k,
[j]="%0 (%1) exceeds limit (%2) in \'%3\'",
[c]=m,
[b]="(.*?) \\((.*?)\\) exceeds limit \\((.*?)\\) in \'(.*?)\'",
[i]=a,
[h]="Backend Issue",
[g]={"a033dbbe5c43",1666225776,"[Clang] Give Clang the ability to use a shared stat cache"}
},
["err_fe_dependency_file_requires_MT"]={
[f]="-dependency-file requires at least one -MT or -MQ option",
[d]=l,
[e]=k,
[j]="-dependency-file requires at least one -MT or -MQ option",
[c]=m,
[b]="\\-dependency\\-file requires at least one \\-MT or \\-MQ option",
[i]=a,
[h]=a,
[g]={"7ad807f248ae",1256850318,"Move some clang-cc errors to use diagnostics, and simplify."}
},
["err_fe_error_backend"]={
[f]="error in backend: A",
[d]=y,
[e]=z,
[j]="error in backend: %0",
[c]=A,
[b]="error in backend\\: (.*?)",
[i]=a,
[h]=a,
[g]={"71f22e738a2c",1249875628,"Use LLVM\'s new error handler API to report back end errors using Diagnostic."}
},
["err_fe_error_opening"]={
[f]="error opening \'A\': B",
[d]=l,
[e]=k,
[j]="error opening \'%0\': %1",
[c]=m,
[b]="error opening \'(.*?)\'\\: (.*?)",
[i]=a,
[h]=a,
[g]={"7ad807f248ae",1256850318,"Move some clang-cc errors to use diagnostics, and simplify."}
},
["err_fe_error_reading"]={
[f]="error reading \'A\': B",
[d]=l,
[e]=k,
[j]="error reading \'%0\': %1",
[c]=m,
[b]="error reading \'(.*?)\'\\: (.*?)",
[i]=a,
[h]=a,
[g]={gc,1236852856,cc}
},
["err_fe_error_reading_stdin"]={
[f]="error reading stdin: A",
[d]=l,
[e]=k,
[j]="error reading stdin: %0",
[c]=m,
[b]="error reading stdin\\: (.*?)",
[i]=a,
[h]=a,
[g]={gc,1236852856,cc}
},
["err_fe_expected_clang_command"]={
[f]="expected a clang compiler command",
[d]=l,
[e]=k,
[j]="expected a clang compiler command",
[c]=m,
[b]="expected a clang compiler command",
[i]=a,
[h]=a,
[g]={"55a17b66cd66",1259724225,"Add ASTUnit::LoadFromCommandLine, which creates an ASTUnit out of a list of"}
},
["err_fe_expected_compiler_job"]={
[f]="unable to handle compilation, expected exactly one compiler job in \'A\'",
[d]=l,
[e]=k,
[j]="unable to handle compilation, expected exactly one compiler job in \'%0\'",
[c]=m,
[b]="unable to handle compilation, expected exactly one compiler job in \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"55a17b66cd66",1259724225,"Add ASTUnit::LoadFromCommandLine, which creates an ASTUnit out of a list of"}
},
["err_fe_invalid_alignment"]={
[f]="invalid value \'A\' in \'B\'; alignment must be a power of 2",
[d]=l,
[e]=k,
[j]="invalid value \'%1\' in \'%0\'; alignment must be a power of 2",
[c]=m,
[b]="invalid value \'(.*?)\' in \'(.*?)\'; alignment must be a power of 2",
[i]=a,
[h]=a,
[g]={"591390284f70",1475275296,"P0035R4: add predefined __STDCPP_DEFAULT_NEW_ALIGNMENT__ macro. By default, we"}
},
["err_fe_invalid_code_complete_file"]={
[f]="cannot locate code-completion file A",
[d]=y,
[e]=z,
[j]="cannot locate code-completion file %0",
[c]=A,
[b]="cannot locate code\\-completion file (.*?)",
[i]=a,
[h]=a,
[g]={"ea9b03e6e234",1253653898,"Replace the -code-completion-dump option with "}
},
["err_fe_invalid_exception_model"]={
[f]="invalid exception model \'...\' for target \'A\'",
[d]=l,
[e]=k,
[j]="invalid exception model \'%select{none|sjlj|seh|dwarf|wasm}0\' for target \'%1\'",
[c]=m,
[b]="invalid exception model \'(?:none|sjlj|seh|dwarf|wasm)\' for target \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"d8d154738742",1528412094,"[Frontend] Disallow non-MSVC exception models for windows-msvc targets"}
},
["err_fe_invalid_plugin_name"]={
[f]="unable to find plugin \'A\'",
[d]=l,
[e]=k,
[j]="unable to find plugin \'%0\'",
[c]=m,
[b]="unable to find plugin \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"d392dd070941",1258243924,"Add pluggable action support to clang-cc, via -plugin command line option."}
},
["err_fe_invalid_source_date_epoch"]={
[f]="environment variable \'SOURCE_DATE_EPOCH\' (\'A\') must be a non-negative decimal integer <= B",
[d]=l,
[e]=k,
[j]="environment variable \'SOURCE_DATE_EPOCH\' (\'%0\') must be a non-negative decimal integer <= %1",
[c]=m,
[b]="environment variable \'SOURCE_DATE_EPOCH\' \\(\'(.*?)\'\\) must be a non\\-negative decimal integer \\<\\= (.*?)",
[i]=a,
[h]=a,
[g]={"2c090162746a",1665600926,"[Frontend] Recognize environment variable SOURCE_DATE_EPOCH"}
},
["err_fe_linking_module"]={
[f]="cannot link module \'A\': B",
[d]=y,
[e]=z,
[j]="cannot link module \'%0\': %1",
[c]=A,
[b]="cannot link module \'(.*?)\'\\: (.*?)",
[i]=a,
[h]=a,
[g]={"1c829ce1e362",1629504872,"[clang][codegen] Set CurLinkModule in CodeGenAction::ExecuteAction"}
},
["err_fe_no_pch_in_dir"]={
[f]="no suitable precompiled header file found in directory \'A\'",
[d]=l,
[e]=k,
[j]="no suitable precompiled header file found in directory \'%0\'",
[c]=m,
[b]="no suitable precompiled header file found in directory \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"fc9e7a296965",1350973104,"If the precompiled header named by \"-include\" is actually a directory,"}
},
["err_fe_not_a_pch_file"]={
[f]="input is not a PCH file: \'A\'",
[d]=l,
[e]=k,
[j]="input is not a PCH file: \'%0\'",
[c]=m,
[b]="input is not a PCH file\\: \'(.*?)\'",
[i]=a,
[h]=U,
[g]={"3b95148ce1c7",1259831586,"Switch PCHReader::getOriginalSourceFile to use proper diagnostics."}
},
["err_fe_pch_file_overridden"]={
[f]="file \'A\' from the precompiled header has been overridden",
[d]=l,
[e]=k,
[j]="file \'%0\' from the precompiled header has been overridden",
[c]=m,
[b]="file \'(.*?)\' from the precompiled header has been overridden",
[i]=a,
[h]=U,
[g]={"6eec06d0d4fa",1336081839,"[PCH] When validating that the files coming from PCH did not change, also"}
},
["err_fe_pch_malformed"]={
[f]="malformed or corrupted AST file: \'A\'",
[d]=y,
[e]=z,
[j]="malformed or corrupted AST file: \'%0\'",
[c]=A,
[b]="malformed or corrupted AST file\\: \'(.*?)\'",
[i]=a,
[h]=U,
[g]={"1ff615ce4cc5",1268873814,"Turn several PCH reader assertions into compiler errors, thus making"}
},
["err_fe_pch_malformed_block"]={
[f]="malformed block record in PCH file: \'A\'",
[d]=y,
[e]=z,
[j]="malformed block record in PCH file: \'%0\'",
[c]=A,
[b]="malformed block record in PCH file\\: \'(.*?)\'",
[i]=a,
[h]=U,
[g]={"3b95148ce1c7",1259831586,"Switch PCHReader::getOriginalSourceFile to use proper diagnostics."}
},
["err_fe_remap_missing_from_file"]={
[f]="could not remap from missing file \'A\'",
[d]=y,
[e]=z,
[j]="could not remap from missing file \'%0\'",
[c]=A,
[b]="could not remap from missing file \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"d062bff7ee5b",1259741319,"Introduce a new clang-cc option "}
},
["err_fe_remap_missing_to_file"]={
[f]="could not remap file \'A\' to the contents of file \'B\'",
[d]=y,
[e]=z,
[j]="could not remap file \'%0\' to the contents of file \'%1\'",
[c]=A,
[b]="could not remap file \'(.*?)\' to the contents of file \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"d062bff7ee5b",1259741319,"Introduce a new clang-cc option "}
},
["err_fe_unable_to_create_target"]={
[f]="unable to create target: \'A\'",
[d]=l,
[e]=k,
[j]="unable to create target: \'%0\'",
[c]=m,
[b]="unable to create target\\: \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"acadc55d4e7f",1259831574,"Fix BackendConsumer to use proper diagnostics."}
},
["err_fe_unable_to_interface_with_target"]={
[f]="unable to interface with target machine",
[d]=l,
[e]=k,
[j]="unable to interface with target machine",
[c]=m,
[b]="unable to interface with target machine",
[i]=a,
[h]=a,
[g]={"acadc55d4e7f",1259831574,"Fix BackendConsumer to use proper diagnostics."}
},
["err_fe_unable_to_load_basic_block_sections_file"]={
[f]="unable to load basic block sections function list: \'A\'",
[d]=l,
[e]=k,
[j]="unable to load basic block sections function list: \'%0\'",
[c]=m,
[b]="unable to load basic block sections function list\\: \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"e0bca46b0854",1591078649,"Options for Basic Block Sections, enabled in D68063 and D73674."}
},
["err_fe_unable_to_load_pch"]={
[f]="unable to load PCH file",
[d]=l,
[e]=k,
[j]="unable to load PCH file",
[c]=m,
[b]="unable to load PCH file",
[i]=a,
[h]=a,
[g]={"59203007acb7",1259804744,"Fix ASTUnit to allows require a (persistent) Diagnostic object be provided; propogate and simplify."}
},
["err_fe_unable_to_load_plugin"]={
[f]="unable to load plugin \'A\': \'B\'",
[d]=l,
[e]=k,
[j]="unable to load plugin \'%0\': \'%1\'",
[c]=m,
[b]="unable to load plugin \'(.*?)\'\\: \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"da7a52289fbd",1259817065,"Add clang -cc1 -load option."}
},
["err_fe_unable_to_open_output"]={
[f]="unable to open output file \'A\': \'B\'",
[d]=l,
[e]=k,
[j]="unable to open output file \'%0\': \'%1\'",
[c]=m,
[b]="unable to open output file \'(.*?)\'\\: \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"7554699afabf",1259831610,"Fix CompilerInstance::createOutputFile to use proper diagnostics, and (try to) update all clients to..."}
},
["err_fe_unable_to_read_pch_file"]={
[f]="unable to read PCH file A: \'B\'",
[d]=l,
[e]=k,
[j]="unable to read PCH file %0: \'%1\'",
[c]=m,
[b]="unable to read PCH file (.*?)\\: \'(.*?)\'",
[i]=a,
[h]=U,
[g]={"3b95148ce1c7",1259831586,"Switch PCHReader::getOriginalSourceFile to use proper diagnostics."}
},
["err_feature_check_malformed"]={
[f]="builtin feature check macro requires a parenthesized identifier",
[d]=l,
[e]=k,
[j]="builtin feature check macro requires a parenthesized identifier",
[c]=m,
[b]="builtin feature check macro requires a parenthesized identifier",
[i]=a,
[h]=t,
[g]={"b6f77af5327f",1244877208,"implement and document a new __has_feature and __has_builtin magic "}
},
["err_field_declared_as_function"]={
[f]="field A declared as a function",
[d]=l,
[e]=k,
[j]="field %0 declared as a function",
[c]=m,
[b]="field (.*?) declared as a function",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_field_designator_non_aggr"]={
[f]="field designator cannot initialize a ... type A",
[d]=l,
[e]=k,
[j]="field designator cannot initialize a %select{non-struct, non-union|non-class}0 type %1",
[c]=m,
[b]="field designator cannot initialize a (?:non\\-struct, non\\-union|non\\-class) type (.*?)",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_field_designator_nonfield"]={
[f]="field designator A does not refer to a non-static data member",
[d]=l,
[e]=k,
[j]="field designator %0 does not refer to a non-static data member",
[c]=m,
[b]="field designator (.*?) does not refer to a non\\-static data member",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_field_designator_unknown"]={
[f]="field designator A does not refer to any field in type B",
[d]=l,
[e]=k,
[j]="field designator %0 does not refer to any field in type %1",
[c]=m,
[b]="field designator (.*?) does not refer to any field in type (.*?)",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_field_designator_unknown_suggest"]={
[f]="field designator A does not refer to any field in type B; did you mean C?",
[d]=l,
[e]=k,
[j]="field designator %0 does not refer to any field in type %1; did you mean %2?",
[c]=m,
[b]="field designator (.*?) does not refer to any field in type (.*?); did you mean (.*?)\\?",
[i]=a,
[h]=n,
[g]={"4e0299b657a1",1262304185,"Typo correction for C99 designated field initializers, e.g.,"}
},
["err_field_incomplete_or_sizeless"]={
[f]="field has ... type A",
[d]=l,
[e]=k,
[j]="field has %select{incomplete|sizeless}0 type %1",
[c]=m,
[b]="field has (?:incomplete|sizeless) type (.*?)",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_field_instantiates_to_function"]={
[f]="data member instantiated with function type A",
[d]=l,
[e]=k,
[j]="data member instantiated with function type %0",
[c]=m,
[b]="data member instantiated with function type (.*?)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_field_with_address_space"]={
[f]="field may not be qualified with an address space",
[d]=l,
[e]=k,
[j]="field may not be qualified with an address space",
[c]=m,
[b]="field may not be qualified with an address space",
[i]=a,
[h]=n,
[g]={"376f72092cbd",1361913360,"Fix assertion failure when a field is given an address space."}
},
["err_file_modified"]={
[f]="file \'A\' modified since it was first processed",
[d]=y,
[e]=z,
[j]="file \'%0\' modified since it was first processed",
[c]=A,
[b]="file \'(.*?)\' modified since it was first processed",
[i]=a,
[h]=a,
[g]={"874cc62876c4",1268699739,"Use SourceManager\'s Diagnostic object for all file-reading errors,"}
},
["err_file_too_large"]={
[f]="sorry, unsupported: file \'A\' is too large for Clang to process",
[d]=l,
[e]=k,
[j]="sorry, unsupported: file \'%0\' is too large for Clang to process",
[c]=m,
[b]="sorry, unsupported\\: file \'(.*?)\' is too large for Clang to process",
[i]=a,
[h]=a,
[g]={"979ae80af7ec",1561149982,"PR42301: Abort cleanly if we encounter a huge source file rather than"}
},
["err_filter_expression_integral"]={
[f]="filter expression has non-integral type A",
[d]=l,
[e]=k,
[j]="filter expression has non-integral type %0",
[c]=m,
[b]="filter expression has non\\-integral type (.*?)",
[i]=a,
[h]=n,
[g]={"1c0675e155b9",1303952914,"Parsing/AST support for Structured Exception Handling"}
},
["err_final_function_overridden"]={
[f]="declaration of A overrides a \'...\' function",
[d]=l,
[e]=k,
[j]="declaration of %0 overrides a \'%select{final|sealed}1\' function",
[c]=m,
[b]="declaration of (.*?) overrides a \'(?:final|sealed)\' function",
[i]=a,
[h]=n,
[g]={"96d5c76498b2",1258792989,"Added rudimentary C++0x attribute support."}
},
["err_first_argument_to_cwsc_block_call"]={
[f]="first argument to __builtin_call_with_static_chain must not be a block call",
[d]=l,
[e]=k,
[j]="first argument to __builtin_call_with_static_chain must not be a block call",
[c]=m,
[b]="first argument to __builtin_call_with_static_chain must not be a block call",
[i]=a,
[h]=n,
[g]={"f770683f14f9",1418427685,"Implement the __builtin_call_with_static_chain GNU extension."}
},
["err_first_argument_to_cwsc_builtin_call"]={
[f]="first argument to __builtin_call_with_static_chain must not be a builtin call",
[d]=l,
[e]=k,
[j]="first argument to __builtin_call_with_static_chain must not be a builtin call",
[c]=m,
[b]="first argument to __builtin_call_with_static_chain must not be a builtin call",
[i]=a,
[h]=n,
[g]={"f770683f14f9",1418427685,"Implement the __builtin_call_with_static_chain GNU extension."}
},
["err_first_argument_to_cwsc_not_call"]={
[f]="first argument to __builtin_call_with_static_chain must be a non-member call expression",
[d]=l,
[e]=k,
[j]="first argument to __builtin_call_with_static_chain must be a non-member call expression",
[c]=m,
[b]="first argument to __builtin_call_with_static_chain must be a non\\-member call expression",
[i]=a,
[h]=n,
[g]={"f770683f14f9",1418427685,"Implement the __builtin_call_with_static_chain GNU extension."}
},
["err_first_argument_to_cwsc_pdtor_call"]={
[f]="first argument to __builtin_call_with_static_chain must not be a pseudo-destructor call",
[d]=l,
[e]=k,
[j]="first argument to __builtin_call_with_static_chain must not be a pseudo-destructor call",
[c]=m,
[b]="first argument to __builtin_call_with_static_chain must not be a pseudo\\-destructor call",
[i]=a,
[h]=n,
[g]={"f770683f14f9",1418427685,"Implement the __builtin_call_with_static_chain GNU extension."}
},
["err_first_argument_to_va_arg_not_of_type_va_list"]={
[f]="first argument to \'va_arg\' is of type A and not \'va_list\'",
[d]=l,
[e]=k,
[j]="first argument to \'va_arg\' is of type %0 and not \'va_list\'",
[c]=m,
[b]="first argument to \'va_arg\' is of type (.*?) and not \'va_list\'",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_fixed_point_not_enabled"]={
[f]="compile with \'-ffixed-point\' to enable fixed point types",
[d]=l,
[e]=k,
[j]="compile with \'-ffixed-point\' to enable fixed point types",
[c]=m,
[b]="compile with \'\\-ffixed\\-point\' to enable fixed point types",
[i]=a,
[h]=a,
[g]={"db55d8331e63",1527908331,"This diff includes changes for supporting the following types."}
},
["err_flexible_array_arc_retainable"]={
[f]="ARC forbids flexible array members with retainable object type",
[d]=l,
[e]=k,
[j]="ARC forbids flexible array members with retainable object type",
[c]=m,
[b]="ARC forbids flexible array members with retainable object type",
[i]=a,
[h]=n,
[g]={"30680e943735",1508796101,"[Sema] Add support for flexible array members in Obj-C."}
},
["err_flexible_array_empty_aggregate"]={
[f]="flexible array member A not allowed in otherwise empty ...",
[d]=l,
[e]=k,
[j]="flexible array member %0 not allowed in otherwise empty %select{struct|interface|union|class|enum}1",
[c]=m,
[b]="flexible array member (.*?) not allowed in otherwise empty (?:struct|interface|union|class|enum)",
[i]=a,
[h]=n,
[g]={"4101621dd746",1383388685,"Sema: Cleanup and simplify anonymous union diagnostics"}
},
["err_flexible_array_has_nontrivial_dtor"]={
[f]="flexible array member A of type B with non-trivial destruction",
[d]=l,
[e]=k,
[j]="flexible array member %0 of type %1 with non-trivial destruction",
[c]=m,
[b]="flexible array member (.*?) of type (.*?) with non\\-trivial destruction",
[i]=a,
[h]=n,
[g]={"6fa28ffd5a60",1389401615,"Fix \"regression\" caused by updating our notion of POD to better match the C++11"}
},
["err_flexible_array_init"]={
[f]="initialization of flexible array member is not allowed",
[d]=l,
[e]=k,
[j]="initialization of flexible array member is not allowed",
[c]=m,
[b]="initialization of flexible array member is not allowed",
[i]=a,
[h]=n,
[g]={"3fa64df54333",1314138297,"Refactor and fix checking for initialization of flexible array members.  The old version had the che..."}
},
["err_flexible_array_init_needs_braces"]={
[f]="flexible array requires brace-enclosed initializer",
[d]=l,
[e]=k,
[j]="flexible array requires brace-enclosed initializer",
[c]=m,
[b]="flexible array requires brace\\-enclosed initializer",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_flexible_array_not_at_end"]={
[f]="flexible array member A with type B is not at the end of ...",
[d]=l,
[e]=k,
[j]="flexible array member %0 with type %1 is not at the end of %select{struct|interface|union|class|enum}2",
[c]=m,
[b]="flexible array member (.*?) with type (.*?) is not at the end of (?:struct|interface|union|class|enum)",
[i]=a,
[h]=n,
[g]={"30680e943735",1508796101,"[Sema] Add support for flexible array members in Obj-C."}
},
["err_flexible_array_union"]={
[f]="flexible array member A in a union is not allowed",
[d]=l,
[e]=k,
[j]="flexible array member %0 in a union is not allowed",
[c]=m,
[b]="flexible array member (.*?) in a union is not allowed",
[i]=a,
[h]=n,
[g]={"4101621dd746",1383388685,"Sema: Cleanup and simplify anonymous union diagnostics"}
},
["err_flexible_array_virtual_base"]={
[f]="flexible array member A not allowed in ... which has a virtual base class",
[d]=l,
[e]=k,
[j]="flexible array member %0 not allowed in %select{struct|interface|union|class|enum}1 which has a virtual base class",
[c]=m,
[b]="flexible array member (.*?) not allowed in (?:struct|interface|union|class|enum) which has a virtual base class",
[i]=a,
[h]=n,
[g]={"08cd76006fda",1383391153,"Sema: Disallow derived classes with virtual bases from having flexible array members"}
},
["err_fold_expression_bad_operand"]={
[f]="expression not permitted as operand of fold expression",
[d]=l,
[e]=k,
[j]="expression not permitted as operand of fold expression",
[c]=m,
[b]="expression not permitted as operand of fold expression",
[i]=a,
[h]=n,
[g]={vc,1415423236,nc}
},
["err_fold_expression_empty"]={
[f]="unary fold expression has empty expansion for operator \'A\' with no fallback value",
[d]=l,
[e]=k,
[j]="unary fold expression has empty expansion for operator \'%0\' with no fallback value",
[c]=m,
[b]="unary fold expression has empty expansion for operator \'(.*?)\' with no fallback value",
[i]=a,
[h]=n,
[g]={vc,1415423236,nc}
},
["err_fold_expression_limit_exceeded"]={
[f]="instantiating fold expression with A arguments exceeded expression nesting limit of B",
[d]=y,
[e]=z,
[j]="instantiating fold expression with %0 arguments exceeded expression nesting limit of %1",
[c]=A,
[b]="instantiating fold expression with (.*?) arguments exceeded expression nesting limit of (.*?)",
[i]=a,
[h]=n,
[g]={G,1582847864,I}
},
["err_fold_expression_packs_both_sides"]={
[f]="binary fold expression has unexpanded parameter packs in both operands",
[d]=l,
[e]=k,
[j]="binary fold expression has unexpanded parameter packs in both operands",
[c]=m,
[b]="binary fold expression has unexpanded parameter packs in both operands",
[i]=a,
[h]=n,
[g]={vc,1415423236,nc}
},
["err_fold_operator_mismatch"]={
[f]="operators in fold expression must be the same",
[d]=l,
[e]=k,
[j]="operators in fold expression must be the same",
[c]=m,
[b]="operators in fold expression must be the same",
[i]=a,
[h]=o,
[g]={vc,1415423236,nc}
},
["err_for_co_await_not_range_for"]={
[f]="\'co_await\' modifier can only be applied to range-based for loop",
[d]=l,
[e]=k,
[j]="\'co_await\' modifier can only be applied to range-based for loop",
[c]=m,
[b]="\'co_await\' modifier can only be applied to range\\-based for loop",
[i]=a,
[h]=E,
[g]={"0e304ea8a1a4",1445489174,"[coroutines] Add parsing support for co_await expression, co_yield expression,"}
},
["err_for_range_decl_must_be_var"]={
[f]=ec,
[d]=l,
[e]=k,
[j]=ec,
[c]=m,
[b]=ec,
[i]=a,
[h]=n,
[g]={Bc,1302818966,sc}
},
["err_for_range_deduction_failure"]={
[f]="cannot use type A as a range",
[d]=l,
[e]=k,
[j]="cannot use type %0 as a range",
[c]=m,
[b]="cannot use type (.*?) as a range",
[i]=a,
[h]=n,
[g]={Bc,1302818966,sc}
},
["err_for_range_dereference"]={
[f]="invalid range expression of type A; did you mean to dereference it with \'*\'?",
[d]=l,
[e]=k,
[j]="invalid range expression of type %0; did you mean to dereference it with \'*\'?",
[c]=m,
[b]="invalid range expression of type (.*?); did you mean to dereference it with \'\\*\'\\?",
[i]=a,
[h]=n,
[g]={"0f38443616f5",1345510321,"Better diagnostics for range-based for loops with bad range types."}
},
["err_for_range_expected_decl"]={
[f]=ec,
[d]=l,
[e]=k,
[j]=ec,
[c]=m,
[b]=ec,
[i]=a,
[h]=o,
[g]={"4f848f1dac75",1324421780,"PR11297: Provide a better diagnostic for code which contains a"}
},
["err_for_range_identifier"]={
[f]="range-based for loop requires type for loop variable",
[d]=l,
[e]=k,
[j]="range-based for loop requires type for loop variable",
[c]=m,
[b]="range\\-based for loop requires type for loop variable",
[i]=a,
[h]=o,
[g]={"83d3f150c86a",1417053267,"[c++1z] Remove terse range-based for loops; they\'ve been removed from"}
},
["err_for_range_incomplete_type"]={
[f]="cannot use incomplete type A as a range",
[d]=l,
[e]=k,
[j]="cannot use incomplete type %0 as a range",
[c]=m,
[b]="cannot use incomplete type (.*?) as a range",
[i]=a,
[h]=n,
[g]={Bc,1302818966,sc}
},
["err_for_range_invalid"]={
[f]="invalid range expression of type A; no viable \'...\' function available",
[d]=l,
[e]=k,
[j]="invalid range expression of type %0; no viable \'%select{begin|end}1\' function available",
[c]=m,
[b]="invalid range expression of type (.*?); no viable \'(?:begin|end)\' function available",
[i]=a,
[h]=n,
[g]={"0f38443616f5",1345510321,"Better diagnostics for range-based for loops with bad range types."}
},
["err_for_range_iter_deduction_failure"]={
[f]="cannot use type A as an iterator",
[d]=l,
[e]=k,
[j]="cannot use type %0 as an iterator",
[c]=m,
[b]="cannot use type (.*?) as an iterator",
[i]=a,
[h]=n,
[g]={Bc,1302818966,sc}
},
["err_for_range_storage_class"]={
[f]="loop variable A may not be declared ...",
[d]=l,
[e]=k,
[j]="loop variable %0 may not be declared %select{\'extern\'|\'static\'|\'__private_extern__\'|\'auto\'|\'register\'|\'constexpr\'|\'thread_local\'}1",
[c]=m,
[b]="loop variable (.*?) may not be declared (?:\'extern\'|\'static\'|\'__private_extern__\'|\'auto\'|\'register\'|\'constexpr\'|\'thread_local\')",
[i]=a,
[h]=n,
[g]={Bc,1302818966,sc}
},
["err_format_attribute_implicit_this_format_string"]={
[f]="format attribute cannot specify the implicit this argument as the format string",
[d]=l,
[e]=k,
[j]="format attribute cannot specify the implicit this argument as the format string",
[c]=m,
[b]="format attribute cannot specify the implicit this argument as the format string",
[i]=a,
[h]=n,
[g]={"743682bb9f66",1289896543,"Re-work the handling of implicit \'this\' arguments and silly GCC-style attribute"}
},
["err_format_attribute_not"]={
[f]="format argument not a string type",
[d]=l,
[e]=k,
[j]="format argument not a string type",
[c]=m,
[b]="format argument not a string type",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_format_attribute_result_not"]={
[f]="function does not return A",
[d]=l,
[e]=k,
[j]="function does not return %0",
[c]=m,
[b]="function does not return (.*?)",
[i]=a,
[h]=n,
[g]={"f1c25029b4c6",1242841303,"implementation of format_arg for ObjC methods/functions."}
},
["err_format_strftime_third_parameter"]={
[f]="strftime format attribute requires 3rd parameter to be 0",
[d]=l,
[e]=k,
[j]="strftime format attribute requires 3rd parameter to be 0",
[c]=m,
[b]="strftime format attribute requires 3rd parameter to be 0",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_forward_ref_enum"]={
[f]="ISO C++ forbids forward references to \'enum\' types",
[d]=l,
[e]=k,
[j]="ISO C++ forbids forward references to \'enum\' types",
[c]=m,
[b]="ISO C\\+\\+ forbids forward references to \'enum\' types",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_forward_superclass"]={
[f]="attempting to use the forward class A as superclass of B",
[d]=l,
[e]=k,
[j]="attempting to use the forward class %0 as superclass of %1",
[c]=m,
[b]="attempting to use the forward class (.*?) as superclass of (.*?)",
[i]=a,
[h]=n,
[g]={"3ee91fad9063",1308870979,"When forming a cycle in objc\'s inheritance hierarchy,"}
},
["err_found_in_dependent_base"]={
[f]="explicit qualification required to use member A from dependent base class",
[d]=l,
[e]=k,
[j]="explicit qualification required to use member %0 from dependent base class",
[c]=m,
[b]="explicit qualification required to use member (.*?) from dependent base class",
[i]=a,
[h]=n,
[g]={Z,1590001902,ab}
},
["err_found_later_in_class"]={
[f]="member A used before its declaration",
[d]=l,
[e]=k,
[j]="member %0 used before its declaration",
[c]=m,
[b]="member (.*?) used before its declaration",
[i]=a,
[h]=n,
[g]={Z,1590001902,ab}
},
["err_friend_decl_defines_type"]={
[f]="cannot define a type in a friend declaration",
[d]=l,
[e]=k,
[j]="cannot define a type in a friend declaration",
[c]=m,
[b]="cannot define a type in a friend declaration",
[i]=a,
[h]=o,
[g]={"0f8ee22655a8",1326159194,"Update C++11 scoped enumeration support to match the final proposal:"}
},
["err_friend_decl_does_not_match"]={
[f]="friend declaration of A does not match any declaration in B",
[d]=l,
[e]=k,
[j]="friend declaration of %0 does not match any declaration in %1",
[c]=m,
[b]="friend declaration of (.*?) does not match any declaration in (.*?)",
[i]=a,
[h]=n,
[g]={"e85e1766005e",1335060830,"PR12585: When processing a friend template inside a class template, don\'t"}
},
["err_friend_decl_spec"]={
[f]="\'A\' is invalid in friend declarations",
[d]=l,
[e]=k,
[j]="\'%0\' is invalid in friend declarations",
[c]=m,
[b]="\'(.*?)\' is invalid in friend declarations",
[i]=a,
[h]=a,
[g]={"deca70559335",1398882241,"Sema: Implement DR477"}
},
["err_friend_decl_with_def_arg_must_be_def"]={
[f]="friend declaration specifying a default argument must be a definition",
[d]=l,
[e]=k,
[j]="friend declaration specifying a default argument must be a definition",
[c]=m,
[b]="friend declaration specifying a default argument must be a definition",
[i]=a,
[h]=n,
[g]={"502b0ed2641f",1372201770,"Implement DR136"}
},
["err_friend_decl_with_def_arg_redeclared"]={
[f]="friend declaration specifying a default argument must be the only declaration",
[d]=l,
[e]=k,
[j]="friend declaration specifying a default argument must be the only declaration",
[c]=m,
[b]="friend declaration specifying a default argument must be the only declaration",
[i]=a,
[h]=n,
[g]={"502b0ed2641f",1372201770,"Implement DR136"}
},
["err_friend_def_in_local_class"]={
[f]="friend function cannot be defined in a local class",
[d]=l,
[e]=k,
[j]="friend function cannot be defined in a local class",
[c]=m,
[b]="friend function cannot be defined in a local class",
[i]=a,
[h]=n,
[g]={"16e65616d64b",1318209119,"Implement the restrictions in C++ [class.friend]p6, which disallow"}
},
["err_friend_explicit_instantiation"]={
[f]="friend cannot be declared in an explicit instantiation; if this declaration is meant to be a friend declaration, remove the \'template\' keyword",
[d]=l,
[e]=k,
[j]="friend cannot be declared in an explicit instantiation; if this declaration is meant to be a friend declaration, remove the \'template\' keyword",
[c]=m,
[b]="friend cannot be declared in an explicit instantiation; if this declaration is meant to be a friend declaration, remove the \'template\' keyword",
[i]=a,
[h]=o,
[g]={"b9bbaba6b14b",1371909371,"Instantiation bug fix extension (cf. r184503) -- minor code fixes, including a typo that caused a ru..."}
},
["err_friend_invalid_in_context"]={
[f]="\'friend\' used outside of class",
[d]=l,
[e]=k,
[j]="\'friend\' used outside of class",
[c]=m,
[b]="\'friend\' used outside of class",
[i]=a,
[h]=o,
[g]={"07e91c04ba33",1249524943,"First pass at friend semantics."}
},
["err_friend_is_member"]={
[f]="friends cannot be members of the declaring class",
[d]=l,
[e]=k,
[j]="friends cannot be members of the declaring class",
[c]=m,
[b]="friends cannot be members of the declaring class",
[i]=a,
[h]=n,
[g]={"07e91c04ba33",1249524943,"First pass at friend semantics."}
},
["err_friend_not_first_in_declaration"]={
[f]="\'friend\' must appear first in a non-function declaration",
[d]=l,
[e]=k,
[j]="\'friend\' must appear first in a non-function declaration",
[c]=m,
[b]="\'friend\' must appear first in a non\\-function declaration",
[i]=a,
[h]=n,
[g]={"a31a89a38e8a",1348104660,"Per C++11 [class.friend]p3, the \'friend\' keyword must appear first in a"}
},
["err_func_def_incomplete_result"]={
[f]="incomplete result type A in function definition",
[d]=l,
[e]=k,
[j]="incomplete result type %0 in function definition",
[c]=m,
[b]="incomplete result type (.*?) in function definition",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_func_def_no_params"]={
[f]="function definition does not declare parameters",
[d]=l,
[e]=k,
[j]="function definition does not declare parameters",
[c]=m,
[b]="function definition does not declare parameters",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_func_returning_array_function"]={
[f]="function cannot return ... type A",
[d]=l,
[e]=k,
[j]="function cannot return %select{array|function}0 type %1",
[c]=m,
[b]="function cannot return (?:array|function) type (.*?)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_func_returning_qualified_void"]={
[f]="function cannot return qualified void type A [-Wqualified-void-return-type]",
[d]="warning: ",
[e]="Warning",
["groups"]={"qualified-void-return-type"},
["maingroup"]="qualified-void-return-type",
[j]="function cannot return qualified void type %0",
[c]="(?:warning|error|fatal error)\\: ",
[b]="function cannot return qualified void type (.*?)",
[i]=" \\[(?:\\-Werror,)?\\-Wqualified\\-void\\-return\\-type[^\\]]*\\]",
[h]=n,
[g]={"c116802ef387",1421340353,"PR 20146"}
},
["err_function_attribute_mismatch"]={
[f]="function declared with A attribute was previously declared without the B attribute",
[d]=l,
[e]=k,
[j]="function declared with %0 attribute was previously declared without the %0 attribute",
[c]=m,
[b]="function declared with (.*?) attribute was previously declared without the (.*?) attribute",
[i]=a,
[h]=n,
[g]={"318a6eae06dd",1493294460,"[X86] Support of no_caller_saved_registers attribute"}
},
["err_function_decl_cmse_ns_call"]={
[f]="functions may not be declared with \'cmse_nonsecure_call\' attribute",
[d]=l,
[e]=k,
[j]="functions may not be declared with \'cmse_nonsecure_call\' attribute",
[c]=m,
[b]="functions may not be declared with \'cmse_nonsecure_call\' attribute",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_function_declared_typedef"]={
[f]="function definition declared \'typedef\'",
[d]=l,
[e]=k,
[j]="function definition declared \'typedef\'",
[c]=m,
[b]="function definition declared \'typedef\'",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_function_definition_not_allowed"]={
[f]="function definition is not allowed here",
[d]=l,
[e]=k,
[j]="function definition is not allowed here",
[c]=m,
[b]="function definition is not allowed here",
[i]=a,
[h]=o,
[g]={"012efe22bcf4",1366128092,"Fix PR4296: Add parser detection/error recovery for nested functions, from Serve Pavlov!"}
},
["err_function_is_not_record"]={
[f]="unexpected A in function call; perhaps remove the B?",
[d]=l,
[e]=k,
[j]="unexpected %0 in function call; perhaps remove the %0?",
[c]=m,
[b]="unexpected (.*?) in function call; perhaps remove the (.*?)\\?",
[i]=a,
[h]=o,
[g]={"638264ea2a3d",1373665382,"Provide a better diagnostic and a fixit for a \'.\' or \'->\' before the left paren"}
},
["err_function_marked_override_not_overriding"]={
[f]="A marked \'override\' but does not override any member functions",
[d]=l,
[e]=k,
[j]="%0 marked \'override\' but does not override any member functions",
[c]=m,
[b]="(.*?) marked \'override\' but does not override any member functions",
[i]=a,
[h]=n,
[g]={"fd8355373333",1295503034,"Diagnose virtual member functions marked override but not overriding any virtual member functions."}
},
["err_function_needs_feature"]={
[f]="always_inline function A requires target feature \'B\', but would be inlined into function C that is compiled without support for \'D\'",
[d]=l,
[e]=k,
[j]="always_inline function %1 requires target feature \'%2\', but would be inlined into function %0 that is compiled without support for \'%2\'",
[c]=m,
[b]="always_inline function (.*?) requires target feature \'(.*?)\', but would be inlined into function (.*?) that is compiled without support for \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"2b2d56f059e7",1447289052,"Provide a frontend based error for always_inline functions that require"}
},
["err_function_parameter_pack_without_parameter_packs"]={
[f]="type A of function parameter pack does not contain any unexpanded parameter packs",
[d]=l,
[e]=k,
[j]="type %0 of function parameter pack does not contain any unexpanded parameter packs",
[c]=m,
[b]="type (.*?) of function parameter pack does not contain any unexpanded parameter packs",
[i]=a,
[h]=n,
[g]={"27b4c16fefde",1293144282,"Implement parsing of function parameter packs and non-type template"}
},
["err_function_scope_depth_exceeded"]={
[f]="function scope depth exceeded maximum of A",
[d]=y,
[e]=z,
[j]="function scope depth exceeded maximum of %0",
[c]=A,
[b]="function scope depth exceeded maximum of (.*?)",
[i]=a,
[h]=o,
[g]={"739b410f1ff5",1570627358,"Add a warning, flags and pragmas to limit the number of pre-processor tokens in a translation unit"}
},
["err_function_start_invalid_type"]={
[f]="argument must be a function",
[d]=l,
[e]=k,
[j]="argument must be a function",
[c]=m,
[b]="argument must be a function",
[i]=a,
[h]=n,
[g]={R,1616787805,S}
},
["err_function_template_partial_spec"]={
[f]="function template partial specialization is not allowed",
[d]=l,
[e]=k,
[j]="function template partial specialization is not allowed",
[c]=m,
[b]="function template partial specialization is not allowed",
[i]=a,
[h]=n,
[g]={"a5f6f9c7a1bb",1295895279,"Disallow function template partial specializations, from Hans"}
},
["err_function_template_spec_ambiguous"]={
[f]="function template specialization A ambiguously refers to more than one function template; explicitly specify... template arguments to identify a particular function template",
[d]=l,
[e]=k,
[j]="function template specialization %0 ambiguously refers to more than one function template; explicitly specify%select{| additional}1 template arguments to identify a particular function template",
[c]=m,
[b]="function template specialization (.*?) ambiguously refers to more than one function template; explicitly specify(?:| additional) template arguments to identify a particular function template",
[i]=a,
[h]=n,
[g]={"3a923c2d3799",1253834087,"WIP implementation of explicit function template specialization. This"}
},
["err_function_template_spec_no_match"]={
[f]="no function template matches function template specialization A",
[d]=l,
[e]=k,
[j]="no function template matches function template specialization %0",
[c]=m,
[b]="no function template matches function template specialization (.*?)",
[i]=a,
[h]=n,
[g]={"3a923c2d3799",1253834087,"WIP implementation of explicit function template specialization. This"}
},
["err_gc_weak_property_strong_type"]={
[f]="weak attribute declared on a __strong type property in GC mode",
[d]=l,
[e]=k,
[j]="weak attribute declared on a __strong type property in GC mode",
[c]=m,
[b]="weak attribute declared on a __strong type property in GC mode",
[i]=a,
[h]=n,
[g]={"eebdb67420c1",1315412661,"objc-gc: More sema work for properties declared \'weak\'"}
},
["err_generic_sel_multi_match"]={
[f]="controlling expression type A compatible with B generic association types",
[d]=l,
[e]=k,
[j]="controlling expression type %0 compatible with %1 generic association types",
[c]=m,
[b]="controlling expression type (.*?) compatible with (.*?) generic association types",
[i]=a,
[h]=n,
[g]={Kb,1302827748,Sb}
},
["err_generic_sel_no_match"]={
[f]="controlling expression type A not compatible with any generic association type",
[d]=l,
[e]=k,
[j]="controlling expression type %0 not compatible with any generic association type",
[c]=m,
[b]="controlling expression type (.*?) not compatible with any generic association type",
[i]=a,
[h]=n,
[g]={Kb,1302827748,Sb}
},
["err_getter_not_found"]={
[f]="no getter method for read from property",
[d]=l,
[e]=k,
[j]="no getter method for read from property",
[c]=m,
[b]="no getter method for read from property",
[i]=a,
[h]=n,
[g]={"0f0b302ffe8e",1293047195,"Complain on missing property getter method only"}
},
["err_global_asm_qualifier_ignored"]={
[f]="meaningless \'A\' on asm outside function",
[d]=l,
[e]=k,
[j]="meaningless \'%0\' on asm outside function",
[c]=m,
[b]="meaningless \'(.*?)\' on asm outside function",
[i]=a,
[h]=D,
[g]={zc,1582039343,rc}
},
["err_global_call_not_config"]={
[f]="call to global function A not configured",
[d]=l,
[e]=k,
[j]="call to global function %0 not configured",
[c]=m,
[b]="call to global function (.*?) not configured",
[i]=a,
[h]=n,
[g]={"34a20b081e43",1317599355,"CUDA: diagnose unconfigured calls to global functions"}
},
["err_global_module_introducer_not_at_start"]={
[f]="\'module;\' introducing a global module fragment can appear only at the start of the translation unit",
[d]=l,
[e]=k,
[j]="\'module;\' introducing a global module fragment can appear only at the start of the translation unit",
[c]=m,
[b]="\'module;\' introducing a global module fragment can appear only at the start of the translation unit",
[i]=a,
[h]=x,
[g]={"d652bdd05f1c",1555229219,"[c++20] Parsing support for module-declarations, import-declarations,"}
},
["err_gnu_inline_asm_disabled"]={
[f]="GNU-style inline assembly is disabled",
[d]=l,
[e]=k,
[j]="GNU-style inline assembly is disabled",
[c]=m,
[b]="GNU\\-style inline assembly is disabled",
[i]=a,
[h]=D,
[g]={"cb0d13fc2337",1421449528,"Adding option -fno-inline-asm to disallow inline asm"}
},
["err_goto_into_protected_scope"]={
[f]="cannot jump from this goto statement to its label",
[d]=l,
[e]=k,
[j]="cannot jump from this goto statement to its label",
[c]=m,
[b]="cannot jump from this goto statement to its label",
[i]=a,
[h]=n,
[g]={"960cc525ec72",1240047387,"rewrite the goto scope checking code to be more efficient, simpler,"}
},
["err_goto_ms_asm_label"]={
[f]="cannot jump from this goto statement to label A inside an inline assembly block",
[d]=l,
[e]=k,
[j]="cannot jump from this goto statement to label %0 inside an inline assembly block",
[c]=m,
[b]="cannot jump from this goto statement to label (.*?) inside an inline assembly block",
[i]=a,
[h]=n,
[g]={"31097581aad8",1411352514,"ms-inline-asm: Scope inline asm labels to functions"}
},
["err_half_const_requires_fp16"]={
[f]="half precision constant requires cl_khr_fp16",
[d]=l,
[e]=k,
[j]="half precision constant requires cl_khr_fp16",
[c]=m,
[b]="half precision constant requires cl_khr_fp16",
[i]=a,
[h]=n,
[g]={"5c1a2c5d3e8f",1455708877,"[OpenCL] Added half type literal with suffix h."}
},
["err_header_import_not_header_unit"]={
[f]="header file A (aka \'B\') cannot be imported because it is not known to be a header unit",
[d]=l,
[e]=k,
[j]="header file %0 (aka \'%1\') cannot be imported because it is not known to be a header unit",
[c]=m,
[b]="header file (.*?) \\(aka \'(.*?)\'\\) cannot be imported because it is not known to be a header unit",
[i]=a,
[h]=t,
[g]={"8af8b8611c5d",1555017503,"[C++20] Implement context-sensitive header-name lexing and pp-import parsing in the preprocessor."}
},
["err_header_import_semi_in_macro"]={
[f]="semicolon terminating header import declaration cannot be produced by a macro",
[d]=l,
[e]=k,
[j]="semicolon terminating header import declaration cannot be produced by a macro",
[c]=m,
[b]="semicolon terminating header import declaration cannot be produced by a macro",
[i]=a,
[h]=t,
[g]={"8af8b8611c5d",1555017503,"[C++20] Implement context-sensitive header-name lexing and pp-import parsing in the preprocessor."}
},
["err_hex_constant_requires"]={
[f]="hexadecimal floating ... requires ...",
[d]=l,
[e]=k,
[j]="hexadecimal floating %select{constant|literal}0 requires %select{an exponent|a significand}1",
[c]=m,
[b]="hexadecimal floating (?:constant|literal) requires (?:an exponent|a significand)",
[i]=a,
[h]=t,
[g]={"560a3579b29a",1457130726,"Update diagnostics now that hexadecimal literals look likely to be part of C++17."}
},
["err_hex_escape_no_digits"]={
[f]="\\A used with no following hex digits",
[d]=l,
[e]=k,
[j]="\\%0 used with no following hex digits",
[c]=m,
[b]="\\\\(.*?) used with no following hex digits",
[i]=a,
[h]=t,
[g]={s,1236199783,r}
},
["err_hidden_visibility_dllexport"]={
[f]="hidden visibility cannot be applied to \'dllexport\' declaration",
[d]=l,
[e]=k,
[j]="hidden visibility cannot be applied to \'dllexport\' declaration",
[c]=m,
[b]="hidden visibility cannot be applied to \'dllexport\' declaration",
[i]=a,
[h]=a,
[g]={"6f9c4851ab7c",1663023396,"[MinGW] Reject explicit hidden visibility applied to dllexport and hidden/protected applied to dllim..."}
},
["err_hip_invalid_args_builtin_mangled_name"]={
[f]="invalid argument: symbol must be a device-side function or global variable",
[d]=l,
[e]=k,
[j]="invalid argument: symbol must be a device-side function or global variable",
[c]=m,
[b]="invalid argument\\: symbol must be a device\\-side function or global variable",
[i]=a,
[h]=n,
[g]={Z,1590001902,ab}
},
["err_hlsl_attr_invalid_ast_node"]={
[f]="attribute A only applies to B",
[d]=l,
[e]=k,
[j]="attribute %0 only applies to %1",
[c]=m,
[b]="attribute (.*?) only applies to (.*?)",
[i]=a,
[h]=a,
[g]={w,1625925174,v}
},
["err_hlsl_attr_invalid_type"]={
[f]="attribute A only applies to a field or parameter of type \'B\'",
[d]=l,
[e]=k,
[j]="attribute %0 only applies to a field or parameter of type \'%1\'",
[c]=m,
[b]="attribute (.*?) only applies to a field or parameter of type \'(.*?)\'",
[i]=a,
[h]=a,
[g]={w,1625925174,v}
},
["err_hlsl_attr_unsupported_in_stage"]={
[f]="attribute A is unsupported in ... shaders, requires B",
[d]=l,
[e]=k,
[j]="attribute %0 is unsupported in %select{Pixel|Vertex|Geometry|Hull|Domain|Compute|Library|RayGeneration|Intersection|AnyHit|ClosestHit|Miss|Callable|Mesh|Amplification|Invalid}1 shaders, requires %2",
[c]=m,
[b]="attribute (.*?) is unsupported in (?:Pixel|Vertex|Geometry|Hull|Domain|Compute|Library|RayGeneration|Intersection|AnyHit|ClosestHit|Miss|Callable|Mesh|Amplification|Invalid) shaders, requires (.*?)",
[i]=a,
[h]=a,
[g]={hb,1620118562,jb}
},
["err_hlsl_attribute_param_mismatch"]={
[f]="A attribute parameters do not match the previous declaration",
[d]=l,
[e]=k,
[j]="%0 attribute parameters do not match the previous declaration",
[c]=m,
[b]="(.*?) attribute parameters do not match the previous declaration",
[i]=a,
[h]=a,
[g]={hb,1620118562,jb}
},
["err_hlsl_entry_shader_attr_mismatch"]={
[f]="A attribute on entry function does not match the pipeline stage",
[d]=l,
[e]=k,
[j]="%0 attribute on entry function does not match the pipeline stage",
[c]=m,
[b]="(.*?) attribute on entry function does not match the pipeline stage",
[i]=a,
[h]=a,
[g]={w,1625925174,v}
},
["err_hlsl_expected_space"]={
[f]="invalid space specifier \'A\' used; expected \'space\' followed by an integer, like space1",
[d]=l,
[e]=k,
[j]="invalid space specifier \'%0\' used; expected \'space\' followed by an integer, like space1",
[c]=m,
[b]="invalid space specifier \'(.*?)\' used; expected \'space\' followed by an integer, like space1",
[i]=a,
[h]=a,
[g]={w,1625925174,v}
},
["err_hlsl_init_priority_unsupported"]={
[f]="initializer priorities are not supported in HLSL",
[d]=l,
[e]=k,
[j]="initializer priorities are not supported in HLSL",
[c]=m,
[b]="initializer priorities are not supported in HLSL",
[i]=a,
[h]=a,
[g]={w,1625925174,v}
},
["err_hlsl_missing_numthreads"]={
[f]="missing numthreads attribute for A shader entry",
[d]=l,
[e]=k,
[j]="missing numthreads attribute for %0 shader entry",
[c]=m,
[b]="missing numthreads attribute for (.*?) shader entry",
[i]=a,
[h]=a,
[g]={w,1625925174,v}
},
["err_hlsl_missing_semantic_annotation"]={
[f]="semantic annotations must be present for all parameters of an entry function or patch constant function",
[d]=l,
[e]=k,
[j]="semantic annotations must be present for all parameters of an entry function or patch constant function",
[c]=m,
[b]="semantic annotations must be present for all parameters of an entry function or patch constant function",
[i]=a,
[h]=a,
[g]={w,1625925174,v}
},
["err_hlsl_numthreads_argument_oor"]={
[f]="argument \'...\' to numthreads attribute cannot exceed A",
[d]=l,
[e]=k,
[j]="argument \'%select{X|Y|Z}0\' to numthreads attribute cannot exceed %1",
[c]=m,
[b]="argument \'(?:X|Y|Z)\' to numthreads attribute cannot exceed (.*?)",
[i]=a,
[h]=a,
[g]={hb,1620118562,jb}
},
["err_hlsl_numthreads_invalid"]={
[f]="total number of threads cannot exceed A",
[d]=l,
[e]=k,
[j]="total number of threads cannot exceed %0",
[c]=m,
[b]="total number of threads cannot exceed (.*?)",
[i]=a,
[h]=a,
[g]={hb,1620118562,jb}
},
["err_hlsl_operator_unsupported"]={
[f]="the \'...\' operator is unsupported in HLSL",
[d]=l,
[e]=k,
[j]="the \'%select{&|*|->}0\' operator is unsupported in HLSL",
[c]=m,
[b]="the \'(?:&|\\*|\\-\\>)\' operator is unsupported in HLSL",
[i]=a,
[h]=a,
[g]={rb,1620530452,sb}
},
["err_hlsl_pointers_unsupported"]={
[f]="... are unsupported in HLSL",
[d]=l,
[e]=k,
[j]="%select{pointers|references}0 are unsupported in HLSL",
[c]=m,
[b]="(?:pointers|references) are unsupported in HLSL",
[i]=a,
[h]=a,
[g]={rb,1620530452,sb}
},
["err_hlsl_separate_attr_arg_and_number"]={
[f]="wrong argument format for hlsl attribute, use A instead",
[d]=l,
[e]=k,
[j]="wrong argument format for hlsl attribute, use %0 instead",
[c]=m,
[b]="wrong argument format for hlsl attribute, use (.*?) instead",
[i]=a,
[h]=a,
[g]={"e3fd0b20731f",1658170225,"[HLSL] Add resource binding attribute for HLSL."}
},
["err_hlsl_unsupported_register_number"]={
[f]="register number should be an integer",
[d]=l,
[e]=k,
[j]="register number should be an integer",
[c]=m,
[b]="register number should be an integer",
[i]=a,
[h]=a,
[g]={w,1625925174,v}
},
["err_hlsl_unsupported_register_type"]={
[f]="invalid resource class specifier \'A\' used; expected \'b\', \'s\', \'t\', or \'u\'",
[d]=l,
[e]=k,
[j]="invalid resource class specifier \'%0\' used; expected \'b\', \'s\', \'t\', or \'u\'",
[c]=m,
[b]="invalid resource class specifier \'(.*?)\' used; expected \'b\', \'s\', \'t\', or \'u\'",
[i]=a,
[h]=a,
[g]={w,1625925174,v}
},
["err_iboutletcollection_builtintype"]={
[f]="type argument of iboutletcollection attribute cannot be a builtin type",
[d]=l,
[e]=k,
[j]="type argument of iboutletcollection attribute cannot be a builtin type",
[c]=m,
[b]="type argument of iboutletcollection attribute cannot be a builtin type",
[i]=a,
[h]=n,
[g]={"9d7d3d84ac95",1282087156,"Diagnose if type of iboutletcollection attribute is a builtin type."}
},
["err_iboutletcollection_type"]={
[f]="invalid type A as argument of iboutletcollection attribute",
[d]=l,
[e]=k,
[j]="invalid type %0 as argument of iboutletcollection attribute",
[c]=m,
[b]="invalid type (.*?) as argument of iboutletcollection attribute",
[i]=a,
[h]=n,
[g]={"b5d59b66c27e",1282076592,"Patch to add type parameter support for attribute iboutletcollection."}
},
["err_ice_ambiguous_conversion"]={
[f]="ambiguous conversion from type A to an integral or unscoped enumeration type",
[d]=l,
[e]=k,
[j]="ambiguous conversion from type %0 to an integral or unscoped enumeration type",
[c]=m,
[b]="ambiguous conversion from type (.*?) to an integral or unscoped enumeration type",
[i]=a,
[h]=n,
[g]={"f4c51d9d7613",1328349193,"In C++11 mode, when an integral constant expression is desired and we have a"}
},
["err_ice_explicit_conversion"]={
[f]="integral constant expression requires explicit conversion from A to B",
[d]=l,
[e]=k,
[j]="integral constant expression requires explicit conversion from %0 to %1",
[c]=m,
[b]="integral constant expression requires explicit conversion from (.*?) to (.*?)",
[i]=a,
[h]=n,
[g]={"f4c51d9d7613",1328349193,"In C++11 mode, when an integral constant expression is desired and we have a"}
},
["err_ice_incomplete_type"]={
[f]="integral constant expression has incomplete class type A",
[d]=l,
[e]=k,
[j]="integral constant expression has incomplete class type %0",
[c]=m,
[b]="integral constant expression has incomplete class type (.*?)",
[i]=a,
[h]=n,
[g]={"f4c51d9d7613",1328349193,"In C++11 mode, when an integral constant expression is desired and we have a"}
},
["err_ice_not_integral"]={
[f]="... constant expression must have ... type, not A",
[d]=l,
[e]=k,
[j]="%select{integer|integral}1 constant expression must have %select{integer|integral or unscoped enumeration}1 type, not %0",
[c]=m,
[b]="(?:integer|integral) constant expression must have (?:integer|integral or unscoped enumeration) type, not (.*?)",
[i]=a,
[h]=n,
[g]={"f4c51d9d7613",1328349193,"In C++11 mode, when an integral constant expression is desired and we have a"}
},
["err_ice_too_large"]={
[f]="integer constant expression evaluates to value A that cannot be represented in a B-bit ... integer type",
[d]=l,
[e]=k,
[j]="integer constant expression evaluates to value %0 that cannot be represented in a %1-bit %select{signed|unsigned}2 integer type",
[c]=m,
[b]="integer constant expression evaluates to value (.*?) that cannot be represented in a (.*?)\\-bit (?:signed|unsigned) integer type",
[i]=a,
[h]=n,
[g]={"31f42318d833",1406213483,"Improving the \"integer constant too large\" diagnostics based on post-commit feedback from Richard Sm..."}
},
["err_id_after_template_in_nested_name_spec"]={
[f]="expected template name after \'template\' keyword in nested name specifier",
[d]=l,
[e]=k,
[j]="expected template name after \'template\' keyword in nested name specifier",
[c]=m,
[b]="expected template name after \'template\' keyword in nested name specifier",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_ident_list_in_fn_declaration"]={
[f]="a parameter list without types is only allowed in a function definition",
[d]=l,
[e]=k,
[j]="a parameter list without types is only allowed in a function definition",
[c]=m,
[b]="a parameter list without types is only allowed in a function definition",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_ifunc_resolver_return"]={
[f]="ifunc resolver function must return a pointer",
[d]=l,
[e]=k,
[j]="ifunc resolver function must return a pointer",
[c]=m,
[b]="ifunc resolver function must return a pointer",
[i]=a,
[h]=a,
[g]={"85eda12d0937",1460360939,"[GCC] Attribute ifunc support in clang"}
},
["err_illegal_container_subscripting_op"]={
[f]="illegal operation on Objective-C container subscripting",
[d]=l,
[e]=k,
[j]="illegal operation on Objective-C container subscripting",
[c]=m,
[b]="illegal operation on Objective\\-C container subscripting",
[i]=a,
[h]=n,
[g]={V,1331064356,W}
},
["err_illegal_decl_array_of_functions"]={
[f]="\'A\' declared as array of functions of type B",
[d]=l,
[e]=k,
[j]="\'%0\' declared as array of functions of type %1",
[c]=m,
[b]="\'(.*?)\' declared as array of functions of type (.*?)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_illegal_decl_array_of_references"]={
[f]="\'A\' declared as array of references of type B",
[d]=l,
[e]=k,
[j]="\'%0\' declared as array of references of type %1",
[c]=m,
[b]="\'(.*?)\' declared as array of references of type (.*?)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_illegal_decl_mempointer_in_nonclass"]={
[f]="\'A\' does not point into a class",
[d]=l,
[e]=k,
[j]="\'%0\' does not point into a class",
[c]=m,
[b]="\'(.*?)\' does not point into a class",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_illegal_decl_mempointer_to_reference"]={
[f]="\'A\' declared as a member pointer to a reference of type B",
[d]=l,
[e]=k,
[j]="\'%0\' declared as a member pointer to a reference of type %1",
[c]=m,
[b]="\'(.*?)\' declared as a member pointer to a reference of type (.*?)",
[i]=a,
[h]=n,
[g]={"124f34c15014",1246320417,"Make an error message more clear."}
},
["err_illegal_decl_mempointer_to_void"]={
[f]="\'A\' declared as a member pointer to void",
[d]=l,
[e]=k,
[j]="\'%0\' declared as a member pointer to void",
[c]=m,
[b]="\'(.*?)\' declared as a member pointer to void",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_illegal_decl_pointer_to_reference"]={
[f]="\'A\' declared as a pointer to a reference of type B",
[d]=l,
[e]=k,
[j]="\'%0\' declared as a pointer to a reference of type %1",
[c]=m,
[b]="\'(.*?)\' declared as a pointer to a reference of type (.*?)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_illegal_decl_reference_to_reference"]={
[f]="A declared as a reference to a reference",
[d]=l,
[e]=k,
[j]="%0 declared as a reference to a reference",
[c]=m,
[b]="(.*?) declared as a reference to a reference",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_illegal_initializer"]={
[f]="illegal initializer (only variables can be initialized)",
[d]=l,
[e]=k,
[j]="illegal initializer (only variables can be initialized)",
[c]=m,
[b]="illegal initializer \\(only variables can be initialized\\)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_illegal_initializer_type"]={
[f]="illegal initializer type A",
[d]=l,
[e]=k,
[j]="illegal initializer type %0",
[c]=m,
[b]="illegal initializer type (.*?)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_illegal_message_expr_incomplete_type"]={
[f]="Objective-C message has incomplete result type A",
[d]=l,
[e]=k,
[j]="Objective-C message has incomplete result type %0",
[c]=m,
[b]="Objective\\-C message has incomplete result type (.*?)",
[i]=a,
[h]=n,
[g]={"1d44608cc112",1276714564,"Make sure result type of objc++ message expression is"}
},
["err_illegal_qualifiers_on_catch_parm"]={
[f]="illegal qualifiers on @catch parameter",
[d]=l,
[e]=k,
[j]="illegal qualifiers on @catch parameter",
[c]=m,
[b]="illegal qualifiers on @catch parameter",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_illegal_super_cast"]={
[f]="cannot cast \'super\' (it isn\'t an expression)",
[d]=l,
[e]=k,
[j]="cannot cast \'super\' (it isn\'t an expression)",
[c]=m,
[b]="cannot cast \'super\' \\(it isn\'t an expression\\)",
[i]=a,
[h]=o,
[g]={q,1237025389,p}
},
["err_illegal_union_or_anon_struct_member"]={
[f]="... member A has a non-trivial ...",
[d]=l,
[e]=k,
[j]="%select{anonymous struct|union}0 member %1 has a non-trivial %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor}2",
[c]=m,
[b]="(?:anonymous struct|union) member (.*?) has a non\\-trivial (?:default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor)",
[i]=a,
[h]=n,
[g]={"33aee3934acf",1281979628,"Emit diagnostic error when the field of an anonymous struct is non trivial."}
},
["err_illegal_use_of_flt_eval_macro"]={
[f]="\'__FLT_EVAL_METHOD__\' cannot be expanded inside a scope containing \'#pragma clang fp eval_method\'",
[d]=l,
[e]=k,
[j]="\'__FLT_EVAL_METHOD__\' cannot be expanded inside a scope containing \'#pragma clang fp eval_method\'",
[c]=m,
[b]="\'__FLT_EVAL_METHOD__\' cannot be expanded inside a scope containing \'\\#pragma clang fp eval_method\'",
[i]=a,
[h]=t,
[g]={w,1625925174,v}
},
["err_imaginary_not_supported"]={
[f]="imaginary types are not supported",
[d]=l,
[e]=k,
[j]="imaginary types are not supported",
[c]=m,
[b]="imaginary types are not supported",
[i]=a,
[h]=n,
[g]={"719a46bbf14a",1285234831,"Don\'t crash on _Imaginary."}
},
["err_immediate_function_used_before_definition"]={
[f]="immediate function A used before it is defined",
[d]=l,
[e]=k,
[j]="immediate function %0 used before it is defined",
[c]=m,
[b]="immediate function (.*?) used before it is defined",
[i]=a,
[h]=n,
[g]={w,1625925174,v}
},
["err_impcast_complex_scalar"]={
[f]="implicit conversion from A to B is not permitted in C++",
[d]=l,
[e]=k,
[j]="implicit conversion from %0 to %1 is not permitted in C++",
[c]=m,
[b]="implicit conversion from (.*?) to (.*?) is not permitted in C\\+\\+",
[i]=a,
[h]=n,
[g]={"0241637c0ea3",1502234285,"Sema: disable implicit conversion from _Complex to real types in C++."}
},
["err_implementation_of_class_stub"]={
[f]="cannot declare implementation of a class declared with the \'objc_class_stub\' attribute",
[d]=l,
[e]=k,
[j]="cannot declare implementation of a class declared with the \'objc_class_stub\' attribute",
[c]=m,
[b]="cannot declare implementation of a class declared with the \'objc_class_stub\' attribute",
[i]=a,
[h]=n,
[g]={"2c91c3b7af7c",1559189341,"Add the `objc_class_stub` attribute."}
},
["err_implicit_coroutine_std_nothrow_type_not_found"]={
[f]="std::nothrow was not found; include <new> before defining a coroutine which uses get_return_object_on_allocation_failure()",
[d]=l,
[e]=k,
[j]="std::nothrow was not found; include <new> before defining a coroutine which uses get_return_object_on_allocation_failure()",
[c]=m,
[b]="std\\:\\:nothrow was not found; include \\<new\\> before defining a coroutine which uses get_return_object_on_allocation_failure\\(\\)",
[i]=a,
[h]=E,
[g]={"627a63cf5081",1492334399,"[coroutines] Fix building of new/delete expressions when get_return_object_on_allocation_failure() i..."}
},
["err_implicit_empty_initializer"]={
[f]="initializer for aggregate with no elements requires explicit braces",
[d]=l,
[e]=k,
[j]="initializer for aggregate with no elements requires explicit braces",
[c]=m,
[b]="initializer for aggregate with no elements requires explicit braces",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_implicit_instantiate_member_undefined"]={
[f]="implicit instantiation of undefined member A",
[d]=l,
[e]=k,
[j]="implicit instantiation of undefined member %0",
[c]=m,
[b]="implicit instantiation of undefined member (.*?)",
[i]=a,
[h]=n,
[g]={"8ea8fd48f2c7",1238015823,"Instantiation for member classes of class templates. Note that only"}
},
["err_implied_comparison_category_type_not_found"]={
[f]="cannot ... because type \'A\' was not found; include <compare>",
[d]=l,
[e]=k,
[j]="cannot %select{use builtin operator \'<=>\'|default \'operator<=>\'}1 because type \'%0\' was not found; include <compare>",
[c]=m,
[b]="cannot (?:use builtin operator \'\\<\\=\\>\'|default \'operator\\<\\=\\>\') because type \'(.*?)\' was not found; include \\<compare\\>",
[i]=a,
[h]=a,
[g]={"0683c0e68d31",1525727230,"[C++2a] Implement operator<=> CodeGen and ExprConstant"}
},
["err_implied_coroutine_type_not_found"]={
[f]="A type was not found; include <coroutine> before defining a coroutine",
[d]=l,
[e]=k,
[j]="%0 type was not found; include <coroutine> before defining a coroutine",
[c]=m,
[b]="(.*?) type was not found; include \\<coroutine\\> before defining a coroutine",
[i]=a,
[h]=E,
[g]={"6dcb0eb301c7",1489028983,"[coroutines] Build and pass coroutine_handle to await_suspend"}
},
["err_implied_std_coroutine_traits_promise_type_not_class"]={
[f]="this function cannot be a coroutine: A is not a class",
[d]=l,
[e]=k,
[j]="this function cannot be a coroutine: %0 is not a class",
[c]=m,
[b]="this function cannot be a coroutine\\: (.*?) is not a class",
[i]=a,
[h]=E,
[g]={"9f690bd80bb6",1445925765,"[coroutines] Creation of promise object, lookup of operator co_await, building"}
},
["err_implied_std_coroutine_traits_promise_type_not_found"]={
[f]="this function cannot be a coroutine: A has no member named \'promise_type\'",
[d]=l,
[e]=k,
[j]="this function cannot be a coroutine: %q0 has no member named \'promise_type\'",
[c]=m,
[b]="this function cannot be a coroutine\\: (.*?) has no member named \'promise_type\'",
[i]=a,
[h]=E,
[g]={"9f690bd80bb6",1445925765,"[coroutines] Creation of promise object, lookup of operator co_await, building"}
},
["err_implied_std_initializer_list_not_found"]={
[f]="cannot deduce type of initializer list because std::initializer_list was not found; include <initializer_list>",
[d]=l,
[e]=k,
[j]="cannot deduce type of initializer list because std::initializer_list was not found; include <initializer_list>",
[c]=m,
[b]="cannot deduce type of initializer list because std\\:\\:initializer_list was not found; include \\<initializer_list\\>",
[i]=a,
[h]=n,
[g]={"42acd4a05b52",1326840608,"Auto deduction support for std::initializer_list, including for-range support. This means you can no..."}
},
["err_import_in_wrong_fragment"]={
[f]="module... imports cannot be in the ... module fragment",
[d]=l,
[e]=k,
[j]="module%select{| partition}0 imports cannot be in the %select{global|private}1 module fragment",
[c]=m,
[b]="module(?:| partition) imports cannot be in the (?:global|private) module fragment",
[i]=a,
[h]=x,
[g]={Lb,1612659633,Gb}
},
["err_import_not_allowed_here"]={
[f]="imports must immediately follow the module declaration",
[d]=l,
[e]=k,
[j]="imports must immediately follow the module declaration",
[c]=m,
[b]="imports must immediately follow the module declaration",
[i]=a,
[h]=x,
[g]={Lb,1612659633,Gb}
},
["err_imported_module_modmap_changed"]={
[f]="module \'A\' ... AST file \'B\' found in a different module map file (C) than when the importing AST file was built (D)",
[d]=y,
[e]=z,
[j]="module \'%0\' %select{in|imported by}4 AST file \'%1\' found in a different module map file (%2) than when the importing AST file was built (%3)",
[c]=A,
[b]="module \'(.*?)\' (?:in|imported by) AST file \'(.*?)\' found in a different module map file \\((.*?)\\) than when the importing AST file was built \\((.*?)\\)",
[i]=a,
[h]=U,
[g]={"beee15e721f6",1397498401,"Allow multiple modules with the same name to coexist in the module cache"}
},
["err_imported_module_not_found"]={
[f]="module \'A\' in AST file \'B\' ...is not defined in any loaded module map file; maybe you need to load \'C\'?",
[d]=y,
[e]=z,
[j]="module \'%0\' in AST file \'%1\' %select{(imported by AST file \'%2\') |}4is not defined in any loaded module map file; maybe you need to load \'%3\'?",
[c]=A,
[b]="module \'(.*?)\' in AST file \'(.*?)\' (?:\\(imported by AST file \'(.*?)\'\\) |)is not defined in any loaded module map file; maybe you need to load \'(.*?)\'\\?",
[i]=a,
[h]=U,
[g]={"beee15e721f6",1397498401,"Allow multiple modules with the same name to coexist in the module cache"}
},
["err_imported_module_relocated"]={
[f]="module \'A\' was built in directory \'B\' but now resides in directory \'C\'",
[d]=y,
[e]=z,
[j]="module \'%0\' was built in directory \'%1\' but now resides in directory \'%2\'",
[c]=A,
[b]="module \'(.*?)\' was built in directory \'(.*?)\' but now resides in directory \'(.*?)\'",
[i]=a,
[h]=U,
[g]={"223d3f2e4d49",1417836068,"[modules] If we import a module, and we\'ve seen a module map that describes the"}
},
["err_in_class_initializer_bad_type"]={
[f]="static data member of type A must be initialized out of line",
[d]=l,
[e]=k,
[j]="static data member of type %0 must be initialized out of line",
[c]=m,
[b]="static data member of type (.*?) must be initialized out of line",
[i]=a,
[h]=n,
[g]={"db76892e72e4",1284160882,"Support in-class initialization of static const floating-point data members."}
},
["err_in_class_initializer_literal_type"]={
[f]="in-class initializer for static data member of type A requires \'constexpr\' specifier",
[d]=l,
[e]=k,
[j]="in-class initializer for static data member of type %0 requires \'constexpr\' specifier",
[c]=m,
[b]="in\\-class initializer for static data member of type (.*?) requires \'constexpr\' specifier",
[i]=a,
[h]=n,
[g]={"256336d9ab6d",1317338314,"Mark the ExtWarn for in-class initialization of static const float members as a GNU extension. Don\'t..."}
},
["err_in_class_initializer_non_const"]={
[f]="non-const static data member must be initialized out of line",
[d]=l,
[e]=k,
[j]="non-const static data member must be initialized out of line",
[c]=m,
[b]="non\\-const static data member must be initialized out of line",
[i]=a,
[h]=n,
[g]={"db76892e72e4",1284160882,"Support in-class initialization of static const floating-point data members."}
},
["err_in_class_initializer_non_constant"]={
[f]="in-class initializer for static data member is not a constant expression",
[d]=l,
[e]=k,
[j]="in-class initializer for static data member is not a constant expression",
[c]=m,
[b]="in\\-class initializer for static data member is not a constant expression",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_in_class_initializer_volatile"]={
[f]="static const volatile data member must be initialized out of line",
[d]=l,
[e]=k,
[j]="static const volatile data member must be initialized out of line",
[c]=m,
[b]="static const volatile data member must be initialized out of line",
[i]=a,
[h]=n,
[g]={"ee6311df6972",1317331694,"In C++0x, static const volatile data members cannot be initialized in-class."}
},
["err_include_too_large"]={
[f]="sorry, this include generates a translation unit too large for Clang to process.",
[d]=y,
[e]=z,
[j]="sorry, this include generates a translation unit too large for Clang to process.",
[c]=A,
[b]="sorry, this include generates a translation unit too large for Clang to process\\.",
[i]=a,
[h]=a,
[g]={"39f50da2a357",1568041174,"Support -fstack-clash-protection for x86"}
},
["err_incompatible_exception_specs"]={
[f]="target exception specification is not superset of source",
[d]=l,
[e]=k,
[j]="target exception specification is not superset of source",
[c]=m,
[b]="target exception specification is not superset of source",
[i]=a,
[h]=n,
[g]={"5d43164bc2e4",1255176250,"Implement the core checking for compatible exception specifications in assignment and initialization..."}
},
["err_incompatible_fp_eval_method_options"]={
[f]="option \'ffp-eval-method\' cannot be used with option ...",
[d]=l,
[e]=k,
[j]="option \'ffp-eval-method\' cannot be used with option %select{\'fapprox-func\'|\'mreassociate\'|\'freciprocal\'}0",
[c]=m,
[b]="option \'ffp\\-eval\\-method\' cannot be used with option (?:\'fapprox\\-func\'|\'mreassociate\'|\'freciprocal\')",
[i]=a,
[h]=a,
[g]={"bac6cd5bf856",1648850628,"[misexpect] Re-implement MisExpect Diagnostics"}
},
["err_incompatible_qualified_id"]={
[f]="...",
[d]=l,
[e]=k,
[j]="%select{%diff{assigning to $ from incompatible type $|assigning to type from incompatible type}0,1|%diff{passing $ to parameter of incompatible type $|passing type to parameter of incompatible type}0,1|%diff{returning $ from a function with incompatible result type $|returning type from a function with incompatible result type}0,1|%diff{converting $ to incompatible type $|converting type to incompatible type}0,1|%diff{initializing $ with an expression of incompatible type $|initializing type with an expression of incompatible type}0,1|%diff{sending $ to parameter of incompatible type $|sending type to parameter of incompatible type}0,1|%diff{casting $ to incompatible type $|casting type to incompatible type}0,1}2",
[c]=m,
[b]="(?:(?:assigning to (.*?) from incompatible type (.*?)|assigning to type from incompatible type)|(?:passing (.*?) to parameter of incompatible type (.*?)|passing type to parameter of incompatible type)|(?:returning (.*?) from a function with incompatible result type (.*?)|returning type from a function with incompatible result type)|(?:converting (.*?) to incompatible type (.*?)|converting type to incompatible type)|(?:initializing (.*?) with an expression of incompatible type (.*?)|initializing type with an expression of incompatible type)|(?:sending (.*?) to parameter of incompatible type (.*?)|sending type to parameter of incompatible type)|(?:casting (.*?) to incompatible type (.*?)|casting type to incompatible type))",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_incompatible_vectors"]={
[f]="incompatible vector types ...",
[d]=l,
[e]=k,
[j]="incompatible vector types %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2",
[c]=m,
[b]="incompatible vector types (?:(?:assigning to (.*?) from (.*?)|assigning to different types)|(?:passing (.*?) to parameter of type (.*?)|passing to parameter of different type)|(?:returning (.*?) from a function with result type (.*?)|returning from function with different return type)|(?:converting (.*?) to type (.*?)|converting between types)|(?:initializing (.*?) with an expression of type (.*?)|initializing with expression of different type)|(?:sending (.*?) to parameter of type (.*?)|sending to parameter of different type)|(?:casting (.*?) to type (.*?)|casting between types))",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_incomplete_array_member_init"]={
[f]="array bound cannot be deduced from a default member initializer",
[d]=l,
[e]=k,
[j]="array bound cannot be deduced from a default member initializer",
[c]=m,
[b]="array bound cannot be deduced from a default member initializer",
[i]=a,
[h]=o,
[g]={"938f40b5aa98",1307812782,"Implement support for C++11 in-class initialization of non-static data members."}
},
["err_incomplete_base_class"]={
[f]="base class has incomplete type",
[d]=l,
[e]=k,
[j]="base class has incomplete type",
[c]=m,
[b]="base class has incomplete type",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_incomplete_enum"]={
[f]="enumeration A is incomplete",
[d]=l,
[e]=k,
[j]="enumeration %0 is incomplete",
[c]=m,
[b]="enumeration (.*?) is incomplete",
[i]=a,
[h]=n,
[g]={ub,1615397021,qb}
},
["err_incomplete_in_exception_spec"]={
[f]="...incomplete type A is not allowed in exception specification",
[d]=l,
[e]=k,
[j]="%select{|pointer to |reference to }0incomplete type %1 is not allowed in exception specification",
[c]=m,
[b]="(?:|pointer to |reference to )incomplete type (.*?) is not allowed in exception specification",
[i]=a,
[h]=n,
[g]={"d643456d450a",1243620153,"Reject incomplete types in exception specs."}
},
["err_incomplete_member_access"]={
[f]="member access into incomplete type A",
[d]=l,
[e]=k,
[j]="member access into incomplete type %0",
[c]=m,
[b]="member access into incomplete type (.*?)",
[i]=a,
[h]=n,
[g]={"3fad61786e7c",1258435053,"Require the object type of a member access expression (\".\" or \"->\") to"}
},
["err_incomplete_nested_name_spec"]={
[f]="incomplete type A named in nested name specifier",
[d]=l,
[e]=k,
[j]="incomplete type %0 named in nested name specifier",
[c]=m,
[b]="incomplete type (.*?) named in nested name specifier",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_incomplete_object_call"]={
[f]="incomplete type in call to object of type A",
[d]=l,
[e]=k,
[j]="incomplete type in call to object of type %0",
[c]=m,
[b]="incomplete type in call to object of type (.*?)",
[i]=a,
[h]=n,
[g]={"74ba25ca5a34",1256105919,"Improve diagnostics and template instantiation behavior when calling"}
},
["err_incomplete_receiver_type"]={
[f]="incomplete receiver type A",
[d]=l,
[e]=k,
[j]="incomplete receiver type %0",
[c]=m,
[b]="incomplete receiver type (.*?)",
[i]=a,
[h]=n,
[g]={"4b60a1594d2c",1383863694,"Re-instate contextual conversion to Objective-C pointers in message sends."}
},
["err_incomplete_synthesized_property"]={
[f]="cannot synthesize property A with incomplete type B",
[d]=l,
[e]=k,
[j]="cannot synthesize property %0 with incomplete type %1",
[c]=m,
[b]="cannot synthesize property (.*?) with incomplete type (.*?)",
[i]=a,
[h]=n,
[g]={"169ec35bb3b2",1335911166,"Add a missing RequireCompleteType call when synthesizing properties.  <rdar://problem/11333367>."}
},
["err_incomplete_type"]={
[f]="incomplete type A where a complete type is required",
[d]=l,
[e]=k,
[j]="incomplete type %0 where a complete type is required",
[c]=m,
[b]="incomplete type (.*?) where a complete type is required",
[i]=a,
[h]=n,
[g]={"a04f2ca19aaf",1267458985,"When looking for the instantiated declaration that corresponds to a"}
},
["err_incomplete_type_objc_at_encode"]={
[f]="\'@encode\' of incomplete type A",
[d]=l,
[e]=k,
[j]="\'@encode\' of incomplete type %0",
[c]=m,
[b]="\'@encode\' of incomplete type (.*?)",
[i]=a,
[h]=n,
[g]={"7da04c636728",1305405159,"Emit an error when trying to @encode an incomplete type."}
},
["err_incomplete_type_used_in_type_trait_expr"]={
[f]="incomplete type A used in type trait expression",
[d]=l,
[e]=k,
[j]="incomplete type %0 used in type trait expression",
[c]=m,
[b]="incomplete type (.*?) used in type trait expression",
[i]=a,
[h]=n,
[g]={"1f9648da17c7",1246993562,"Some (most) type trait expressions require that the argument passed in is a complete type."}
},
["err_incomplete_typeid"]={
[f]="\'typeid\' of incomplete type A",
[d]=l,
[e]=k,
[j]="\'typeid\' of incomplete type %0",
[c]=m,
[b]="\'typeid\' of incomplete type (.*?)",
[i]=a,
[h]=n,
[g]={"721fb2b6e405",1261602366,"Diagnose the use of incomplete types in C++ typeid expressions"}
},
["err_inconsistent_ivar_count"]={
[f]="inconsistent number of instance variables specified",
[d]=l,
[e]=k,
[j]="inconsistent number of instance variables specified",
[c]=m,
[b]="inconsistent number of instance variables specified",
[i]=a,
[h]=n,
[g]={"fff0674ae092",1385956221,"Fix inconsistent diag name"}
},
["err_incorrect_defaulted_consteval"]={
[f]="defaulted declaration of ... cannot be consteval because implicit definition is not constexpr",
[d]=l,
[e]=k,
[j]="defaulted declaration of %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor}0 cannot be consteval because implicit definition is not constexpr",
[c]=m,
[b]="defaulted declaration of (?:default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor) cannot be consteval because implicit definition is not constexpr",
[i]=a,
[h]=n,
[g]={"796ed03b8412",1560502580,"[C++20] add Basic consteval specifier"}
},
["err_incorrect_defaulted_constexpr"]={
[f]="defaulted definition of ... is not constexpr",
[d]=l,
[e]=k,
[j]="defaulted definition of %select{default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor}0 is not constexpr",
[c]=m,
[b]="defaulted definition of (?:default constructor|copy constructor|move constructor|copy assignment operator|move assignment operator|destructor) is not constexpr",
[i]=a,
[h]=n,
[g]={"cc36f698afe0",1324520551,"PR11614: Mark defaulted special constructors as constexpr if their implicit"}
},
["err_incorrect_number_of_vector_initializers"]={
[f]="number of elements must be either one or match the size of the vector",
[d]=l,
[e]=k,
[j]="number of elements must be either one or match the size of the vector",
[c]=m,
[b]="number of elements must be either one or match the size of the vector",
[i]=a,
[h]=n,
[g]={"28ccef788bb2",1301218360,"supported: AltiVec vector initialization with a single literal according to PIM section 2.5.1 - afte..."}
},
["err_increment_decrement_enum"]={
[f]="cannot ... expression of enum type A",
[d]=l,
[e]=k,
[j]="cannot %select{decrement|increment}0 expression of enum type %1",
[c]=m,
[b]="cannot (?:decrement|increment) expression of enum type (.*?)",
[i]=a,
[h]=n,
[g]={"493df1a14f5d",1375926623,"Emit an error for enum increments and decrements in C++ mode."}
},
["err_indirect_goto_in_protected_scope"]={
[f]="cannot jump from this ... goto statement to one of its possible targets",
[d]=l,
[e]=k,
[j]="cannot jump from this %select{indirect|asm}0 goto statement to one of its possible targets",
[c]=m,
[b]="cannot jump from this (?:indirect|asm) goto statement to one of its possible targets",
[i]=a,
[h]=n,
[g]={"0bf2dd2ed408",1240103126,"First half of jump scope checking for indirect goto."}
},
["err_indirect_goto_without_addrlabel"]={
[f]="indirect goto in function with no address-of-label expressions",
[d]=l,
[e]=k,
[j]="indirect goto in function with no address-of-label expressions",
[c]=m,
[b]="indirect goto in function with no address\\-of\\-label expressions",
[i]=a,
[h]=n,
[g]={"cf819ab38311",1273625893,"When checking scopes for indirect goto, be more permissive (but still safe)"}
},
["err_init_capture_deduction_failure"]={
[f]="cannot deduce type for lambda capture A from initializer of type B",
[d]=l,
[e]=k,
[j]="cannot deduce type for lambda capture %0 from initializer of type %2",
[c]=m,
[b]="cannot deduce type for lambda capture (.*?) from initializer of type (.*?)",
[i]=a,
[h]=Q,
[g]={"ba71c0852340",1368685258,"First pass of semantic analysis for init-captures: check the initializer, build"}
},
["err_init_capture_deduction_failure_from_init_list"]={
[f]="cannot deduce type for lambda capture A from initializer list",
[d]=l,
[e]=k,
[j]="cannot deduce type for lambda capture %0 from initializer list",
[c]=m,
[b]="cannot deduce type for lambda capture (.*?) from initializer list",
[i]=a,
[h]=Q,
[g]={"ba71c0852340",1368685258,"First pass of semantic analysis for init-captures: check the initializer, build"}
},
["err_init_capture_multiple_expressions"]={
[f]="initializer for lambda capture A contains multiple expressions",
[d]=l,
[e]=k,
[j]="initializer for lambda capture %0 contains multiple expressions",
[c]=m,
[b]="initializer for lambda capture (.*?) contains multiple expressions",
[i]=a,
[h]=Q,
[g]={"ba71c0852340",1368685258,"First pass of semantic analysis for init-captures: check the initializer, build"}
},
["err_init_capture_no_expression"]={
[f]="initializer missing for lambda capture A",
[d]=l,
[e]=k,
[j]="initializer missing for lambda capture %0",
[c]=m,
[b]="initializer missing for lambda capture (.*?)",
[i]=a,
[h]=Q,
[g]={"ba71c0852340",1368685258,"First pass of semantic analysis for init-captures: check the initializer, build"}
},
["err_init_capture_paren_braces"]={
[f]="cannot deduce type for lambda capture A from ... initializer list",
[d]=l,
[e]=k,
[j]="cannot deduce type for lambda capture %1 from %select{parenthesized|nested}0 initializer list",
[c]=m,
[b]="cannot deduce type for lambda capture (.*?) from (?:parenthesized|nested) initializer list",
[i]=a,
[h]=Q,
[g]={"66204ecff985",1394646165,"DR1346: a parenthesized braced-init-list cannot be used as the initializer when"}
},
["err_init_conversion_failed"]={
[f]="cannot initialize ... of type A with an ... of type B...",
[d]=l,
[e]=k,
[j]="cannot initialize %select{a variable|a parameter|template parameter|return object|statement expression result|an exception object|a member subobject|an array element|a new value|a value|a base class|a constructor delegation|a vector element|a block element|a block element|a complex element|a lambda capture|a compound literal initializer|a related result|a parameter of CF audited function|a structured binding|a member subobject}0 %diff{of type $ with an %select{rvalue|lvalue}2 of type $|with an %select{rvalue|lvalue}2 of incompatible type}1,3%select{|: different classes%diff{ ($ vs $)|}5,6|: different number of parameters (%5 vs %6)|: type mismatch at %ordinal5 parameter%diff{ ($ vs $)|}6,7|: different return type%diff{ ($ vs $)|}5,6|: different qualifiers (%5 vs %6)|: different exception specifications}4",
[c]=m,
[b]="cannot initialize (?:a variable|a parameter|template parameter|return object|statement expression result|an exception object|a member subobject|an array element|a new value|a value|a base class|a constructor delegation|a vector element|a block element|a block element|a complex element|a lambda capture|a compound literal initializer|a related result|a parameter of CF audited function|a structured binding|a member subobject) (?:of type (.*?) with an (?:rvalue|lvalue) of type (.*?)|with an (?:rvalue|lvalue) of incompatible type)(?:|\\: different classes(?: \\((.*?) vs (.*?)\\)|)|\\: different number of parameters \\((.*?) vs (.*?)\\)|\\: type mismatch at (.*?) parameter(?: \\((.*?) vs (.*?)\\)|)|\\: different return type(?: \\((.*?) vs (.*?)\\)|)|\\: different qualifiers \\((.*?) vs (.*?)\\)|\\: different exception specifications)",
[i]=a,
[h]=n,
[g]={"e1314a64b803",1261112541,"Switch the initialization required by return statements over to the"}
},
["err_init_element_not_constant"]={
[f]="initializer element is not a compile-time constant",
[d]=l,
[e]=k,
[j]="initializer element is not a compile-time constant",
[c]=m,
[b]="initializer element is not a compile\\-time constant",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_init_for_function_type"]={
[f]="cannot create object of function type A",
[d]=l,
[e]=k,
[j]="cannot create object of function type %0",
[c]=m,
[b]="cannot create object of function type (.*?)",
[i]=a,
[h]=n,
[g]={"49a6b6e91edf",1490318065,"Fix handling of initialization from parenthesized initializer list."}
},
["err_init_incomplete_type"]={
[f]="initialization of incomplete type A",
[d]=l,
[e]=k,
[j]="initialization of incomplete type %0",
[c]=m,
[b]="initialization of incomplete type (.*?)",
[i]=a,
[h]=n,
[g]={"3f4f03a23553",1274393522,"Add a new failure kind, FK_Incomplete, to InitializationSequence, to"}
},
["err_init_list_bad_dest_type"]={
[f]="...type A cannot be initialized with an initializer list",
[d]=l,
[e]=k,
[j]="%select{|non-aggregate }0type %1 cannot be initialized with an initializer list",
[c]=m,
[b]="(?:|non\\-aggregate )type (.*?) cannot be initialized with an initializer list",
[i]=a,
[h]=n,
[g]={"51e77d5ab0a0",1260467815,"Move initialization via initializer list over to InitializationSequences."}
},
["err_init_list_bin_op"]={
[f]="initializer list cannot be used on the ... hand side of operator \'A\'",
[d]=l,
[e]=k,
[j]="initializer list cannot be used on the %select{left|right}0 hand side of operator \'%1\'",
[c]=m,
[b]="initializer list cannot be used on the (?:left|right) hand side of operator \'(.*?)\'",
[i]=a,
[h]=o,
[g]={"5e0cac784a57",1330570757,"Reject \'a = {0} = {0}\' rather than parsing it as \'(a = {0}) = {0}\'. Also"}
},
["err_init_method_bad_return_type"]={
[f]="init methods must return an object pointer type, not A",
[d]=l,
[e]=k,
[j]="init methods must return an object pointer type, not %0",
[c]=m,
[b]="init methods must return an object pointer type, not (.*?)",
[i]=a,
[h]=n,
[g]={K,1308178962,J}
},
["err_init_non_aggr_init_list"]={
[f]="initialization of non-aggregate type A with an initializer list",
[d]=l,
[e]=k,
[j]="initialization of non-aggregate type %0 with an initializer list",
[c]=m,
[b]="initialization of non\\-aggregate type (.*?) with an initializer list",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_init_objc_class"]={
[f]="cannot initialize Objective-C class type A",
[d]=l,
[e]=k,
[j]="cannot initialize Objective-C class type %0",
[c]=m,
[b]="cannot initialize Objective\\-C class type (.*?)",
[i]=a,
[h]=n,
[g]={"50ec46d4af82",1272911077,"Complain when we try to initialize an object of Objective-C class type"}
},
["err_init_priority_object_attr"]={
[f]="can only use \'init_priority\' attribute on file-scope definitions of objects of class type",
[d]=l,
[e]=k,
[j]="can only use \'init_priority\' attribute on file-scope definitions of objects of class type",
[c]=m,
[b]="can only use \'init_priority\' attribute on file\\-scope definitions of objects of class type",
[i]=a,
[h]=n,
[g]={"0bf5ee74c473",1276902893,"More Sema Check and a test case for init_priority attr."}
},
["err_init_reference_member_uninitialized"]={
[f]="reference member of type A uninitialized",
[d]=l,
[e]=k,
[j]="reference member of type %0 uninitialized",
[c]=m,
[b]="reference member of type (.*?) uninitialized",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_initializer_overrides_destructed"]={
[f]="initializer would partially override prior initialization of object of type A with non-trivial destruction",
[d]=l,
[e]=k,
[j]="initializer would partially override prior initialization of object of type %1 with non-trivial destruction",
[c]=m,
[b]="initializer would partially override prior initialization of object of type (.*?) with non\\-trivial destruction",
[i]=a,
[h]=n,
[g]={"5030928d60a1",1567205575,"[c++20] Implement semantic restrictions for C++20 designated"}
},
["err_initializer_string_for_char_array_too_long"]={
[f]="initializer-string for char array is too long, array size is A but initializer has size B (including the null terminating character)",
[d]=l,
[e]=k,
[j]="initializer-string for char array is too long, array size is %0 but initializer has size %1 (including the null terminating character)",
[c]=m,
[b]="initializer\\-string for char array is too long, array size is (.*?) but initializer has size (.*?) \\(including the null terminating character\\)",
[i]=a,
[h]=n,
[g]={"554eba9c0873",1302481425,"PR9669: implement correct checking for [dcl.init.string]p2."}
},
["err_inline_decl_follows_def"]={
[f]="inline declaration of A follows non-inline definition",
[d]=l,
[e]=k,
[j]="inline declaration of %0 follows non-inline definition",
[c]=m,
[b]="inline declaration of (.*?) follows non\\-inline definition",
[i]=a,
[h]=n,
[g]={"ee4f4025c3e7",1396161894,"Sema: Implement DR317"}
},
["err_inline_declaration_block_scope"]={
[f]="inline declaration of A not allowed in block scope",
[d]=l,
[e]=k,
[j]="inline declaration of %0 not allowed in block scope",
[c]=m,
[b]="inline declaration of (.*?) not allowed in block scope",
[i]=a,
[h]=n,
[g]={"2588691a6960",1281095050,"Diagnose the use of \"inline\" on block-scope function declarations in"}
},
["err_inline_main"]={
[f]="\'main\' is not allowed to be declared inline",
[d]=l,
[e]=k,
[j]="\'main\' is not allowed to be declared inline",
[c]=m,
[b]="\'main\' is not allowed to be declared inline",
[i]=a,
[h]=n,
[g]={"d937bf13d461",1315463584,"Adding FixIts to static/inline main declaration diagnostics."}
},
["err_inline_namespace_alias"]={
[f]="namespace alias cannot be inline",
[d]=l,
[e]=k,
[j]="namespace alias cannot be inline",
[c]=m,
[b]="namespace alias cannot be inline",
[i]=a,
[h]=o,
[g]={"6766794c0b91",1282950766,"Parser support for inline namespaces"}
},
["err_inline_namespace_mismatch"]={
[f]="non-inline namespace cannot be reopened as inline",
[d]=l,
[e]=k,
[j]="non-inline namespace cannot be reopened as inline",
[c]=m,
[b]="non\\-inline namespace cannot be reopened as inline",
[i]=a,
[h]=n,
[g]={"b5c2baa2d7a2",1283214996,"Enable inline namespaces in the AST."}
},
["err_inline_namespace_std"]={
[f]="cannot declare the namespace \'std\' to be inline",
[d]=l,
[e]=k,
[j]="cannot declare the namespace \'std\' to be inline",
[c]=m,
[b]="cannot declare the namespace \'std\' to be inline",
[i]=a,
[h]=n,
[g]={"bed75faf7d76",1690219823,"[Clang] Reject programs declaring namespace std to be inline"}
},
["err_inline_nested_namespace_definition"]={
[f]="nested namespace definition cannot be \'inline\'",
[d]=l,
[e]=k,
[j]="nested namespace definition cannot be \'inline\'",
[c]=m,
[b]="nested namespace definition cannot be \'inline\'",
[i]=a,
[h]=o,
[g]={"13307f5f2429",1415425054,"[c++1z] Implement nested-namespace-definitions."}
},
["err_inline_non_function"]={
[f]="\'inline\' can only appear on functions...",
[d]=l,
[e]=k,
[j]="\'inline\' can only appear on functions%select{| and non-local variables}0",
[c]=m,
[b]="\'inline\' can only appear on functions(?:| and non\\-local variables)",
[i]=a,
[h]=n,
[g]={"574c74537027",1239133077,"Diagnose uses of function specifiers on declarations which don\'t declare"}
},
["err_int_to_block_pointer"]={
[f]="invalid block pointer conversion ...",
[d]=l,
[e]=k,
[j]="invalid block pointer conversion %select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2",
[c]=m,
[b]="invalid block pointer conversion (?:(?:assigning to (.*?) from (.*?)|assigning to different types)|(?:passing (.*?) to parameter of type (.*?)|passing to parameter of different type)|(?:returning (.*?) from a function with result type (.*?)|returning from function with different return type)|(?:converting (.*?) to type (.*?)|converting between types)|(?:initializing (.*?) with an expression of type (.*?)|initializing with expression of different type)|(?:sending (.*?) to parameter of type (.*?)|sending to parameter of different type)|(?:casting (.*?) to type (.*?)|casting between types))",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_integer_literal_too_large"]={
[f]="integer literal is too large to be represented in any ...integer type",
[d]=l,
[e]=k,
[j]="integer literal is too large to be represented in any %select{signed |}0integer type",
[c]=m,
[b]="integer literal is too large to be represented in any (?:signed |)integer type",
[i]=a,
[h]=a,
[g]={"31f42318d833",1406213483,"Improving the \"integer constant too large\" diagnostics based on post-commit feedback from Richard Sm..."}
},
["err_integer_sequence_integral_element_type"]={
[f]="integer sequences must have integral element type",
[d]=l,
[e]=k,
[j]="integer sequences must have integral element type",
[c]=m,
[b]="integer sequences must have integral element type",
[i]=a,
[h]=n,
[g]={"d9b1a4fb710d",1446608430,"[Sema] Implement __make_integer_seq"}
},
["err_integer_sequence_negative_length"]={
[f]="integer sequences must have non-negative sequence length",
[d]=l,
[e]=k,
[j]="integer sequences must have non-negative sequence length",
[c]=m,
[b]="integer sequences must have non\\-negative sequence length",
[i]=a,
[h]=n,
[g]={"d9b1a4fb710d",1446608430,"[Sema] Implement __make_integer_seq"}
},
["err_introducing_special_friend"]={
[f]="must use a qualified name when declaring a ... as a friend",
[d]=l,
[e]=k,
[j]="%plural{[0,2]:must use a qualified name when declaring|3:cannot declare}0 a %select{constructor|destructor|conversion operator|deduction guide}0 as a friend",
[c]=m,
[b]="(?:must use a qualified name when declaring|cannot declare) a (?:constructor|destructor|conversion operator|deduction guide) as a friend",
[i]=a,
[h]=n,
[g]={"07e91c04ba33",1249524943,"First pass at friend semantics."}
},
["err_invalid_asm_cast_lvalue"]={
[f]="invalid use of a cast in a inline asm context requiring an lvalue: remove the cast or build with -fheinous-gnu-extensions",
[d]=l,
[e]=k,
[j]="invalid use of a cast in a inline asm context requiring an lvalue: remove the cast or build with -fheinous-gnu-extensions",
[c]=m,
[b]="invalid use of a cast in a inline asm context requiring an lvalue\\: remove the cast or build with \\-fheinous\\-gnu\\-extensions",
[i]=a,
[h]=D,
[g]={q,1237025389,p}
},
["err_invalid_asm_value_for_constraint"]={
[f]="value \'A\' out of range for constraint \'B\'",
[d]=l,
[e]=k,
[j]="value \'%0\' out of range for constraint \'%1\'",
[c]=m,
[b]="value \'(.*?)\' out of range for constraint \'(.*?)\'",
[i]=a,
[h]=D,
[g]={"a2823578e6c5",1420518394,"Sema: analyze I,J,K,M,N,O constraints"}
},
["err_invalid_astype_of_different_size"]={
[f]="invalid reinterpretation: sizes of A and B must match",
[d]=l,
[e]=k,
[j]="invalid reinterpretation: sizes of %0 and %1 must match",
[c]=m,
[b]="invalid reinterpretation\\: sizes of (.*?) and (.*?) must match",
[i]=a,
[h]=n,
[g]={"55808c1026bd",1307148467,"Add support for builtin astype:"}
},
["err_invalid_base_in_interface"]={
[f]="interface type cannot inherit from ... A",
[d]=l,
[e]=k,
[j]="interface type cannot inherit from %select{struct|non-public interface|class}0 %1",
[c]=m,
[b]="interface type cannot inherit from (?:struct|non\\-public interface|class) (.*?)",
[i]=a,
[h]=n,
[g]={"db632ac004ae",1348558359,"Fix for r163013 regression and further __interface enhancement."}
},
["err_invalid_branch_protection_spec"]={
[f]="invalid or misplaced branch protection specification \'A\'",
[d]=l,
[e]=k,
[j]="invalid or misplaced branch protection specification \'%0\'",
[c]=m,
[b]="invalid or misplaced branch protection specification \'(.*?)\'",
[i]=a,
[h]=n,
[g]={bb,1573050950,db}
},
["err_invalid_char_raw_delim"]={
[f]="invalid character \'A\' character in raw string delimiter; use PREFIX( )PREFIX to delimit raw string",
[d]=l,
[e]=k,
[j]="invalid character \'%0\' character in raw string delimiter; use PREFIX( )PREFIX to delimit raw string",
[c]=m,
[b]="invalid character \'(.*?)\' character in raw string delimiter; use PREFIX\\( \\)PREFIX to delimit raw string",
[i]=a,
[h]=t,
[g]={"54edccafc5e3",1313035575,"Add support for C++0x raw string literals."}
},
["err_invalid_character_to_charify"]={
[f]="invalid argument to convert to character",
[d]=l,
[e]=k,
[j]="invalid argument to convert to character",
[c]=m,
[b]="invalid argument to convert to character",
[i]=a,
[h]=t,
[g]={s,1236199783,r}
},
["err_invalid_character_udl"]={
[f]="character literal with user-defined suffix cannot be used here",
[d]=l,
[e]=k,
[j]="character literal with user-defined suffix cannot be used here",
[c]=m,
[b]="character literal with user\\-defined suffix cannot be used here",
[i]=a,
[h]=t,
[g]={"bcc22fc4e1b2",1331280036,"Support for raw and template forms of numeric user-defined literals,"}
},
["err_invalid_collection_element"]={
[f]="collection element of type A is not an Objective-C object",
[d]=l,
[e]=k,
[j]="collection element of type %0 is not an Objective-C object",
[c]=m,
[b]="collection element of type (.*?) is not an Objective\\-C object",
[i]=a,
[h]=n,
[g]={V,1331064356,W}
},
["err_invalid_complex_spec"]={
[f]="\'_Complex A\' is invalid",
[d]=l,
[e]=k,
[j]="\'_Complex %0\' is invalid",
[c]=m,
[b]="\'_Complex (.*?)\' is invalid",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_invalid_consteval_call"]={
[f]="call to ... function A is not a constant expression",
[d]=l,
[e]=k,
[j]="call to %select{immediate|consteval}1 function %q0 is not a constant expression",
[c]=m,
[b]="call to (?:immediate|consteval) function (.*?) is not a constant expression",
[i]=a,
[h]=n,
[g]={mb,1576809732,lb}
},
["err_invalid_consteval_decl_kind"]={
[f]="A cannot be declared consteval",
[d]=l,
[e]=k,
[j]="%0 cannot be declared consteval",
[c]=m,
[b]="(.*?) cannot be declared consteval",
[i]=a,
[h]=n,
[g]={mb,1576809732,lb}
},
["err_invalid_consteval_take_address"]={
[f]="cannot take address of ... ... A outside of an immediate invocation",
[d]=l,
[e]=k,
[j]="cannot take address of %select{immediate|consteval}2 %select{function|call operator of}1 %0 outside of an immediate invocation",
[c]=m,
[b]="cannot take address of (?:immediate|consteval) (?:function|call operator of) (.*?) outside of an immediate invocation",
[i]=a,
[h]=n,
[g]={mb,1576809732,lb}
},
["err_invalid_constexpr"]={
[f]="... cannot be ...",
[d]=l,
[e]=k,
[j]="%select{function parameter|typedef}0 cannot be %select{<ERROR>|constexpr|consteval|constinit}1",
[c]=m,
[b]="(?:function parameter|typedef) cannot be (?:constexpr|consteval|constinit)",
[i]=a,
[h]=n,
[g]={"a77a0a6bf221",1313442247,"Track in the AST whether a function is constexpr."}
},
["err_invalid_constexpr_member"]={
[f]="non-static data member cannot be constexpr...",
[d]=l,
[e]=k,
[j]="non-static data member cannot be constexpr%select{; did you intend to make it %select{const|static}0?|}1",
[c]=m,
[b]="non\\-static data member cannot be constexpr(?:; did you intend to make it (?:const|static)\\?|)",
[i]=a,
[h]=n,
[g]={"35506f82025c",1359508938,"Provide a fixit for constexpr non-static data members."}
},
["err_invalid_constexpr_var_decl"]={
[f]="constexpr variable declaration must be a definition",
[d]=l,
[e]=k,
[j]="constexpr variable declaration must be a definition",
[c]=m,
[b]="constexpr variable declaration must be a definition",
[i]=a,
[h]=n,
[g]={"2316cd8b798b",1317323497,"constexpr: semantic checking for constexpr variables."}
},
["err_invalid_conversion_between_ext_vectors"]={
[f]="invalid conversion between ext-vector type A and B",
[d]=l,
[e]=k,
[j]="invalid conversion between ext-vector type %0 and %1",
[c]=m,
[b]="invalid conversion between ext\\-vector type (.*?) and (.*?)",
[i]=a,
[h]=n,
[g]={"c69b740df42c",1245977428,"OpenCL 1.0 support: explicit casts to ext-vector types"}
},
["err_invalid_conversion_between_matrix_and_type"]={
[f]="conversion between matrix type A and incompatible type B is not allowed",
[d]=l,
[e]=k,
[j]="conversion between matrix type %0 and incompatible type %1 is not allowed",
[c]=m,
[b]="conversion between matrix type (.*?) and incompatible type (.*?) is not allowed",
[i]=a,
[h]=n,
[g]={gb,1607502387,fb}
},
["err_invalid_conversion_between_matrixes"]={
[f]="conversion between matrix types A and B of different size is not allowed",
[d]=l,
[e]=k,
[j]="conversion between matrix types%diff{ $ and $|}0,1 of different size is not allowed",
[c]=m,
[b]="conversion between matrix types(?: (.*?) and (.*?)|) of different size is not allowed",
[i]=a,
[h]=n,
[g]={gb,1607502387,fb}
},
["err_invalid_conversion_between_vector_and_integer"]={
[f]="invalid conversion between vector type A and integer type B of different size",
[d]=l,
[e]=k,
[j]="invalid conversion between vector type %0 and integer type %1 of different size",
[c]=m,
[b]="invalid conversion between vector type (.*?) and integer type (.*?) of different size",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_invalid_conversion_between_vector_and_scalar"]={
[f]="invalid conversion between vector type A and scalar type B",
[d]=l,
[e]=k,
[j]="invalid conversion between vector type %0 and scalar type %1",
[c]=m,
[b]="invalid conversion between vector type (.*?) and scalar type (.*?)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_invalid_conversion_between_vectors"]={
[f]="invalid conversion between vector type A and B of different size",
[d]=l,
[e]=k,
[j]="invalid conversion between vector type%diff{ $ and $|}0,1 of different size",
[c]=m,
[b]="invalid conversion between vector type(?: (.*?) and (.*?)|) of different size",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_invalid_cpu_is"]={
[f]="invalid cpu name for builtin",
[d]=l,
[e]=k,
[j]="invalid cpu name for builtin",
[c]=m,
[b]="invalid cpu name for builtin",
[i]=a,
[h]=n,
[g]={"699ae0c173bd",1502396910,"[X86] Implement __builtin_cpu_is"}
},
["err_invalid_cpu_specific_dispatch_value"]={
[f]="invalid option \'A\' for ...",
[d]=l,
[e]=k,
[j]="invalid option \'%0\' for %select{cpu_specific|cpu_dispatch}1",
[c]=m,
[b]="invalid option \'(.*?)\' for (?:cpu_specific|cpu_dispatch)",
[i]=a,
[h]=n,
[g]={Gc,1532096008,Hc}
},
["err_invalid_cpu_supports"]={
[f]="invalid cpu feature string for builtin",
[d]=l,
[e]=k,
[j]="invalid cpu feature string for builtin",
[c]=m,
[b]="invalid cpu feature string for builtin",
[i]=a,
[h]=n,
[g]={"d983270976d2",1435611605,"Add support for the x86 builtin __builtin_cpu_supports."}
},
["err_invalid_cxx_abi"]={
[f]="invalid C++ ABI name \'A\'",
[d]=l,
[e]=k,
[j]="invalid C++ ABI name \'%0\'",
[c]=m,
[b]="invalid C\\+\\+ ABI name \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"683b308c07bf",1597194187,"[clang] Add -fc++-abi= flag for specifying which C++ ABI to use"}
},
["err_invalid_decl_spec_combination"]={
[f]="cannot combine with previous \'A\' declaration specifier",
[d]=l,
[e]=k,
[j]="cannot combine with previous \'%0\' declaration specifier",
[c]=m,
[b]="cannot combine with previous \'(.*?)\' declaration specifier",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_invalid_decl_specifier_in_nontype_parm"]={
[f]="invalid declaration specifier in template non-type parameter",
[d]=l,
[e]=k,
[j]="invalid declaration specifier in template non-type parameter",
[c]=m,
[b]="invalid declaration specifier in template non\\-type parameter",
[i]=a,
[h]=n,
[g]={"a223d1c856db",1513914655,"Diagnose the various invalid decl-specifiers on nontype template parameters."}
},
["err_invalid_declaration_in_hlsl_buffer"]={
[f]="invalid declaration inside ...",
[d]=l,
[e]=k,
[j]="invalid declaration inside %select{tbuffer|cbuffer}0",
[c]=m,
[b]="invalid declaration inside (?:tbuffer|cbuffer)",
[i]=a,
[h]=a,
[g]={"782ac2182c2b",1657907157,"[HLSL] Support cbuffer/tbuffer for hlsl."}
},
["err_invalid_declarator_global_scope"]={
[f]="definition or redeclaration of A cannot name the global scope",
[d]=l,
[e]=k,
[j]="definition or redeclaration of %0 cannot name the global scope",
[c]=m,
[b]="definition or redeclaration of (.*?) cannot name the global scope",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_invalid_declarator_in_block"]={
[f]="definition or redeclaration of A not allowed inside a block",
[d]=l,
[e]=k,
[j]="definition or redeclaration of %0 not allowed inside a block",
[c]=m,
[b]="definition or redeclaration of (.*?) not allowed inside a block",
[i]=a,
[h]=n,
[g]={"e2358c1debe9",1376344441,"Fix crash w/BlockDecl and invalid qualified decl."}
},
["err_invalid_declarator_in_function"]={
[f]="definition or redeclaration of A not allowed inside a function",
[d]=l,
[e]=k,
[j]="definition or redeclaration of %0 not allowed inside a function",
[c]=m,
[b]="definition or redeclaration of (.*?) not allowed inside a function",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_invalid_declarator_scope"]={
[f]="cannot define or redeclare A here because namespace B does not enclose namespace C",
[d]=l,
[e]=k,
[j]="cannot define or redeclare %0 here because namespace %1 does not enclose namespace %2",
[c]=m,
[b]="cannot define or redeclare (.*?) here because namespace (.*?) does not enclose namespace (.*?)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_invalid_digit"]={
[f]="invalid digit \'A\' in ... constant",
[d]=l,
[e]=k,
[j]="invalid digit \'%0\' in %select{decimal|octal|binary}1 constant",
[c]=m,
[b]="invalid digit \'(.*?)\' in (?:decimal|octal|binary) constant",
[i]=a,
[h]=t,
[g]={"7f5ff2175f68",1447466995,"Use %select to merge similar diagnostics. NFC"}
},
["err_invalid_feature_combination"]={
[f]="invalid feature combination: A",
[d]=l,
[e]=k,
[j]="invalid feature combination: %0",
[c]=m,
[b]="invalid feature combination\\: (.*?)",
[i]=a,
[h]=a,
[g]={"ff13189c5d0d",1624436334,"[RISCV] Unify the arch string parsing logic to to RISCVISAInfo."}
},
["err_invalid_form_pointer_member_function"]={
[f]="cannot create a non-constant pointer to member function",
[d]=l,
[e]=k,
[j]="cannot create a non-constant pointer to member function",
[c]=m,
[b]="cannot create a non\\-constant pointer to member function",
[i]=a,
[h]=n,
[g]={"8d08b9b408ca",1282900108,"Propagate whether an id-expression is the immediate argument of"}
},
["err_invalid_incomplete_type_use"]={
[f]="invalid use of incomplete type A",
[d]=l,
[e]=k,
[j]="invalid use of incomplete type %0",
[c]=m,
[b]="invalid use of incomplete type (.*?)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_invalid_macos_32bit_deployment_target"]={
[f]="32-bit targets are not supported when building for Mac Catalyst",
[d]=l,
[e]=k,
[j]="32-bit targets are not supported when building for Mac Catalyst",
[c]=m,
[b]="32\\-bit targets are not supported when building for Mac Catalyst",
[i]=a,
[h]=a,
[g]={F,1610286626,H}
},
["err_invalid_mask_type_size"]={
[f]="mask type size must be between 1-byte and 8-bytes",
[d]=l,
[e]=k,
[j]="mask type size must be between 1-byte and 8-bytes",
[c]=m,
[b]="mask type size must be between 1\\-byte and 8\\-bytes",
[i]=a,
[h]=n,
[g]={"d572cf496ded",1541487914,"os_log: Allow specifying mask type in format string."}
},
["err_invalid_member_in_interface"]={
[f]="...A is not permitted within an interface type",
[d]=l,
[e]=k,
[j]="%select{data member |non-public member function |static member function |user-declared constructor|user-declared destructor|operator |nested class }0%1 is not permitted within an interface type",
[c]=m,
[b]="(?:data member |non\\-public member function |static member function |user\\-declared constructor|user\\-declared destructor|operator |nested class )(.*?) is not permitted within an interface type",
[i]=a,
[h]=a,
[g]={"db632ac004ae",1348558359,"Fix for r163013 regression and further __interface enhancement."}
},
["err_invalid_member_use_in_static_method"]={
[f]="invalid use of member A in static member function",
[d]=l,
[e]=k,
[j]="invalid use of member %0 in static member function",
[c]=m,
[b]="invalid use of member (.*?) in static member function",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_invalid_module_name"]={
[f]="A is an invalid name for a module",
[d]=l,
[e]=k,
[j]="%0 is an invalid name for a module",
[c]=m,
[b]="(.*?) is an invalid name for a module",
[i]=a,
[h]=x,
[g]={w,1625925174,v}
},
["err_invalid_neon_type_code"]={
[f]="incompatible constant for this __builtin_neon function",
[d]=l,
[e]=k,
[j]="incompatible constant for this __builtin_neon function",
[c]=m,
[b]="incompatible constant for this __builtin_neon function",
[i]=a,
[h]=n,
[g]={"d773fe67dd67",1276404472,"Most of NEON sema checking & fix to polynomial type detection"}
},
["err_invalid_non_static_member_use"]={
[f]="invalid use of non-static data member A",
[d]=l,
[e]=k,
[j]="invalid use of non-static data member %0",
[c]=m,
[b]="invalid use of non\\-static data member (.*?)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_invalid_nsnumber_type"]={
[f]="A is not a valid literal type for NSNumber",
[d]=l,
[e]=k,
[j]="%0 is not a valid literal type for NSNumber",
[c]=m,
[b]="(.*?) is not a valid literal type for NSNumber",
[i]=a,
[h]=n,
[g]={V,1331064356,W}
},
["err_invalid_numeric_udl"]={
[f]="numeric literal with user-defined suffix cannot be used here",
[d]=l,
[e]=k,
[j]="numeric literal with user-defined suffix cannot be used here",
[c]=m,
[b]="numeric literal with user\\-defined suffix cannot be used here",
[i]=a,
[h]=t,
[g]={"bcc22fc4e1b2",1331280036,"Support for raw and template forms of numeric user-defined literals,"}
},
["err_invalid_operator_on_type"]={
[f]="cannot use ... operator on a type",
[d]=l,
[e]=k,
[j]="cannot use %select{dot|arrow}0 operator on a type",
[c]=m,
[b]="cannot use (?:dot|arrow) operator on a type",
[i]=a,
[h]=o,
[g]={"9c67267a7bce",1359167498,"Give a more informative error message when the dot or arrow operator is used"}
},
["err_invalid_pcs"]={
[f]="invalid PCS type",
[d]=l,
[e]=k,
[j]="invalid PCS type",
[c]=m,
[b]="invalid PCS type",
[i]=a,
[h]=n,
[g]={"231e875b5c44",1302811609,"Implement ARM pcs attribute. Basically it\'s another way of calling convention selection (AAPCS or"}
},
["err_invalid_pixel_decl_spec_combination"]={
[f]="\'__pixel\' must be preceded by \'__vector\'.  \'A\' declaration specifier not allowed here",
[d]=l,
[e]=k,
[j]="\'__pixel\' must be preceded by \'__vector\'.  \'%0\' declaration specifier not allowed here",
[c]=m,
[b]="\'__pixel\' must be preceded by \'__vector\'\\.  \'(.*?)\' declaration specifier not allowed here",
[i]=a,
[h]=n,
[g]={"2233460de6ed",1265328742,"First stage of adding AltiVec support"}
},
["err_invalid_property_name"]={
[f]="A is not a valid property name (accessing an object of type B)",
[d]=l,
[e]=k,
[j]="%0 is not a valid property name (accessing an object of type %1)",
[c]=m,
[b]="(.*?) is not a valid property name \\(accessing an object of type (.*?)\\)",
[i]=a,
[h]=n,
[g]={"d645931066c1",1303323595,"Fix a crash-on-invalid involving non-identifier names in a member"}
},
["err_invalid_protocol_qualifiers"]={
[f]="invalid protocol qualifiers on non-ObjC type",
[d]=l,
[e]=k,
[j]="invalid protocol qualifiers on non-ObjC type",
[c]=m,
[b]="invalid protocol qualifiers on non\\-ObjC type",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_invalid_qualified_constructor"]={
[f]="\'A\' qualifier is not allowed on a constructor",
[d]=l,
[e]=k,
[j]="\'%0\' qualifier is not allowed on a constructor",
[c]=m,
[b]="\'(.*?)\' qualifier is not allowed on a constructor",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_invalid_qualified_destructor"]={
[f]="\'A\' qualifier is not allowed on a destructor",
[d]=l,
[e]=k,
[j]="\'%0\' qualifier is not allowed on a destructor",
[c]=m,
[b]="\'(.*?)\' qualifier is not allowed on a destructor",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_invalid_qualified_function_type"]={
[f]="... ...cannot have \'A\' qualifier",
[d]=l,
[e]=k,
[j]="%select{non-member function|static member function|deduction guide}0 %select{of type %2 |}1cannot have \'%3\' qualifier",
[c]=m,
[b]="(?:non\\-member function|static member function|deduction guide) (?:of type (.*?) |)cannot have \'(.*?)\' qualifier",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_invalid_receiver_class_message"]={
[f]="receiver type A is not an Objective-C class",
[d]=l,
[e]=k,
[j]="receiver type %0 is not an Objective-C class",
[c]=m,
[b]="receiver type (.*?) is not an Objective\\-C class",
[i]=a,
[h]=n,
[g]={"0c78ad96653c",1271879840,"Rework the Parser-Sema interaction for Objective-C message"}
},
["err_invalid_receiver_to_message_super"]={
[f]="\'super\' is only valid in a method body",
[d]=l,
[e]=k,
[j]="\'super\' is only valid in a method body",
[c]=m,
[b]="\'super\' is only valid in a method body",
[i]=a,
[h]=n,
[g]={"a36ec4243bea",1270974494,"fix PR6811 by not parsing \'super\' as a magic expression in"}
},
["err_invalid_reference_qualifier_application"]={
[f]="\'A\' qualifier may not be applied to a reference",
[d]=l,
[e]=k,
[j]="\'%0\' qualifier may not be applied to a reference",
[c]=m,
[b]="\'(.*?)\' qualifier may not be applied to a reference",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_invalid_saturation_spec"]={
[f]="\'_Sat\' specifier is only valid on \'_Fract\' or \'_Accum\', not \'A\'",
[d]=l,
[e]=k,
[j]="\'_Sat\' specifier is only valid on \'_Fract\' or \'_Accum\', not \'%0\'",
[c]=m,
[b]="\'_Sat\' specifier is only valid on \'_Fract\' or \'_Accum\', not \'(.*?)\'",
[i]=a,
[h]=n,
[g]={"ab80f3c8b71e",1528988031,"[Fixed Point Arithmetic] Addition of the remaining fixed point types and their saturated equivalents"}
},
["err_invalid_sign_spec"]={
[f]="\'A\' cannot be signed or unsigned",
[d]=l,
[e]=k,
[j]="\'%0\' cannot be signed or unsigned",
[c]=m,
[b]="\'(.*?)\' cannot be signed or unsigned",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_invalid_storage_class_in_func_decl"]={
[f]="invalid storage class specifier in function declarator",
[d]=l,
[e]=k,
[j]="invalid storage class specifier in function declarator",
[c]=m,
[b]="invalid storage class specifier in function declarator",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_invalid_string_udl"]={
[f]="string literal with user-defined suffix cannot be used here",
[d]=l,
[e]=k,
[j]="string literal with user-defined suffix cannot be used here",
[c]=m,
[b]="string literal with user\\-defined suffix cannot be used here",
[i]=a,
[h]=t,
[g]={"d67aea28f6cb",1331004107,"User-defined literals: reject string and character UDLs in all places where the"}
},
["err_invalid_suffix_constant"]={
[f]="invalid suffix \'A\' on ... constant",
[d]=l,
[e]=k,
[j]="invalid suffix \'%0\' on %select{integer|floating|fixed-point}1 constant",
[c]=m,
[b]="invalid suffix \'(.*?)\' on (?:integer|floating|fixed\\-point) constant",
[i]=a,
[h]=t,
[g]={"71a51ff10ee1",1447313810,"Use %select to merge two diagnostics that only differ in one word and are emitted in the same place...."}
},
["err_invalid_super_scope"]={
[f]="invalid use of \'__super\', this keyword can only be used inside class or member function scope",
[d]=l,
[e]=k,
[j]="invalid use of \'__super\', this keyword can only be used inside class or member function scope",
[c]=m,
[b]="invalid use of \'__super\', this keyword can only be used inside class or member function scope",
[i]=a,
[h]=n,
[g]={"67860249e064",1411691300,"-ms-extensions: Implement __super scope specifier (PR13236)."}
},
["err_invalid_this_use"]={
[f]="invalid use of \'this\' outside of a non-static member function",
[d]=l,
[e]=k,
[j]="invalid use of \'this\' outside of a non-static member function",
[c]=m,
[b]="invalid use of \'this\' outside of a non\\-static member function",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_invalid_thread"]={
[f]="\'A\' is only allowed on variable declarations",
[d]=l,
[e]=k,
[j]="\'%0\' is only allowed on variable declarations",
[c]=m,
[b]="\'(.*?)\' is only allowed on variable declarations",
[i]=a,
[h]=n,
[g]={"d5c0eeda7285",1240172875,"Add more thorough/correct checking for invalid __thread specifiers."}
},
["err_invalid_token_after_declarator_suggest_equal"]={
[f]="invalid A at end of declaration; did you mean \'=\'?",
[d]=l,
[e]=k,
[j]="invalid %0 at end of declaration; did you mean \'=\'?",
[c]=m,
[b]="invalid (.*?) at end of declaration; did you mean \'\\=\'\\?",
[i]=a,
[h]=o,
[g]={"4972a6dd080f",1327010511,"Extend the error of invalid token after declarations to include fixits for "}
},
["err_invalid_token_after_toplevel_declarator"]={
[f]="expected \';\' after top level declarator",
[d]=l,
[e]=k,
[j]="expected \';\' after top level declarator",
[c]=m,
[b]="expected \';\' after top level declarator",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_invalid_type_for_program_scope_var"]={
[f]="the A type cannot be used to declare a program scope variable",
[d]=l,
[e]=k,
[j]="the %0 type cannot be used to declare a program scope variable",
[c]=m,
[b]="the (.*?) type cannot be used to declare a program scope variable",
[i]=a,
[h]="Related Result Type Issue",
[g]={"c211c6c8844a",1480414900,"[OpenCL] Prohibit using reserve_id_t in program scope."}
},
["err_invalid_ucn_name"]={
[f]="\'A\' is not a valid Unicode character name",
[d]=l,
[e]=k,
[j]="\'%0\' is not a valid Unicode character name",
[c]=m,
[b]="\'(.*?)\' is not a valid Unicode character name",
[i]=a,
[h]=t,
[g]={w,1625925174,v}
},
["err_invalid_use_of_array_type"]={
[f]="an array type is not allowed here",
[d]=l,
[e]=k,
[j]="an array type is not allowed here",
[c]=m,
[b]="an array type is not allowed here",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_invalid_use_of_function_type"]={
[f]="a function type is not allowed here",
[d]=l,
[e]=k,
[j]="a function type is not allowed here",
[c]=m,
[b]="a function type is not allowed here",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_invalid_utf8"]={
[f]="source file is not valid UTF-8",
[d]=l,
[e]=k,
[j]="source file is not valid UTF-8",
[c]=m,
[b]="source file is not valid UTF\\-8",
[i]=a,
[h]=t,
[g]={"7f43dddae066",1359060646,"Handle universal character names and Unicode characters outside of literals."}
},
["err_invalid_var_template_spec_type"]={
[f]="type A of ... of B does not match expected type C",
[d]=l,
[e]=k,
[j]="type %2 of %select{explicit instantiation|explicit specialization|partial specialization|redeclaration}0 of %1 does not match expected type %3",
[c]=m,
[b]="type (.*?) of (?:explicit instantiation|explicit specialization|partial specialization|redeclaration) of (.*?) does not match expected type (.*?)",
[i]=a,
[h]=n,
[g]={"39a1e507ff0b",1375750985,"Started implementing variable templates. Top level declarations should be fully supported, up to som..."}
},
["err_invalid_vector_bool_decl_spec"]={
[f]="cannot use \'A\' with \'__vector bool\'",
[d]=l,
[e]=k,
[j]="cannot use \'%0\' with \'__vector bool\'",
[c]=m,
[b]="cannot use \'(.*?)\' with \'__vector bool\'",
[i]=a,
[h]=n,
[g]={"37141f4fb4ac",1277272824,"improve altivec vector bool/pixel support, patch by Anton Yartsev"}
},
["err_invalid_vector_bool_int128_decl_spec"]={
[f]="use of \'__int128\' with \'__vector bool\' requires VSX support enabled (on POWER10 or later)",
[d]=l,
[e]=k,
[j]="use of \'__int128\' with \'__vector bool\' requires VSX support enabled (on POWER10 or later)",
[c]=m,
[b]="use of \'__int128\' with \'__vector bool\' requires VSX support enabled \\(on POWER10 or later\\)",
[i]=a,
[h]=n,
[g]={G,1582847864,I}
},
["err_invalid_vector_decl_spec_combination"]={
[f]="cannot combine with previous \'A\' declaration specifier. \'__vector\' must be first",
[d]=l,
[e]=k,
[j]="cannot combine with previous \'%0\' declaration specifier. \'__vector\' must be first",
[c]=m,
[b]="cannot combine with previous \'(.*?)\' declaration specifier\\. \'__vector\' must be first",
[i]=a,
[h]=n,
[g]={"2233460de6ed",1265328742,"First stage of adding AltiVec support"}
},
["err_invalid_vector_double_decl_spec"]={
[f]="use of \'double\' with \'__vector\' requires VSX support to be enabled (available on POWER7 or later)",
[d]=l,
[e]=k,
[j]="use of \'double\' with \'__vector\' requires VSX support to be enabled (available on POWER7 or later)",
[c]=m,
[b]="use of \'double\' with \'__vector\' requires VSX support to be enabled \\(available on POWER7 or later\\)",
[i]=a,
[h]=n,
[g]={"691e01d94e53",1414783164,"[PowerPC] Initial VSX intrinsic support, with min/max for vector double"}
},
["err_invalid_vector_float_decl_spec"]={
[f]="cannot use \'float\' with \'__vector\'",
[d]=l,
[e]=k,
[j]="cannot use \'float\' with \'__vector\'",
[c]=m,
[b]="cannot use \'float\' with \'__vector\'",
[i]=a,
[h]=n,
[g]={"3c5038a535c8",1438265316,"Add support for System z vector language extensions"}
},
["err_invalid_vector_int128_decl_spec"]={
[f]="use of \'__int128\' with \'__vector\' requires extended Altivec support (available on POWER8 or later)",
[d]=l,
[e]=k,
[j]="use of \'__int128\' with \'__vector\' requires extended Altivec support (available on POWER8 or later)",
[c]=m,
[b]="use of \'__int128\' with \'__vector\' requires extended Altivec support \\(available on POWER8 or later\\)",
[i]=a,
[h]=n,
[g]={ub,1615397021,qb}
},
["err_invalid_vector_long_decl_spec"]={
[f]="cannot use \'long\' with \'__vector\'",
[d]=l,
[e]=k,
[j]="cannot use \'long\' with \'__vector\'",
[c]=m,
[b]="cannot use \'long\' with \'__vector\'",
[i]=a,
[h]=n,
[g]={"3c5038a535c8",1438265316,"Add support for System z vector language extensions"}
},
["err_invalid_vector_long_double_decl_spec"]={
[f]="cannot use \'long double\' with \'__vector\'",
[d]=l,
[e]=k,
[j]="cannot use \'long double\' with \'__vector\'",
[c]=m,
[b]="cannot use \'long double\' with \'__vector\'",
[i]=a,
[h]=n,
[g]={"691e01d94e53",1414783164,"[PowerPC] Initial VSX intrinsic support, with min/max for vector double"}
},
["err_invalid_vector_long_long_decl_spec"]={
[f]="use of \'long long\' with \'__vector\' requires VSX support (available on POWER7 or later) to be enabled",
[d]=l,
[e]=k,
[j]="use of \'long long\' with \'__vector\' requires VSX support (available on POWER7 or later) to be enabled",
[c]=m,
[b]="use of \'long long\' with \'__vector\' requires VSX support \\(available on POWER7 or later\\) to be enabled",
[i]=a,
[h]=n,
[g]={"2351bec3ead0",1425413323,"[PowerPC]Activate \"vector bool long long\" (and alternate spellings) as a valid type for Altivec supp..."}
},
["err_invalid_vfs_overlay"]={
[f]="invalid virtual filesystem overlay file \'A\'",
[d]=y,
[e]=z,
[j]="invalid virtual filesystem overlay file \'%0\'",
[c]=A,
[b]="invalid virtual filesystem overlay file \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"801272a98c71",1393352627,"Add a driver option -ivfsoverlay"}
},
["err_invalid_width_spec"]={
[f]="\'... A\' is invalid",
[d]=l,
[e]=k,
[j]="\'%select{|short|long|long long}0 %1\' is invalid",
[c]=m,
[b]="\'(?:|short|long|long long) (.*?)\' is invalid",
[i]=a,
[h]=n,
[g]={"54a6a68c706b",1447524968,"Merge some similar diagnostics using %select."}
},
["err_ivar_access_using_property_syntax_suggest"]={
[f]="property A not found on object of type B; did you mean to access instance variable C?",
[d]=l,
[e]=k,
[j]="property %0 not found on object of type %1; did you mean to access instance variable %2?",
[c]=m,
[b]="property (.*?) not found on object of type (.*?); did you mean to access instance variable (.*?)\\?",
[i]=a,
[h]=n,
[g]={"c297cd883641",1309219252,"Provide fix-it for \'.\' <-> \'->\' for Objective-C ivar/property access."}
},
["err_ivar_in_superclass_use"]={
[f]="property A attempting to use instance variable B declared in super class C",
[d]=l,
[e]=k,
[j]="property %0 attempting to use instance variable %1 declared in super class %2",
[c]=m,
[b]="property (.*?) attempting to use instance variable (.*?) declared in super class (.*?)",
[i]=a,
[h]=n,
[g]={P,1480718311,O}
},
["err_ivar_reference_type"]={
[f]="instance variables cannot be of reference type",
[d]=l,
[e]=k,
[j]="instance variables cannot be of reference type",
[c]=m,
[b]="instance variables cannot be of reference type",
[i]=a,
[h]=n,
[g]={"0103d67f9816",1272319623,"Diagnose declaration of reference typed ivars."}
},
["err_ivar_use_in_class_method"]={
[f]="instance variable A accessed in class method",
[d]=l,
[e]=k,
[j]="instance variable %0 accessed in class method",
[c]=m,
[b]="instance variable (.*?) accessed in class method",
[i]=a,
[h]=n,
[g]={P,1480718311,O}
},
["err_kern_call_not_global_function"]={
[f]="kernel call to non-global function A",
[d]=l,
[e]=k,
[j]="kernel call to non-global function %0",
[c]=m,
[b]="kernel call to non\\-global function (.*?)",
[i]=a,
[h]=n,
[g]={"4b66c47a16ee",1298426009,"Sema: diagnose kernel calls to non-global functions"}
},
["err_kern_is_nonstatic_method"]={
[f]="kernel function A must be a free function or static member function",
[d]=l,
[e]=k,
[j]="kernel function %0 must be a free function or static member function",
[c]=m,
[b]="kernel function (.*?) must be a free function or static member function",
[i]=a,
[h]=n,
[g]={"c66a10652a94",1453249617,"[CUDA] Only allow __global__ on free functions and static member functions."}
},
["err_kern_type_not_void_return"]={
[f]="kernel function type A must have void return type",
[d]=l,
[e]=k,
[j]="kernel function type %0 must have void return type",
[c]=m,
[b]="kernel function type (.*?) must have void return type",
[i]=a,
[h]=n,
[g]={"e8cfaf4258ca",1292194977,"Sema: diagnose kernel functions with non-void return type"}
},
["err_kernel_arg_address_space"]={
[f]="pointer arguments to kernel functions must reside in \'__global\', \'__constant\' or \'__local\' address space",
[d]=l,
[e]=k,
[j]="pointer arguments to kernel functions must reside in \'__global\', \'__constant\' or \'__local\' address space",
[c]=m,
[b]="pointer arguments to kernel functions must reside in \'__global\', \'__constant\' or \'__local\' address space",
[i]=a,
[h]=n,
[g]={"de82a65053de",1481638043,"[OpenCL] Improve address space diagnostics."}
},
["err_keyword_as_parameter"]={
[f]="invalid parameter name: \'A\' is a keyword",
[d]=l,
[e]=k,
[j]="invalid parameter name: \'%0\' is a keyword",
[c]=m,
[b]="invalid parameter name\\: \'(.*?)\' is a keyword",
[i]=a,
[h]=o,
[g]={"625acd8f6847",1586351328,"[Parser] Improve diagnostic and error recovery when C++ keywords are used as identifiers."}
},
["err_keyword_misplaced"]={
[f]="misplaced A; expected B here",
[d]=l,
[e]=k,
[j]="misplaced %0; expected %0 here",
[c]=m,
[b]="misplaced (.*?); expected (.*?) here",
[i]=a,
[h]=o,
[g]={"ef9ec4bbcca2",1677810915,"[OpenMP] Add the `ompx_attribute` clause for target directives"}
},
["err_keyword_not_allowed"]={
[f]="A cannot appear here",
[d]=l,
[e]=k,
[j]="%0 cannot appear here",
[c]=m,
[b]="(.*?) cannot appear here",
[i]=a,
[h]=o,
[g]={"ef9ec4bbcca2",1677810915,"[OpenMP] Add the `ompx_attribute` clause for target directives"}
},
["err_keyword_not_import_attr"]={
[f]="A cannot be applied to a module import",
[d]=l,
[e]=k,
[j]="%0 cannot be applied to a module import",
[c]=m,
[b]="(.*?) cannot be applied to a module import",
[i]=a,
[h]=x,
[g]={"ef9ec4bbcca2",1677810915,"[OpenMP] Add the `ompx_attribute` clause for target directives"}
},
["err_keyword_not_module_attr"]={
[f]="A cannot be applied to a module",
[d]=l,
[e]=k,
[j]="%0 cannot be applied to a module",
[c]=m,
[b]="(.*?) cannot be applied to a module",
[i]=a,
[h]=x,
[g]={"ef9ec4bbcca2",1677810915,"[OpenMP] Add the `ompx_attribute` clause for target directives"}
},
["err_keyword_not_supported_on_target"]={
[f]="A is not supported on this target",
[d]=l,
[e]=k,
[j]="%0 is not supported on this target",
[c]=m,
[b]="(.*?) is not supported on this target",
[i]=a,
[h]=a,
[g]={"33ee5c466346",1680613513,"[clang] Add Parse and Sema support for RegularKeyword attributes"}
},
["err_l_square_l_square_not_attribute"]={
[f]="C++11 only allows consecutive left square brackets when introducing an attribute",
[d]=l,
[e]=k,
[j]="C++11 only allows consecutive left square brackets when introducing an attribute",
[c]=m,
[b]="C\\+\\+11 only allows consecutive left square brackets when introducing an attribute",
[i]=a,
[h]=o,
[g]={"7bdcc4a9da8c",1334021532,"Disambiguation of \'[[\':"}
},
["err_lambda_after_delete"]={
[f]="\'[]\' after delete interpreted as \'delete[]\'; add parentheses to treat this as a lambda-expression",
[d]=l,
[e]=k,
[j]="\'[]\' after delete interpreted as \'delete[]\'; add parentheses to treat this as a lambda-expression",
[c]=m,
[b]="\'\\[\\]\' after delete interpreted as \'delete\\[\\]\'; add parentheses to treat this as a lambda\\-expression",
[i]=a,
[h]=o,
[g]={"f53d1727107e",1558278478,"Added a better diagnostic when using the delete operator with lambdas"}
},
["err_lambda_capture_anonymous_var"]={
[f]="unnamed variable cannot be implicitly captured in a lambda expression",
[d]=l,
[e]=k,
[j]="unnamed variable cannot be implicitly captured in a lambda expression",
[c]=m,
[b]="unnamed variable cannot be implicitly captured in a lambda expression",
[i]=a,
[h]=Q,
[g]={"24af85047046",1328309257,"Implement implicit capture for lambda expressions."}
},
["err_lambda_capture_default_arg"]={
[f]="lambda expression in default argument cannot capture any entity",
[d]=l,
[e]=k,
[j]="lambda expression in default argument cannot capture any entity",
[c]=m,
[b]="lambda expression in default argument cannot capture any entity",
[i]=a,
[h]=Q,
[g]={"f0d495100cf4",1328916622,"Implement C++11 [expr.lambda.prim]p13, which prohibits lambdas in"}
},
["err_lambda_capture_flexarray_type"]={
[f]="variable A with flexible array member cannot be captured in a lambda expression",
[d]=l,
[e]=k,
[j]="variable %0 with flexible array member cannot be captured in a lambda expression",
[c]=m,
[b]="variable (.*?) with flexible array member cannot be captured in a lambda expression",
[i]=a,
[h]=Q,
[g]={"a716a345276c",1357687071,"objectiveC blocks: It is impractical to capture "}
},
["err_lambda_capture_misplaced_ellipsis"]={
[f]="ellipsis in pack ...capture must appear ... the name of the capture",
[d]=l,
[e]=k,
[j]="ellipsis in pack %select{|init-}0capture must appear %select{after|before}0 the name of the capture",
[c]=m,
[b]="ellipsis in pack (?:|init\\-)capture must appear (?:after|before) the name of the capture",
[i]=a,
[h]=o,
[g]={"b2997f579a8b",1558469450,"[c++20] P0780R2: Support pack-expansion of init-captures."}
},
["err_lambda_capture_multiple_ellipses"]={
[f]="multiple ellipses in pack capture",
[d]=l,
[e]=k,
[j]="multiple ellipses in pack capture",
[c]=m,
[b]="multiple ellipses in pack capture",
[i]=a,
[h]=o,
[g]={"b2997f579a8b",1558469450,"[c++20] P0780R2: Support pack-expansion of init-captures."}
},
["err_lambda_decl_ref_not_modifiable_lvalue"]={
[f]="cannot assign to a variable captured by copy in a non-mutable lambda",
[d]=l,
[e]=k,
[j]="cannot assign to a variable captured by copy in a non-mutable lambda",
[c]=m,
[b]="cannot assign to a variable captured by copy in a non\\-mutable lambda",
[i]=a,
[h]=n,
[g]={"5fa2ef4445fa",1331599021,"Alternate fix to PR12248:  put Sema in charge of special-casing"}
},
["err_lambda_decl_specifier_repeated"]={
[f]="... cannot appear multiple times in a lambda declarator",
[d]=l,
[e]=k,
[j]="%select{\'mutable\'|\'static\'|\'constexpr\'|\'consteval\'}0 cannot appear multiple times in a lambda declarator",
[c]=m,
[b]="(?:\'mutable\'|\'static\'|\'constexpr\'|\'consteval\') cannot appear multiple times in a lambda declarator",
[i]=a,
[h]=o,
[g]={"a734ab980865",1459008697,"[Cxx1z-constexpr-lambda-P0170R1]  Support parsing of constexpr specifier (and its inference) on lamb..."}
},
["err_lambda_impcap"]={
[f]="variable A cannot be implicitly captured in a lambda with no capture-default specified",
[d]=l,
[e]=k,
[j]="variable %0 cannot be implicitly captured in a lambda with no capture-default specified",
[c]=m,
[b]="variable (.*?) cannot be implicitly captured in a lambda with no capture\\-default specified",
[i]=a,
[h]=Q,
[g]={"24af85047046",1328309257,"Implement implicit capture for lambda expressions."}
},
["err_lambda_in_constant_expression"]={
[f]="a lambda expression may not appear inside of a constant expression",
[d]=l,
[e]=k,
[j]="a lambda expression may not appear inside of a constant expression",
[c]=m,
[b]="a lambda expression may not appear inside of a constant expression",
[i]=a,
[h]=Q,
[g]={"9adc361008e2",1382692372,"Sema: Do not allow lambda expressions to appear inside of constant expressions"}
},
["err_lambda_in_invalid_context"]={
[f]="a lambda expression cannot appear in this context",
[d]=l,
[e]=k,
[j]="a lambda expression cannot appear in this context",
[c]=m,
[b]="a lambda expression cannot appear in this context",
[i]=a,
[h]=Q,
[g]={"b6d5c5871857",1531421141,"[C++17] Disallow lambdas in template parameters (PR33696)."}
},
["err_lambda_incomplete_result"]={
[f]="incomplete result type A in lambda expression",
[d]=l,
[e]=k,
[j]="incomplete result type %0 in lambda expression",
[c]=m,
[b]="incomplete result type (.*?) in lambda expression",
[i]=a,
[h]=Q,
[g]={"621003e7b956",1329254444,"Check the return type of lambda expressions."}
},
["err_lambda_return_init_list"]={
[f]="cannot deduce lambda return type from initializer list",
[d]=l,
[e]=k,
[j]="cannot deduce lambda return type from initializer list",
[c]=m,
[b]="cannot deduce lambda return type from initializer list",
[i]=a,
[h]=Q,
[g]={"940a550f0d35",1328812839,"Don\'t allow deduction of a lambda result type from an initializer"}
},
["err_lambda_template_parameter_list_empty"]={
[f]="lambda template parameter list cannot be empty",
[d]=l,
[e]=k,
[j]="lambda template parameter list cannot be empty",
[c]=m,
[b]="lambda template parameter list cannot be empty",
[i]=a,
[h]=o,
[g]={"8205a814a691",1556966986,"[c++20] Implement P0428R2 - Familiar template syntax for generic lambdas"}
},
["err_lambda_unevaluated_operand"]={
[f]="lambda expression in an unevaluated operand",
[d]=l,
[e]=k,
[j]="lambda expression in an unevaluated operand",
[c]=m,
[b]="lambda expression in an unevaluated operand",
[i]=a,
[h]=Q,
[g]={"896254916416",1328775283,"Implement C++ [expr.prim.lambda]p2, which bans lambda expressions in"}
},
["err_language_linkage_spec_unknown"]={
[f]="unknown linkage language",
[d]=l,
[e]=k,
[j]="unknown linkage language",
[c]=m,
[b]="unknown linkage language",
[i]=a,
[h]=n,
[g]={"4ee696d55cbb",1392679527,"PR18870: Parse language linkage specifiers properly if the string-literal is"}
},
["err_late_asm_label_name"]={
[f]="cannot apply asm label to ... after its first use",
[d]=l,
[e]=k,
[j]="cannot apply asm label to %select{variable|function}0 after its first use",
[c]=m,
[b]="cannot apply asm label to (?:variable|function) after its first use",
[i]=a,
[h]=n,
[g]={"6ee53bc0850c",1449869335,"Error on redeclaring with a conflicting asm label and on redeclaring with an asm label after the fir..."}
},
["err_lexing_char"]={
[f]="failure when lexing a character literal",
[d]=l,
[e]=k,
[j]="failure when lexing a character literal",
[c]=m,
[b]="failure when lexing a character literal",
[i]=a,
[h]=t,
[g]={w,1625925174,v}
},
["err_lexing_numeric"]={
[f]="failure when lexing a numeric literal",
[d]=l,
[e]=k,
[j]="failure when lexing a numeric literal",
[c]=m,
[b]="failure when lexing a numeric literal",
[i]=a,
[h]=t,
[g]={w,1625925174,v}
},
["err_lexing_string"]={
[f]="failure when lexing a string literal",
[d]=l,
[e]=k,
[j]="failure when lexing a string literal",
[c]=m,
[b]="failure when lexing a string literal",
[i]=a,
[h]=t,
[g]={"9933e3ac88ad",1336067432,"In StringLiteralParser::init, make sure we emit an error when"}
},
["err_lifetimebound_ctor_dtor"]={
[f]="\'lifetimebound\' attribute cannot be applied to a ...",
[d]=l,
[e]=k,
[j]="\'lifetimebound\' attribute cannot be applied to a %select{constructor|destructor}0",
[c]=m,
[b]="\'lifetimebound\' attribute cannot be applied to a (?:constructor|destructor)",
[i]=a,
[h]=n,
[g]={"f4e248c23e05",1533083605,"[P0936R0] add [[clang::lifetimebound]] attribute"}
},
["err_lifetimebound_no_object_param"]={
[f]="\'lifetimebound\' attribute cannot be applied; ...member function has no implicit object parameter",
[d]=l,
[e]=k,
[j]="\'lifetimebound\' attribute cannot be applied; %select{static |non-}0member function has no implicit object parameter",
[c]=m,
[b]="\'lifetimebound\' attribute cannot be applied; (?:static |non\\-)member function has no implicit object parameter",
[i]=a,
[h]=n,
[g]={"f4e248c23e05",1533083605,"[P0936R0] add [[clang::lifetimebound]] attribute"}
},
["err_list_init_in_parens"]={
[f]="cannot initialize ... type A with a parenthesized initializer list",
[d]=l,
[e]=k,
[j]="cannot initialize %select{non-class|reference}0 type %1 with a parenthesized initializer list",
[c]=m,
[b]="cannot initialize (?:non\\-class|reference) type (.*?) with a parenthesized initializer list",
[i]=a,
[h]=n,
[g]={"3852637005b1",1478965135,"Use descriptive message if list initializer is incorrectly parenthesized."}
},
["err_literal_operator_bad_param_count"]={
[f]="non-template literal operator must have one or two parameters",
[d]=l,
[e]=k,
[j]="non-template literal operator must have one or two parameters",
[c]=m,
[b]="non\\-template literal operator must have one or two parameters",
[i]=a,
[h]=n,
[g]={Fc,1455667444,Ec}
},
["err_literal_operator_default_argument"]={
[f]="literal operator cannot have a default argument",
[d]=l,
[e]=k,
[j]="literal operator cannot have a default argument",
[c]=m,
[b]="literal operator cannot have a default argument",
[i]=a,
[h]=n,
[g]={"768ceccc75f0",1331280982,"Literal operators can\'t have default arguments."}
},
["err_literal_operator_extern_c"]={
[f]="literal operator must have C++ linkage",
[d]=l,
[e]=k,
[j]="literal operator must have C++ linkage",
[c]=m,
[b]="literal operator must have C\\+\\+ linkage",
[i]=a,
[h]=n,
[g]={"72eebee0cb6a",1330854076,"Add tests for [over.literal]. Fix a few bugs which were exposed by the tests."}
},
["err_literal_operator_id_outside_namespace"]={
[f]="non-namespace scope \'A\' cannot have a literal operator member",
[d]=l,
[e]=k,
[j]="non-namespace scope \'%0\' cannot have a literal operator member",
[c]=m,
[b]="non\\-namespace scope \'(.*?)\' cannot have a literal operator member",
[i]=a,
[h]=n,
[g]={"d091dc179dbd",1386205113,"Reject template-ids containing literal-operator-ids that have a dependent"}
},
["err_literal_operator_invalid_param"]={
[f]="parameter of literal operator must have type \'unsigned long long\', \'long double\', \'char\', \'wchar_t\', \'char16_t\', \'char32_t\', or \'const char *\'",
[d]=l,
[e]=k,
[j]="parameter of literal operator must have type \'unsigned long long\', \'long double\', \'char\', \'wchar_t\', \'char16_t\', \'char32_t\', or \'const char *\'",
[c]=m,
[b]="parameter of literal operator must have type \'unsigned long long\', \'long double\', \'char\', \'wchar_t\', \'char16_t\', \'char32_t\', or \'const char \\*\'",
[i]=a,
[h]=n,
[g]={Fc,1455667444,Ec}
},
["err_literal_operator_outside_namespace"]={
[f]="literal operator A must be in a namespace or global scope",
[d]=l,
[e]=k,
[j]="literal operator %0 must be in a namespace or global scope",
[c]=m,
[b]="literal operator (.*?) must be in a namespace or global scope",
[i]=a,
[h]=n,
[g]={"c88db06565fc",1263373262,"Implement semantic checking for C++ literal operators."}
},
["err_literal_operator_param"]={
[f]="invalid literal operator parameter type A, did you mean B?",
[d]=l,
[e]=k,
[j]="invalid literal operator parameter type %0, did you mean %1?",
[c]=m,
[b]="invalid literal operator parameter type (.*?), did you mean (.*?)\\?",
[i]=a,
[h]=n,
[g]={Fc,1455667444,Ec}
},
["err_literal_operator_string_not_empty"]={
[f]="string literal after \'operator\' must be \'\"\"\'",
[d]=l,
[e]=k,
[j]="string literal after \'operator\' must be \'\"\"\'",
[c]=m,
[b]="string literal after \'operator\' must be \'\"\"\'",
[i]=a,
[h]=o,
[g]={"d67aea28f6cb",1331004107,"User-defined literals: reject string and character UDLs in all places where the"}
},
["err_literal_operator_string_prefix"]={
[f]="string literal after \'operator\' cannot have an encoding prefix",
[d]=l,
[e]=k,
[j]="string literal after \'operator\' cannot have an encoding prefix",
[c]=m,
[b]="string literal after \'operator\' cannot have an encoding prefix",
[i]=a,
[h]=o,
[g]={"7d182a790988",1331247962,"Fix a couple of issues with literal-operator-id parsing, and provide recovery"}
},
["err_literal_operator_template"]={
[f]="template parameter list for literal operator must be either \'char...\' or \'typename T, T...\'",
[d]=l,
[e]=k,
[j]="template parameter list for literal operator must be either \'char...\' or \'typename T, T...\'",
[c]=m,
[b]="template parameter list for literal operator must be either \'char\\.\\.\\.\' or \'typename T, T\\.\\.\\.\'",
[i]=a,
[h]=n,
[g]={Fc,1455667444,Ec}
},
["err_literal_operator_template_with_params"]={
[f]="literal operator template cannot have any parameters",
[d]=l,
[e]=k,
[j]="literal operator template cannot have any parameters",
[c]=m,
[b]="literal operator template cannot have any parameters",
[i]=a,
[h]=n,
[g]={Fc,1455667444,Ec}
},
["err_loader_uninitialized_cant_init"]={
[f]="variable with \'loader_uninitialized\' attribute cannot have an initializer",
[d]=l,
[e]=k,
[j]="variable with \'loader_uninitialized\' attribute cannot have an initializer",
[c]=m,
[b]="variable with \'loader_uninitialized\' attribute cannot have an initializer",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_loader_uninitialized_extern_decl"]={
[f]="variable A cannot be declared both \'extern\' and with the \'loader_uninitialized\' attribute",
[d]=l,
[e]=k,
[j]="variable %0 cannot be declared both \'extern\' and with the \'loader_uninitialized\' attribute",
[c]=m,
[b]="variable (.*?) cannot be declared both \'extern\' and with the \'loader_uninitialized\' attribute",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_loader_uninitialized_redeclaration"]={
[f]="redeclaration cannot add \'loader_uninitialized\' attribute",
[d]=l,
[e]=k,
[j]="redeclaration cannot add \'loader_uninitialized\' attribute",
[c]=m,
[b]="redeclaration cannot add \'loader_uninitialized\' attribute",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_loader_uninitialized_trivial_ctor"]={
[f]="variable with \'loader_uninitialized\' attribute must have a trivial default constructor",
[d]=l,
[e]=k,
[j]="variable with \'loader_uninitialized\' attribute must have a trivial default constructor",
[c]=m,
[b]="variable with \'loader_uninitialized\' attribute must have a trivial default constructor",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_local_cant_init"]={
[f]="\'__local\' variable cannot have an initializer",
[d]=l,
[e]=k,
[j]="\'__local\' variable cannot have an initializer",
[c]=m,
[b]="\'__local\' variable cannot have an initializer",
[i]=a,
[h]=n,
[g]={"2dbb708b8ade",1316466875,"OpenCL: introduce support for function scope __local variables"}
},
["err_loongarch_builtin_requires_la32"]={
[f]="this builtin requires target: loongarch32",
[d]=l,
[e]=k,
[j]="this builtin requires target: loongarch32",
[c]=m,
[b]="this builtin requires target\\: loongarch32",
[i]=a,
[h]=a,
[g]={w,1625925174,v}
},
["err_loongarch_builtin_requires_la64"]={
[f]="this builtin requires target: loongarch64",
[d]=l,
[e]=k,
[j]="this builtin requires target: loongarch64",
[c]=m,
[b]="this builtin requires target\\: loongarch64",
[i]=a,
[h]=a,
[g]={w,1625925174,v}
},
["err_lvalue_reference_bind_to_initlist"]={
[f]="... lvalue reference to type A cannot bind to an initializer list temporary",
[d]=l,
[e]=k,
[j]="%select{non-const|volatile}0 lvalue reference to type %1 cannot bind to an initializer list temporary",
[c]=m,
[b]="(?:non\\-const|volatile) lvalue reference to type (.*?) cannot bind to an initializer list temporary",
[i]=a,
[h]=n,
[g]={"29526f09cee8",1322412607,"Reference initialization with initializer lists."}
},
["err_lvalue_reference_bind_to_temporary"]={
[f]="... lvalue reference to type A cannot bind to a temporary of type B",
[d]=l,
[e]=k,
[j]="%select{non-const|volatile}0 lvalue reference %diff{to type $ cannot bind to a temporary of type $|cannot bind to incompatible temporary}1,2",
[c]=m,
[b]="(?:non\\-const|volatile) lvalue reference (?:to type (.*?) cannot bind to a temporary of type (.*?)|cannot bind to incompatible temporary)",
[i]=a,
[h]=n,
[g]={"3e1e52782604",1260399737,"Reimplement reference initialization (C++ [dcl.init.ref]) using the"}
},
["err_lvalue_reference_bind_to_unrelated"]={
[f]="... lvalue reference to type A cannot bind to a value of unrelated type B",
[d]=l,
[e]=k,
[j]="%select{non-const|volatile}0 lvalue reference %diff{to type $ cannot bind to a value of unrelated type $|cannot bind to a value of unrelated type}1,2",
[c]=m,
[b]="(?:non\\-const|volatile) lvalue reference (?:to type (.*?) cannot bind to a value of unrelated type (.*?)|cannot bind to a value of unrelated type)",
[i]=a,
[h]=n,
[g]={"3e1e52782604",1260399737,"Reimplement reference initialization (C++ [dcl.init.ref]) using the"}
},
["err_lvalue_to_rvalue_ref"]={
[f]="rvalue reference to type A cannot bind to lvalue of type B",
[d]=l,
[e]=k,
[j]="rvalue reference %diff{to type $ cannot bind to lvalue of type $|cannot bind to incompatible lvalue}0,1",
[c]=m,
[b]="rvalue reference (?:to type (.*?) cannot bind to lvalue of type (.*?)|cannot bind to incompatible lvalue)",
[i]=a,
[h]=n,
[g]={"0f8b23f71fbe",1237245728,"Almost complete implementation of rvalue references. One bug, and a few unclear areas. Maybe Doug ca..."}
},
["err_machine_mode"]={
[f]="... machine mode A",
[d]=l,
[e]=k,
[j]="%select{unknown|unsupported}0 machine mode %1",
[c]=m,
[b]="(?:unknown|unsupported) machine mode (.*?)",
[i]=a,
[h]=n,
[g]={"0390908588fa",1387812191,"Consolidating some mode attribute diagnostics. No functional changes intended."}
},
["err_main_arg_wrong"]={
[f]="... parameter of \'main\' (...) must be of type A",
[d]=l,
[e]=k,
[j]="%select{first|second|third|fourth}0 parameter of \'main\' (%select{argument count|argument array|environment|platform-specific data}0) must be of type %1",
[c]=m,
[b]="(?:first|second|third|fourth) parameter of \'main\' \\((?:argument count|argument array|environment|platform\\-specific data)\\) must be of type (.*?)",
[i]=a,
[h]=n,
[g]={"02dee0a46a39",1248496613,"Semantic checking for main()."}
},
["err_main_global_variable"]={
[f]="main cannot be declared as global variable",
[d]=l,
[e]=k,
[j]="main cannot be declared as global variable",
[c]=m,
[b]="main cannot be declared as global variable",
[i]=a,
[h]=n,
[g]={"da8a3b903b45",1439561609,"[Sema] main can\'t be declared as global variable, in C++."}
},
["err_main_returns_nonint"]={
[f]="\'main\' must return \'int\'",
[d]=l,
[e]=k,
[j]="\'main\' must return \'int\'",
[c]=m,
[b]="\'main\' must return \'int\'",
[i]=a,
[h]=n,
[g]={"02dee0a46a39",1248496613,"Semantic checking for main()."}
},
["err_main_surplus_args"]={
[f]="too many parameters (A) for \'main\': must be 0, 2, or 3",
[d]=l,
[e]=k,
[j]="too many parameters (%0) for \'main\': must be 0, 2, or 3",
[c]=m,
[b]="too many parameters \\((.*?)\\) for \'main\'\\: must be 0, 2, or 3",
[i]=a,
[h]=n,
[g]={"02dee0a46a39",1248496613,"Semantic checking for main()."}
},
["err_mainlike_template_decl"]={
[f]="A cannot be a template",
[d]=l,
[e]=k,
[j]="%0 cannot be a template",
[c]=m,
[b]="(.*?) cannot be a template",
[i]=a,
[h]=n,
[g]={"c729b0b50669",1379371460,"[-cxx-abi microsoft] Correctly identify Win32 entry points"}
},
["err_make_signed_integral_only"]={
[f]="\'...\' is only compatible with non-... integers and enum types, but was given A...",
[d]=l,
[e]=k,
[j]="\'%select{make_unsigned|make_signed}0\' is only compatible with non-%select{bool|_BitInt(1)}1 integers and enum types, but was given %2%select{| whose underlying type is %4}3",
[c]=m,
[b]="\'(?:make_unsigned|make_signed)\' is only compatible with non\\-(?:bool|_BitInt\\(1\\)) integers and enum types, but was given (.*?)(?:| whose underlying type is (.*?))",
[i]=a,
[h]=n,
[g]={w,1625925174,v}
},
["err_malformed_std_coroutine_handle"]={
[f]="std::coroutine_handle isn\'t a class template",
[d]=l,
[e]=k,
[j]="std::coroutine_handle isn\'t a class template",
[c]=m,
[b]="std\\:\\:coroutine_handle isn\'t a class template",
[i]=a,
[h]=E,
[g]={"6dcb0eb301c7",1489028983,"[coroutines] Build and pass coroutine_handle to await_suspend"}
},
["err_malformed_std_coroutine_traits"]={
[f]="std::coroutine_traits isn\'t a class template",
[d]=l,
[e]=k,
[j]="std::coroutine_traits isn\'t a class template",
[c]=m,
[b]="std\\:\\:coroutine_traits isn\'t a class template",
[i]=a,
[h]=E,
[g]={"9f690bd80bb6",1445925765,"[coroutines] Creation of promise object, lookup of operator co_await, building"}
},
["err_malformed_std_initializer_list"]={
[f]="std::initializer_list must be a class template with a single type parameter",
[d]=l,
[e]=k,
[j]="std::initializer_list must be a class template with a single type parameter",
[c]=m,
[b]="std\\:\\:initializer_list must be a class template with a single type parameter",
[i]=a,
[h]=n,
[g]={"42acd4a05b52",1326840608,"Auto deduction support for std::initializer_list, including for-range support. This means you can no..."}
},
["err_malformed_std_nothrow"]={
[f]="std::nothrow must be a valid variable declaration",
[d]=l,
[e]=k,
[j]="std::nothrow must be a valid variable declaration",
[c]=m,
[b]="std\\:\\:nothrow must be a valid variable declaration",
[i]=a,
[h]=E,
[g]={"627a63cf5081",1492334399,"[coroutines] Fix building of new/delete expressions when get_return_object_on_allocation_failure() i..."}
},
["err_matrix_incomplete_index"]={
[f]="single subscript expressions are not allowed for matrix values",
[d]=l,
[e]=k,
[j]="single subscript expressions are not allowed for matrix values",
[c]=m,
[b]="single subscript expressions are not allowed for matrix values",
[i]=a,
[h]=a,
[g]={C,1576908663,B}
},
["err_matrix_index_not_integer"]={
[f]="matrix ... index is not an integer",
[d]=l,
[e]=k,
[j]="matrix %select{row|column}0 index is not an integer",
[c]=m,
[b]="matrix (?:row|column) index is not an integer",
[i]=a,
[h]=a,
[g]={C,1576908663,B}
},
["err_matrix_index_outside_range"]={
[f]="matrix ... index is outside the allowed range [0, A)",
[d]=l,
[e]=k,
[j]="matrix %select{row|column}0 index is outside the allowed range [0, %1)",
[c]=m,
[b]="matrix (?:row|column) index is outside the allowed range \\[0, (.*?)\\)",
[i]=a,
[h]=a,
[g]={C,1576908663,B}
},
["err_matrix_separate_incomplete_index"]={
[f]="matrix row and column subscripts cannot be separated by any expression",
[d]=l,
[e]=k,
[j]="matrix row and column subscripts cannot be separated by any expression",
[c]=m,
[b]="matrix row and column subscripts cannot be separated by any expression",
[i]=a,
[h]=a,
[g]={C,1576908663,B}
},
["err_matrix_subscript_comma"]={
[f]="comma expressions are not allowed as indices in matrix subscript expressions",
[d]=l,
[e]=k,
[j]="comma expressions are not allowed as indices in matrix subscript expressions",
[c]=m,
[b]="comma expressions are not allowed as indices in matrix subscript expressions",
[i]=a,
[h]=a,
[g]={C,1576908663,B}
},
["err_maybe_falloff_nonvoid_block"]={
[f]="non-void block does not return a value in all control paths",
[d]=l,
[e]=k,
[j]="non-void block does not return a value in all control paths",
[c]=m,
[b]="non\\-void block does not return a value in all control paths",
[i]=a,
[h]=n,
[g]={"3bf1ab48d304",1248818641,"Add noreturn support for blocks."}
},
["err_mem_init_not_member_or_class"]={
[f]="member initializer A does not name a non-static data member or base class",
[d]=l,
[e]=k,
[j]="member initializer %0 does not name a non-static data member or base class",
[c]=m,
[b]="member initializer (.*?) does not name a non\\-static data member or base class",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_mem_init_not_member_or_class_suggest"]={
[f]="initializer A does not name a non-static data member or base class; did you mean the ... B?",
[d]=l,
[e]=k,
[j]="initializer %0 does not name a non-static data member or base class; did you mean the %select{base class|member}1 %2?",
[c]=m,
[b]="initializer (.*?) does not name a non\\-static data member or base class; did you mean the (?:base class|member) (.*?)\\?",
[i]=a,
[h]=n,
[g]={"15e77a2fd305",1262250624,"Typo correction for C++ base and member initializers, e.g.,"}
},
["err_member_call_without_object"]={
[f]="call to non-static member function without an object argument",
[d]=l,
[e]=k,
[j]="call to non-static member function without an object argument",
[c]=m,
[b]="call to non\\-static member function without an object argument",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_member_decl_does_not_match"]={
[f]="out-of-line ... of A does not match any declaration in B",
[d]=l,
[e]=k,
[j]="out-of-line %select{declaration|definition}2 of %0 does not match any declaration in %1",
[c]=m,
[b]="out\\-of\\-line (?:declaration|definition) of (.*?) does not match any declaration in (.*?)",
[i]=a,
[h]=n,
[g]={"114394f8246f",1376022901,"Implement [class.friend]p11\'s special name lookup rules for friend declarations"}
},
["err_member_decl_does_not_match_suggest"]={
[f]="out-of-line ... of A does not match any declaration in B; did you mean C?",
[d]=l,
[e]=k,
[j]="out-of-line %select{declaration|definition}2 of %0 does not match any declaration in %1; did you mean %3?",
[c]=m,
[b]="out\\-of\\-line (?:declaration|definition) of (.*?) does not match any declaration in (.*?); did you mean (.*?)\\?",
[i]=a,
[h]=n,
[g]={"114394f8246f",1376022901,"Implement [class.friend]p11\'s special name lookup rules for friend declarations"}
},
["err_member_def_does_not_match_ret_type"]={
[f]="return type of out-of-line definition of A differs from that in the declaration",
[d]=l,
[e]=k,
[j]="return type of out-of-line definition of %q0 differs from that in the declaration",
[c]=m,
[b]="return type of out\\-of\\-line definition of (.*?) differs from that in the declaration",
[i]=a,
[h]=n,
[g]={"3d3208675f79",1296885289,"When the out-of-line definition differs from the declaration in the return type,"}
},
["err_member_def_undefined_record"]={
[f]="out-of-line definition of A from class B without definition",
[d]=l,
[e]=k,
[j]="out-of-line definition of %0 from class %1 without definition",
[c]=m,
[b]="out\\-of\\-line definition of (.*?) from class (.*?) without definition",
[i]=a,
[h]=n,
[g]={"67da35c832e6",1265322386,"Extract a common structure for holding information about the definition"}
},
["err_member_extra_qualification"]={
[f]="extra qualification on member A",
[d]=l,
[e]=k,
[j]="extra qualification on member %0",
[c]=m,
[b]="extra qualification on member (.*?)",
[i]=a,
[h]=n,
[g]={"43bc036e8ae3",1347567380,"Promote the warning about extra qualification on a declaration from a"}
},
["err_member_function_call_bad_cvr"]={
[f]="\'this\' argument to member function A has type B, but function is not marked ...",
[d]=l,
[e]=k,
[j]="\'this\' argument to member function %0 has type %1, but function is not marked %select{const|restrict|const or restrict|volatile|const or volatile|volatile or restrict|const, volatile, or restrict}2",
[c]=m,
[b]="\'this\' argument to member function (.*?) has type (.*?), but function is not marked (?:const|restrict|const or restrict|volatile|const or volatile|volatile or restrict|const, volatile, or restrict)",
[i]=a,
[h]=n,
[g]={"9813d3221d7d",1289894685,"Improve diagnostic for calling non-const method on const object. Fixes rdar://7743000"}
},
["err_member_function_call_bad_ref"]={
[f]="\'this\' argument to member function A is an ..., but function has ... ref-qualifier",
[d]=l,
[e]=k,
[j]="\'this\' argument to member function %0 is an %select{lvalue|rvalue}1, but function has %select{non-const lvalue|rvalue}2 ref-qualifier",
[c]=m,
[b]="\'this\' argument to member function (.*?) is an (?:lvalue|rvalue), but function has (?:non\\-const lvalue|rvalue) ref\\-qualifier",
[i]=a,
[h]=n,
[g]={"c7e67a04e0f3",1514695779,"[Sema] Improve diagnostics for const- and ref-qualified member functions"}
},
["err_member_function_call_bad_type"]={
[f]="cannot initialize object parameter of type A with an expression of type B",
[d]=l,
[e]=k,
[j]="cannot initialize object parameter of type %0 with an expression of type %1",
[c]=m,
[b]="cannot initialize object parameter of type (.*?) with an expression of type (.*?)",
[i]=a,
[h]=n,
[g]={"c7e67a04e0f3",1514695779,"[Sema] Improve diagnostics for const- and ref-qualified member functions"}
},
["err_member_function_initialization"]={
[f]="initializer on function does not look like a pure-specifier",
[d]=l,
[e]=k,
[j]="initializer on function does not look like a pure-specifier",
[c]=m,
[b]="initializer on function does not look like a pure\\-specifier",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_member_name_of_class"]={
[f]="member A has the same name as its class",
[d]=l,
[e]=k,
[j]="member %0 has the same name as its class",
[c]=m,
[b]="member (.*?) has the same name as its class",
[i]=a,
[h]=n,
[g]={"36c22a2335c0",1287148881,"Diagnose C++ [class.mem]p13-14, where a class member has the same name"}
},
["err_member_not_yet_instantiated"]={
[f]="no member A in B; it has not yet been instantiated",
[d]=l,
[e]=k,
[j]="no member %0 in %1; it has not yet been instantiated",
[c]=m,
[b]="no member (.*?) in (.*?); it has not yet been instantiated",
[i]=a,
[h]=n,
[g]={"528ad93924b1",1299442365,"We may fail to map a declaration in a template to its instantiated"}
},
["err_member_qualification"]={
[f]="non-friend class member A cannot have a qualified name",
[d]=l,
[e]=k,
[j]="non-friend class member %0 cannot have a qualified name",
[c]=m,
[b]="non\\-friend class member (.*?) cannot have a qualified name",
[i]=a,
[h]=n,
[g]={"a007d36c1bad",1287008393,"Generalize the checking for qualification of (non-friend) class"}
},
["err_member_redeclared"]={
[f]="class member cannot be redeclared",
[d]=l,
[e]=k,
[j]="class member cannot be redeclared",
[c]=m,
[b]="class member cannot be redeclared",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_member_redeclared_in_instantiation"]={
[f]="multiple overloads of A instantiate to the same signature B",
[d]=l,
[e]=k,
[j]="multiple overloads of %0 instantiate to the same signature %1",
[c]=m,
[b]="multiple overloads of (.*?) instantiate to the same signature (.*?)",
[i]=a,
[h]=n,
[g]={"57e7ff9c0c44",1342152724,"Provide a special-case diagnostic when two class member functions instantiate"}
},
["err_member_reference_needs_call"]={
[f]="base of member reference is a function; perhaps you meant to call it...?",
[d]=l,
[e]=k,
[j]="base of member reference is a function; perhaps you meant to call it%select{| with no arguments}0?",
[c]=m,
[b]="base of member reference is a function; perhaps you meant to call it(?:| with no arguments)\\?",
[i]=a,
[h]=n,
[g]={"d82ae38d5300",1257489047,"Rework the fix-it hint for code like"}
},
["err_member_with_template_arguments"]={
[f]="member A cannot have template arguments",
[d]=l,
[e]=k,
[j]="member %0 cannot have template arguments",
[c]=m,
[b]="member (.*?) cannot have template arguments",
[i]=a,
[h]=n,
[g]={hb,1620118562,jb}
},
["err_mempointer_in_nonclass_type"]={
[f]="member pointer refers into non-class type A",
[d]=l,
[e]=k,
[j]="member pointer refers into non-class type %0",
[c]=m,
[b]="member pointer refers into non\\-class type (.*?)",
[i]=a,
[h]=n,
[g]={"0bdc1f5eef52",1244585859,"Handle member pointer types with dependent class types (e.g., int"}
},
["err_memptr_conv_via_virtual"]={
[f]="conversion from pointer to member of class A to pointer to member of class B via virtual base C is not allowed",
[d]=l,
[e]=k,
[j]="conversion from pointer to member of class %0 to pointer to member of class %1 via virtual base %2 is not allowed",
[c]=m,
[b]="conversion from pointer to member of class (.*?) to pointer to member of class (.*?) via virtual base (.*?) is not allowed",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_memptr_incomplete"]={
[f]="member pointer has incomplete base type A",
[d]=l,
[e]=k,
[j]="member pointer has incomplete base type %0",
[c]=m,
[b]="member pointer has incomplete base type (.*?)",
[i]=a,
[h]=n,
[g]={"54d13b406828",1527651604,"Sema: Add a flag for rejecting member pointers with incomplete base types."}
},
["err_memtag_any2arg_pointer"]={
[f]="at least one argument of MTE builtin function must be a pointer (A, B invalid)",
[d]=l,
[e]=k,
[j]="at least one argument of MTE builtin function must be a pointer (%0, %1 invalid)",
[c]=m,
[b]="at least one argument of MTE builtin function must be a pointer \\((.*?), (.*?) invalid\\)",
[i]=a,
[h]=a,
[g]={"18b0c40bc5db",1556312891,"[AArch64] Add support for MTE intrinsics"}
},
["err_memtag_arg_must_be_integer"]={
[f]="A argument of MTE builtin function must be an integer type (B invalid)",
[d]=l,
[e]=k,
[j]="%0 argument of MTE builtin function must be an integer type (%1 invalid)",
[c]=m,
[b]="(.*?) argument of MTE builtin function must be an integer type \\((.*?) invalid\\)",
[i]=a,
[h]=a,
[g]={"18b0c40bc5db",1556312891,"[AArch64] Add support for MTE intrinsics"}
},
["err_memtag_arg_must_be_pointer"]={
[f]="A argument of MTE builtin function must be a pointer (B invalid)",
[d]=l,
[e]=k,
[j]="%0 argument of MTE builtin function must be a pointer (%1 invalid)",
[c]=m,
[b]="(.*?) argument of MTE builtin function must be a pointer \\((.*?) invalid\\)",
[i]=a,
[h]=a,
[g]={"18b0c40bc5db",1556312891,"[AArch64] Add support for MTE intrinsics"}
},
["err_memtag_arg_null_or_pointer"]={
[f]="A argument of MTE builtin function must be a null or a pointer (B invalid)",
[d]=l,
[e]=k,
[j]="%0 argument of MTE builtin function must be a null or a pointer (%1 invalid)",
[c]=m,
[b]="(.*?) argument of MTE builtin function must be a null or a pointer \\((.*?) invalid\\)",
[i]=a,
[h]=a,
[g]={"18b0c40bc5db",1556312891,"[AArch64] Add support for MTE intrinsics"}
},
["err_messaging_class_with_direct_method"]={
[f]="messaging a Class with a method that is possibly direct",
[d]=l,
[e]=k,
[j]="messaging a Class with a method that is possibly direct",
[c]=m,
[b]="messaging a Class with a method that is possibly direct",
[i]=a,
[h]=n,
[g]={bb,1573050950,db}
},
["err_messaging_super_with_direct_method"]={
[f]="messaging super with a direct method",
[d]=l,
[e]=k,
[j]="messaging super with a direct method",
[c]=m,
[b]="messaging super with a direct method",
[i]=a,
[h]=n,
[g]={bb,1573050950,db}
},
["err_messaging_unqualified_id_with_direct_method"]={
[f]="messaging unqualified id with a method that is possibly direct",
[d]=l,
[e]=k,
[j]="messaging unqualified id with a method that is possibly direct",
[c]=m,
[b]="messaging unqualified id with a method that is possibly direct",
[i]=a,
[h]=n,
[g]={bb,1573050950,db}
},
["err_method_kernel"]={
[f]="kernel functions cannot be class members",
[d]=l,
[e]=k,
[j]="kernel functions cannot be class members",
[c]=m,
[b]="kernel functions cannot be class members",
[i]=a,
[h]=n,
[g]={"d6865b7d71bc",1557238954,"[OpenCL] Prevent mangling kernel functions."}
},
["err_method_not_found_with_typo"]={
[f]="... method A not found ; did you mean B?",
[d]=l,
[e]=k,
[j]="%select{instance|class}1 method %0 not found ; did you mean %2?",
[c]=m,
[b]="(?:instance|class) method (.*?) not found ; did you mean (.*?)\\?",
[i]=a,
[h]=n,
[g]={P,1480718311,O}
},
["err_mips_builtin_requires_dsp"]={
[f]="this builtin requires \'dsp\' ASE, please use -mdsp",
[d]=l,
[e]=k,
[j]="this builtin requires \'dsp\' ASE, please use -mdsp",
[c]=m,
[b]="this builtin requires \'dsp\' ASE, please use \\-mdsp",
[i]=a,
[h]=n,
[g]={bb,1573050950,db}
},
["err_mips_builtin_requires_dspr2"]={
[f]="this builtin requires \'dsp r2\' ASE, please use -mdspr2",
[d]=l,
[e]=k,
[j]="this builtin requires \'dsp r2\' ASE, please use -mdspr2",
[c]=m,
[b]="this builtin requires \'dsp r2\' ASE, please use \\-mdspr2",
[i]=a,
[h]=n,
[g]={bb,1573050950,db}
},
["err_mips_builtin_requires_msa"]={
[f]="this builtin requires \'msa\' ASE, please use -mmsa",
[d]=l,
[e]=k,
[j]="this builtin requires \'msa\' ASE, please use -mmsa",
[c]=m,
[b]="this builtin requires \'msa\' ASE, please use \\-mmsa",
[i]=a,
[h]=n,
[g]={bb,1573050950,db}
},
["err_mips_fp64_req"]={
[f]="\'A\' can only be used if the target supports the mfhc1 and mthc1 instructions",
[d]=l,
[e]=k,
[j]="\'%0\' can only be used if the target supports the mfhc1 and mthc1 instructions",
[c]=m,
[b]="\'(.*?)\' can only be used if the target supports the mfhc1 and mthc1 instructions",
[i]=a,
[h]=a,
[g]={"eb63256095dd",1534929985,"[clang][mips] Set __mips_fpr correctly for -mfpxx"}
},
["err_mismatched_code_seg_base"]={
[f]="derived class must specify the same code segment as its base classes",
[d]=l,
[e]=k,
[j]="derived class must specify the same code segment as its base classes",
[c]=m,
[b]="derived class must specify the same code segment as its base classes",
[i]=a,
[h]=n,
[g]={"64144eb194c8",1526479037,"Add support for __declspec(code_seg(\"segname\"))"}
},
["err_mismatched_code_seg_override"]={
[f]="overriding virtual function must specify the same code segment as its overridden function",
[d]=l,
[e]=k,
[j]="overriding virtual function must specify the same code segment as its overridden function",
[c]=m,
[b]="overriding virtual function must specify the same code segment as its overridden function",
[i]=a,
[h]=n,
[g]={"64144eb194c8",1526479037,"Add support for __declspec(code_seg(\"segname\"))"}
},
["err_mismatched_exception_spec"]={
[f]="exception specification in declaration does not match previous declaration",
[d]=l,
[e]=k,
[j]="exception specification in declaration does not match previous declaration",
[c]=m,
[b]="exception specification in declaration does not match previous declaration",
[i]=a,
[h]=n,
[g]={"4f4d7b5d8e5f",1246707540,"Catch function redeclarations with incompatible exception specifications."}
},
["err_mismatched_exception_spec_explicit_instantiation"]={
[f]="exception specification in explicit instantiation does not match instantiated one",
[d]=l,
[e]=k,
[j]="exception specification in explicit instantiation does not match instantiated one",
[c]=m,
[b]="exception specification in explicit instantiation does not match instantiated one",
[i]=a,
[h]=n,
[g]={"73983918c45b",1415268650,"Fix for exception specification mismatch in explicit instantiation."}
},
["err_mismatched_ms_inheritance"]={
[f]="inheritance model does not match ...",
[d]=l,
[e]=k,
[j]="inheritance model does not match %select{definition|previous declaration}0",
[c]=m,
[b]="inheritance model does not match (?:definition|previous declaration)",
[i]=a,
[h]=n,
[g]={"2c4e00ac1cc8",1391033256,"Sema: Diagnose improper application of inheritance keywords"}
},
["err_mismatched_owning_module"]={
[f]="declaration of A in ... follows declaration in ...",
[d]=l,
[e]=k,
[j]="declaration of %0 in %select{the global module|module %2}1 follows declaration in %select{the global module|module %4}3",
[c]=m,
[b]="declaration of (.*?) in (?:the global module|module (.*?)) follows declaration in (?:the global module|module (.*?))",
[i]=a,
[h]=n,
[g]={"b87720b77aee",1507592529,"[Modules TS] Module ownership semantics for redeclarations."}
},
["err_mismatched_uuid"]={
[f]="uuid does not match previous declaration",
[d]=l,
[e]=k,
[j]="uuid does not match previous declaration",
[c]=m,
[b]="uuid does not match previous declaration",
[i]=a,
[h]=n,
[g]={"88f5ed9430a9",1473792926,"[clang-cl] Diagnose duplicate uuids."}
},
["err_mismatched_visibility"]={
[f]="visibility does not match previous declaration",
[d]=l,
[e]=k,
[j]="visibility does not match previous declaration",
[c]=m,
[b]="visibility does not match previous declaration",
[i]=a,
[h]=n,
[g]={"0232c19a3128",1336436919,"Add missing \'y\'."}
},
["err_misplaced_ellipsis_in_declaration"]={
[f]="\'...\' must ...",
[d]=l,
[e]=k,
[j]="\'...\' must %select{immediately precede declared identifier|be innermost component of anonymous pack declaration}0",
[c]=m,
[b]="\'\\.\\.\\.\' must (?:immediately precede declared identifier|be innermost component of anonymous pack declaration)",
[i]=a,
[h]=o,
[g]={"0efa75c3e38d",1332983802,"Reject \'template<typename...Ts> void f(Ts ...(x));\'. Add a special-case"}
},
["err_misplaced_ivar"]={
[f]="instance variables may not be placed in ...",
[d]=l,
[e]=k,
[j]="instance variables may not be placed in %select{categories|class extension}0",
[c]=m,
[b]="instance variables may not be placed in (?:categories|class extension)",
[i]=a,
[h]=n,
[g]={"4c172c63e510",1266879860,"Early support for declaring ivars in class extensions. wip."}
},
["err_missing_actual_pipe_type"]={
[f]="missing actual type specifier for pipe",
[d]=l,
[e]=k,
[j]="missing actual type specifier for pipe",
[c]=m,
[b]="missing actual type specifier for pipe",
[i]=a,
[h]=n,
[g]={"9c14e282112c",1452343997,"[OpenCL] Pipe type support"}
},
["err_missing_atsign_prefix"]={
[f]="... literal must be prefixed by \'@\'",
[d]=l,
[e]=k,
[j]="%select{string|numeric}0 literal must be prefixed by \'@\'",
[c]=m,
[b]="(?:string|numeric) literal must be prefixed by \'@\'",
[i]=a,
[h]=n,
[g]={"bd714e9bb120",1387308823,"Objective-C. Make diagnostics and fix-its consistent "}
},
["err_missing_before_module_end"]={
[f]="expected A at end of module",
[d]=l,
[e]=k,
[j]="expected %0 at end of module",
[c]=m,
[b]="expected (.*?) at end of module",
[i]=a,
[h]=x,
[g]={"c4e04a296403",1442640777,"[Modules] More descriptive diagnostics for misplaced import directive"}
},
["err_missing_catch_finally"]={
[f]="@try statement without a @catch and @finally clause",
[d]=l,
[e]=k,
[j]="@try statement without a @catch and @finally clause",
[c]=m,
[b]="@try statement without a @catch and @finally clause",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_missing_comma_before_ellipsis"]={
[f]="C requires a comma prior to the ellipsis in a variadic function type",
[d]=l,
[e]=k,
[j]="C requires a comma prior to the ellipsis in a variadic function type",
[c]=m,
[b]="C requires a comma prior to the ellipsis in a variadic function type",
[i]=a,
[h]=o,
[g]={"9bfc2e50a786",1253655700,"In C++, a variadic function does not need an ellipsis prior to the comma. Parse it in both C and C++..."}
},
["err_missing_default_ctor"]={
[f]="... ... A ... does not have a default constructor",
[d]=l,
[e]=k,
[j]="%select{constructor for %1 must explicitly initialize the|implicit default constructor for %1 must explicitly initialize the|cannot use constructor inherited from base class %4;}0 %select{base class|member}2 %3 %select{which|which|of %1}0 does not have a default constructor",
[c]=m,
[b]="(?:constructor for (.*?) must explicitly initialize the|implicit default constructor for (.*?) must explicitly initialize the|cannot use constructor inherited from base class (.*?);) (?:base class|member) (.*?) (?:which|which|of (.*?)) does not have a default constructor",
[i]=a,
[h]=n,
[g]={"d7686ef31c21",1257728747,"Unify the codepaths used to verify base and member initializers for explicitly"}
},
["err_missing_dependent_template_keyword"]={
[f]="use \'template\' keyword to treat \'A\' as a dependent template name",
[d]=l,
[e]=k,
[j]="use \'template\' keyword to treat \'%0\' as a dependent template name",
[c]=m,
[b]="use \'template\' keyword to treat \'(.*?)\' as a dependent template name",
[i]=a,
[h]=o,
[g]={"786123dc48d8",1274483887,"Improve parser recovery when we encounter a dependent template name"}
},
["err_missing_end_of_definition"]={
[f]="missing \'}\' at end of definition of A",
[d]=l,
[e]=k,
[j]="missing \'}\' at end of definition of %q0",
[c]=m,
[b]="missing \'\\}\' at end of definition of (.*?)",
[i]=a,
[h]=o,
[g]={"da35e963bc57",1383972771,"Try to recover a bit better if a close brace is missing from the end of a class"}
},
["err_missing_exception_specification"]={
[f]="A is missing exception specification \'B\'",
[d]=l,
[e]=k,
[j]="%0 is missing exception specification \'%1\'",
[c]=m,
[b]="(.*?) is missing exception specification \'(.*?)\'",
[i]=a,
[h]=n,
[g]={"a91de375f278",1443574130,"Promote a warning on ill-formed code (redeclaration missing an exception"}
},
["err_missing_method_context"]={
[f]="missing context for method declaration",
[d]=l,
[e]=k,
[j]="missing context for method declaration",
[c]=m,
[b]="missing context for method declaration",
[i]=a,
[h]=n,
[g]={P,1480718311,O}
},
["err_missing_module"]={
[f]="no module named \'A\' declared in module map file \'B\'",
[d]=y,
[e]=z,
[j]="no module named \'%0\' declared in module map file \'%1\'",
[c]=A,
[b]="no module named \'(.*?)\' declared in module map file \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"2b20cb87f5b6",1321402146,"Add support for building a module from a module map to the -cc1"}
},
["err_missing_module_name"]={
[f]="no module name provided; specify one with -fmodule-name=",
[d]=y,
[e]=z,
[j]="no module name provided; specify one with -fmodule-name=",
[c]=A,
[b]="no module name provided; specify one with \\-fmodule\\-name\\=",
[i]=a,
[h]=a,
[g]={"2b20cb87f5b6",1321402146,"Add support for building a module from a module map to the -cc1"}
},
["err_missing_open_square_message_send"]={
[f]="missing \'[\' at start of message send expression",
[d]=l,
[e]=k,
[j]="missing \'[\' at start of message send expression",
[c]=m,
[b]="missing \'\\[\' at start of message send expression",
[i]=a,
[h]=n,
[g]={"e9bba4f1a441",1284562265,"Implement bracket insertion for Objective-C instance message sends as"}
},
["err_missing_param"]={
[f]="expected parameter declarator",
[d]=l,
[e]=k,
[j]="expected parameter declarator",
[c]=m,
[b]="expected parameter declarator",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_missing_property_context"]={
[f]="missing context for property implementation declaration",
[d]=l,
[e]=k,
[j]="missing context for property implementation declaration",
[c]=m,
[b]="missing context for property implementation declaration",
[i]=a,
[h]=n,
[g]={P,1480718311,O}
},
["err_missing_property_interface"]={
[f]="property implementation in a category with no category declaration",
[d]=l,
[e]=k,
[j]="property implementation in a category with no category declaration",
[c]=m,
[b]="property implementation in a category with no category declaration",
[i]=a,
[h]=n,
[g]={P,1480718311,O}
},
["err_missing_property_ivar_decl"]={
[f]="synthesized property A must either be named the same as a compatible instance variable or must explicitly name an instance variable",
[d]=l,
[e]=k,
[j]="synthesized property %0 must either be named the same as a compatible instance variable or must explicitly name an instance variable",
[c]=m,
[b]="synthesized property (.*?) must either be named the same as a compatible instance variable or must explicitly name an instance variable",
[i]=a,
[h]=n,
[g]={P,1480718311,O}
},
["err_missing_type_specifier"]={
[f]="a type specifier is required for all declarations",
[d]=l,
[e]=k,
[j]="a type specifier is required for all declarations",
[c]=m,
[b]="a type specifier is required for all declarations",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_missing_vfs_overlay_file"]={
[f]="virtual filesystem overlay file \'A\' not found",
[d]=y,
[e]=z,
[j]="virtual filesystem overlay file \'%0\' not found",
[c]=A,
[b]="virtual filesystem overlay file \'(.*?)\' not found",
[i]=a,
[h]=a,
[g]={"801272a98c71",1393352627,"Add a driver option -ivfsoverlay"}
},
["err_missing_whitespace_digraph"]={
[f]="found \'<::\' after a ... which forms the digraph \'<:\' (aka \'[\') and a \':\', did you mean \'< ::\'?",
[d]=l,
[e]=k,
[j]="found \'<::\' after a %select{template name|addrspace_cast|const_cast|dynamic_cast|reinterpret_cast|static_cast}0 which forms the digraph \'<:\' (aka \'[\') and a \':\', did you mean \'< ::\'?",
[c]=m,
[b]="found \'\\<\\:\\:\' after a (?:template name|addrspace_cast|const_cast|dynamic_cast|reinterpret_cast|static_cast) which forms the digraph \'\\<\\:\' \\(aka \'\\[\'\\) and a \'\\:\', did you mean \'\\< \\:\\:\'\\?",
[i]=a,
[h]=o,
[g]={"55858499e21e",1302817545,"Detect when the string \"<::\" is found in code after a cast or template name and is interpreted as \"[..."}
},
["err_mixing_cxx_try_seh_try"]={
[f]="cannot use ... in the same function as SEH \'__try\'",
[d]=l,
[e]=k,
[j]="cannot use %select{C++ \'try\'|Objective-C \'@try\'}0 in the same function as SEH \'__try\'",
[c]=m,
[b]="cannot use (?:C\\+\\+ \'try\'|Objective\\-C \'@try\') in the same function as SEH \'__try\'",
[i]=a,
[h]=n,
[g]={"e71759103e72",1422915331,"SEH: Diagnose use of C++ EH and SEH in the same function"}
},
["err_mmap_config_macro_submodule"]={
[f]="configuration macros are only allowed in top-level modules",
[d]=l,
[e]=k,
[j]="configuration macros are only allowed in top-level modules",
[c]=m,
[b]="configuration macros are only allowed in top\\-level modules",
[i]=a,
[h]=t,
[g]={"35b13ece231b",1363738925,"<rdar://problem/10796651> Introduce configuration macros into module maps."}
},
["err_mmap_conflicting_export_as"]={
[f]="conflicting re-export of module \'A\' as \'B\' or \'C\'",
[d]=l,
[e]=k,
[j]="conflicting re-export of module \'%0\' as \'%1\' or \'%2\'",
[c]=m,
[b]="conflicting re\\-export of module \'(.*?)\' as \'(.*?)\' or \'(.*?)\'",
[i]=a,
[h]=t,
[g]={"f0b11de279e7",1505432324,"[Module map] Introduce a private module re-export directive."}
},
["err_mmap_duplicate_header_attribute"]={
[f]="header attribute \'A\' specified multiple times",
[d]=l,
[e]=k,
[j]="header attribute \'%0\' specified multiple times",
[c]=m,
[b]="header attribute \'(.*?)\' specified multiple times",
[i]=a,
[h]=t,
[g]={"040e12662a67",1496368539,"Support lazy stat\'ing of files referenced by module maps."}
},
["err_mmap_expected_attribute"]={
[f]="expected an attribute name",
[d]=l,
[e]=k,
[j]="expected an attribute name",
[c]=m,
[b]="expected an attribute name",
[i]=a,
[h]=t,
[g]={"a686e1b05df9",1327693953,"Introduce module attributes into the module map grammar, along with a"}
},
["err_mmap_expected_config_macro"]={
[f]="expected configuration macro name after \',\'",
[d]=l,
[e]=k,
[j]="expected configuration macro name after \',\'",
[c]=m,
[b]="expected configuration macro name after \',\'",
[i]=a,
[h]=t,
[g]={"35b13ece231b",1363738925,"<rdar://problem/10796651> Introduce configuration macros into module maps."}
},
["err_mmap_expected_conflicts_comma"]={
[f]="expected \',\' after conflicting module name",
[d]=l,
[e]=k,
[j]="expected \',\' after conflicting module name",
[c]=m,
[b]="expected \',\' after conflicting module name",
[i]=a,
[h]=t,
[g]={"fb9126578ec3",1363813835,"<rdar://problem/12368093> Extend module maps with a \'conflict\' declaration, and warn when a newly-im..."}
},
["err_mmap_expected_conflicts_message"]={
[f]="expected a message describing the conflict with \'A\'",
[d]=l,
[e]=k,
[j]="expected a message describing the conflict with \'%0\'",
[c]=m,
[b]="expected a message describing the conflict with \'(.*?)\'",
[i]=a,
[h]=t,
[g]={"fb9126578ec3",1363813835,"<rdar://problem/12368093> Extend module maps with a \'conflict\' declaration, and warn when a newly-im..."}
},
["err_mmap_expected_export_wildcard"]={
[f]="only \'*\' can be exported from an inferred submodule",
[d]=l,
[e]=k,
[j]="only \'*\' can be exported from an inferred submodule",
[c]=m,
[b]="only \'\\*\' can be exported from an inferred submodule",
[i]=a,
[h]=t,
[g]={wc,1323124064,uc}
},
["err_mmap_expected_feature"]={
[f]="expected a feature name",
[d]=l,
[e]=k,
[j]="expected a feature name",
[c]=m,
[b]="expected a feature name",
[i]=a,
[h]=t,
[g]={"1fb5c3a63a88",1325304344,"Implement support for module requirements, which indicate the language"}
},
["err_mmap_expected_header"]={
[f]="expected a header name after \'A\'",
[d]=l,
[e]=k,
[j]="expected a header name after \'%0\'",
[c]=m,
[b]="expected a header name after \'(.*?)\'",
[i]=a,
[h]=t,
[g]={Bb,1321038628,Ab}
},
["err_mmap_expected_header_attribute"]={
[f]="expected a header attribute name (\'size\' or \'mtime\')",
[d]=l,
[e]=k,
[j]="expected a header attribute name (\'size\' or \'mtime\')",
[c]=m,
[b]="expected a header attribute name \\(\'size\' or \'mtime\'\\)",
[i]=a,
[h]=t,
[g]={"040e12662a67",1496368539,"Support lazy stat\'ing of files referenced by module maps."}
},
["err_mmap_expected_inferred_member"]={
[f]="expected ...",
[d]=l,
[e]=k,
[j]="expected %select{module exclusion with \'exclude\'|\'export *\'}0",
[c]=m,
[b]="expected (?:module exclusion with \'exclude\'|\'export \\*\')",
[i]=a,
[h]=t,
[g]={"9194a91dc928",1352230780,"Introduce inferred framework modules into the module map file,"}
},
["err_mmap_expected_lbrace"]={
[f]="expected \'{\' to start module \'A\'",
[d]=l,
[e]=k,
[j]="expected \'{\' to start module \'%0\'",
[c]=m,
[b]="expected \'\\{\' to start module \'(.*?)\'",
[i]=a,
[h]=t,
[g]={Bb,1321038628,Ab}
},
["err_mmap_expected_lbrace_wildcard"]={
[f]="expected \'{\' to start inferred submodule",
[d]=l,
[e]=k,
[j]="expected \'{\' to start inferred submodule",
[c]=m,
[b]="expected \'\\{\' to start inferred submodule",
[i]=a,
[h]=t,
[g]={wc,1323124064,uc}
},
["err_mmap_expected_library_name"]={
[f]="expected ... name as a string",
[d]=l,
[e]=k,
[j]="expected %select{library|framework}0 name as a string",
[c]=m,
[b]="expected (?:library|framework) name as a string",
[i]=a,
[h]=t,
[g]={"6ddfca91e04e",1358184060,"Implement parsing, AST, (de-)serialization, and placeholder global"}
},
["err_mmap_expected_member"]={
[f]="expected umbrella, header, submodule, or module export",
[d]=l,
[e]=k,
[j]="expected umbrella, header, submodule, or module export",
[c]=m,
[b]="expected umbrella, header, submodule, or module export",
[i]=a,
[h]=t,
[g]={Bb,1321038628,Ab}
},
["err_mmap_expected_mmap_file"]={
[f]="expected a module map file name",
[d]=l,
[e]=k,
[j]="expected a module map file name",
[c]=m,
[b]="expected a module map file name",
[i]=a,
[h]=t,
[g]={"97292843d0aa",1378884044,"Support for modular module-map-files"}
},
["err_mmap_expected_module"]={
[f]="expected module declaration",
[d]=l,
[e]=k,
[j]="expected module declaration",
[c]=m,
[b]="expected module declaration",
[i]=a,
[h]=t,
[g]={Bb,1321038628,Ab}
},
["err_mmap_expected_module_name"]={
[f]="expected module name",
[d]=l,
[e]=k,
[j]="expected module name",
[c]=m,
[b]="expected module name",
[i]=a,
[h]=t,
[g]={Bb,1321038628,Ab}
},
["err_mmap_expected_rbrace"]={
[f]="expected \'}\'",
[d]=l,
[e]=k,
[j]="expected \'}\'",
[c]=m,
[b]="expected \'\\}\'",
[i]=a,
[h]=t,
[g]={Bb,1321038628,Ab}
},
["err_mmap_expected_rsquare"]={
[f]="expected \']\' to close attribute",
[d]=l,
[e]=k,
[j]="expected \']\' to close attribute",
[c]=m,
[b]="expected \'\\]\' to close attribute",
[i]=a,
[h]=t,
[g]={"a686e1b05df9",1327693953,"Introduce module attributes into the module map grammar, along with a"}
},
["err_mmap_explicit_inferred_framework"]={
[f]="inferred framework modules cannot be \'explicit\'",
[d]=l,
[e]=k,
[j]="inferred framework modules cannot be \'explicit\'",
[c]=m,
[b]="inferred framework modules cannot be \'explicit\'",
[i]=a,
[h]=t,
[g]={"9194a91dc928",1352230780,"Introduce inferred framework modules into the module map file,"}
},
["err_mmap_explicit_top_level"]={
[f]="\'explicit\' is not permitted on top-level modules",
[d]=l,
[e]=k,
[j]="\'explicit\' is not permitted on top-level modules",
[c]=m,
[b]="\'explicit\' is not permitted on top\\-level modules",
[i]=a,
[h]=t,
[g]={"e7ab36693b68",1323224625,"Implement basic support for private headers in frameworks. In essence,"}
},
["err_mmap_inferred_framework_submodule"]={
[f]="inferred submodule cannot be a framework submodule",
[d]=l,
[e]=k,
[j]="inferred submodule cannot be a framework submodule",
[c]=m,
[b]="inferred submodule cannot be a framework submodule",
[i]=a,
[h]=t,
[g]={"9194a91dc928",1352230780,"Introduce inferred framework modules into the module map file,"}
},
["err_mmap_inferred_no_umbrella"]={
[f]="inferred submodules require a module with an umbrella",
[d]=l,
[e]=k,
[j]="inferred submodules require a module with an umbrella",
[c]=m,
[b]="inferred submodules require a module with an umbrella",
[i]=a,
[h]=t,
[g]={wc,1323124064,uc}
},
["err_mmap_inferred_redef"]={
[f]="redefinition of inferred submodule",
[d]=l,
[e]=k,
[j]="redefinition of inferred submodule",
[c]=m,
[b]="redefinition of inferred submodule",
[i]=a,
[h]=t,
[g]={wc,1323124064,uc}
},
["err_mmap_invalid_header_attribute_value"]={
[f]="expected integer literal as value for header attribute \'A\'",
[d]=l,
[e]=k,
[j]="expected integer literal as value for header attribute \'%0\'",
[c]=m,
[b]="expected integer literal as value for header attribute \'(.*?)\'",
[i]=a,
[h]=t,
[g]={"040e12662a67",1496368539,"Support lazy stat\'ing of files referenced by module maps."}
},
["err_mmap_missing_exclude_name"]={
[f]="expected excluded module name",
[d]=l,
[e]=k,
[j]="expected excluded module name",
[c]=m,
[b]="expected excluded module name",
[i]=a,
[h]=t,
[g]={"9194a91dc928",1352230780,"Introduce inferred framework modules into the module map file,"}
},
["err_mmap_missing_module_qualified"]={
[f]="no module named \'A\' in \'B\'",
[d]=l,
[e]=k,
[j]="no module named \'%0\' in \'%1\'",
[c]=m,
[b]="no module named \'(.*?)\' in \'(.*?)\'",
[i]=a,
[h]=t,
[g]={"2b82c2a59eca",1322790427,"Implementing parsing and resolution of module export declarations"}
},
["err_mmap_missing_module_unqualified"]={
[f]="no module named \'A\' visible from \'B\'",
[d]=l,
[e]=k,
[j]="no module named \'%0\' visible from \'%1\'",
[c]=m,
[b]="no module named \'(.*?)\' visible from \'(.*?)\'",
[i]=a,
[h]=t,
[g]={"2b82c2a59eca",1322790427,"Implementing parsing and resolution of module export declarations"}
},
["err_mmap_missing_parent_module"]={
[f]="no module named \'A\' ..., parent module must be defined before the submodule",
[d]=l,
[e]=k,
[j]="no module named \'%0\' %select{found|in \'%2\'}1, parent module must be defined before the submodule",
[c]=m,
[b]="no module named \'(.*?)\' (?:found|in \'(.*?)\'), parent module must be defined before the submodule",
[i]=a,
[h]=t,
[g]={"8839e278ffca",1595533636,"[Modules] Improve error message when cannot find parent module for submodule definition."}
},
["err_mmap_module_id"]={
[f]="expected a module name or \'*\'",
[d]=l,
[e]=k,
[j]="expected a module name or \'*\'",
[c]=m,
[b]="expected a module name or \'\\*\'",
[i]=a,
[h]=t,
[g]={"ba7f2f7110c2",1380014054,"Module use declarations (II)"}
},
["err_mmap_module_redefinition"]={
[f]="redefinition of module \'A\'",
[d]=l,
[e]=k,
[j]="redefinition of module \'%0\'",
[c]=m,
[b]="redefinition of module \'(.*?)\'",
[i]=a,
[h]=t,
[g]={Bb,1321038628,Ab}
},
["err_mmap_nested_submodule_id"]={
[f]="qualified module name can only be used to define modules at the top level",
[d]=l,
[e]=k,
[j]="qualified module name can only be used to define modules at the top level",
[c]=m,
[b]="qualified module name can only be used to define modules at the top level",
[i]=a,
[h]=t,
[g]={"e7ab36693b68",1323224625,"Implement basic support for private headers in frameworks. In essence,"}
},
["err_mmap_submodule_export_as"]={
[f]="only top-level modules can be re-exported as public",
[d]=l,
[e]=k,
[j]="only top-level modules can be re-exported as public",
[c]=m,
[b]="only top\\-level modules can be re\\-exported as public",
[i]=a,
[h]=t,
[g]={"f0b11de279e7",1505432324,"[Module map] Introduce a private module re-export directive."}
},
["err_mmap_top_level_inferred_submodule"]={
[f]="only submodules and framework modules may be inferred with wildcard syntax",
[d]=l,
[e]=k,
[j]="only submodules and framework modules may be inferred with wildcard syntax",
[c]=m,
[b]="only submodules and framework modules may be inferred with wildcard syntax",
[i]=a,
[h]=t,
[g]={wc,1323124064,uc}
},
["err_mmap_umbrella_clash"]={
[f]="umbrella for module \'A\' already covers this directory",
[d]=l,
[e]=k,
[j]="umbrella for module \'%0\' already covers this directory",
[c]=m,
[b]="umbrella for module \'(.*?)\' already covers this directory",
[i]=a,
[h]=t,
[g]={"b65dbfff5275",1321484545,"A module with an umbrella header assumes that all of the headers in"}
},
["err_mmap_unknown_token"]={
[f]="skipping stray token",
[d]=l,
[e]=k,
[j]="skipping stray token",
[c]=m,
[b]="skipping stray token",
[i]=a,
[h]=t,
[g]={Bb,1321038628,Ab}
},
["err_mmap_use_decl_submodule"]={
[f]="use declarations are only allowed in top-level modules",
[d]=l,
[e]=k,
[j]="use declarations are only allowed in top-level modules",
[c]=m,
[b]="use declarations are only allowed in top\\-level modules",
[i]=a,
[h]=t,
[g]={"8f4d3ff1466a",1427407801,"[modules] Restrict the module use-declaration to only appear in top-level"}
},
["err_mode_not_primitive"]={
[f]="mode attribute only supported for integer and floating-point types",
[d]=l,
[e]=k,
[j]="mode attribute only supported for integer and floating-point types",
[c]=m,
[b]="mode attribute only supported for integer and floating\\-point types",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_mode_wrong_type"]={
[f]="type of machine mode does not match type of base type",
[d]=l,
[e]=k,
[j]="type of machine mode does not match type of base type",
[c]=m,
[b]="type of machine mode does not match type of base type",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_modifier_expected_colon"]={
[f]="missing \':\' after A modifier",
[d]=l,
[e]=k,
[j]="missing \':\' after %0 modifier",
[c]=m,
[b]="missing \'\\:\' after (.*?) modifier",
[i]=a,
[h]=o,
[g]={"ab9eac762c35",1668730814,"[OpenMP] Initial parsing/sema for \'strict\' modifier with \'grainsize\' clause"}
},
["err_module_build_disabled"]={
[f]="module \'A\' is needed but has not been provided, and implicit use of module files is disabled",
[d]=y,
[e]=z,
[j]="module \'%0\' is needed but has not been provided, and implicit use of module files is disabled",
[c]=A,
[b]="module \'(.*?)\' is needed but has not been provided, and implicit use of module files is disabled",
[i]=a,
[h]=o,
[g]={"d2e8b04d6111",1424432681,"Add -fno-implicit-modules."}
},
["err_module_build_requires_fmodules"]={
[f]="module compilation requires \'-fmodules\'",
[d]=l,
[e]=k,
[j]="module compilation requires \'-fmodules\'",
[c]=m,
[b]="module compilation requires \'\\-fmodules\'",
[i]=a,
[h]=a,
[g]={"1f2bd35b247b",1499375156,"Reject attempts to build a module without -fmodules, rather than silently doing weird things."}
},
["err_module_build_shadowed_submodule"]={
[f]="build a shadowed submodule \'A\'",
[d]=y,
[e]=z,
[j]="build a shadowed submodule \'%0\'",
[c]=A,
[b]="build a shadowed submodule \'(.*?)\'",
[i]=a,
[h]=o,
[g]={"b6ec4a33fb2b",1515032260,"[Modules] Allow modules specified by -fmodule-map-file to shadow implicitly found ones"}
},
["err_module_cannot_create_includes"]={
[f]="cannot create includes file for module A: B",
[d]=l,
[e]=k,
[j]="cannot create includes file for module %0: %1",
[c]=m,
[b]="cannot create includes file for module (.*?)\\: (.*?)",
[i]=a,
[h]=a,
[g]={"723928c7dcc7",1394503367,"If a module map is found in a relative -I path, convert the filenames within it"}
},
["err_module_cycle"]={
[f]="cyclic dependency in module \'A\': B",
[d]=y,
[e]=z,
[j]="cyclic dependency in module \'%0\': %1",
[c]=A,
[b]="cyclic dependency in module \'(.*?)\'\\: (.*?)",
[i]=a,
[h]=o,
[g]={"dff0e892db7c",1316119210,"Detect cyclic module dependencies in a manner that is rather more"}
},
["err_module_decl_in_header_unit"]={
[f]="\'module\' declaration found while building header unit",
[d]=l,
[e]=k,
[j]="\'module\' declaration found while building header unit",
[c]=m,
[b]="\'module\' declaration found while building header unit",
[i]=a,
[h]=x,
[g]={w,1625925174,v}
},
["err_module_decl_in_module_map_module"]={
[f]="\'module\' declaration found while building module from module map",
[d]=l,
[e]=k,
[j]="\'module\' declaration found while building module from module map",
[c]=m,
[b]="\'module\' declaration found while building module from module map",
[i]=a,
[h]=x,
[g]={"81328ac3a5b1",1492814358,"P0629R0: Switch to latest proposal for distinguishing module interface from implementation."}
},
["err_module_decl_not_at_start"]={
[f]="module declaration must occur at the start of the translation unit",
[d]=l,
[e]=k,
[j]="module declaration must occur at the start of the translation unit",
[c]=m,
[b]="module declaration must occur at the start of the translation unit",
[i]=a,
[h]=x,
[g]={"d652bdd05f1c",1555229219,"[c++20] Parsing support for module-declarations, import-declarations,"}
},
["err_module_declaration_missing"]={
[f]="missing \'export module\' declaration in module interface unit",
[d]=l,
[e]=k,
[j]="missing \'export module\' declaration in module interface unit",
[c]=m,
[b]="missing \'export module\' declaration in module interface unit",
[i]=a,
[h]=x,
[g]={"18057cb34c83",1507682216,"[Modules TS] Diagnose missing/duplicate module-declaration."}
},
["err_module_declaration_missing_after_global_module_introducer"]={
[f]="missing \'module\' declaration at end of global module fragment introduced here",
[d]=l,
[e]=k,
[j]="missing \'module\' declaration at end of global module fragment introduced here",
[c]=m,
[b]="missing \'module\' declaration at end of global module fragment introduced here",
[i]=a,
[h]=x,
[g]={"d652bdd05f1c",1555229219,"[c++20] Parsing support for module-declarations, import-declarations,"}
},
["err_module_different_modmap"]={
[f]="module \'A\' ... additional module map \'B\'... used when the module was built",
[d]=l,
[e]=k,
[j]="module \'%0\' %select{uses|does not use}1 additional module map \'%2\'%select{| not}1 used when the module was built",
[c]=m,
[b]="module \'(.*?)\' (?:uses|does not use) additional module map \'(.*?)\'(?:| not) used when the module was built",
[i]=a,
[h]=U,
[g]={"4b8a9e951e09",1407861753,"Verify all the module map files for a pcm are the same on load"}
},
["err_module_expected_ident"]={
[f]="expected a module name after \'...\'",
[d]=l,
[e]=k,
[j]="expected a module name after \'%select{module|import}0\'",
[c]=m,
[b]="expected a module name after \'(?:module|import)\'",
[i]=a,
[h]=x,
[g]={"081425343b18",1314402967,"Introduce support for a simple module import declaration, which"}
},
["err_module_expected_semi"]={
[f]="expected \';\' after module name",
[d]=l,
[e]=k,
[j]="expected \';\' after module name",
[c]=m,
[b]="expected \';\' after module name",
[i]=a,
[h]=x,
[g]={"081425343b18",1314402967,"Introduce support for a simple module import declaration, which"}
},
["err_module_file_conflict"]={
[f]="module \'A\' is defined in both \'B\' and \'C\'",
[d]=y,
[e]=z,
[j]="module \'%0\' is defined in both \'%1\' and \'%2\'",
[c]=A,
[b]="module \'(.*?)\' is defined in both \'(.*?)\' and \'(.*?)\'",
[i]=a,
[h]=U,
[g]={"8a114ab557f0",1360190431,"Detect when we end up trying to load conflicting module files."}
},
["err_module_file_missing_top_level_submodule"]={
[f]="module file \'A\' is missing its top-level submodule",
[d]=y,
[e]=z,
[j]="module file \'%0\' is missing its top-level submodule",
[c]=A,
[b]="module file \'(.*?)\' is missing its top\\-level submodule",
[i]=a,
[h]=U,
[g]={"83dcb34b6bf4",1573420492,"clang/Modules: Error if ReadASTBlock does not find the main module"}
},
["err_module_file_not_module"]={
[f]="AST file \'A\' was not built as a module",
[d]=y,
[e]=z,
[j]="AST file \'%0\' was not built as a module",
[c]=A,
[b]="AST file \'(.*?)\' was not built as a module",
[i]=a,
[h]=U,
[g]={"e842a4745222",1413943546,"[modules] Initial support for explicitly loading .pcm files."}
},
["err_module_format_unhandled"]={
[f]="no handler registered for module format \'A\'",
[d]=y,
[e]=z,
[j]="no handler registered for module format \'%0\'",
[c]=A,
[b]="no handler registered for module format \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"fb2398d0c434",1437095994,"Make the clang module container format selectable from the command line."}
},
["err_module_fragment_exported"]={
[f]="... module fragment cannot be exported",
[d]=l,
[e]=k,
[j]="%select{global|private}0 module fragment cannot be exported",
[c]=m,
[b]="(?:global|private) module fragment cannot be exported",
[i]=a,
[h]=x,
[g]={"d652bdd05f1c",1555229219,"[c++20] Parsing support for module-declarations, import-declarations,"}
},
["err_module_header_file_not_found"]={
[f]="module header file \'A\' not found",
[d]=y,
[e]=z,
[j]="module header file \'%0\' not found",
[c]=A,
[b]="module header file \'(.*?)\' not found",
[i]=a,
[h]=a,
[g]={"d6509cf21dd0",1536974475,"[modules] Frontend support for building a header module from a list of"}
},
["err_module_header_missing"]={
[f]="...header \'A\' not found",
[d]=l,
[e]=k,
[j]="%select{|umbrella }0header \'%1\' not found",
[c]=m,
[b]="(?:|umbrella )header \'(.*?)\' not found",
[i]=a,
[h]=o,
[g]={"0761a8a085f4",1387276297,"Modules: Don\'t warn upon missing headers while reading the module map."}
},
["err_module_import_in_implementation"]={
[f]="@import of module \'A\' in implementation of \'B\'; use #import",
[d]=l,
[e]=k,
[j]="@import of module \'%0\' in implementation of \'%1\'; use #import",
[c]=m,
[b]="@import of module \'(.*?)\' in implementation of \'(.*?)\'; use \\#import",
[i]=a,
[h]=x,
[g]={"b537a3a65180",1406129423,"Add stopgap option -fmodule-implementation-of <name>"}
},
["err_module_import_not_at_top_level_fatal"]={
[f]="import of module \'A\' appears within B",
[d]=y,
[e]=z,
[j]="import of module \'%0\' appears within %1",
[c]=A,
[b]="import of module \'(.*?)\' appears within (.*?)",
[i]=a,
[h]=x,
[g]={"c4e04a296403",1442640777,"[Modules] More descriptive diagnostics for misplaced import directive"}
},
["err_module_interface_implementation_mismatch"]={
[f]="missing \'export\' specifier in module declaration while building module interface",
[d]=l,
[e]=k,
[j]="missing \'export\' specifier in module declaration while building module interface",
[c]=m,
[b]="missing \'export\' specifier in module declaration while building module interface",
[i]=a,
[h]=x,
[g]={"964cc53d9a74",1471570986,"C++ Modules TS: support parsing the \'module\' declaration (including extensions"}
},
["err_module_interface_requires_cpp_modules"]={
[f]="module interface compilation requires \'-std=c++20\'",
[d]=l,
[e]=k,
[j]="module interface compilation requires \'-std=c++20\'",
[c]=m,
[b]="module interface compilation requires \'\\-std\\=c\\+\\+20\'",
[i]=a,
[h]=a,
[g]={"b1b580e047ad",1555240297,"[c++20] Enable driver and frontend support for building and using"}
},
["err_module_map_not_found"]={
[f]="module map file \'A\' not found",
[d]=y,
[e]=z,
[j]="module map file \'%0\' not found",
[c]=A,
[b]="module map file \'(.*?)\' not found",
[i]=a,
[h]=a,
[g]={"2b20cb87f5b6",1321402146,"Add support for building a module from a module map to the -cc1"}
},
["err_module_no_size_mtime_for_header"]={
[f]="cannot emit module A: ... must be explicitly specified for missing header file \"B\"",
[d]=l,
[e]=k,
[j]="cannot emit module %0: %select{size|mtime}1 must be explicitly specified for missing header file \"%2\"",
[c]=m,
[b]="cannot emit module (.*?)\\: (?:size|mtime) must be explicitly specified for missing header file \"(.*?)\"",
[i]=a,
[h]="AST Serialization Issue",
[g]={"040e12662a67",1496368539,"Support lazy stat\'ing of files referenced by module maps."}
},
["err_module_not_built"]={
[f]="could not build module \'A\'",
[d]=y,
[e]=z,
[j]="could not build module \'%0\'",
[c]=A,
[b]="could not build module \'(.*?)\'",
[i]=a,
[h]=o,
[g]={"faeb1d465862",1315870284,"When an import statement fails to find a module in the module cache,"}
},
["err_module_not_defined"]={
[f]="definition of module \'A\' is not available; use -fmodule-file= to specify path to precompiled module interface",
[d]=l,
[e]=k,
[j]="definition of module \'%0\' is not available; use -fmodule-file= to specify path to precompiled module interface",
[c]=m,
[b]="definition of module \'(.*?)\' is not available; use \\-fmodule\\-file\\= to specify path to precompiled module interface",
[i]=a,
[h]=x,
[g]={"d97d35e1500d",1507674927,"[Modules TS] Diagnose attempts to enter module implementation units without the module interface bei..."}
},
["err_module_not_found"]={
[f]="module \'A\' not found",
[d]=y,
[e]=z,
[j]="module \'%0\' not found",
[c]=A,
[b]="module \'(.*?)\' not found",
[i]=a,
[h]=o,
[g]={"dd8a2fe0be34",1314827541,"Switch the \"no module found\" default-fatal warning to a default-fatal error."}
},
["err_module_odr_violation_definition_data"]={
[f]=ib,
[d]=l,
[e]=k,
[j]="%q0 has different definitions in different modules; first difference is %select{definition in module \'%2\'|defined here}1 found %select{%4 base %plural{1:class|:classes}4|%4 virtual base %plural{1:class|:classes}4|%ordinal4 base class with type %5|%ordinal4 %select{non-virtual|virtual}5 base class %6|%ordinal4 base class %5 with %select{public|protected|private|no}6 access specifier}3",
[c]=m,
[b]="(.*?) has different definitions in different modules; first difference is (?:definition in module \'(.*?)\'|defined here) found (?:(.*?) base (?:class|classes)|(.*?) virtual base (?:class|classes)|(.*?) base class with type (.*?)|(.*?) (?:non\\-virtual|virtual) base class (.*?)|(.*?) base class (.*?) with (?:public|protected|private|no) access specifier)",
[i]=a,
[h]=a,
[g]={"e13eabe7d339",1506737957,"[ODRHash] Add base classes to hashing CXXRecordDecl."}
},
["err_module_odr_violation_different_definitions"]={
[f]="A has different definitions in different modules; ...",
[d]=l,
[e]=k,
[j]="%q0 has different definitions in different modules; %select{definition in module \'%2\' is here|defined here}1",
[c]=m,
[b]="(.*?) has different definitions in different modules; (?:definition in module \'(.*?)\' is here|defined here)",
[i]=a,
[h]=a,
[g]={"cd45dbc5f24c",1397879310,"When a module completes the definition of a class template specialization imported from another modu..."}
},
["err_module_odr_violation_different_instantiations"]={
[f]="instantiation of A is different in different modules",
[d]=l,
[e]=k,
[j]="instantiation of %q0 is different in different modules",
[c]=m,
[b]="instantiation of (.*?) is different in different modules",
[i]=a,
[h]=U,
[g]={"cd45dbc5f24c",1397879310,"When a module completes the definition of a class template specialization imported from another modu..."}
},
["err_module_odr_violation_enum"]={
[f]="A has different definitions in different modules; ... first difference is ...",
[d]=l,
[e]=k,
[j]="%q0 has different definitions in different modules; %select{definition in module \'%2\'|defined here}1 first difference is %select{enum that is %select{not scoped|scoped}4|enum scoped with keyword %select{struct|class}4|enum %select{without|with}4 specified type|enum with specified type %4|enum with %4 element%s4|%ordinal4 element has name %5|%ordinal4 element %5 %select{has|does not have}6 an initializer|%ordinal4 element %5 has an initializer|}3",
[c]=m,
[b]="(.*?) has different definitions in different modules; (?:definition in module \'(.*?)\'|defined here) first difference is (?:enum that is (?:not scoped|scoped)|enum scoped with keyword (?:struct|class)|enum (?:without|with) specified type|enum with specified type (.*?)|enum with (.*?) element(.*?)|(.*?) element has name (.*?)|(.*?) element (.*?) (?:has|does not have) an initializer|(.*?) element (.*?) has an initializer|)",
[i]=a,
[h]=a,
[g]={"ab4d730f14d1",1532559125,"[ODRHash] Support hashing enums."}
},
["err_module_odr_violation_field"]={
[f]=ib,
[d]=l,
[e]=k,
[j]="%q0 has different definitions in different modules; first difference is %select{definition in module \'%2\'|defined here}1 found %select{field %4|field %4 with type %5|%select{non-|}5bitfield %4|bitfield %4 with one width expression|%select{non-|}5mutable field %4|field %4 with %select{no|an}5 initializer|field %4 with an initializer}3",
[c]=m,
[b]="(.*?) has different definitions in different modules; first difference is (?:definition in module \'(.*?)\'|defined here) found (?:field (.*?)|field (.*?) with type (.*?)|(?:non\\-|)bitfield (.*?)|bitfield (.*?) with one width expression|(?:non\\-|)mutable field (.*?)|field (.*?) with (?:no|an) initializer|field (.*?) with an initializer)",
[i]=a,
[h]=a,
[g]={Hb,1643408541,Ib}
},
["err_module_odr_violation_function"]={
[f]="A has different definitions in different modules; ... first difference is ...",
[d]=l,
[e]=k,
[j]="%q0 has different definitions in different modules; %select{definition in module \'%2\'|defined here}1 first difference is %select{return type is %4|%ordinal4 parameter with name %5|%ordinal4 parameter with type %5%select{| decayed from %7}6|%ordinal4 parameter with%select{out|}5 a default argument|%ordinal4 parameter with a default argument|function body}3",
[c]=m,
[b]="(.*?) has different definitions in different modules; (?:definition in module \'(.*?)\'|defined here) first difference is (?:return type is (.*?)|(.*?) parameter with name (.*?)|(.*?) parameter with type (.*?)(?:| decayed from (.*?))|(.*?) parameter with(?:out|) a default argument|(.*?) parameter with a default argument|function body)",
[i]=a,
[h]=a,
[g]={"e81caeb3147f",1512782980,"[ODRHash] Support ODR violation detection in functions."}
},
["err_module_odr_violation_method_params"]={
[f]=ib,
[d]=l,
[e]=k,
[j]="%q0 has different definitions in different modules; first difference is %select{definition in module \'%2\'|defined here}1 found %select{%select{method %5|constructor|destructor}4 that has %6 parameter%s6|%select{method %5|constructor|destructor}4 with %ordinal6 parameter of type %7%select{| decayed from %9}8|%select{method %5|constructor|destructor}4 with %ordinal6 parameter named %7}3",
[c]=m,
[b]="(.*?) has different definitions in different modules; first difference is (?:definition in module \'(.*?)\'|defined here) found (?:(?:method (.*?)|constructor|destructor) that has (.*?) parameter(.*?)|(?:method (.*?)|constructor|destructor) with (.*?) parameter of type (.*?)(?:| decayed from (.*?))|(?:method (.*?)|constructor|destructor) with (.*?) parameter named (.*?))",
[i]=a,
[h]=a,
[g]={Hb,1643408541,Ib}
},
["err_module_odr_violation_mismatch_decl"]={
[f]=ib,
[d]=l,
[e]=k,
[j]="%q0 has different definitions in different modules; first difference is %select{definition in module \'%2\'|defined here}1 found %select{end of class|public access specifier|private access specifier|protected access specifier|static assert|field|method|type alias|typedef|data member|friend declaration|function template|method|instance variable|property}3",
[c]=m,
[b]="(.*?) has different definitions in different modules; first difference is (?:definition in module \'(.*?)\'|defined here) found (?:end of class|public access specifier|private access specifier|protected access specifier|static assert|field|method|type alias|typedef|data member|friend declaration|function template|method|instance variable|property)",
[i]=a,
[h]=a,
[g]={"fa3d93a148d4",1485827055,"Add better ODR checking for modules."}
},
["err_module_odr_violation_mismatch_decl_unknown"]={
[f]="A ... has different definitions in different modules; first difference is this ...",
[d]=l,
[e]=k,
[j]="%q0 %select{with definition in module \'%2\'|defined here}1 has different definitions in different modules; first difference is this %select{||||static assert|field|method|type alias|typedef|data member|friend declaration|function template|method|instance variable|property|unexpected decl}3",
[c]=m,
[b]="(.*?) (?:with definition in module \'(.*?)\'|defined here) has different definitions in different modules; first difference is this (?:||||static assert|field|method|type alias|typedef|data member|friend declaration|function template|method|instance variable|property|unexpected decl)",
[i]=a,
[h]=a,
[g]={"708859a71326",1496883381,"[ODRHash] Change the fall-back diagnostic error."}
},
["err_module_odr_violation_missing_decl"]={
[f]="A from module \'B\' is not present in definition of C...",
[d]=l,
[e]=k,
[j]="%q0 from module \'%1\' is not present in definition of %q2%select{ in module \'%4\'| provided earlier}3",
[c]=m,
[b]="(.*?) from module \'(.*?)\' is not present in definition of (.*?)(?: in module \'(.*?)\'| provided earlier)",
[i]=a,
[h]=U,
[g]={"2b9e3e396a6f",1382076318,"Basic ODR checking for C++ modules:"}
},
["err_module_odr_violation_objc_interface"]={
[f]=ib,
[d]=l,
[e]=k,
[j]="%0 has different definitions in different modules; first difference is %select{definition in module \'%2\'|defined here}1 found %select{%select{no super class|super class with type %5}4|instance variable \'%4\' access control is %select{|@private|@protected|@public|@package}5}3",
[c]=m,
[b]="(.*?) has different definitions in different modules; first difference is (?:definition in module \'(.*?)\'|defined here) found (?:(?:no super class|super class with type (.*?))|instance variable \'(.*?)\' access control is (?:|@private|@protected|@public|@package))",
[i]=a,
[h]=a,
[g]={"f27afedc6c86",1662843785,"[Clang] Implement P2738R1 - constexpr cast from void*"}
},
["err_module_odr_violation_objc_method"]={
[f]=ib,
[d]=l,
[e]=k,
[j]="%q0 has different definitions in different modules; first difference is %select{definition in module \'%2\'|defined here}1 found %select{method %4 with return type %5|%select{class|instance}5 method %4|%select{no|\'required\'|\'optional\'}4 method control|method %4 with %select{no designated initializer|designated initializer}5|%select{regular|direct}5 method %4|method %4}3",
[c]=m,
[b]="(.*?) has different definitions in different modules; first difference is (?:definition in module \'(.*?)\'|defined here) found (?:method (.*?) with return type (.*?)|(?:class|instance) method (.*?)|(?:no|\'required\'|\'optional\') method control|method (.*?) with (?:no designated initializer|designated initializer)|(?:regular|direct) method (.*?)|method (.*?))",
[i]=a,
[h]=a,
[g]={Hb,1643408541,Ib}
},
["err_module_odr_violation_objc_property"]={
[f]=ib,
[d]=l,
[e]=k,
[j]="%q0 has different definitions in different modules; first difference is %select{definition in module \'%2\'|defined here}1 found %select{property %4|property %4 with type %5|%select{no|\'required\'|\'optional\'}4 property control|property %4 with %select{default |}6\'%select{none|readonly|getter|assign|readwrite|retain|copy|nonatomic|setter|atomic|weak|strong|unsafe_unretained|nullability|null_resettable|class|direct}5\' attribute}3",
[c]=m,
[b]="(.*?) has different definitions in different modules; first difference is (?:definition in module \'(.*?)\'|defined here) found (?:property (.*?)|property (.*?) with type (.*?)|(?:no|\'required\'|\'optional\') property control|property (.*?) with (?:default |)\'(?:none|readonly|getter|assign|readwrite|retain|copy|nonatomic|setter|atomic|weak|strong|unsafe_unretained|nullability|null_resettable|class|direct)\' attribute)",
[i]=a,
[h]=a,
[g]={"dcb71b5e1d13",1657144706,"[ODRHash] Hash `ObjCPropertyDecl` and diagnose discovered mismatches."}
},
["err_module_odr_violation_record"]={
[f]=ib,
[d]=l,
[e]=k,
[j]="%q0 has different definitions in different modules; first difference is %select{definition in module \'%2\'|defined here}1 found %select{static assert with condition|static assert with message|static assert with %select{|no }4message|%select{method %5|constructor|destructor}4|%select{method %5|constructor|destructor}4 is %select{not deleted|deleted}6|%select{method %5|constructor|destructor}4 is %select{not defaulted|defaulted}6|%select{method %5|constructor|destructor}4 is %select{|pure }6%select{not virtual|virtual}7|%select{method %5|constructor|destructor}4 is %select{not static|static}6|%select{method %5|constructor|destructor}4 is %select{not volatile|volatile}6|%select{method %5|constructor|destructor}4 is %select{not const|const}6|%select{method %5|constructor|destructor}4 is %select{not inline|inline}6|%select{method %5|constructor|destructor}4 with %ordinal6 parameter with%select{out|}7 a default argument|%select{method %5|constructor|destructor}4 with %ordinal6 parameter with a default argument|%select{method %5|constructor|destructor}4 with %select{no |}6template arguments|%select{method %5|constructor|destructor}4 with %6 template argument%s6|%select{method %5|constructor|destructor}4 with %6 for %ordinal7 template argument|%select{method %5|constructor|destructor}4 with %select{no body|body}6|%select{method %5|constructor|destructor}4 with body|friend %select{class|function}4|friend %4|friend function %4|function template %4 with %5 template parameter%s5|function template %4 with %ordinal5 template parameter being a %select{type|non-type|template}6 template parameter|function template %4 with %ordinal5 template parameter %select{with no name|named %7}6|function template %4 with %ordinal5 template parameter with %select{no |}6default argument|function template %4 with %ordinal5 template parameter with default argument %6|function template %4 with %ordinal5 template parameter with one type|function template %4 with %ordinal5 template parameter %select{not |}6being a template parameter pack|}3",
[c]=m,
[b]="(.*?) has different definitions in different modules; first difference is (?:definition in module \'(.*?)\'|defined here) found (?:static assert with condition|static assert with message|static assert with (?:|no )message|(?:method (.*?)|constructor|destructor)|(?:method (.*?)|constructor|destructor) is (?:not deleted|deleted)|(?:method (.*?)|constructor|destructor) is (?:not defaulted|defaulted)|(?:method (.*?)|constructor|destructor) is (?:|pure )(?:not virtual|virtual)|(?:method (.*?)|constructor|destructor) is (?:not static|static)|(?:method (.*?)|constructor|destructor) is (?:not volatile|volatile)|(?:method (.*?)|constructor|destructor) is (?:not const|const)|(?:method (.*?)|constructor|destructor) is (?:not inline|inline)|(?:method (.*?)|constructor|destructor) with (.*?) parameter with(?:out|) a default argument|(?:method (.*?)|constructor|destructor) with (.*?) parameter with a default argument|(?:method (.*?)|constructor|destructor) with (?:no |)template arguments|(?:method (.*?)|constructor|destructor) with (.*?) template argument(.*?)|(?:method (.*?)|constructor|destructor) with (.*?) for (.*?) template argument|(?:method (.*?)|constructor|destructor) with (?:no body|body)|(?:method (.*?)|constructor|destructor) with body|friend (?:class|function)|friend (.*?)|friend function (.*?)|function template (.*?) with (.*?) template parameter(.*?)|function template (.*?) with (.*?) template parameter being a (?:type|non\\-type|template) template parameter|function template (.*?) with (.*?) template parameter (?:with no name|named (.*?))|function template (.*?) with (.*?) template parameter with (?:no |)default argument|function template (.*?) with (.*?) template parameter with default argument (.*?)|function template (.*?) with (.*?) template parameter with one type|function template (.*?) with (.*?) template parameter (?:not |)being a template parameter pack|)",
[i]=a,
[h]=a,
[g]={Hb,1643408541,Ib}
},
["err_module_odr_violation_referenced_protocols"]={
[f]=ib,
[d]=l,
[e]=k,
[j]="%q0 has different definitions in different modules; first difference is %select{definition in module \'%2\'|defined here}1 found %select{%4 referenced %plural{1:protocol|:protocols}4|%ordinal4 referenced protocol with name %5}3",
[c]=m,
[b]="(.*?) has different definitions in different modules; first difference is (?:definition in module \'(.*?)\'|defined here) found (?:(.*?) referenced (?:protocol|protocols)|(.*?) referenced protocol with name (.*?))",
[i]=a,
[h]=a,
[g]={Hb,1643408541,Ib}
},
["err_module_odr_violation_template_parameter"]={
[f]=ib,
[d]=l,
[e]=k,
[j]="%q0 has different definitions in different modules; first difference is %select{definition in module \'%2\'|defined here}1 found %select{unnamed template parameter|template parameter %5|template parameter with %select{no |}4default argument|template parameter with default argument}3",
[c]=m,
[b]="(.*?) has different definitions in different modules; first difference is (?:definition in module \'(.*?)\'|defined here) found (?:unnamed template parameter|template parameter (.*?)|template parameter with (?:no |)default argument|template parameter with default argument)",
[i]=a,
[h]=a,
[g]={"498117bf11d8",1503456239,"[ODRHash] Diagnose differing template parameters."}
},
["err_module_odr_violation_typedef"]={
[f]=ib,
[d]=l,
[e]=k,
[j]="%q0 has different definitions in different modules; first difference is %select{definition in module \'%2\'|defined here}1 found %select{%select{typedef|type alias}4 name %5|%select{typedef|type alias}4 %5 with underlying type %6}3",
[c]=m,
[b]="(.*?) has different definitions in different modules; first difference is (?:definition in module \'(.*?)\'|defined here) found (?:(?:typedef|type alias) name (.*?)|(?:typedef|type alias) (.*?) with underlying type (.*?))",
[i]=a,
[h]=a,
[g]={Hb,1643408541,Ib}
},
["err_module_odr_violation_variable"]={
[f]=ib,
[d]=l,
[e]=k,
[j]="%q0 has different definitions in different modules; first difference is %select{definition in module \'%2\'|defined here}1 found %select{data member with name %4|data member %4 with type %5|data member %4 with%select{out|}5 an initializer|data member %4 with an initializer|data member %4 %select{is constexpr|is not constexpr}5}3",
[c]=m,
[b]="(.*?) has different definitions in different modules; first difference is (?:definition in module \'(.*?)\'|defined here) found (?:data member with name (.*?)|data member (.*?) with type (.*?)|data member (.*?) with(?:out|) an initializer|data member (.*?) with an initializer|data member (.*?) (?:is constexpr|is not constexpr))",
[i]=a,
[h]=a,
[g]={Hb,1643408541,Ib}
},
["err_module_prebuilt"]={
[f]="error in loading module \'A\' from prebuilt module path",
[d]=y,
[e]=z,
[j]="error in loading module \'%0\' from prebuilt module path",
[c]=A,
[b]="error in loading module \'(.*?)\' from prebuilt module path",
[i]=a,
[h]=o,
[g]={"11f2a477721c",1471542135,"Module: add -fprebuilt-module-path to support loading prebuilt modules."}
},
["err_module_private_local"]={
[f]="... A cannot be declared __module_private__",
[d]=l,
[e]=k,
[j]="%select{local variable|parameter|typedef}0 %1 cannot be declared __module_private__",
[c]=m,
[b]="(?:local variable|parameter|typedef) (.*?) cannot be declared __module_private__",
[i]=a,
[h]=x,
[g]={"41866816ce5c",1315852658,"Diagnose attempt to mark function-local declarations as __module_private__."}
},
["err_module_private_local_class"]={
[f]="local ... cannot be declared __module_private__",
[d]=l,
[e]=k,
[j]="local %select{struct|interface|union|class|enum}0 cannot be declared __module_private__",
[c]=m,
[b]="local (?:struct|interface|union|class|enum) cannot be declared __module_private__",
[i]=a,
[h]=x,
[g]={"41866816ce5c",1315852658,"Diagnose attempt to mark function-local declarations as __module_private__."}
},
["err_module_private_specialization"]={
[f]="... specialization cannot be declared __module_private__",
[d]=l,
[e]=k,
[j]="%select{template|partial|member}0 specialization cannot be declared __module_private__",
[c]=m,
[b]="(?:template|partial|member) specialization cannot be declared __module_private__",
[i]=a,
[h]=x,
[g]={"3c7cd6a0c448",1315601618,"Specializations cannot be module-hidden. Diagnose attempts to do so."}
},
["err_module_rebuild_finalized"]={
[f]="cannot rebuild module \'A\' as it is already finalized",
[d]=y,
[e]=z,
[j]="cannot rebuild module \'%0\' as it is already finalized",
[c]=A,
[b]="cannot rebuild module \'(.*?)\' as it is already finalized",
[i]=a,
[h]=o,
[g]={"ff13189c5d0d",1624436334,"[RISCV] Unify the arch string parsing logic to to RISCVISAInfo."}
},
["err_module_redeclaration"]={
[f]="translation unit contains multiple module declarations",
[d]=l,
[e]=k,
[j]="translation unit contains multiple module declarations",
[c]=m,
[b]="translation unit contains multiple module declarations",
[i]=a,
[h]=x,
[g]={"18057cb34c83",1507682216,"[Modules TS] Diagnose missing/duplicate module-declaration."}
},
["err_module_redefinition"]={
[f]="redefinition of module \'A\'",
[d]=l,
[e]=k,
[j]="redefinition of module \'%0\'",
[c]=m,
[b]="redefinition of module \'(.*?)\'",
[i]=a,
[h]=x,
[g]={"bbcc9f0462c1",1472170478,"C++ Modules TS: add frontend support for building pcm files from module"}
},
["err_module_self_import"]={
[f]="import of module \'A\' appears within same top-level module \'B\'",
[d]=l,
[e]=k,
[j]="import of module \'%0\' appears within same top-level module \'%1\'",
[c]=m,
[b]="import of module \'(.*?)\' appears within same top\\-level module \'(.*?)\'",
[i]=a,
[h]=x,
[g]={"527040e0c87a",1399267893,"Make module self-import an error"}
},
["err_module_self_import_cxx20"]={
[f]="import of module \'A\' appears within its own ...",
[d]=l,
[e]=k,
[j]="import of module \'%0\' appears within its own %select{interface|implementation}1",
[c]=m,
[b]="import of module \'(.*?)\' appears within its own (?:interface|implementation)",
[i]=a,
[h]=x,
[g]={hb,1620118562,jb}
},
["err_module_shadowed"]={
[f]="import of shadowed module \'A\'",
[d]=y,
[e]=z,
[j]="import of shadowed module \'%0\'",
[c]=A,
[b]="import of shadowed module \'(.*?)\'",
[i]=a,
[h]=o,
[g]={"b6ec4a33fb2b",1515032260,"[Modules] Allow modules specified by -fmodule-map-file to shadow implicitly found ones"}
},
["err_module_unable_to_hash_content"]={
[f]="failed to hash content for \'A\' because memory buffer cannot be retrieved",
[d]=l,
[e]=k,
[j]="failed to hash content for \'%0\' because memory buffer cannot be retrieved",
[c]=m,
[b]="failed to hash content for \'(.*?)\' because memory buffer cannot be retrieved",
[i]=a,
[h]="AST Serialization Issue",
[g]={"2a1386c81de5",1571094123,"[Modules][PCH] Hash input files content"}
},
["err_module_unavailable"]={
[f]="module \'A\' ... feature \'B\'",
[d]=l,
[e]=k,
[j]="module \'%0\' %select{is incompatible with|requires}1 feature \'%2\'",
[c]=m,
[b]="module \'(.*?)\' (?:is incompatible with|requires) feature \'(.*?)\'",
[i]=a,
[h]=o,
[g]={"1fb5c3a63a88",1325304344,"Implement support for module requirements, which indicate the language"}
},
["err_module_unimported_use"]={
[f]="... of A must be imported from module \'B\' before it is required",
[d]=l,
[e]=k,
[j]="%select{declaration|definition|default argument|explicit specialization|partial specialization}0 of %1 must be imported from module \'%2\' before it is required",
[c]=m,
[b]="(?:declaration|definition|default argument|explicit specialization|partial specialization) of (.*?) must be imported from module \'(.*?)\' before it is required",
[i]=a,
[h]=x,
[g]={"35c1df5cb6da",1434572192,"[modules] Improve diagnostic for a template-id that\'s invalid because a default"}
},
["err_module_unimported_use_header"]={
[f]="...; ...A must be ... before it is used",
[d]=l,
[e]=k,
[j]="%select{missing \'#include\'|missing \'#include %3\'}2; %select{||default argument of |explicit specialization of |partial specialization of }0%1 must be %select{declared|defined|defined|declared|declared}0 before it is used",
[c]=m,
[b]="(?:missing \'\\#include\'|missing \'\\#include (.*?)\'); (?:||default argument of |explicit specialization of |partial specialization of )(.*?) must be (?:declared|defined|defined|declared|declared) before it is used",
[i]=a,
[h]=x,
[g]={"4eb8393c636b",1461794225,"[modules] When diagnosing a missing module import, suggest adding a #include if"}
},
["err_module_unimported_use_multiple"]={
[f]="... of A must be imported from one of the following modules before it is required:B",
[d]=l,
[e]=k,
[j]="%select{declaration|definition|default argument|explicit specialization|partial specialization}0 of %1 must be imported from one of the following modules before it is required:%2",
[c]=m,
[b]="(?:declaration|definition|default argument|explicit specialization|partial specialization) of (.*?) must be imported from one of the following modules before it is required\\:(.*?)",
[i]=a,
[h]=x,
[g]={"35c1df5cb6da",1434572192,"[modules] Improve diagnostic for a template-id that\'s invalid because a default"}
},
["err_modules_embed_file_not_found"]={
[f]="file \'A\' specified by \'-fmodules-embed-file=\' not found",
[d]=y,
[e]=z,
[j]="file \'%0\' specified by \'-fmodules-embed-file=\' not found",
[c]=A,
[b]="file \'(.*?)\' specified by \'\\-fmodules\\-embed\\-file\\=\' not found",
[i]=a,
[h]=a,
[g]={"fb1e7f7d1aca",1439528578,"[modules] Add an experimental -cc1 feature to embed the contents of an input"}
},
["err_ms___leave_not_in___try"]={
[f]="\'__leave\' statement not in __try block",
[d]=l,
[e]=k,
[j]="\'__leave\' statement not in __try block",
[c]=m,
[b]="\'__leave\' statement not in __try block",
[i]=a,
[h]=n,
[g]={"eb61d4d7c2fd",1404687199,"Sema: Check that __leave is contained in a __try block."}
},
["err_ms_asm_bitfield_unsupported"]={
[f]="an inline asm block cannot have an operand which is a bit-field",
[d]=l,
[e]=k,
[j]="an inline asm block cannot have an operand which is a bit-field",
[c]=m,
[b]="an inline asm block cannot have an operand which is a bit\\-field",
[i]=a,
[h]=D,
[g]={"0982db188b66",1665177226,"[Clang] reject bit-fields as instruction operands in Microsoft style inline asm blocks."}
},
["err_ms_attributes_not_enabled"]={
[f]="\'__declspec\' attributes are not enabled; use \'-fdeclspec\' or \'-fms-extensions\' to enable support for __declspec attributes",
[d]=l,
[e]=k,
[j]="\'__declspec\' attributes are not enabled; use \'-fdeclspec\' or \'-fms-extensions\' to enable support for __declspec attributes",
[c]=m,
[b]="\'__declspec\' attributes are not enabled; use \'\\-fdeclspec\' or \'\\-fms\\-extensions\' to enable support for __declspec attributes",
[i]=a,
[h]=o,
[g]={"52d0aaac139a",1487112440,"Improve diagnostic reporting when using __declspec without enabling __declspec as a keyword."}
},
["err_ms_declspec_type"]={
[f]="__declspec attributes must be an identifier or string literal",
[d]=l,
[e]=k,
[j]="__declspec attributes must be an identifier or string literal",
[c]=m,
[b]="__declspec attributes must be an identifier or string literal",
[i]=a,
[h]=o,
[g]={"38c9ad9e725c",1340113766,"Improves parsing and semantic analysis for MS __declspec attributes.  This includes support for the ..."}
},
["err_ms_property_duplicate_accessor"]={
[f]="property declaration specifies \'A\' accessor twice",
[d]=l,
[e]=k,
[j]="property declaration specifies \'%0\' accessor twice",
[c]=m,
[b]="property declaration specifies \'(.*?)\' accessor twice",
[i]=a,
[h]=o,
[g]={xb,1366097310,tb}
},
["err_ms_property_expected_accessor_name"]={
[f]="expected name of accessor method",
[d]=l,
[e]=k,
[j]="expected name of accessor method",
[c]=m,
[b]="expected name of accessor method",
[i]=a,
[h]=o,
[g]={xb,1366097310,tb}
},
["err_ms_property_expected_comma_or_rparen"]={
[f]="expected \',\' or \')\' at end of property accessor list",
[d]=l,
[e]=k,
[j]="expected \',\' or \')\' at end of property accessor list",
[c]=m,
[b]="expected \',\' or \'\\)\' at end of property accessor list",
[i]=a,
[h]=o,
[g]={xb,1366097310,tb}
},
["err_ms_property_expected_equal"]={
[f]="expected \'=\' after \'A\'",
[d]=l,
[e]=k,
[j]="expected \'=\' after \'%0\'",
[c]=m,
[b]="expected \'\\=\' after \'(.*?)\'",
[i]=a,
[h]=o,
[g]={xb,1366097310,tb}
},
["err_ms_property_has_set_accessor"]={
[f]="putter for property must be specified as \'put\', not \'set\'",
[d]=l,
[e]=k,
[j]="putter for property must be specified as \'put\', not \'set\'",
[c]=m,
[b]="putter for property must be specified as \'put\', not \'set\'",
[i]=a,
[h]=o,
[g]={xb,1366097310,tb}
},
["err_ms_property_initializer"]={
[f]="property declaration cannot have a default member initializer",
[d]=l,
[e]=k,
[j]="property declaration cannot have a default member initializer",
[c]=m,
[b]="property declaration cannot have a default member initializer",
[i]=a,
[h]=o,
[g]={"87ff66ccc750",1418470456,"Parse: MS property members cannot have an in-class initializer"}
},
["err_ms_property_missing_accessor_kind"]={
[f]="missing \'get=\' or \'put=\'",
[d]=l,
[e]=k,
[j]="missing \'get=\' or \'put=\'",
[c]=m,
[b]="missing \'get\\=\' or \'put\\=\'",
[i]=a,
[h]=o,
[g]={xb,1366097310,tb}
},
["err_ms_property_no_getter_or_putter"]={
[f]="property does not specify a getter or a putter",
[d]=l,
[e]=k,
[j]="property does not specify a getter or a putter",
[c]=m,
[b]="property does not specify a getter or a putter",
[i]=a,
[h]=o,
[g]={xb,1366097310,tb}
},
["err_ms_property_unknown_accessor"]={
[f]="expected \'get\' or \'put\' in property declaration",
[d]=l,
[e]=k,
[j]="expected \'get\' or \'put\' in property declaration",
[c]=m,
[b]="expected \'get\' or \'put\' in property declaration",
[i]=a,
[h]=o,
[g]={xb,1366097310,tb}
},
["err_ms_va_start_used_in_sysv_function"]={
[f]="\'__builtin_ms_va_start\' used in System V ABI function",
[d]=l,
[e]=k,
[j]="\'__builtin_ms_va_start\' used in System V ABI function",
[c]=m,
[b]="\'__builtin_ms_va_start\' used in System V ABI function",
[i]=a,
[h]=n,
[g]={"c7d5c94f78c7",1442523333,"Support __builtin_ms_va_list."}
},
["err_msasm_unable_to_create_target"]={
[f]="MS-style inline assembly is not available: A",
[d]=l,
[e]=k,
[j]="MS-style inline assembly is not available: %0",
[c]=m,
[b]="MS\\-style inline assembly is not available\\: (.*?)",
[i]=a,
[h]=D,
[g]={"45cf31f7d390",1383143368,"Recover instead of crashing on MS assembly when no target is loaded"}
},
["err_msasm_unsupported_arch"]={
[f]="unsupported architecture \'A\' for MS-style inline assembly",
[d]=l,
[e]=k,
[j]="unsupported architecture \'%0\' for MS-style inline assembly",
[c]=m,
[b]="unsupported architecture \'(.*?)\' for MS\\-style inline assembly",
[i]=a,
[h]=D,
[g]={"282d675b2878",1359059074,"[ms-inline asm] Add an error when trying to compile MS-style inline assembly"}
},
["err_msvc_annotation_wide_str"]={
[f]="arguments to __annotation must be wide string constants",
[d]=l,
[e]=k,
[j]="arguments to __annotation must be wide string constants",
[c]=m,
[b]="arguments to __annotation must be wide string constants",
[i]=a,
[h]=n,
[g]={"30701edf761c",1504643255,"[ms] Implement the __annotation intrinsic"}
},
["err_mt_message"]={
[f]="[rewriter] A",
[d]=l,
[e]=k,
[j]="[rewriter] %0",
[c]=m,
[b]="\\[rewriter\\] (.*?)",
[i]=a,
[h]=a,
[g]={"42aa21222d37",1390712852,"ARCMigrate: Introduce proper diagnostics for TransformActions"}
},
["err_multichar_character_literal"]={
[f]="... character literals may not contain multiple characters",
[d]=l,
[e]=k,
[j]="%select{wide|Unicode}0 character literals may not contain multiple characters",
[c]=m,
[b]="(?:wide|Unicode) character literals may not contain multiple characters",
[i]=a,
[h]=t,
[g]={w,1625925174,v}
},
["err_multiple_base_initialization"]={
[f]="multiple initializations given for base A",
[d]=l,
[e]=k,
[j]="multiple initializations given for base %0",
[c]=m,
[b]="multiple initializations given for base (.*?)",
[i]=a,
[h]=n,
[g]={"23eebd9c1ee8",1270891731,"Diagnose more cases of initializing distinct members of an anonymous union"}
},
["err_multiple_def_index"]={
[f]="multiple definitions are found for the same key in index ",
[d]=l,
[e]=k,
[j]="multiple definitions are found for the same key in index ",
[c]=m,
[b]="multiple definitions are found for the same key in index ",
[i]=a,
[h]=a,
[g]={"e350b0a19629",1506078661,"Add Cross Translation Unit support library"}
},
["err_multiple_default_labels_defined"]={
[f]="multiple default labels in one switch",
[d]=l,
[e]=k,
[j]="multiple default labels in one switch",
[c]=m,
[b]="multiple default labels in one switch",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_multiple_final_overriders"]={
[f]="virtual function A has more than one final overrider in B",
[d]=l,
[e]=k,
[j]="virtual function %q0 has more than one final overrider in %1",
[c]=m,
[b]="virtual function (.*?) has more than one final overrider in (.*?)",
[i]=a,
[h]=n,
[g]={"4165bd677248",1269388076,"Implement computation of the final overriders for each virtual"}
},
["err_multiple_mem_initialization"]={
[f]="multiple initializations given for non-static member A",
[d]=l,
[e]=k,
[j]="multiple initializations given for non-static member %0",
[c]=m,
[b]="multiple initializations given for non\\-static member (.*?)",
[i]=a,
[h]=n,
[g]={"23eebd9c1ee8",1270891731,"Diagnose more cases of initializing distinct members of an anonymous union"}
},
["err_multiple_mem_union_initialization"]={
[f]="initializing multiple members of union",
[d]=l,
[e]=k,
[j]="initializing multiple members of union",
[c]=m,
[b]="initializing multiple members of union",
[i]=a,
[h]=n,
[g]={"23eebd9c1ee8",1270891731,"Diagnose more cases of initializing distinct members of an anonymous union"}
},
["err_multiple_template_declarators"]={
[f]="... can only ... a single entity",
[d]=l,
[e]=k,
[j]="%select{|a template declaration|an explicit template specialization|an explicit template instantiation}0 can only %select{|declare|declare|instantiate}0 a single entity",
[c]=m,
[b]="(?:|a template declaration|an explicit template specialization|an explicit template instantiation) can only (?:|declare|declare|instantiate) a single entity",
[i]=a,
[h]=o,
[g]={"2399628cea7b",1242163911,"Refactor the parsing of declarations so that template declarations can"}
},
["err_multiversion_after_used"]={
[f]="function declaration cannot become a multiversioned function after first usage",
[d]=l,
[e]=k,
[j]="function declaration cannot become a multiversioned function after first usage",
[c]=m,
[b]="function declaration cannot become a multiversioned function after first usage",
[i]=a,
[h]=a,
[g]={Eb,1515447257,yb}
},
["err_multiversion_diff"]={
[f]="multiversioned function declaration has a different ...",
[d]=l,
[e]=k,
[j]="multiversioned function declaration has a different %select{calling convention|return type|constexpr specification|inline specification|linkage|language linkage}0",
[c]=m,
[b]="multiversioned function declaration has a different (?:calling convention|return type|constexpr specification|inline specification|linkage|language linkage)",
[i]=a,
[h]=a,
[g]={Eb,1515447257,yb}
},
["err_multiversion_disallowed_other_attr"]={
[f]="attribute \'...\' multiversioning cannot be combined with attribute A",
[d]=l,
[e]=k,
[j]="attribute \'%select{|target|cpu_specific|cpu_dispatch|target_clones|target_version}0\' multiversioning cannot be combined with attribute %1",
[c]=m,
[b]="attribute \'(?:|target|cpu_specific|cpu_dispatch|target_clones|target_version)\' multiversioning cannot be combined with attribute (.*?)",
[i]=a,
[h]=a,
[g]={G,1582847864,I}
},
["err_multiversion_doesnt_support"]={
[f]="attribute \'...\' multiversioned functions do not yet support ...",
[d]=l,
[e]=k,
[j]="attribute \'%select{|target|cpu_specific|cpu_dispatch|target_clones|target_version}0\' multiversioned functions do not yet support %select{function templates|virtual functions|deduced return types|constructors|destructors|deleted functions|defaulted functions|constexpr functions|consteval function|lambdas}1",
[c]=m,
[b]="attribute \'(?:|target|cpu_specific|cpu_dispatch|target_clones|target_version)\' multiversioned functions do not yet support (?:function templates|virtual functions|deduced return types|constructors|destructors|deleted functions|defaulted functions|constexpr functions|consteval function|lambdas)",
[i]=a,
[h]=a,
[g]={Eb,1515447257,yb}
},
["err_multiversion_duplicate"]={
[f]="multiversioned function redeclarations require identical target attributes",
[d]=l,
[e]=k,
[j]="multiversioned function redeclarations require identical target attributes",
[c]=m,
[b]="multiversioned function redeclarations require identical target attributes",
[i]=a,
[h]=a,
[g]={Eb,1515447257,yb}
},
["err_multiversion_noproto"]={
[f]="multiversioned function must have a prototype",
[d]=l,
[e]=k,
[j]="multiversioned function must have a prototype",
[c]=m,
[b]="multiversioned function must have a prototype",
[i]=a,
[h]=a,
[g]={Eb,1515447257,yb}
},
["err_multiversion_not_allowed_on_main"]={
[f]="\'main\' cannot be a multiversioned function",
[d]=l,
[e]=k,
[j]="\'main\' cannot be a multiversioned function",
[c]=m,
[b]="\'main\' cannot be a multiversioned function",
[i]=a,
[h]=a,
[g]={Eb,1515447257,yb}
},
["err_multiversion_not_supported"]={
[f]="function multiversioning is not supported on the current target",
[d]=l,
[e]=k,
[j]="function multiversioning is not supported on the current target",
[c]=m,
[b]="function multiversioning is not supported on the current target",
[i]=a,
[h]=a,
[g]={Eb,1515447257,yb}
},
["err_multiversion_required_in_redecl"]={
[f]="function declaration is missing ... attribute in a multiversioned function",
[d]=l,
[e]=k,
[j]="function declaration is missing %select{\'target\'|\'cpu_specific\' or \'cpu_dispatch\'|\'target_version\'}0 attribute in a multiversioned function",
[c]=m,
[b]="function declaration is missing (?:\'target\'|\'cpu_specific\' or \'cpu_dispatch\'|\'target_version\') attribute in a multiversioned function",
[i]=a,
[h]=a,
[g]={Gc,1532096008,Hc}
},
["err_multiversion_types_mixed"]={
[f]="multiversioning attributes cannot be combined",
[d]=l,
[e]=k,
[j]="multiversioning attributes cannot be combined",
[c]=m,
[b]="multiversioning attributes cannot be combined",
[i]=a,
[h]=a,
[g]={Gc,1532096008,Hc}
},
["err_musttail_callconv_mismatch"]={
[f]="cannot perform a tail call to function... because it uses an incompatible calling convention",
[d]=l,
[e]=k,
[j]="cannot perform a tail call to function%select{| %1}0 because it uses an incompatible calling convention",
[c]=m,
[b]="cannot perform a tail call to function(?:| (.*?)) because it uses an incompatible calling convention",
[i]=a,
[h]=n,
[g]={gb,1607502387,fb}
},
["err_musttail_forbidden_from_this_context"]={
[f]="A attribute cannot be used from ...",
[d]=l,
[e]=k,
[j]="%0 attribute cannot be used from %select{a block|an Objective-C function|this context}1",
[c]=m,
[b]="(.*?) attribute cannot be used from (?:a block|an Objective\\-C function|this context)",
[i]=a,
[h]=n,
[g]={gb,1607502387,fb}
},
["err_musttail_member_mismatch"]={
[f]="... function cannot perform a tail call to ... function...",
[d]=l,
[e]=k,
[j]="%select{non-member|static member|non-static member}0 function cannot perform a tail call to %select{non-member|static member|non-static member|pointer-to-member}1 function%select{| %3}2",
[c]=m,
[b]="(?:non\\-member|static member|non\\-static member) function cannot perform a tail call to (?:non\\-member|static member|non\\-static member|pointer\\-to\\-member) function(?:| (.*?))",
[i]=a,
[h]=n,
[g]={gb,1607502387,fb}
},
["err_musttail_mismatch"]={
[f]="cannot perform a tail call to function... because its signature is incompatible with the calling function",
[d]=l,
[e]=k,
[j]="cannot perform a tail call to function%select{| %1}0 because its signature is incompatible with the calling function",
[c]=m,
[b]="cannot perform a tail call to function(?:| (.*?)) because its signature is incompatible with the calling function",
[i]=a,
[h]=n,
[g]={gb,1607502387,fb}
},
["err_musttail_needs_call"]={
[f]="A attribute requires that the return value is the result of a function call",
[d]=l,
[e]=k,
[j]="%0 attribute requires that the return value is the result of a function call",
[c]=m,
[b]="(.*?) attribute requires that the return value is the result of a function call",
[i]=a,
[h]=n,
[g]={gb,1607502387,fb}
},
["err_musttail_needs_prototype"]={
[f]="A attribute requires that both caller and callee functions have a prototype",
[d]=l,
[e]=k,
[j]="%0 attribute requires that both caller and callee functions have a prototype",
[c]=m,
[b]="(.*?) attribute requires that both caller and callee functions have a prototype",
[i]=a,
[h]=n,
[g]={gb,1607502387,fb}
},
["err_musttail_needs_trivial_args"]={
[f]="tail call requires that the return value, all parameters, and any temporaries created by the expression are trivially destructible",
[d]=l,
[e]=k,
[j]="tail call requires that the return value, all parameters, and any temporaries created by the expression are trivially destructible",
[c]=m,
[b]="tail call requires that the return value, all parameters, and any temporaries created by the expression are trivially destructible",
[i]=a,
[h]=n,
[g]={gb,1607502387,fb}
},
["err_musttail_no_variadic"]={
[f]="A attribute may not be used with variadic functions",
[d]=l,
[e]=k,
[j]="%0 attribute may not be used with variadic functions",
[c]=m,
[b]="(.*?) attribute may not be used with variadic functions",
[i]=a,
[h]=n,
[g]={gb,1607502387,fb}
},
["err_musttail_scope"]={
[f]="cannot perform a tail call from this return statement",
[d]=l,
[e]=k,
[j]="cannot perform a tail call from this return statement",
[c]=m,
[b]="cannot perform a tail call from this return statement",
[i]=a,
[h]=n,
[g]={gb,1607502387,fb}
},
["err_musttail_structors_forbidden"]={
[f]="cannot perform a tail call ... a ...",
[d]=l,
[e]=k,
[j]="cannot perform a tail call %select{from|to}0 a %select{constructor|destructor}1",
[c]=m,
[b]="cannot perform a tail call (?:from|to) a (?:constructor|destructor)",
[i]=a,
[h]=n,
[g]={gb,1607502387,fb}
},
["err_mutable_const"]={
[f]="\'mutable\' and \'const\' cannot be mixed",
[d]=l,
[e]=k,
[j]="\'mutable\' and \'const\' cannot be mixed",
[c]=m,
[b]="\'mutable\' and \'const\' cannot be mixed",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_mutable_function"]={
[f]="\'mutable\' cannot be applied to functions",
[d]=l,
[e]=k,
[j]="\'mutable\' cannot be applied to functions",
[c]=m,
[b]="\'mutable\' cannot be applied to functions",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_mutable_nonmember"]={
[f]="\'mutable\' can only be applied to member variables",
[d]=l,
[e]=k,
[j]="\'mutable\' can only be applied to member variables",
[c]=m,
[b]="\'mutable\' can only be applied to member variables",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_mutable_reference"]={
[f]="\'mutable\' cannot be applied to references",
[d]=l,
[e]=k,
[j]="\'mutable\' cannot be applied to references",
[c]=m,
[b]="\'mutable\' cannot be applied to references",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_namespace_nonnamespace_scope"]={
[f]="namespaces can only be defined in global or namespace scope",
[d]=l,
[e]=k,
[j]="namespaces can only be defined in global or namespace scope",
[c]=m,
[b]="namespaces can only be defined in global or namespace scope",
[i]=a,
[h]=o,
[g]={"05cfc295f45d",1273813702,"Namespaces can only be defined at global or namespace scope. Fixes PR6596."}
},
["err_need_header_before_placement_new"]={
[f]="no matching A function for non-allocating placement new expression; include <new>",
[d]=l,
[e]=k,
[j]="no matching %0 function for non-allocating placement new expression; include <new>",
[c]=m,
[b]="no matching (.*?) function for non\\-allocating placement new expression; include \\<new\\>",
[i]=a,
[h]=n,
[g]={Z,1590001902,ab}
},
["err_need_header_before_typeid"]={
[f]="you need to include <typeinfo> before using the \'typeid\' operator",
[d]=l,
[e]=k,
[j]="you need to include <typeinfo> before using the \'typeid\' operator",
[c]=m,
[b]="you need to include \\<typeinfo\\> before using the \'typeid\' operator",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_nested_name_member_ref_lookup_ambiguous"]={
[f]="lookup of A in member access expression is ambiguous",
[d]=l,
[e]=k,
[j]="lookup of %0 in member access expression is ambiguous",
[c]=m,
[b]="lookup of (.*?) in member access expression is ambiguous",
[i]=a,
[h]=n,
[g]={"b7bfe794129f",1251932376,"Rewrite of our handling of name lookup in C++ member access expressions, e.g.,"}
},
["err_nested_name_spec_is_not_class"]={
[f]="A cannot appear before \'::\' because it is not a class...; did you mean \':\'?",
[d]=l,
[e]=k,
[j]="%0 cannot appear before \'::\' because it is not a class%select{ or namespace|, namespace, or enumeration}1; did you mean \':\'?",
[c]=m,
[b]="(.*?) cannot appear before \'\\:\\:\' because it is not a class(?: or namespace|, namespace, or enumeration); did you mean \'\\:\'\\?",
[i]=a,
[h]=n,
[g]={"6a7ffbed8ab4",1397407923,"Improve error recovery around colon."}
},
["err_nested_name_spec_non_tag"]={
[f]="type A cannot be used prior to \'::\' because it has no members",
[d]=l,
[e]=k,
[j]="type %0 cannot be used prior to \'::\' because it has no members",
[c]=m,
[b]="type (.*?) cannot be used prior to \'\\:\\:\' because it has no members",
[i]=a,
[h]=n,
[g]={"333489bba35d",1238195448,"Initial implementation of parsing, semantic analysis, and template"}
},
["err_nested_non_static_member_use"]={
[f]="... A of B from nested type C",
[d]=l,
[e]=k,
[j]="%select{call to non-static member function|use of non-static data member}0 %2 of %1 from nested type %3",
[c]=m,
[b]="(?:call to non\\-static member function|use of non\\-static data member) (.*?) of (.*?) from nested type (.*?)",
[i]=a,
[h]=n,
[g]={"fa0a1f531f7d",1333588384,"Improve diagnostics for invalid use of non-static members / this:"}
},
["err_nested_pointer_qualifier_mismatch"]={
[f]="... discards qualifiers in nested pointer types",
[d]=l,
[e]=k,
[j]="%select{%diff{assigning to $ from $|assigning to different types}0,1|%diff{passing $ to parameter of type $|passing to parameter of different type}0,1|%diff{returning $ from a function with result type $|returning from function with different return type}0,1|%diff{converting $ to type $|converting between types}0,1|%diff{initializing $ with an expression of type $|initializing with expression of different type}0,1|%diff{sending $ to parameter of type $|sending to parameter of different type}0,1|%diff{casting $ to type $|casting between types}0,1}2 discards qualifiers in nested pointer types",
[c]=m,
[b]="(?:(?:assigning to (.*?) from (.*?)|assigning to different types)|(?:passing (.*?) to parameter of type (.*?)|passing to parameter of different type)|(?:returning (.*?) from a function with result type (.*?)|returning from function with different return type)|(?:converting (.*?) to type (.*?)|converting between types)|(?:initializing (.*?) with an expression of type (.*?)|initializing with expression of different type)|(?:sending (.*?) to parameter of type (.*?)|sending to parameter of different type)|(?:casting (.*?) to type (.*?)|casting between types)) discards qualifiers in nested pointer types",
[i]=a,
[h]=n,
[g]={"6f3de50ca73e",1257666394,"Test commit - minor terminology change to my recent patch suggested by John McCall"}
},
["err_nested_redefinition"]={
[f]="nested redefinition of A",
[d]=l,
[e]=k,
[j]="nested redefinition of %0",
[c]=m,
[b]="nested redefinition of (.*?)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_new_abi_tag_on_redeclaration"]={
[f]="\'abi_tag\' A missing in original declaration",
[d]=l,
[e]=k,
[j]="\'abi_tag\' %0 missing in original declaration",
[c]=m,
[b]="\'abi_tag\' (.*?) missing in original declaration",
[i]=a,
[h]=n,
[g]={"bf17ecf59a9b",1457537453,"[GCC] PR23529 Sema part of attrbute abi_tag support"}
},
["err_new_array_init_args"]={
[f]="array \'new\' cannot have initialization arguments",
[d]=l,
[e]=k,
[j]="array \'new\' cannot have initialization arguments",
[c]=m,
[b]="array \'new\' cannot have initialization arguments",
[i]=a,
[h]=n,
[g]={"c6bb0e117f98",1272901523,"The array form of \'new\' can never have initializers."}
},
["err_new_array_nonconst"]={
[f]="only the first dimension of an allocated array may have dynamic size",
[d]=l,
[e]=k,
[j]="only the first dimension of an allocated array may have dynamic size",
[c]=m,
[b]="only the first dimension of an allocated array may have dynamic size",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_new_array_of_auto"]={
[f]="cannot allocate array of \'auto\'",
[d]=l,
[e]=k,
[j]="cannot allocate array of \'auto\'",
[c]=m,
[b]="cannot allocate array of \'auto\'",
[i]=a,
[h]=n,
[g]={Nb,1298171975,Tb}
},
["err_new_array_size_unknown_from_init"]={
[f]="cannot determine allocated array size from initializer",
[d]=l,
[e]=k,
[j]="cannot determine allocated array size from initializer",
[c]=m,
[b]="cannot determine allocated array size from initializer",
[i]=a,
[h]=n,
[g]={"b9fb121a62de",1557114435,"[c++20] Implement P1009R2: allow omitting the array bound in an array"}
},
["err_new_incomplete_or_sizeless_type"]={
[f]="allocation of ... type A",
[d]=l,
[e]=k,
[j]="allocation of %select{incomplete|sizeless}0 type %1",
[c]=m,
[b]="allocation of (?:incomplete|sizeless) type (.*?)",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_no_accessor_for_property"]={
[f]="no ... defined for property A",
[d]=l,
[e]=k,
[j]="no %select{getter|setter}0 defined for property %1",
[c]=m,
[b]="no (?:getter|setter) defined for property (.*?)",
[i]=a,
[h]=n,
[g]={"213cf41a5874",1388075704,"s/getter_setter/accessor No functional changes intended."}
},
["err_no_base_classes"]={
[f]="invalid use of \'__super\', A has no base classes",
[d]=l,
[e]=k,
[j]="invalid use of \'__super\', %0 has no base classes",
[c]=m,
[b]="invalid use of \'__super\', (.*?) has no base classes",
[i]=a,
[h]=n,
[g]={"67860249e064",1411691300,"-ms-extensions: Implement __super scope specifier (PR13236)."}
},
["err_no_declarators"]={
[f]="declaration does not declare anything",
[d]=l,
[e]=k,
[j]="declaration does not declare anything",
[c]=m,
[b]="declaration does not declare anything",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_no_dynamic_cast_with_fno_rtti"]={
[f]="use of dynamic_cast requires -frtti",
[d]=l,
[e]=k,
[j]="use of dynamic_cast requires -frtti",
[c]=m,
[b]="use of dynamic_cast requires \\-frtti",
[i]=a,
[h]=n,
[g]={"cb6f943ada4c",1375345712,"Check dynamic_cast is not used with -fno-rtti, unless it is a noop or can be resolved statically."}
},
["err_no_external_assembler"]={
[f]="there is no external assembler that can be used on this platform",
[d]=l,
[e]=k,
[j]="there is no external assembler that can be used on this platform",
[c]=m,
[b]="there is no external assembler that can be used on this platform",
[i]=a,
[h]=a,
[g]={"c8d4f0fa1d27",1385108866,"Tidy up the no-external-assembler diag"}
},
["err_no_matching_local_friend"]={
[f]="no matching function found in local scope",
[d]=l,
[e]=k,
[j]="no matching function found in local scope",
[c]=m,
[b]="no matching function found in local scope",
[i]=a,
[h]=n,
[g]={"f7cfb2212c65",1286948715,"Support friend function declarations in local classes correctly."}
},
["err_no_matching_local_friend_suggest"]={
[f]="no matching function A found in local scope; did you mean B?",
[d]=l,
[e]=k,
[j]="no matching function %0 found in local scope; did you mean %3?",
[c]=m,
[b]="no matching function (.*?) found in local scope; did you mean (.*?)\\?",
[i]=a,
[h]=n,
[g]={"fd81a350e262",1313691552,"Rework DiagnoseInvalidRedeclaration to add the ability to correct typos when"}
},
["err_no_matching_param"]={
[f]="parameter named A is missing",
[d]=l,
[e]=k,
[j]="parameter named %0 is missing",
[c]=m,
[b]="parameter named (.*?) is missing",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_no_member"]={
[f]="no member named A in B",
[d]=l,
[e]=k,
[j]="no member named %0 in %1",
[c]=m,
[b]="no member named (.*?) in (.*?)",
[i]=a,
[h]=n,
[g]={"e40876a50cf3",1255468604,"Unify our diagnostic printing for errors of the form, \"we didn\'t like"}
},
["err_no_member_overloaded_arrow"]={
[f]="no member named A in B; did you mean to use \'->\' instead of \'.\'?",
[d]=l,
[e]=k,
[j]="no member named %0 in %1; did you mean to use \'->\' instead of \'.\'?",
[c]=m,
[b]="no member named (.*?) in (.*?); did you mean to use \'\\-\\>\' instead of \'\\.\'\\?",
[i]=a,
[h]=n,
[g]={"76e07347ba02",1335383394,"Add an error message with fixit hint for changing \'.\' to \'->\'."}
},
["err_no_member_suggest"]={
[f]="no member named A in B; did you mean ...C?",
[d]=l,
[e]=k,
[j]="no member named %0 in %1; did you mean %select{|simply }2%3?",
[c]=m,
[b]="no member named (.*?) in (.*?); did you mean (?:|simply )(.*?)\\?",
[i]=a,
[h]=n,
[g]={"598b08f8182e",1262236813,"Implement typo correction for id-expressions, e.g.,"}
},
["err_no_member_template"]={
[f]="no template named A in B",
[d]=l,
[e]=k,
[j]="no template named %0 in %1",
[c]=m,
[b]="no template named (.*?) in (.*?)",
[i]=a,
[h]=n,
[g]={"52f8d19ceda6",1494451936,"Improve diagnosis of unknown template name."}
},
["err_no_member_template_suggest"]={
[f]="no template named A in B; did you mean ...C?",
[d]=l,
[e]=k,
[j]="no template named %0 in %1; did you mean %select{|simply }2%3?",
[c]=m,
[b]="no template named (.*?) in (.*?); did you mean (?:|simply )(.*?)\\?",
[i]=a,
[h]=n,
[g]={"ff18cc114111",1262247077,"Typo correction for template names, e.g.,"}
},
["err_no_nsconstant_string_class"]={
[f]="cannot find interface declaration for A",
[d]=l,
[e]=k,
[j]="cannot find interface declaration for %0",
[c]=m,
[b]="cannot find interface declaration for (.*?)",
[i]=a,
[h]=n,
[g]={"0731763efc6f",1272064744,"With -fno-constant-cfstrrings, class NSConstantString"}
},
["err_no_submodule"]={
[f]="no submodule named A in module \'B\'",
[d]=l,
[e]=k,
[j]="no submodule named %0 in module \'%1\'",
[c]=m,
[b]="no submodule named (.*?) in module \'(.*?)\'",
[i]=a,
[h]=a,
[g]={"5196bc6b39b5",1322625824,"When loading a module that involves submodules (e.g., std.vector),"}
},
["err_no_submodule_suggest"]={
[f]="no submodule named A in module \'B\'; did you mean \'C\'?",
[d]=l,
[e]=k,
[j]="no submodule named %0 in module \'%1\'; did you mean \'%2\'?",
[c]=m,
[b]="no submodule named (.*?) in module \'(.*?)\'; did you mean \'(.*?)\'\\?",
[i]=a,
[h]=a,
[g]={"5196bc6b39b5",1322625824,"When loading a module that involves submodules (e.g., std.vector),"}
},
["err_no_subobject_property_setting"]={
[f]="expression is not assignable",
[d]=l,
[e]=k,
[j]="expression is not assignable",
[c]=m,
[b]="expression is not assignable",
[i]=a,
[h]=n,
[g]={P,1480718311,O}
},
["err_no_suitable_delete_member_function_found"]={
[f]="no suitable member A in B",
[d]=l,
[e]=k,
[j]="no suitable member %0 in %1",
[c]=m,
[b]="no suitable member (.*?) in (.*?)",
[i]=a,
[h]=n,
[g]={"2c9e274e57c6",1258303395,"If we find a deallocation function in the class scope, but it is a placement function we should not ..."}
},
["err_no_super_class_message"]={
[f]="no @interface declaration found in class messaging of A",
[d]=l,
[e]=k,
[j]="no @interface declaration found in class messaging of %0",
[c]=m,
[b]="no @interface declaration found in class messaging of (.*?)",
[i]=a,
[h]=n,
[g]={P,1480718311,O}
},
["err_no_template"]={
[f]="no template named A",
[d]=l,
[e]=k,
[j]="no template named %0",
[c]=m,
[b]="no template named (.*?)",
[i]=a,
[h]=n,
[g]={"52f8d19ceda6",1494451936,"Improve diagnosis of unknown template name."}
},
["err_no_template_suggest"]={
[f]="no template named A; did you mean B?",
[d]=l,
[e]=k,
[j]="no template named %0; did you mean %1?",
[c]=m,
[b]="no template named (.*?); did you mean (.*?)\\?",
[i]=a,
[h]=n,
[g]={"ff18cc114111",1262247077,"Typo correction for template names, e.g.,"}
},
["err_no_typeid_with_fno_rtti"]={
[f]="use of typeid requires -frtti",
[d]=l,
[e]=k,
[j]="use of typeid requires -frtti",
[c]=m,
[b]="use of typeid requires \\-frtti",
[i]=a,
[h]=n,
[g]={"1b7f39de3d58",1337477241,"Error when using typeid() with -fno-rtti. PR 12888."}
},
["err_no_viable_destructor"]={
[f]="no viable destructor found for class A",
[d]=l,
[e]=k,
[j]="no viable destructor found for class %0",
[c]=m,
[b]="no viable destructor found for class (.*?)",
[i]=a,
[h]=n,
[g]={w,1625925174,v}
},
["err_nogetter_property_compound_assignment"]={
[f]="a getter method is needed to perform a compound assignment on a property",
[d]=l,
[e]=k,
[j]="a getter method is needed to perform a compound assignment on a property",
[c]=m,
[b]="a getter method is needed to perform a compound assignment on a property",
[i]=a,
[h]=n,
[g]={"c4a2d3259f9e",1319527676,"Introduce a placeholder type for \"pseudo object\""}
},
["err_nogetter_property_incdec"]={
[f]="no getter method A for ... of property",
[d]=l,
[e]=k,
[j]="no getter method %1 for %select{increment|decrement}0 of property",
[c]=m,
[b]="no getter method (.*?) for (?:increment|decrement) of property",
[i]=a,
[h]=n,
[g]={"c4a2d3259f9e",1319527676,"Introduce a placeholder type for \"pseudo object\""}
},
["err_non_asm_stmt_in_naked_function"]={
[f]="non-ASM statement in naked function is not supported",
[d]=l,
[e]=k,
[j]="non-ASM statement in naked function is not supported",
[c]=m,
[b]="non\\-ASM statement in naked function is not supported",
[i]=a,
[h]=n,
[g]={"d62cdd2c14c4",1409869000,"Don\'t allow non-ASM statements in naked functions"}
},
["err_non_bool_atomic_constraint"]={
[f]="atomic constraint must be of type \'bool\' (found A)",
[d]=l,
[e]=k,
[j]="atomic constraint must be of type \'bool\' (found %0)",
[c]=m,
[b]="atomic constraint must be of type \'bool\' \\(found (.*?)\\)",
[i]=a,
[h]=n,
[g]={cb,1567434909,eb}
},
["err_non_c_like_anon_struct_in_typedef"]={
[f]="anonymous non-C-compatible type given name for linkage purposes by ... declaration after its linkage was computed; add a tag name here to establish linkage prior to definition",
[d]=l,
[e]=k,
[j]="anonymous non-C-compatible type given name for linkage purposes by %select{typedef|alias}0 declaration after its linkage was computed; add a tag name here to establish linkage prior to definition",
[c]=m,
[b]="anonymous non\\-C\\-compatible type given name for linkage purposes by (?:typedef|alias) declaration after its linkage was computed; add a tag name here to establish linkage prior to definition",
[i]=a,
[h]=n,
[g]={mb,1576809732,lb}
},
["err_non_constant_constraint_expression"]={
[f]="substitution into constraint expression resulted in a non-constant expression",
[d]=l,
[e]=k,
[j]="substitution into constraint expression resulted in a non-constant expression",
[c]=m,
[b]="substitution into constraint expression resulted in a non\\-constant expression",
[i]=a,
[h]=n,
[g]={cb,1567434909,eb}
},
["err_non_consteval_override"]={
[f]="non-consteval function A cannot override a consteval function",
[d]=l,
[e]=k,
[j]="non-consteval function %0 cannot override a consteval function",
[c]=m,
[b]="non\\-consteval function (.*?) cannot override a consteval function",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_non_default_visibility_dllimport"]={
[f]="non-default visibility cannot be applied to \'dllimport\' declaration",
[d]=l,
[e]=k,
[j]="non-default visibility cannot be applied to \'dllimport\' declaration",
[c]=m,
[b]="non\\-default visibility cannot be applied to \'dllimport\' declaration",
[i]=a,
[h]=a,
[g]={"6f9c4851ab7c",1663023396,"[MinGW] Reject explicit hidden visibility applied to dllexport and hidden/protected applied to dllim..."}
},
["err_non_deleted_override"]={
[f]="non-deleted function A cannot override a deleted function",
[d]=l,
[e]=k,
[j]="non-deleted function %0 cannot override a deleted function",
[c]=m,
[b]="non\\-deleted function (.*?) cannot override a deleted function",
[i]=a,
[h]=n,
[g]={"7e414261f647",1350434878,"Implement C++ 10.3p16 - overrides involving deleted functions must match."}
},
["err_non_designated_init_used"]={
[f]="a randomized struct can only be initialized with a designated initializer",
[d]=l,
[e]=k,
[j]="a randomized struct can only be initialized with a designated initializer",
[c]=m,
[b]="a randomized struct can only be initialized with a designated initializer",
[i]=a,
[h]=a,
[g]={rb,1620530452,sb}
},
["err_non_extern_extern"]={
[f]="non-extern declaration of A follows extern declaration",
[d]=l,
[e]=k,
[j]="non-extern declaration of %0 follows extern declaration",
[c]=m,
[b]="non\\-extern declaration of (.*?) follows extern declaration",
[i]=a,
[h]=n,
[g]={"819f61094216",1296457486,"Diagnose if extern local variable is followed by non-extern and vice-versa."}
},
["err_non_first_default_compare_deletes"]={
[f]="defaulting ... would delete it after its first declaration",
[d]=l,
[e]=k,
[j]="defaulting %select{this %select{<ERROR>|equality|three-way|equality|relational}1 comparison operator|the corresponding implicit \'operator==\' for this defaulted \'operator<=>\'}0 would delete it after its first declaration",
[c]=m,
[b]="defaulting (?:this (?:equality|three\\-way|equality|relational) comparison operator|the corresponding implicit \'operator\\=\\=\' for this defaulted \'operator\\<\\=\\>\') would delete it after its first declaration",
[i]=a,
[h]=n,
[g]={"5253d9138eb3",1573070592,"[c++20] Determine whether a defaulted comparison should be deleted or"}
},
["err_non_first_default_compare_in_class"]={
[f]="defaulting this ... comparison operator is not allowed because it was already declared outside the class",
[d]=l,
[e]=k,
[j]="defaulting this %select{<ERROR>|equality|three-way|equality|relational}0 comparison operator is not allowed because it was already declared outside the class",
[c]=m,
[b]="defaulting this (?:equality|three\\-way|equality|relational) comparison operator is not allowed because it was already declared outside the class",
[i]=a,
[h]=n,
[g]={w,1625925174,v}
},
["err_non_local_variable_decl_in_for"]={
[f]="declaration of non-local variable in \'for\' loop",
[d]=l,
[e]=k,
[j]="declaration of non-local variable in \'for\' loop",
[c]=m,
[b]="declaration of non\\-local variable in \'for\' loop",
[i]=a,
[h]=n,
[g]={"2eb1c57b9daf",1365454344,"<rdar://problem/13540921> Fix a crasher when an Objective-C for-in loop gets a non-variable iteratio..."}
},
["err_non_static_static"]={
[f]="non-static declaration of A follows static declaration",
[d]=l,
[e]=k,
[j]="non-static declaration of %0 follows static declaration",
[c]=m,
[b]="non\\-static declaration of (.*?) follows static declaration",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_non_template_in_member_template_id_suggest"]={
[f]="member A of B is not a template; did you mean ...C?",
[d]=l,
[e]=k,
[j]="member %0 of %1 is not a template; did you mean %select{|simply }2%3?",
[c]=m,
[b]="member (.*?) of (.*?) is not a template; did you mean (?:|simply )(.*?)\\?",
[i]=a,
[h]=n,
[g]={"42bc73a3f15f",1494383428,"When we see a \'<\' operator, check whether it\'s a probable typo for a template-id."}
},
["err_non_template_in_template_id"]={
[f]="A does not name a template but is followed by template arguments",
[d]=l,
[e]=k,
[j]="%0 does not name a template but is followed by template arguments",
[c]=m,
[b]="(.*?) does not name a template but is followed by template arguments",
[i]=a,
[h]=n,
[g]={"42bc73a3f15f",1494383428,"When we see a \'<\' operator, check whether it\'s a probable typo for a template-id."}
},
["err_non_template_in_template_id_suggest"]={
[f]="A does not name a template but is followed by template arguments; did you mean B?",
[d]=l,
[e]=k,
[j]="%0 does not name a template but is followed by template arguments; did you mean %1?",
[c]=m,
[b]="(.*?) does not name a template but is followed by template arguments; did you mean (.*?)\\?",
[i]=a,
[h]=n,
[g]={"42bc73a3f15f",1494383428,"When we see a \'<\' operator, check whether it\'s a probable typo for a template-id."}
},
["err_non_thread_thread"]={
[f]="non-thread-local declaration of A follows thread-local declaration",
[d]=l,
[e]=k,
[j]="non-thread-local declaration of %0 follows thread-local declaration",
[c]=m,
[b]="non\\-thread\\-local declaration of (.*?) follows thread\\-local declaration",
[i]=a,
[h]=n,
[g]={"d5c0eeda7285",1240172875,"Add more thorough/correct checking for invalid __thread specifiers."}
},
["err_non_trivial_c_union_in_invalid_context"]={
[f]="cannot ... since it ... a union that is non-trivial to ...",
[d]=l,
[e]=k,
[j]="cannot %select{use type %1 for a function/method parameter|use type %1 for function/method return|default-initialize an object of type %1|declare an automatic variable of type %1|copy-initialize an object of type %1|assign to a variable of type %1|construct an automatic compound literal of type %1|capture a variable of type %1|cannot use volatile type %1 where it causes an lvalue-to-rvalue conversion}3 since it %select{contains|is}2 a union that is non-trivial to %select{default-initialize|destruct|copy}0",
[c]=m,
[b]="cannot (?:use type (.*?) for a function\\/method parameter|use type (.*?) for function\\/method return|default\\-initialize an object of type (.*?)|declare an automatic variable of type (.*?)|copy\\-initialize an object of type (.*?)|assign to a variable of type (.*?)|construct an automatic compound literal of type (.*?)|capture a variable of type (.*?)|cannot use volatile type (.*?) where it causes an lvalue\\-to\\-rvalue conversion) since it (?:contains|is) a union that is non\\-trivial to (?:default\\-initialize|destruct|copy)",
[i]=a,
[h]=n,
[g]={"81b03d4a08b1",1562982435,"[Sema] Diagnose default-initialization, destruction, and copying of"}
},
["err_non_type_template_arg_addr_label_diff"]={
[f]="template argument / label address difference / what did you expect?",
[d]=l,
[e]=k,
[j]="template argument / label address difference / what did you expect?",
[c]=m,
[b]="template argument \\/ label address difference \\/ what did you expect\\?",
[i]=a,
[h]=n,
[g]={"410cc893745e",1416972413,"[c++1z] Most of N4268 (allow constant evaluation for non-type template arguments)."}
},
["err_non_type_template_arg_subobject"]={
[f]="non-type template argument refers to subobject \'A\'",
[d]=l,
[e]=k,
[j]="non-type template argument refers to subobject \'%0\'",
[c]=m,
[b]="non\\-type template argument refers to subobject \'(.*?)\'",
[i]=a,
[h]=n,
[g]={"410cc893745e",1416972413,"[c++1z] Most of N4268 (allow constant evaluation for non-type template arguments)."}
},
["err_non_type_template_arg_unsupported"]={
[f]="sorry, non-type template argument of type A is not yet supported",
[d]=l,
[e]=k,
[j]="sorry, non-type template argument of type %0 is not yet supported",
[c]=m,
[b]="sorry, non\\-type template argument of type (.*?) is not yet supported",
[i]=a,
[h]=n,
[g]={G,1582847864,I}
},
["err_non_type_template_in_nested_name_specifier"]={
[f]="qualified name refers into a specialization of ... template A",
[d]=l,
[e]=k,
[j]="qualified name refers into a specialization of %select{function|variable}0 template %1",
[c]=m,
[b]="qualified name refers into a specialization of (?:function|variable) template (.*?)",
[i]=a,
[h]=n,
[g]={"8b6070bb9df4",1299274634,"Teach Sema::ActOnCXXNestedNameSpecifier and Sema::CheckTemplateIdType"}
},
["err_non_type_template_parm_type_deduction_failure"]={
[f]="non-type template parameter A with type B has incompatible initializer of type C",
[d]=l,
[e]=k,
[j]="non-type template parameter %0 with type %1 has incompatible initializer of type %2",
[c]=m,
[b]="non\\-type template parameter (.*?) with type (.*?) has incompatible initializer of type (.*?)",
[i]=a,
[h]=n,
[g]={"5f274389d1d9",1475106927,"P0127R2: Support type deduction for types of non-type template parameters in"}
},
["err_non_variable_decl_in_for"]={
[f]="non-variable declaration in \'for\' loop",
[d]=l,
[e]=k,
[j]="non-variable declaration in \'for\' loop",
[c]=m,
[b]="non\\-variable declaration in \'for\' loop",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_non_virtual_pure"]={
[f]="A is not virtual and cannot be declared pure",
[d]=l,
[e]=k,
[j]="%0 is not virtual and cannot be declared pure",
[c]=m,
[b]="(.*?) is not virtual and cannot be declared pure",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_nonfunction_block_type"]={
[f]="block pointer to non-function type is invalid",
[d]=l,
[e]=k,
[j]="block pointer to non-function type is invalid",
[c]=m,
[b]="block pointer to non\\-function type is invalid",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_nonstatic_member_out_of_line"]={
[f]="non-static data member defined out-of-line",
[d]=l,
[e]=k,
[j]="non-static data member defined out-of-line",
[c]=m,
[b]="non\\-static data member defined out\\-of\\-line",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_nontemporal_builtin_must_be_pointer"]={
[f]="address argument to nontemporal builtin must be a pointer (A invalid)",
[d]=l,
[e]=k,
[j]="address argument to nontemporal builtin must be a pointer (%0 invalid)",
[c]=m,
[b]="address argument to nontemporal builtin must be a pointer \\((.*?) invalid\\)",
[i]=a,
[h]=n,
[g]={"84df12375cde",1441756353,"Introduce __builtin_nontemporal_store and __builtin_nontemporal_load."}
},
["err_nontemporal_builtin_must_be_pointer_intfltptr_or_vector"]={
[f]="address argument to nontemporal builtin must be a pointer to integer, float, pointer, or a vector of such types (A invalid)",
[d]=l,
[e]=k,
[j]="address argument to nontemporal builtin must be a pointer to integer, float, pointer, or a vector of such types (%0 invalid)",
[c]=m,
[b]="address argument to nontemporal builtin must be a pointer to integer, float, pointer, or a vector of such types \\((.*?) invalid\\)",
[i]=a,
[h]=n,
[g]={"84df12375cde",1441756353,"Introduce __builtin_nontemporal_store and __builtin_nontemporal_load."}
},
["err_noreturn_block_has_return_expr"]={
[f]="block declared \'noreturn\' should not return",
[d]=l,
[e]=k,
[j]="block declared \'noreturn\' should not return",
[c]=m,
[b]="block declared \'noreturn\' should not return",
[i]=a,
[h]=n,
[g]={"88788feddd21",1241031793,"Sema and CodeGen support for attributes on blocks.  Radar 6441502"}
},
["err_noreturn_lambda_has_return_expr"]={
[f]="lambda declared \'noreturn\' should not return",
[d]=l,
[e]=k,
[j]="lambda declared \'noreturn\' should not return",
[c]=m,
[b]="lambda declared \'noreturn\' should not return",
[i]=a,
[h]=Q,
[g]={"cf11eb76ed8d",1329322815,"Specialize noreturn diagnostics for lambda expressions."}
},
["err_noreturn_non_function"]={
[f]="\'_Noreturn\' can only appear on functions",
[d]=l,
[e]=k,
[j]="\'_Noreturn\' can only appear on functions",
[c]=m,
[b]="\'_Noreturn\' can only appear on functions",
[i]=a,
[h]=n,
[g]={"0015f0987792",1358460971,"Parsing support for C11\'s _Noreturn keyword. No semantics yet."}
},
["err_nosetter_property_assignment"]={
[f]="...",
[d]=l,
[e]=k,
[j]="%select{assignment to readonly property|no setter method %1 for assignment to property}0",
[c]=m,
[b]="(?:assignment to readonly property|no setter method (.*?) for assignment to property)",
[i]=a,
[h]=n,
[g]={"c4a2d3259f9e",1319527676,"Introduce a placeholder type for \"pseudo object\""}
},
["err_nosetter_property_incdec"]={
[f]="...",
[d]=l,
[e]=k,
[j]="%select{%select{increment|decrement}1 of readonly property|no setter method %2 for %select{increment|decrement}1 of property}0",
[c]=m,
[b]="(?:(?:increment|decrement) of readonly property|no setter method (.*?) for (?:increment|decrement) of property)",
[i]=a,
[h]=n,
[g]={"c4a2d3259f9e",1319527676,"Introduce a placeholder type for \"pseudo object\""}
},
["err_not_class_template_specialization"]={
[f]="cannot specialize a ...",
[d]=l,
[e]=k,
[j]="cannot specialize a %select{dependent template|template template parameter}0",
[c]=m,
[b]="cannot specialize a (?:dependent template|template template parameter)",
[i]=a,
[h]=n,
[g]={"dd6c0356bae5",1257986780,"Improve recovery in a wonky case where one tries to specialize a"}
},
["err_not_direct_base_or_virtual"]={
[f]="type A is not a direct or virtual base of B",
[d]=l,
[e]=k,
[j]="type %0 is not a direct or virtual base of %1",
[c]=m,
[b]="type (.*?) is not a direct or virtual base of (.*?)",
[i]=a,
[h]=n,
[g]={"7baa71e2dd9c",1246383292,"More diagnostics related to initialization of direct bases"}
},
["err_not_found_by_two_phase_lookup"]={
[f]="call to function A that is neither visible in the template definition nor found by argument-dependent lookup",
[d]=l,
[e]=k,
[j]="call to function %0 that is neither visible in the template definition nor found by argument-dependent lookup",
[c]=m,
[b]="call to function (.*?) that is neither visible in the template definition nor found by argument\\-dependent lookup",
[i]=a,
[h]=n,
[g]={"998a591e3261",1307313768,"Fix PR10053: Improve diagnostics and error recovery for code which some compilers incorrectly accept..."}
},
["err_not_integral_type_anon_bitfield"]={
[f]="anonymous bit-field has non-integral type A",
[d]=l,
[e]=k,
[j]="anonymous bit-field has non-integral type %0",
[c]=m,
[b]="anonymous bit\\-field has non\\-integral type (.*?)",
[i]=a,
[h]=n,
[g]={"f9b00eb7dc88",1240248578,"clean up anonymous bitfield diagnostics, PR4017"}
},
["err_not_integral_type_bitfield"]={
[f]="bit-field A has non-integral type B",
[d]=l,
[e]=k,
[j]="bit-field %0 has non-integral type %1",
[c]=m,
[b]="bit\\-field (.*?) has non\\-integral type (.*?)",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_not_tag_in_scope"]={
[f]="no ... named A in B",
[d]=l,
[e]=k,
[j]="no %select{struct|interface|union|class|enum}0 named %1 in %2",
[c]=m,
[b]="no (?:struct|interface|union|class|enum) named (.*?) in (.*?)",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_ns_attribute_wrong_parameter_type"]={
[f]="A attribute only applies to ... parameters",
[d]=l,
[e]=k,
[j]="%0 attribute only applies to %select{Objective-C object|pointer|pointer-to-CF-pointer}1 parameters",
[c]=m,
[b]="(.*?) attribute only applies to (?:Objective\\-C object|pointer|pointer\\-to\\-CF\\-pointer) parameters",
[i]=a,
[h]=n,
[g]={"3b5a8f5ffc83",1456963803,"Improve some infrastructure for extended parameter infos and"}
},
["err_nsconsumed_attribute_mismatch"]={
[f]="overriding method has mismatched ns_consumed attribute on its parameter",
[d]=l,
[e]=k,
[j]="overriding method has mismatched ns_consumed attribute on its parameter",
[c]=m,
[b]="overriding method has mismatched ns_consumed attribute on its parameter",
[i]=a,
[h]=n,
[g]={"ac8dbf0fc70c",1317162936,"objcetive-c-arc: When overriding a method, its ns_consumed patameter"}
},
["err_nserrordomain_invalid_decl"]={
[f]="domain argument ...does not refer to global constant",
[d]=l,
[e]=k,
[j]="domain argument %select{|%1 }0does not refer to global constant",
[c]=m,
[b]="domain argument (?:|(.*?) )does not refer to global constant",
[i]=a,
[h]=n,
[g]={G,1582847864,I}
},
["err_nserrordomain_wrong_type"]={
[f]="domain argument A does not point to an NSString or CFString constant",
[d]=l,
[e]=k,
[j]="domain argument %0 does not point to an NSString or CFString constant",
[c]=m,
[b]="domain argument (.*?) does not point to an NSString or CFString constant",
[i]=a,
[h]=n,
[g]={G,1582847864,I}
},
["err_nsnumber_nonliteral_unary"]={
[f]="@A must be followed by a number to form an NSNumber object",
[d]=l,
[e]=k,
[j]="@%0 must be followed by a number to form an NSNumber object",
[c]=m,
[b]="@(.*?) must be followed by a number to form an NSNumber object",
[i]=a,
[h]=o,
[g]={V,1331064356,W}
},
["err_nsobject_attribute"]={
[f]="\'NSObject\' attribute is for pointer types only",
[d]=l,
[e]=k,
[j]="\'NSObject\' attribute is for pointer types only",
[c]=m,
[b]="\'NSObject\' attribute is for pointer types only",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_nsreturns_retained_attribute_mismatch"]={
[f]="overriding method has mismatched ns_returns_... attributes",
[d]=l,
[e]=k,
[j]="overriding method has mismatched ns_returns_%select{not_retained|retained}0 attributes",
[c]=m,
[b]="overriding method has mismatched ns_returns_(?:not_retained|retained) attributes",
[i]=a,
[h]=n,
[g]={"ac8dbf0fc70c",1317162936,"objcetive-c-arc: When overriding a method, its ns_consumed patameter"}
},
["err_nullability_conflicting"]={
[f]="nullability specifier A conflicts with existing specifier B",
[d]=l,
[e]=k,
[j]="nullability specifier %0 conflicts with existing specifier %1",
[c]=m,
[b]="nullability specifier (.*?) conflicts with existing specifier (.*?)",
[i]=a,
[h]=qc,
[g]={"261a89b0f70b",1434736265,"Introduce type nullability specifiers for C/C++."}
},
["err_nullability_cs_multilevel"]={
[f]="nullability keyword A cannot be applied to multi-level pointer type B",
[d]=l,
[e]=k,
[j]="nullability keyword %0 cannot be applied to multi-level pointer type %1",
[c]=m,
[b]="nullability keyword (.*?) cannot be applied to multi\\-level pointer type (.*?)",
[i]=a,
[h]=qc,
[g]={"813a066f16df",1434737678,"Extend type nullability qualifiers for Objective-C."}
},
["err_nullability_nonpointer"]={
[f]="nullability specifier A cannot be applied to non-pointer type B",
[d]=l,
[e]=k,
[j]="nullability specifier %0 cannot be applied to non-pointer type %1",
[c]=m,
[b]="nullability specifier (.*?) cannot be applied to non\\-pointer type (.*?)",
[i]=a,
[h]=qc,
[g]={"261a89b0f70b",1434736265,"Introduce type nullability specifiers for C/C++."}
},
["err_nullptr_cast"]={
[f]="cannot cast an object of type ...",
[d]=l,
[e]=k,
[j]="cannot cast an object of type %select{\'nullptr_t\' to %1|%1 to \'nullptr_t\'}0",
[c]=m,
[b]="cannot cast an object of type (?:\'nullptr_t\' to (.*?)|(.*?) to \'nullptr_t\')",
[i]=a,
[h]=n,
[g]={w,1625925174,v}
},
["err_objc_array_of_interfaces"]={
[f]="array of interface A is invalid (probably should be an array of pointers)",
[d]=l,
[e]=k,
[j]="array of interface %0 is invalid (probably should be an array of pointers)",
[c]=m,
[b]="array of interface (.*?) is invalid \\(probably should be an array of pointers\\)",
[i]=a,
[h]=n,
[g]={"669e32f8c0d1",1240797356,"rdar://6827200 - [sema] reject statically allocated arrays of interface types"}
},
["err_objc_attr_not_id"]={
[f]="parameter of A attribute must be a single name of an Objective-C ...",
[d]=l,
[e]=k,
[j]="parameter of %0 attribute must be a single name of an Objective-C %select{class|protocol}1",
[c]=m,
[b]="parameter of (.*?) attribute must be a single name of an Objective\\-C (?:class|protocol)",
[i]=a,
[h]=n,
[g]={"2d3379e394ee",1385018434,"Refactor some of handleObjCBridgeAttr to make it more concise and the diagnostic reusable."}
},
["err_objc_attr_protocol_requires_definition"]={
[f]="attribute A can only be applied to @protocol definitions, not forward declarations",
[d]=l,
[e]=k,
[j]="attribute %0 can only be applied to @protocol definitions, not forward declarations",
[c]=m,
[b]="attribute (.*?) can only be applied to @protocol definitions, not forward declarations",
[i]=a,
[h]=n,
[g]={"27cfe10df899",1393022944,"Add requirement that attribute \'objc_protocol_requires_explicit_implementation\' can only be applied ..."}
},
["err_objc_attr_typedef_not_id"]={
[f]="parameter of A attribute must be \'id\' when used on a typedef",
[d]=l,
[e]=k,
[j]="parameter of %0 attribute must be \'id\' when used on a typedef",
[c]=m,
[b]="parameter of (.*?) attribute must be \'id\' when used on a typedef",
[i]=a,
[h]=n,
[g]={"2859258e2faf",1422830046,"Allow objc_bridge(id) to be used on typedefs of [cv] void*."}
},
["err_objc_attr_typedef_not_void_pointer"]={
[f]="\'objc_bridge(id)\' is only allowed on structs and typedefs of void pointers",
[d]=l,
[e]=k,
[j]="\'objc_bridge(id)\' is only allowed on structs and typedefs of void pointers",
[c]=m,
[b]="\'objc_bridge\\(id\\)\' is only allowed on structs and typedefs of void pointers",
[i]=a,
[h]=n,
[g]={"2859258e2faf",1422830046,"Allow objc_bridge(id) to be used on typedefs of [cv] void*."}
},
["err_objc_bridged_related_invalid_class"]={
[f]="could not find Objective-C class A to convert B to C",
[d]=l,
[e]=k,
[j]="could not find Objective-C class %0 to convert %1 to %2",
[c]=m,
[b]="could not find Objective\\-C class (.*?) to convert (.*?) to (.*?)",
[i]=a,
[h]=n,
[g]={"1f0b3bfd7502",1386376463,"ObjectiveC. Continuing implementation of objc_bridge_related"}
},
["err_objc_bridged_related_invalid_class_name"]={
[f]="A must be name of an Objective-C class to be able to convert B to C",
[d]=l,
[e]=k,
[j]="%0 must be name of an Objective-C class to be able to convert %1 to %2",
[c]=m,
[b]="(.*?) must be name of an Objective\\-C class to be able to convert (.*?) to (.*?)",
[i]=a,
[h]=n,
[g]={"1f0b3bfd7502",1386376463,"ObjectiveC. Continuing implementation of objc_bridge_related"}
},
["err_objc_bridged_related_known_method"]={
[f]="A must be explicitly converted to B; use ... method for this conversion",
[d]=l,
[e]=k,
[j]="%0 must be explicitly converted to %1; use %select{%objcclass2|%objcinstance2}3 method for this conversion",
[c]=m,
[b]="(.*?) must be explicitly converted to (.*?); use (?:(.*?)|(.*?)) method for this conversion",
[i]=a,
[h]=n,
[g]={"1f0b3bfd7502",1386376463,"ObjectiveC. Continuing implementation of objc_bridge_related"}
},
["err_objc_cf_bridged_not_interface"]={
[f]="CF object of type A is bridged to B, which is not an Objective-C class",
[d]=l,
[e]=k,
[j]="CF object of type %0 is bridged to %1, which is not an Objective-C class",
[c]=m,
[b]="CF object of type (.*?) is bridged to (.*?), which is not an Objective\\-C class",
[i]=a,
[h]=n,
[g]={"8a0210e535c5",1384629392,"ObjectiveC ARC. Validate toll free bridge casting"}
},
["err_objc_concat_string"]={
[f]="unexpected token after Objective-C string",
[d]=l,
[e]=k,
[j]="unexpected token after Objective-C string",
[c]=m,
[b]="unexpected token after Objective\\-C string",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_objc_decls_may_only_appear_in_global_scope"]={
[f]="Objective-C declarations may only appear in global scope",
[d]=l,
[e]=k,
[j]="Objective-C declarations may only appear in global scope",
[c]=m,
[b]="Objective\\-C declarations may only appear in global scope",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_objc_direct_duplicate_decl"]={
[f]="...... declaration conflicts with previous ...declaration of ... A",
[d]=l,
[e]=k,
[j]="%select{|direct }0%select{method|property}1 declaration conflicts with previous %select{|direct }2declaration of %select{method|property}1 %3",
[c]=m,
[b]="(?:|direct )(?:method|property) declaration conflicts with previous (?:|direct )declaration of (?:method|property) (.*?)",
[i]=a,
[h]=n,
[g]={ic,1575504770,jc}
},
["err_objc_direct_dynamic_property"]={
[f]="direct property cannot be @dynamic",
[d]=l,
[e]=k,
[j]="direct property cannot be @dynamic",
[c]=m,
[b]="direct property cannot be @dynamic",
[i]=a,
[h]=n,
[g]={C,1576908663,B}
},
["err_objc_direct_impl_decl_mismatch"]={
[f]="direct method was declared in ... but is implemented in ...",
[d]=l,
[e]=k,
[j]="direct method was declared in %select{the primary interface|an extension|a category}0 but is implemented in %select{the primary interface|a category|a different category}1",
[c]=m,
[b]="direct method was declared in (?:the primary interface|an extension|a category) but is implemented in (?:the primary interface|a category|a different category)",
[i]=a,
[h]=n,
[g]={ic,1575504770,jc}
},
["err_objc_direct_missing_on_decl"]={
[f]="direct method implementation was previously declared not direct",
[d]=l,
[e]=k,
[j]="direct method implementation was previously declared not direct",
[c]=m,
[b]="direct method implementation was previously declared not direct",
[i]=a,
[h]=n,
[g]={bb,1573050950,db}
},
["err_objc_direct_on_override"]={
[f]="methods that ... cannot be direct",
[d]=l,
[e]=k,
[j]="methods that %select{override superclass methods|implement protocol requirements}0 cannot be direct",
[c]=m,
[b]="methods that (?:override superclass methods|implement protocol requirements) cannot be direct",
[i]=a,
[h]=n,
[g]={bb,1573050950,db}
},
["err_objc_direct_on_protocol"]={
[f]="\'objc_direct\' attribute cannot be applied to ... declared in an Objective-C protocol",
[d]=l,
[e]=k,
[j]="\'objc_direct\' attribute cannot be applied to %select{methods|properties}0 declared in an Objective-C protocol",
[c]=m,
[b]="\'objc_direct\' attribute cannot be applied to (?:methods|properties) declared in an Objective\\-C protocol",
[i]=a,
[h]=n,
[g]={bb,1573050950,db}
},
["err_objc_direct_protocol_conformance"]={
[f]="... cannot conform to protocol A because of direct members declared in interface B",
[d]=l,
[e]=k,
[j]="%select{category %1|class extension}0 cannot conform to protocol %2 because of direct members declared in interface %3",
[c]=m,
[b]="(?:category (.*?)|class extension) cannot conform to protocol (.*?) because of direct members declared in interface (.*?)",
[i]=a,
[h]=n,
[g]={Z,1590001902,ab}
},
["err_objc_directive_only_in_protocol"]={
[f]="directive may only be specified in protocols only",
[d]=l,
[e]=k,
[j]="directive may only be specified in protocols only",
[c]=m,
[b]="directive may only be specified in protocols only",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_objc_exceptions_disabled"]={
[f]="cannot use \'A\' with Objective-C exceptions disabled",
[d]=l,
[e]=k,
[j]="cannot use \'%0\' with Objective-C exceptions disabled",
[c]=m,
[b]="cannot use \'(.*?)\' with Objective\\-C exceptions disabled",
[i]=a,
[h]=n,
[g]={"ce8dd3a5d474",1298159634,"Add a new ObjCExceptions member variable to LangOptions. This controls whether Objective-C exception..."}
},
["err_objc_expected_equal_for_getter"]={
[f]="expected \'=\' for Objective-C getter",
[d]=l,
[e]=k,
[j]="expected \'=\' for Objective-C getter",
[c]=m,
[b]="expected \'\\=\' for Objective\\-C getter",
[i]=a,
[h]=o,
[g]={"fe15a78ff24f",1286041521,"Use ParseObjCSelectorPiece for parsing getter and setter names in @property declarations. Fixes PR81..."}
},
["err_objc_expected_equal_for_setter"]={
[f]="expected \'=\' for Objective-C setter",
[d]=l,
[e]=k,
[j]="expected \'=\' for Objective-C setter",
[c]=m,
[b]="expected \'\\=\' for Objective\\-C setter",
[i]=a,
[h]=o,
[g]={"fe15a78ff24f",1286041521,"Use ParseObjCSelectorPiece for parsing getter and setter names in @property declarations. Fixes PR81..."}
},
["err_objc_expected_property_attr"]={
[f]="unknown property attribute A",
[d]=l,
[e]=k,
[j]="unknown property attribute %0",
[c]=m,
[b]="unknown property attribute (.*?)",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_objc_expected_selector_for_getter_setter"]={
[f]="expected selector for Objective-C ...",
[d]=l,
[e]=k,
[j]="expected selector for Objective-C %select{setter|getter}0",
[c]=m,
[b]="expected selector for Objective\\-C (?:setter|getter)",
[i]=a,
[h]=o,
[g]={"fe15a78ff24f",1286041521,"Use ParseObjCSelectorPiece for parsing getter and setter names in @property declarations. Fixes PR81..."}
},
["err_objc_expected_type_parameter"]={
[f]="expected type parameter name",
[d]=l,
[e]=k,
[j]="expected type parameter name",
[c]=m,
[b]="expected type parameter name",
[i]=a,
[h]=L,
[g]={nb,1436241435,kb}
},
["err_objc_for_range_init_stmt"]={
[f]="initialization statement is not supported when iterating over Objective-C collection",
[d]=l,
[e]=k,
[j]="initialization statement is not supported when iterating over Objective-C collection",
[c]=m,
[b]="initialization statement is not supported when iterating over Objective\\-C collection",
[i]=a,
[h]=n,
[g]={"8baa50013c86",1538160249,"[cxx2a] P0614R1: Support init-statements in range-based for loops."}
},
["err_objc_illegal_boxed_expression_type"]={
[f]="illegal type A used in a boxed expression",
[d]=l,
[e]=k,
[j]="illegal type %0 used in a boxed expression",
[c]=m,
[b]="illegal type (.*?) used in a boxed expression",
[i]=a,
[h]=n,
[g]={"0caa39474bfc",1334795112,"Implements boxed expressions for Objective-C. <rdar://problem/10194391>"}
},
["err_objc_illegal_interface_qual"]={
[f]="illegal interface qualifier",
[d]=l,
[e]=k,
[j]="illegal interface qualifier",
[c]=m,
[b]="illegal interface qualifier",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_objc_illegal_visibility_spec"]={
[f]="illegal visibility specification",
[d]=l,
[e]=k,
[j]="illegal visibility specification",
[c]=m,
[b]="illegal visibility specification",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_objc_incomplete_boxed_expression_type"]={
[f]="incomplete type A used in a boxed expression",
[d]=l,
[e]=k,
[j]="incomplete type %0 used in a boxed expression",
[c]=m,
[b]="incomplete type (.*?) used in a boxed expression",
[i]=a,
[h]=n,
[g]={"8e6951d81b79",1337109464,"Allow objc @() syntax for enum types."}
},
["err_objc_index_incomplete_class_type"]={
[f]="Objective-C index expression has incomplete class type A",
[d]=l,
[e]=k,
[j]="Objective-C index expression has incomplete class type %0",
[c]=m,
[b]="Objective\\-C index expression has incomplete class type (.*?)",
[i]=a,
[h]=n,
[g]={V,1331064356,W}
},
["err_objc_indexing_method_result_type"]={
[f]="method for accessing ... element must have Objective-C object return type instead of A",
[d]=l,
[e]=k,
[j]="method for accessing %select{dictionary|array}1 element must have Objective-C object return type instead of %0",
[c]=m,
[b]="method for accessing (?:dictionary|array) element must have Objective\\-C object return type instead of (.*?)",
[i]=a,
[h]=n,
[g]={V,1331064356,W}
},
["err_objc_kindof_nonobject"]={
[f]="\'__kindof\' specifier cannot be applied to non-object type A",
[d]=l,
[e]=k,
[j]="\'__kindof\' specifier cannot be applied to non-object type %0",
[c]=m,
[b]="\'__kindof\' specifier cannot be applied to non\\-object type (.*?)",
[i]=a,
[h]=n,
[g]={"ab209d83be5d",1436241522,"Implement the Objective-C __kindof type qualifier."}
},
["err_objc_kindof_wrong_position"]={
[f]="\'__kindof\' type specifier must precede the declarator",
[d]=l,
[e]=k,
[j]="\'__kindof\' type specifier must precede the declarator",
[c]=m,
[b]="\'__kindof\' type specifier must precede the declarator",
[i]=a,
[h]=n,
[g]={"ab209d83be5d",1436241522,"Implement the Objective-C __kindof type qualifier."}
},
["err_objc_literal_method_sig"]={
[f]="literal construction method A has incompatible signature",
[d]=l,
[e]=k,
[j]="literal construction method %0 has incompatible signature",
[c]=m,
[b]="literal construction method (.*?) has incompatible signature",
[i]=a,
[h]=n,
[g]={V,1331064356,W}
},
["err_objc_method_unsupported_param_ret_type"]={
[f]="A ... type is unsupported; support for vector types for this target is introduced in B",
[d]=l,
[e]=k,
[j]="%0 %select{parameter|return}1 type is unsupported; support for vector types for this target is introduced in %2",
[c]=m,
[b]="(.*?) (?:parameter|return) type is unsupported; support for vector types for this target is introduced in (.*?)",
[i]=a,
[h]=n,
[g]={"a8a372d85e09",1493289828,"[ObjC] Disallow vector parameters and return values in Objective-C methods"}
},
["err_objc_missing_end"]={
[f]="missing \'@end\'",
[d]=l,
[e]=k,
[j]="missing \'@end\'",
[c]=m,
[b]="missing \'@end\'",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_objc_multiple_subscript_type_conversion"]={
[f]="indexing expression is invalid because subscript type A has multiple type conversion functions",
[d]=l,
[e]=k,
[j]="indexing expression is invalid because subscript type %0 has multiple type conversion functions",
[c]=m,
[b]="indexing expression is invalid because subscript type (.*?) has multiple type conversion functions",
[i]=a,
[h]=n,
[g]={V,1331064356,W}
},
["err_objc_non_runtime_protocol_in_protocol_expr"]={
[f]="cannot use a protocol declared \'objc_non_runtime_protocol\' in a @protocol expression",
[d]=l,
[e]=k,
[j]="cannot use a protocol declared \'objc_non_runtime_protocol\' in a @protocol expression",
[c]=m,
[b]="cannot use a protocol declared \'objc_non_runtime_protocol\' in a @protocol expression",
[i]=a,
[h]=n,
[g]={G,1582847864,I}
},
["err_objc_non_trivially_copyable_boxed_expression_type"]={
[f]="non-trivially copyable type A cannot be used in a boxed expression",
[d]=l,
[e]=k,
[j]="non-trivially copyable type %0 cannot be used in a boxed expression",
[c]=m,
[b]="non\\-trivially copyable type (.*?) cannot be used in a boxed expression",
[i]=a,
[h]=n,
[g]={"fde64956f95c",1435296516,"[ObjC] Add NSValue support for objc_boxed_expressions"}
},
["err_objc_ns_bridged_invalid_cfobject"]={
[f]="ObjectiveC object of type A is bridged to B, which is not valid CF object",
[d]=l,
[e]=k,
[j]="ObjectiveC object of type %0 is bridged to %1, which is not valid CF object",
[c]=m,
[b]="ObjectiveC object of type (.*?) is bridged to (.*?), which is not valid CF object",
[i]=a,
[h]=n,
[g]={"8a0210e535c5",1384629392,"ObjectiveC ARC. Validate toll free bridge casting"}
},
["err_objc_object_assignment"]={
[f]="cannot assign to class object (A invalid)",
[d]=l,
[e]=k,
[j]="cannot assign to class object (%0 invalid)",
[c]=m,
[b]="cannot assign to class object \\((.*?) invalid\\)",
[i]=a,
[h]=n,
[g]={"3c4225a8581f",1327428345,"objc: issue error if assigning objects in fragile-abi too."}
},
["err_objc_object_catch"]={
[f]="cannot catch an Objective-C object by value",
[d]=l,
[e]=k,
[j]="cannot catch an Objective-C object by value",
[c]=m,
[b]="cannot catch an Objective\\-C object by value",
[i]=a,
[h]=n,
[g]={"2ca705eb134f",1279931843,"Support catching Objective C pointers in C++ under the non-fragile NeXT runtime."}
},
["err_objc_override_direct_method"]={
[f]="cannot override a method that is declared direct by a superclass",
[d]=l,
[e]=k,
[j]="cannot override a method that is declared direct by a superclass",
[c]=m,
[b]="cannot override a method that is declared direct by a superclass",
[i]=a,
[h]=n,
[g]={bb,1573050950,db}
},
["err_objc_parameterized_category_nonclass"]={
[f]="... of non-parameterized class A cannot have type parameters",
[d]=l,
[e]=k,
[j]="%select{extension|category}0 of non-parameterized class %1 cannot have type parameters",
[c]=m,
[b]="(?:extension|category) of non\\-parameterized class (.*?) cannot have type parameters",
[i]=a,
[h]=L,
[g]={nb,1436241435,kb}
},
["err_objc_parameterized_forward_class"]={
[f]="forward declaration of non-parameterized class A cannot have type parameters",
[d]=l,
[e]=k,
[j]="forward declaration of non-parameterized class %0 cannot have type parameters",
[c]=m,
[b]="forward declaration of non\\-parameterized class (.*?) cannot have type parameters",
[i]=a,
[h]=L,
[g]={nb,1436241435,kb}
},
["err_objc_parameterized_forward_class_first"]={
[f]="class A previously declared with type parameters",
[d]=l,
[e]=k,
[j]="class %0 previously declared with type parameters",
[c]=m,
[b]="class (.*?) previously declared with type parameters",
[i]=a,
[h]=L,
[g]={nb,1436241435,kb}
},
["err_objc_parameterized_implementation"]={
[f]="@implementation cannot have type parameters",
[d]=l,
[e]=k,
[j]="@implementation cannot have type parameters",
[c]=m,
[b]="@implementation cannot have type parameters",
[i]=a,
[h]=L,
[g]={nb,1436241435,kb}
},
["err_objc_postfix_attribute"]={
[f]="postfix attributes are not allowed on Objective-C directives",
[d]=l,
[e]=k,
[j]="postfix attributes are not allowed on Objective-C directives",
[c]=m,
[b]="postfix attributes are not allowed on Objective\\-C directives",
[i]=a,
[h]=o,
[g]={"04e213b6b6fb",1365010571,"Emit a nicer diagnostic for misplaced attributes on ObjC directives."}
},
["err_objc_postfix_attribute_hint"]={
[f]="postfix attributes are not allowed on Objective-C directives, place them in front of \'...\'",
[d]=l,
[e]=k,
[j]="postfix attributes are not allowed on Objective-C directives, place them in front of \'%select{@interface|@protocol}0\'",
[c]=m,
[b]="postfix attributes are not allowed on Objective\\-C directives, place them in front of \'(?:@interface|@protocol)\'",
[i]=a,
[h]=o,
[g]={"69a7914fec81",1365034510,"Make the ObjC attributes diagnostics a bit more informative."}
},
["err_objc_precise_lifetime_bad_type"]={
[f]="objc_precise_lifetime only applies to retainable types; type here is A",
[d]=l,
[e]=k,
[j]="objc_precise_lifetime only applies to retainable types; type here is %0",
[c]=m,
[b]="objc_precise_lifetime only applies to retainable types; type here is (.*?)",
[i]=a,
[h]=n,
[g]={K,1308178962,J}
},
["err_objc_property_attr_mutually_exclusive"]={
[f]="property attributes \'A\' and \'B\' are mutually exclusive",
[d]=l,
[e]=k,
[j]="property attributes \'%0\' and \'%1\' are mutually exclusive",
[c]=m,
[b]="property attributes \'(.*?)\' and \'(.*?)\' are mutually exclusive",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_objc_property_bitfield"]={
[f]="property name cannot be a bit-field",
[d]=l,
[e]=k,
[j]="property name cannot be a bit-field",
[c]=m,
[b]="property name cannot be a bit\\-field",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_objc_property_requires_field_name"]={
[f]="property requires fields to be named",
[d]=l,
[e]=k,
[j]="property requires fields to be named",
[c]=m,
[b]="property requires fields to be named",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_objc_property_requires_object"]={
[f]="property with \'A\' attribute must be of object type",
[d]=l,
[e]=k,
[j]="property with \'%0\' attribute must be of object type",
[c]=m,
[b]="property with \'(.*?)\' attribute must be of object type",
[i]=a,
[h]=n,
[g]={s,1236199783,r}
},
["err_objc_root_class_subclass"]={
[f]="objc_root_class attribute may only be specified on a root class declaration",
[d]=l,
[e]=k,
[j]="objc_root_class attribute may only be specified on a root class declaration",
[c]=m,
[b]="objc_root_class attribute may only be specified on a root class declaration",
[i]=a,
[h]=n,
[g]={"acfbe9e1f228",1333735942,"Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionall..."}
},
["err_objc_runtime_visible_category"]={
[f]="cannot implement a category for class A that is only visible via the Objective-C runtime",
[d]=l,
[e]=k,
[j]="cannot implement a category for class %0 that is only visible via the Objective-C runtime",
[c]=m,
[b]="cannot implement a category for class (.*?) that is only visible via the Objective\\-C runtime",
[i]=a,
[h]=n,
[g]={"24ae22c04796",1459553032,"[Objective-C] Introduce objc_runtime_visible attribute."}
},
["err_objc_runtime_visible_subclass"]={
[f]="cannot implement subclass A of a superclass B that is only visible via the Objective-C runtime",
[d]=l,
[e]=k,
[j]="cannot implement subclass %0 of a superclass %1 that is only visible via the Objective-C runtime",
[c]=m,
[b]="cannot implement subclass (.*?) of a superclass (.*?) that is only visible via the Objective\\-C runtime",
[i]=a,
[h]=n,
[g]={"24ae22c04796",1459553032,"[Objective-C] Introduce objc_runtime_visible attribute."}
},
["err_objc_subscript_base_type"]={
[f]="... subscript base type A is not an Objective-C object",
[d]=l,
[e]=k,
[j]="%select{dictionary|array}1 subscript base type %0 is not an Objective-C object",
[c]=m,
[b]="(?:dictionary|array) subscript base type (.*?) is not an Objective\\-C object",
[i]=a,
[h]=n,
[g]={V,1331064356,W}
},
["err_objc_subscript_dic_object_type"]={
[f]="method object parameter type A is not object type",
[d]=l,
[e]=k,
[j]="method object parameter type %0 is not object type",
[c]=m,
[b]="method object parameter type (.*?) is not object type",
[i]=a,
[h]=n,
[g]={V,1331064356,W}
},
["err_objc_subscript_index_type"]={
[f]="method index parameter type A is not integral type",
[d]=l,
[e]=k,
[j]="method index parameter type %0 is not integral type",
[c]=m,
[b]="method index parameter type (.*?) is not integral type",
[i]=a,
[h]=n,
[g]={V,1331064356,W}
},
["err_objc_subscript_key_type"]={
[f]="method key parameter type A is not object type",
[d]=l,
[e]=k,
[j]="method key parameter type %0 is not object type",
[c]=m,
[b]="method key parameter type (.*?) is not object type",
[i]=a,
[h]=n,
[g]={V,1331064356,W}
},
["err_objc_subscript_method_not_found"]={
[f]="expected method to ... ... element not found on object of type A",
[d]=l,
[e]=k,
[j]="expected method to %select{read|write}1 %select{dictionary|array}2 element not found on object of type %0",
[c]=m,
[b]="expected method to (?:read|write) (?:dictionary|array) element not found on object of type (.*?)",
[i]=a,
[h]=n,
[g]={V,1331064356,W}
},
["err_objc_subscript_object_type"]={
[f]="cannot assign to this ... because assigning method\'s 2nd parameter of type A is not an Objective-C pointer type",
[d]=l,
[e]=k,
[j]="cannot assign to this %select{dictionary|array}1 because assigning method\'s 2nd parameter of type %0 is not an Objective-C pointer type",
[c]=m,
[b]="cannot assign to this (?:dictionary|array) because assigning method\'s 2nd parameter of type (.*?) is not an Objective\\-C pointer type",
[i]=a,
[h]=n,
[g]={V,1331064356,W}
},
["err_objc_subscript_pointer"]={
[f]="indexing expression is invalid because subscript type A is not an Objective-C pointer",
[d]=l,
[e]=k,
[j]="indexing expression is invalid because subscript type %0 is not an Objective-C pointer",
[c]=m,
[b]="indexing expression is invalid because subscript type (.*?) is not an Objective\\-C pointer",
[i]=a,
[h]=n,
[g]={"ba0afde486f5",1332957409,"objective-c: Improve diagnostics and"}
},
["err_objc_subscript_type_conversion"]={
[f]="indexing expression is invalid because subscript type A is not an integral or Objective-C pointer type",
[d]=l,
[e]=k,
[j]="indexing expression is invalid because subscript type %0 is not an integral or Objective-C pointer type",
[c]=m,
[b]="indexing expression is invalid because subscript type (.*?) is not an integral or Objective\\-C pointer type",
[i]=a,
[h]=n,
[g]={V,1331064356,W}
},
["err_objc_synchronized_expects_object"]={
[f]="@synchronized requires an Objective-C object type (A invalid)",
[d]=l,
[e]=k,
[j]="@synchronized requires an Objective-C object type (%0 invalid)",
[c]=m,
[b]="@synchronized requires an Objective\\-C object type \\((.*?) invalid\\)",
[i]=a,
[h]=n,
[g]={P,1480718311,O}
},
["err_objc_throw_expects_object"]={
[f]="@throw requires an Objective-C object type (A invalid)",
[d]=l,
[e]=k,
[j]="@throw requires an Objective-C object type (%0 invalid)",
[c]=m,
[b]="@throw requires an Objective\\-C object type \\((.*?) invalid\\)",
[i]=a,
[h]=n,
[g]={P,1480718311,O}
},
["err_objc_type_arg_does_not_match_bound"]={
[f]="type argument A does not satisfy the bound (B) of type parameter C",
[d]=l,
[e]=k,
[j]="type argument %0 does not satisfy the bound (%1) of type parameter %2",
[c]=m,
[b]="type argument (.*?) does not satisfy the bound \\((.*?)\\) of type parameter (.*?)",
[i]=a,
[h]=a,
[g]={pb,1436241455,ob}
},
["err_objc_type_arg_explicit_nullability"]={
[f]="type argument A cannot explicitly specify nullability",
[d]=l,
[e]=k,
[j]="type argument %0 cannot explicitly specify nullability",
[c]=m,
[b]="type argument (.*?) cannot explicitly specify nullability",
[i]=a,
[h]=qc,
[g]={"6997525eaa8f",1443046461,"Forbid qualifiers on ObjC generic parameters and arguments, but"}
},
["err_objc_type_arg_missing"]={
[f]="no type or protocol named A",
[d]=l,
[e]=k,
[j]="no type or protocol named %0",
[c]=m,
[b]="no type or protocol named (.*?)",
[i]=a,
[h]=L,
[g]={pb,1436241455,ob}
},
["err_objc_type_arg_missing_star"]={
[f]="type argument A must be a pointer (requires a \'*\')",
[d]=l,
[e]=k,
[j]="type argument %0 must be a pointer (requires a \'*\')",
[c]=m,
[b]="type argument (.*?) must be a pointer \\(requires a \'\\*\'\\)",
[i]=a,
[h]=L,
[g]={pb,1436241455,ob}
},
["err_objc_type_arg_not_id_compatible"]={
[f]="type argument A is neither an Objective-C object nor a block type",
[d]=l,
[e]=k,
[j]="type argument %0 is neither an Objective-C object nor a block type",
[c]=m,
[b]="type argument (.*?) is neither an Objective\\-C object nor a block type",
[i]=a,
[h]=a,
[g]={pb,1436241455,ob}
},
["err_objc_type_arg_qualified"]={
[f]="type argument A cannot be qualified with \'B\'",
[d]=l,
[e]=k,
[j]="type argument %0 cannot be qualified with \'%1\'",
[c]=m,
[b]="type argument (.*?) cannot be qualified with \'(.*?)\'",
[i]=a,
[h]=L,
[g]={"6997525eaa8f",1443046461,"Forbid qualifiers on ObjC generic parameters and arguments, but"}
},
["err_objc_type_args_after_protocols"]={
[f]="protocol qualifiers must precede type arguments",
[d]=l,
[e]=k,
[j]="protocol qualifiers must precede type arguments",
[c]=m,
[b]="protocol qualifiers must precede type arguments",
[i]=a,
[h]=L,
[g]={pb,1436241455,ob}
},
["err_objc_type_args_and_protocols"]={
[f]="angle brackets contain both a ... (A) and a ... (B)",
[d]=l,
[e]=k,
[j]="angle brackets contain both a %select{type|protocol}0 (%1) and a %select{protocol|type}0 (%2)",
[c]=m,
[b]="angle brackets contain both a (?:type|protocol) \\((.*?)\\) and a (?:protocol|type) \\((.*?)\\)",
[i]=a,
[h]=L,
[g]={pb,1436241455,ob}
},
["err_objc_type_args_non_class"]={
[f]="type arguments cannot be applied to non-class type A",
[d]=l,
[e]=k,
[j]="type arguments cannot be applied to non-class type %0",
[c]=m,
[b]="type arguments cannot be applied to non\\-class type (.*?)",
[i]=a,
[h]=L,
[g]={pb,1436241455,ob}
},
["err_objc_type_args_non_parameterized_class"]={
[f]="type arguments cannot be applied to non-parameterized class A",
[d]=l,
[e]=k,
[j]="type arguments cannot be applied to non-parameterized class %0",
[c]=m,
[b]="type arguments cannot be applied to non\\-parameterized class (.*?)",
[i]=a,
[h]=L,
[g]={pb,1436241455,ob}
},
["err_objc_type_args_specialized_class"]={
[f]="type arguments cannot be applied to already-specialized class type A",
[d]=l,
[e]=k,
[j]="type arguments cannot be applied to already-specialized class type %0",
[c]=m,
[b]="type arguments cannot be applied to already\\-specialized class type (.*?)",
[i]=a,
[h]=L,
[g]={pb,1436241455,ob}
},
["err_objc_type_args_wrong_arity"]={
[f]="too ... type arguments for class A (have B, expected C)",
[d]=l,
[e]=k,
[j]="too %select{many|few}0 type arguments for class %1 (have %2, expected %3)",
[c]=m,
[b]="too (?:many|few) type arguments for class (.*?) \\(have (.*?), expected (.*?)\\)",
[i]=a,
[h]=L,
[g]={pb,1436241455,ob}
},
["err_objc_type_param_arity_mismatch"]={
[f]="... has too ... type parameters (expected A, have B)",
[d]=l,
[e]=k,
[j]="%select{forward class declaration|class definition|category|extension}0 has too %select{few|many}1 type parameters (expected %2, have %3)",
[c]=m,
[b]="(?:forward class declaration|class definition|category|extension) has too (?:few|many) type parameters \\(expected (.*?), have (.*?)\\)",
[i]=a,
[h]=L,
[g]={nb,1436241435,kb}
},
["err_objc_type_param_bound_conflict"]={
[f]="type bound A for type parameter B conflicts with ... bound C...",
[d]=l,
[e]=k,
[j]="type bound %0 for type parameter %1 conflicts with %select{implicit|previous}2 bound %3%select{for type parameter %5|}4",
[c]=m,
[b]="type bound (.*?) for type parameter (.*?) conflicts with (?:implicit|previous) bound (.*?)(?:for type parameter (.*?)|)",
[i]=a,
[h]=L,
[g]={nb,1436241435,kb}
},
["err_objc_type_param_bound_explicit_nullability"]={
[f]="type parameter A bound B cannot explicitly specify nullability",
[d]=l,
[e]=k,
[j]="type parameter %0 bound %1 cannot explicitly specify nullability",
[c]=m,
[b]="type parameter (.*?) bound (.*?) cannot explicitly specify nullability",
[i]=a,
[h]=qc,
[g]={"6997525eaa8f",1443046461,"Forbid qualifiers on ObjC generic parameters and arguments, but"}
},
["err_objc_type_param_bound_missing"]={
[f]="missing type bound A for type parameter B in ...",
[d]=l,
[e]=k,
[j]="missing type bound %0 for type parameter %1 in %select{@interface|@class}2",
[c]=m,
[b]="missing type bound (.*?) for type parameter (.*?) in (?:@interface|@class)",
[i]=a,
[h]=L,
[g]={nb,1436241435,kb}
},
["err_objc_type_param_bound_missing_pointer"]={
[f]="missing \'*\' in type bound A for type parameter B",
[d]=l,
[e]=k,
[j]="missing \'*\' in type bound %0 for type parameter %1",
[c]=m,
[b]="missing \'\\*\' in type bound (.*?) for type parameter (.*?)",
[i]=a,
[h]=L,
[g]={nb,1436241435,kb}
},
["err_objc_type_param_bound_nonobject"]={
[f]="type bound A for type parameter B is not an Objective-C pointer type",
[d]=l,
[e]=k,
[j]="type bound %0 for type parameter %1 is not an Objective-C pointer type",
[c]=m,
[b]="type bound (.*?) for type parameter (.*?) is not an Objective\\-C pointer type",
[i]=a,
[h]=L,
[g]={nb,1436241435,kb}
},
["err_objc_type_param_bound_qualified"]={
[f]="type bound A for type parameter B cannot be qualified with \'C\'",
[d]=l,
[e]=k,
[j]="type bound %1 for type parameter %0 cannot be qualified with \'%2\'",
[c]=m,
[b]="type bound (.*?) for type parameter (.*?) cannot be qualified with \'(.*?)\'",
[i]=a,
[h]=L,
[g]={"6997525eaa8f",1443046461,"Forbid qualifiers on ObjC generic parameters and arguments, but"}
},
["err_objc_type_param_redecl"]={
[f]="redeclaration of type parameter A",
[d]=l,
[e]=k,
[j]="redeclaration of type parameter %0",
[c]=m,
[b]="redeclaration of type parameter (.*?)",
[i]=a,
[h]=L,
[g]={nb,1436241435,kb}
},
["err_objc_type_param_variance_conflict"]={
[f]="...variant type parameter A conflicts with previous ...variant type parameter B",
[d]=l,
[e]=k,
[j]="%select{in|co|contra}0variant type parameter %1 conflicts with previous %select{in|co|contra}2variant type parameter %3",
[c]=m,
[b]="(?:in|co|contra)variant type parameter (.*?) conflicts with previous (?:in|co|contra)variant type parameter (.*?)",
[i]=a,
[h]=L,
[g]={"1ac1b63c9ca8",1436241534,"Implement variance for Objective-C type parameters."}
},
["err_objc_unexpected_atend"]={
[f]="\'@end\' appears where closing brace \'}\' is expected",
[d]=l,
[e]=k,
[j]="\'@end\' appears where closing brace \'}\' is expected",
[c]=m,
[b]="\'@end\' appears where closing brace \'\\}\' is expected",
[i]=a,
[h]=o,
[g]={"1c5d4c54a943",1363724860,"Objective-C [qoi]: Provide improved parse diagnostics when"}
},
["err_objc_unexpected_attr"]={
[f]="prefix attribute must be followed by an interface, protocol, or implementation",
[d]=l,
[e]=k,
[j]="prefix attribute must be followed by an interface, protocol, or implementation",
[c]=m,
[b]="prefix attribute must be followed by an interface, protocol, or implementation",
[i]=a,
[h]=o,
[g]={s,1236199783,r}
},
["err_objc_unknown_at"]={
[f]="expected an Objective-C directive after \'@\'",
[d]=l,
[e]=k,
[j]="expected an Objective-C directive after \'@\'",
[c]=m,
[b]="expected an Objective\\-C directive after \'@\'",
[i]=a,
[h]=o,
[g]={"00a0cf70d9ee",1268719487,"Don\'t consume tokens past the end-of-file in an @interface. Fixes"}
},
["err_objc_var_decl_inclass"]={
[f]="cannot declare variable inside @interface or @protocol",
[d]=l,
[e]=k,
[j]="cannot declare variable inside @interface or @protocol",
[c]=m,
[b]="cannot declare variable inside @interface or @protocol",
[i]=a,
[h]=n,
[g]={"629aed932704",1237658805,"Issue error if variables are defined inside an objc class,"}
},
["err_objc_variable_sized_type_not_at_end"]={
[f]="field A with variable sized type B is not at the end of class",
[d]=l,
[e]=k,
[j]="field %0 with variable sized type %1 is not at the end of class",
[c]=m,
[b]="field (.*?) with variable sized type (.*?) is not at the end of class",
[i]=a,
[h]=n,
[g]={"30680e943735",1508796101,"[Sema] Add support for flexible array members in Obj-C."}
},
["err_objc_weak_unsupported"]={
[f]="-fobjc-weak is not supported on the current deployment target",
[d]=l,
[e]=k,
[j]="-fobjc-weak is not supported on the current deployment target",
[c]=m,
[b]="\\-fobjc\\-weak is not supported on the current deployment target",
[i]=a,
[h]=a,
[g]={"460ce58fa6a1",1445539097,"Define weak and __weak to mean ARC-style weak references, even in MRC."}
},
["err_objc_weak_with_gc"]={
[f]="-fobjc-weak is not supported in Objective-C garbage collection",
[d]=l,
[e]=k,
[j]="-fobjc-weak is not supported in Objective-C garbage collection",
[c]=m,
[b]="\\-fobjc\\-weak is not supported in Objective\\-C garbage collection",
[i]=a,
[h]=a,
[g]={"460ce58fa6a1",1445539097,"Define weak and __weak to mean ARC-style weak references, even in MRC."}
},
["err_objcbridge_related_expected_related_class"]={
[f]="expected a related ObjectiveC class name, e.g., \'NSColor\'",
[d]=l,
[e]=k,
[j]="expected a related ObjectiveC class name, e.g., \'NSColor\'",
[c]=m,
[b]="expected a related ObjectiveC class name, e\\.g\\., \'NSColor\'",
[i]=a,
[h]=o,
[g]={"1a2519a7e974",1386189170,"ObjectiveC - Introducing objc_bridge_related attribute "}
},
["err_objcbridge_related_selector_name"]={
[f]="expected a class method selector with single argument, e.g., \'colorWithCGColor:\'",
[d]=l,
[e]=k,
[j]="expected a class method selector with single argument, e.g., \'colorWithCGColor:\'",
[c]=m,
[b]="expected a class method selector with single argument, e\\.g\\., \'colorWithCGColor\\:\'",
[i]=a,
[h]=o,
[g]={"1a2519a7e974",1386189170,"ObjectiveC - Introducing objc_bridge_related attribute "}
},
["err_object_cannot_be_passed_returned_by_value"]={
[f]="interface type A cannot be ... by value; did you forget * in B?",
[d]=l,
[e]=k,
[j]="interface type %1 cannot be %select{returned|passed}0 by value; did you forget * in %1?",
[c]=m,
[b]="interface type (.*?) cannot be (?:returned|passed) by value; did you forget \\* in (.*?)\\?",
[i]=a,
[h]=n,
[g]={"de5a53167743",1239476936,"Improve the \'cannot pass objc interface by value\' diagnostic:"}
},
["err_odr_different_num_template_parameters"]={
[f]="template parameter lists have a different number of parameters (A vs B)",
[d]=l,
[e]=k,
[j]="template parameter lists have a different number of parameters (%0 vs %1)",
[c]=m,
[b]="template parameter lists have a different number of parameters \\((.*?) vs (.*?)\\)",
[i]=a,
[h]=a,
[g]={"a082a49d9e71",1291144490,"Implement basic AST importing and merging support for class template"}
},
["err_odr_different_template_parameter_kind"]={
[f]="template parameter has different kinds in different translation units",
[d]=l,
[e]=k,
[j]="template parameter has different kinds in different translation units",
[c]=m,
[b]="template parameter has different kinds in different translation units",
[i]=a,
[h]=a,
[g]={"a082a49d9e71",1291144490,"Implement basic AST importing and merging support for class template"}
},
["err_odr_field_type_inconsistent"]={
[f]="field A declared with incompatible types in different translation units (B vs. C)",
[d]=l,
[e]=k,
[j]="field %0 declared with incompatible types in different translation units (%1 vs. %2)",
[c]=m,
[b]="field (.*?) declared with incompatible types in different translation units \\((.*?) vs\\. (.*?)\\)",
[i]=a,
[h]=a,
[g]={"03d1ed304b78",1318629282,"Teach the ASTImporter not to import redundant fields."}
},
["err_odr_function_type_inconsistent"]={
[f]="external function A declared with incompatible types in different translation units (B vs. C)",
[d]=l,
[e]=k,
[j]="external function %0 declared with incompatible types in different translation units (%1 vs. %2)",
[c]=m,
[b]="external function (.*?) declared with incompatible types in different translation units \\((.*?) vs\\. (.*?)\\)",
[i]=a,
[h]=a,
[g]={"bb7930c17e98",1265831671,"Implement basic support for merging function declarations across"}
},
["err_odr_ivar_type_inconsistent"]={
[f]="instance variable A declared with incompatible types in different translation units (B vs. C)",
[d]=l,
[e]=k,
[j]="instance variable %0 declared with incompatible types in different translation units (%1 vs. %2)",
[c]=m,
[b]="instance variable (.*?) declared with incompatible types in different translation units \\((.*?) vs\\. (.*?)\\)",
[i]=a,
[h]=a,
[g]={"7244b0bb860b",1266366870,"Implement AST importing of Objective-C instance variables. "}
},
["err_odr_non_type_parameter_type_inconsistent"]={
[f]="non-type template parameter declared with incompatible types in different translation units (A vs. B)",
[d]=l,
[e]=k,
[j]="non-type template parameter declared with incompatible types in different translation units (%0 vs. %1)",
[c]=m,
[b]="non\\-type template parameter declared with incompatible types in different translation units \\((.*?) vs\\. (.*?)\\)",
[i]=a,
[h]=a,
[g]={"a082a49d9e71",1291144490,"Implement basic AST importing and merging support for class template"}
},
["err_odr_objc_method_num_params_inconsistent"]={
[f]="... method A has a different number of parameters in different translation units (B vs. C)",
[d]=l,
[e]=k,
[j]="%select{class|instance}0 method %1 has a different number of parameters in different translation units (%2 vs. %3)",
[c]=m,
[b]="(?:class|instance) method (.*?) has a different number of parameters in different translation units \\((.*?) vs\\. (.*?)\\)",
[i]=a,
[h]=a,
[g]={"43f54796ab42",1266372767,"Implement AST importing and checking for Objective-C method declarations."}
},
["err_odr_objc_method_param_type_inconsistent"]={
[f]="... method A has a parameter with a different types in different translation units (B vs. C)",
[d]=l,
[e]=k,
[j]="%select{class|instance}0 method %1 has a parameter with a different types in different translation units (%2 vs. %3)",
[c]=m,
[b]="(?:class|instance) method (.*?) has a parameter with a different types in different translation units \\((.*?) vs\\. (.*?)\\)",
[i]=a,
[h]=a,
[g]={"43f54796ab42",1266372767,"Implement AST importing and checking for Objective-C method declarations."}
},
["err_odr_objc_method_result_type_inconsistent"]={
[f]="... method A has incompatible result types in different translation units (B vs. C)",
[d]=l,
[e]=k,
[j]="%select{class|instance}0 method %1 has incompatible result types in different translation units (%2 vs. %3)",
[c]=m,
[b]="(?:class|instance) method (.*?) has incompatible result types in different translation units \\((.*?) vs\\. (.*?)\\)",
[i]=a,
[h]=a,
[g]={"43f54796ab42",1266372767,"Implement AST importing and checking for Objective-C method declarations."}
},
["err_odr_objc_method_variadic_inconsistent"]={
[f]="... method A is variadic in one translation unit and not variadic in another",
[d]=l,
[e]=k,
[j]="%select{class|instance}0 method %1 is variadic in one translation unit and not variadic in another",
[c]=m,
[b]="(?:class|instance) method (.*?) is variadic in one translation unit and not variadic in another",
[i]=a,
[h]=a,
[g]={"43f54796ab42",1266372767,"Implement AST importing and checking for Objective-C method declarations."}
},
["err_odr_objc_property_impl_kind_inconsistent"]={
[f]="property A is implemented with ... in one translation but ... in another translation unit",
[d]=l,
[e]=k,
[j]="property %0 is implemented with %select{@synthesize|@dynamic}1 in one translation but %select{@dynamic|@synthesize}1 in another translation unit",
[c]=m,
[b]="property (.*?) is implemented with (?:@synthesize|@dynamic) in one translation but (?:@dynamic|@synthesize) in another translation unit",
[i]=a,
[h]=a,
[g]={"14a49e2fbe1c",1291746723,"Implement AST import for Objective-C property implementations"}
},
["err_odr_objc_property_type_inconsistent"]={
[f]="property A declared with incompatible types in different translation units (B vs. C)",
[d]=l,
[e]=k,
[j]="property %0 declared with incompatible types in different translation units (%1 vs. %2)",
[c]=m,
[b]="property (.*?) declared with incompatible types in different translation units \\((.*?) vs\\. (.*?)\\)",
[i]=a,
[h]=a,
[g]={"a11c45866eba",1266429730,"Implement AST merging for Objective-C properties."}
},
["err_odr_objc_superclass_inconsistent"]={
[f]="class A has incompatible superclasses",
[d]=l,
[e]=k,
[j]="class %0 has incompatible superclasses",
[c]=m,
[b]="class (.*?) has incompatible superclasses",
[i]=a,
[h]=a,
[g]={"7244b0bb860b",1266366870,"Implement AST importing of Objective-C instance variables. "}
},
["err_odr_objc_synthesize_ivar_inconsistent"]={
[f]="property A is synthesized to different ivars in different translation units (B vs. C)",
[d]=l,
[e]=k,
[j]="property %0 is synthesized to different ivars in different translation units (%1 vs. %2)",
[c]=m,
[b]="property (.*?) is synthesized to different ivars in different translation units \\((.*?) vs\\. (.*?)\\)",
[i]=a,
[h]=a,
[g]={"14a49e2fbe1c",1291746723,"Implement AST import for Objective-C property implementations"}
},
["err_odr_parameter_pack_non_pack"]={
[f]="parameter kind mismatch; parameter is ... parameter pack",
[d]=l,
[e]=k,
[j]="parameter kind mismatch; parameter is %select{not a|a}0 parameter pack",
[c]=m,
[b]="parameter kind mismatch; parameter is (?:not a|a) parameter pack",
[i]=a,
[h]=a,
[g]={"a082a49d9e71",1291144490,"Implement basic AST importing and merging support for class template"}
},
["err_odr_tag_type_inconsistent"]={
[f]="type A has incompatible definitions in different translation units",
[d]=l,
[e]=k,
[j]="type %0 has incompatible definitions in different translation units",
[c]=m,
[b]="type (.*?) has incompatible definitions in different translation units",
[i]=a,
[h]=a,
[g]={"df0ee34bc252",1498867607,"[Modules] Implement ODR-like semantics for tag types in C/ObjC"}
},
["err_odr_variable_multiple_def"]={
[f]="external variable A defined in multiple translation units",
[d]=l,
[e]=k,
[j]="external variable %0 defined in multiple translation units",
[c]=m,
[b]="external variable (.*?) defined in multiple translation units",
[i]=a,
[h]=a,
[g]={"3aed6cdd5e61",1265663379,"Implement basic importing and merging of variable declarations within"}
},
["err_odr_variable_type_inconsistent"]={
[f]="external variable A declared with incompatible types in different translation units (B vs. C)",
[d]=l,
[e]=k,
[j]="external variable %0 declared with incompatible types in different translation units (%1 vs. %2)",
[c]=m,
[b]="external variable (.*?) declared with incompatible types in different translation units \\((.*?) vs\\. (.*?)\\)",
[i]=a,
[h]=a,
[g]={"3aed6cdd5e61",1265663379,"Implement basic importing and merging of variable declarations within"}
},
["err_offsetof_array_type"]={
[f]="offsetof requires array type, A invalid",
[d]=l,
[e]=k,
[j]="offsetof requires array type, %0 invalid",
[c]=m,
[b]="offsetof requires array type, (.*?) invalid",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_offsetof_bitfield"]={
[f]="cannot compute offset of bit-field A",
[d]=l,
[e]=k,
[j]="cannot compute offset of bit-field %0",
[c]=m,
[b]="cannot compute offset of bit\\-field (.*?)",
[i]=a,
[h]=n,
[g]={"10982ea3f9e1",1272494166,"Diagnose __builtin_offsetof expressions that refer to bit-fields"}
},
["err_offsetof_field_of_virtual_base"]={
[f]="invalid application of \'offsetof\' to a field of a virtual base",
[d]=l,
[e]=k,
[j]="invalid application of \'offsetof\' to a field of a virtual base",
[c]=m,
[b]="invalid application of \'offsetof\' to a field of a virtual base",
[i]=a,
[h]=n,
[g]={"ff17f8367311",1381818503,"Sema: Consider it an error to apply __builtin_offsetof to a member in a virtual base"}
},
["err_offsetof_incomplete_type"]={
[f]="offsetof of incomplete type A",
[d]=l,
[e]=k,
[j]="offsetof of incomplete type %0",
[c]=m,
[b]="offsetof of incomplete type (.*?)",
[i]=a,
[h]=n,
[g]={"9eff4e60ae4c",1257303823,"Diagnose __builtin_offsetof on incomplete types.  Fixes"}
},
["err_offsetof_record_type"]={
[f]="offsetof requires struct, union, or class type, A invalid",
[d]=l,
[e]=k,
[j]="offsetof requires struct, union, or class type, %0 invalid",
[c]=m,
[b]="offsetof requires struct, union, or class type, (.*?) invalid",
[i]=a,
[h]=n,
[g]={q,1237025389,p}
},
["err_omp_adjust_arg_multiple_clauses"]={
[f]="\'adjust_arg\' argument A used in multiple clauses",
[d]=l,
[e]=k,
[j]="\'adjust_arg\' argument %0 used in multiple clauses",
[c]=m,
[b]="\'adjust_arg\' argument (.*?) used in multiple clauses",
[i]=a,
[h]=u,
[g]={ub,1615397021,qb}
},
["err_omp_aligned_expected_array_or_ptr"]={
[f]="argument of aligned clause should be array..., not A",
[d]=l,
[e]=k,
[j]="argument of aligned clause should be array%select{ or pointer|, pointer, reference to array or reference to pointer}1, not %0",
[c]=m,
[b]="argument of aligned clause should be array(?: or pointer|, pointer, reference to array or reference to pointer), not (.*?)",
[i]=a,
[h]=u,
[g]={"f0d76e7dc3e5",1401374185,"Parsing/Sema for OMPAlignedClause."}
},
["err_omp_allocator_not_in_uses_allocators"]={
[f]="allocator must be specified in the \'uses_allocators\' clause",
[d]=l,
[e]=k,
[j]="allocator must be specified in the \'uses_allocators\' clause",
[c]=m,
[b]="allocator must be specified in the \'uses_allocators\' clause",
[i]=a,
[h]=u,
[g]={C,1576908663,B}
},
["err_omp_allocator_used_in_clauses"]={
[f]="allocators used in \'uses_allocators\' clause cannot appear in other data-sharing or data-mapping attribute clauses",
[d]=l,
[e]=k,
[j]="allocators used in \'uses_allocators\' clause cannot appear in other data-sharing or data-mapping attribute clauses",
[c]=m,
[b]="allocators used in \'uses_allocators\' clause cannot appear in other data\\-sharing or data\\-mapping attribute clauses",
[i]=a,
[h]=u,
[g]={C,1576908663,B}
},
["err_omp_ambiguous_conversion"]={
[f]="ambiguous conversion from type A to an integral or unscoped enumeration type",
[d]=l,
[e]=k,
[j]="ambiguous conversion from type %0 to an integral or unscoped enumeration type",
[c]=m,
[b]="ambiguous conversion from type (.*?) to an integral or unscoped enumeration type",
[i]=a,
[h]=u,
[g]={"568a833f68de",1394086519,"[OPENMP] Clause \'num_threads\'"}
},
["err_omp_append_args_with_varargs"]={
[f]="\'append_args\' is not allowed with varargs functions",
[d]=l,
[e]=k,
[j]="\'append_args\' is not allowed with varargs functions",
[c]=m,
[b]="\'append_args\' is not allowed with varargs functions",
[i]=a,
[h]=u,
[g]={R,1616787805,S}
},
["err_omp_argument_type_isdeviceptr"]={
[f]="expected pointer, array, reference to pointer, or reference to array in \'is_device_ptr clause\'",
[d]=l,
[e]=k,
[j]="expected pointer, array, reference to pointer, or reference to array in \'is_device_ptr clause\'",
[c]=m,
[b]="expected pointer, array, reference to pointer, or reference to array in \'is_device_ptr clause\'",
[i]=a,
[h]=u,
[g]={"70594e928259",1468430209,"[OpenMP] Initial implementation of parse+sema for OpenMP clause \'is_device_ptr\' of target"}
},
["err_omp_array_section_use"]={
[f]="OpenMP array section is not allowed here",
[d]=l,
[e]=k,
[j]="OpenMP array section is not allowed here",
[c]=m,
[b]="OpenMP array section is not allowed here",
[i]=a,
[h]=u,
[g]={"1a3320e4639c",1440512644,"[OPENMP 4.0] Initial support for array sections."}
},
["err_omp_array_shaping_use"]={
[f]="OpenMP array shaping operation is not allowed here",
[d]=l,
[e]=k,
[j]="OpenMP array shaping operation is not allowed here",
[c]=m,
[b]="OpenMP array shaping operation is not allowed here",
[i]=a,
[h]=u,
[g]={C,1576908663,B}
},
["err_omp_at_least_one_motion_clause_required"]={
[f]="expected at least one \'to\' clause or \'from\' clause specified to \'#pragma omp target update\'",
[d]=l,
[e]=k,
[j]="expected at least one \'to\' clause or \'from\' clause specified to \'#pragma omp target update\'",
[c]=m,
[b]="expected at least one \'to\' clause or \'from\' clause specified to \'\\#pragma omp target update\'",
[i]=a,
[h]=u,
[g]={"686c70c3dc95",1464283850,"[OpenMP] Parsing and sema support for target update directive"}
},
["err_omp_atomic_capture_not_compound_statement"]={
[f]="the statement for \'atomic capture\' must be a compound statement of form \'{v = x; x binop= expr;}\', \'{x binop= expr; v = x;}\', \'{v = x; x = x binop expr;}\', \'{v = x; x = expr binop x;}\', \'{x = x binop expr; v = x;}\', \'{x = expr binop x; v = x;}\' or \'{v = x; x = expr;}\', \'{v = x; x++;}\', \'{v = x; ++x;}\', \'{++x; v = x;}\', \'{x++; v = x;}\', \'{v = x; x--;}\', \'{v = x; --x;}\', \'{--x; v = x;}\', \'{x--; v = x;}\' where x is an lvalue expression with scalar type",
[d]=l,
[e]=k,
[j]="the statement for \'atomic capture\' must be a compound statement of form \'{v = x; x binop= expr;}\', \'{x binop= expr; v = x;}\', \'{v = x; x = x binop expr;}\', \'{v = x; x = expr binop x;}\', \'{x = x binop expr; v = x;}\', \'{x = expr binop x; v = x;}\' or \'{v = x; x = expr;}\', \'{v = x; x++;}\', \'{v = x; ++x;}\', \'{++x; v = x;}\', \'{x++; v = x;}\', \'{v = x; x--;}\', \'{v = x; --x;}\', \'{--x; v = x;}\', \'{x--; v = x;}\' where x is an lvalue expression with scalar type",
[c]=m,
[b]="the statement for \'atomic capture\' must be a compound statement of form \'\\{v \\= x; x binop\\= expr;\\}\', \'\\{x binop\\= expr; v \\= x;\\}\', \'\\{v \\= x; x \\= x binop expr;\\}\', \'\\{v \\= x; x \\= expr binop x;\\}\', \'\\{x \\= x binop expr; v \\= x;\\}\', \'\\{x \\= expr binop x; v \\= x;\\}\' or \'\\{v \\= x; x \\= expr;\\}\', \'\\{v \\= x; x\\+\\+;\\}\', \'\\{v \\= x; \\+\\+x;\\}\', \'\\{\\+\\+x; v \\= x;\\}\', \'\\{x\\+\\+; v \\= x;\\}\', \'\\{v \\= x; x\\-\\-;\\}\', \'\\{v \\= x; \\-\\-x;\\}\', \'\\{\\-\\-x; v \\= x;\\}\', \'\\{x\\-\\-; v \\= x;\\}\' where x is an lvalue expression with scalar type",
[i]=a,
[h]=u,
[g]={"459dec0ca2a7",1406184417,"[OPENMP] Initial parsing and sema analysis for clause \'capture\' in \'atomic\' directive."}
},
["err_omp_atomic_capture_not_expression_statement"]={
[f]="the statement for \'atomic capture\' must be an expression statement of form \'v = ++x;\', \'v = --x;\', \'v = x++;\', \'v = x--;\', \'v = x binop= expr;\', \'v = x = x binop expr\' or \'v = x = expr binop x\', where x and v are both lvalue expressions with scalar type",
[d]=l,
[e]=k,
[j]="the statement for \'atomic capture\' must be an expression statement of form \'v = ++x;\', \'v = --x;\', \'v = x++;\', \'v = x--;\', \'v = x binop= expr;\', \'v = x = x binop expr\' or \'v = x = expr binop x\', where x and v are both lvalue expressions with scalar type",
[c]=m,
[b]="the statement for \'atomic capture\' must be an expression statement of form \'v \\= \\+\\+x;\', \'v \\= \\-\\-x;\', \'v \\= x\\+\\+;\', \'v \\= x\\-\\-;\', \'v \\= x binop\\= expr;\', \'v \\= x \\= x binop expr\' or \'v \\= x \\= expr binop x\', where x and v are both lvalue expressions with scalar type",
[i]=a,
[h]=u,
[g]={"459dec0ca2a7",1406184417,"[OPENMP] Initial parsing and sema analysis for clause \'capture\' in \'atomic\' directive."}
},
["err_omp_atomic_compare"]={
[f]="the statement for \'atomic compare\' must be a compound statement of form \'{x = expr ordop x ? expr : x;}\', \'{x = x ordop expr? expr : x;}\', \'{x = x == e ? d : x;}\', \'{x = e == x ? d : x;}\', or \'if(expr ordop x) {x = expr;}\', \'if(x ordop expr) {x = expr;}\', \'if(x == e) {x = d;}\', \'if(e == x) {x = d;}\' where \'x\' is an lvalue expression with scalar type, \'expr\', \'e\', and \'d\' are expressions with scalar type, and \'ordop\' is one of \'<\' or \'>\'.",
[d]=l,
[e]=k,
[j]="the statement for \'atomic compare\' must be a compound statement of form \'{x = expr ordop x ? expr : x;}\', \'{x = x ordop expr? expr : x;}\', \'{x = x == e ? d : x;}\', \'{x = e == x ? d : x;}\', or \'if(expr ordop x) {x = expr;}\', \'if(x ordop expr) {x = expr;}\', \'if(x == e) {x = d;}\', \'if(e == x) {x = d;}\' where \'x\' is an lvalue expression with scalar type, \'expr\', \'e\', and \'d\' are expressions with scalar type, and \'ordop\' is one of \'<\' or \'>\'.",
[c]=m,
[b]="the statement for \'atomic compare\' must be a compound statement of form \'\\{x \\= expr ordop x \\? expr \\: x;\\}\', \'\\{x \\= x ordop expr\\? expr \\: x;\\}\', \'\\{x \\= x \\=\\= e \\? d \\: x;\\}\', \'\\{x \\= e \\=\\= x \\? d \\: x;\\}\', or \'if\\(expr ordop x\\) \\{x \\= expr;\\}\', \'if\\(x ordop expr\\) \\{x \\= expr;\\}\', \'if\\(x \\=\\= e\\) \\{x \\= d;\\}\', \'if\\(e \\=\\= x\\) \\{x \\= d;\\}\' where \'x\' is an lvalue expression with scalar type, \'expr\', \'e\', and \'d\' are expressions with scalar type, and \'ordop\' is one of \'\\<\' or \'\\>\'\\.",
[i]=a,
[h]=u,
[g]={R,1616787805,S}
},
["err_omp_atomic_compare_capture"]={
[f]="the statement for \'atomic compare capture\' must be a compound statement of form \'{v = x; cond-up-stmt}\', \'\'{cond-up-stmt v = x;}\', \'{if(x == e) {x = d;} else {v = x;}}\', \'{r = x == e; if(r) {x = d;}}\', or \'{r = x == e; if(r) {x = d;} else {v = x;}}\', where \'cond-update-stmt\' can have one of the following forms: \'if(expr ordop x) {x = expr;}\', \'if(x ordop expr) {x = expr;}\', \'if(x == e) {x = d;}\', or \'if(e == x) {x = d;}\' where \'x\', \'r\', and \'v\' are lvalue expressions with scalar type, \'expr\', \'e\', and \'d\' are expressions with scalar type, and \'ordop\' is one of \'<\' or \'>\'.",
[d]=l,
[e]=k,
[j]="the statement for \'atomic compare capture\' must be a compound statement of form \'{v = x; cond-up-stmt}\', \'\'{cond-up-stmt v = x;}\', \'{if(x == e) {x = d;} else {v = x;}}\', \'{r = x == e; if(r) {x = d;}}\', or \'{r = x == e; if(r) {x = d;} else {v = x;}}\', where \'cond-update-stmt\' can have one of the following forms: \'if(expr ordop x) {x = expr;}\', \'if(x ordop expr) {x = expr;}\', \'if(x == e) {x = d;}\', or \'if(e == x) {x = d;}\' where \'x\', \'r\', and \'v\' are lvalue expressions with scalar type, \'expr\', \'e\', and \'d\' are expressions with scalar type, and \'ordop\' is one of \'<\' or \'>\'.",
[c]=m,
[b]="the statement for \'atomic compare capture\' must be a compound statement of form \'\\{v \\= x; cond\\-up\\-stmt\\}\', \'\'\\{cond\\-up\\-stmt v \\= x;\\}\', \'\\{if\\(x \\=\\= e\\) \\{x \\= d;\\} else \\{v \\= x;\\}\\}\', \'\\{r \\= x \\=\\= e; if\\(r\\) \\{x \\= d;\\}\\}\', or \'\\{r \\= x \\=\\= e; if\\(r\\) \\{x \\= d;\\} else \\{v \\= x;\\}\\}\', where \'cond\\-update\\-stmt\' can have one of the following forms\\: \'if\\(expr ordop x\\) \\{x \\= expr;\\}\', \'if\\(x ordop expr\\) \\{x \\= expr;\\}\', \'if\\(x \\=\\= e\\) \\{x \\= d;\\}\', or \'if\\(e \\=\\= x\\) \\{x \\= d;\\}\' where \'x\', \'r\', and \'v\' are lvalue expressions with scalar type, \'expr\', \'e\', and \'d\' are expressions with scalar type, and \'ordop\' is one of \'\\<\' or \'\\>\'\\.",
[i]=a,
[h]=u,
[g]={R,1616787805,S}
},
["err_omp_atomic_incompatible_mem_order_clause"]={
[f]="directive \'#pragma omp atomic...\' cannot be used with \'A\' clause",
[d]=l,
[e]=k,
[j]="directive \'#pragma omp atomic%select{ %0|}1\' cannot be used with \'%2\' clause",
[c]=m,
[b]="directive \'\\#pragma omp atomic(?: (.*?)|)\' cannot be used with \'(.*?)\' clause",
[i]=a,
[h]=u,
[g]={mb,1576809732,lb}
},
["err_omp_atomic_not_expression_statement"]={
[f]="the statement for \'atomic\' must be an expression statement of form \'++x;\', \'--x;\', \'x++;\', \'x--;\', \'x binop= expr;\', \'x = x binop expr\' or \'x = expr binop x\', where x is an lvalue expression with scalar type",
[d]=l,
[e]=k,
[j]="the statement for \'atomic\' must be an expression statement of form \'++x;\', \'--x;\', \'x++;\', \'x--;\', \'x binop= expr;\', \'x = x binop expr\' or \'x = expr binop x\', where x is an lvalue expression with scalar type",
[c]=m,
[b]="the statement for \'atomic\' must be an expression statement of form \'\\+\\+x;\', \'\\-\\-x;\', \'x\\+\\+;\', \'x\\-\\-;\', \'x binop\\= expr;\', \'x \\= x binop expr\' or \'x \\= expr binop x\', where x is an lvalue expression with scalar type",
[i]=a,
[h]=u,
[g]={"1d160b1945c2",1426249651,"[OPENMP] Additional sema analysis for \'omp atomic[ update]\'."}
},
["err_omp_atomic_read_not_expression_statement"]={
[f]="the statement for \'atomic read\' must be an expression statement of form \'v = x;\', where v and x are both lvalue expressions with scalar type",
[d]=l,
[e]=k,
[j]="the statement for \'atomic read\' must be an expression statement of form \'v = x;\', where v and x are both lvalue expressions with scalar type",
[c]=m,
[b]="the statement for \'atomic read\' must be an expression statement of form \'v \\= x;\', where v and x are both lvalue expressions with scalar type",
[i]=a,
[h]=u,
[g]={"f98b00c33e83",1406082441,"[OPENMP] Initial parsing and sema analysis for \'read\' clause in \'atomic\' directive."}
},
["err_omp_atomic_several_clauses"]={
[f]="directive \'#pragma omp atomic\' cannot contain more than one \'read\', \'write\', \'update\', \'capture\', or \'compare\' clause",
[d]=l,
[e]=k,
[j]="directive \'#pragma omp atomic\' cannot contain more than one \'read\', \'write\', \'update\', \'capture\', or \'compare\' clause",
[c]=m,
[b]="directive \'\\#pragma omp atomic\' cannot contain more than one \'read\', \'write\', \'update\', \'capture\', or \'compare\' clause",
[i]=a,
[h]=u,
[g]={"dea4761c06f9",1406101619,"[OPENMP] Initial parsing an sema analysis for \'write\' clause of \'atomic\' directive."}
},
["err_omp_atomic_update_not_expression_statement"]={
[f]="the statement for \'atomic update\' must be an expression statement of form \'++x;\', \'--x;\', \'x++;\', \'x--;\', \'x binop= expr;\', \'x = x binop expr\' or \'x = expr binop x\', where x is an lvalue expression with scalar type",
[d]=l,
[e]=k,
[j]="the statement for \'atomic update\' must be an expression statement of form \'++x;\', \'--x;\', \'x++;\', \'x--;\', \'x binop= expr;\', \'x = x binop expr\' or \'x = expr binop x\', where x is an lvalue expression with scalar type",
[c]=m,
[b]="the statement for \'atomic update\' must be an expression statement of form \'\\+\\+x;\', \'\\-\\-x;\', \'x\\+\\+;\', \'x\\-\\-;\', \'x binop\\= expr;\', \'x \\= x binop expr\' or \'x \\= expr binop x\', where x is an lvalue expression with scalar type",
[i]=a,
[h]=u,
[g]={"67a4f22f12b0",1406111133,"[OPENMP] Initial parsing and sema analysis for \'update\' clause of \'atomic\' directive."}
},
["err_omp_atomic_write_not_expression_statement"]={
[f]="the statement for \'atomic write\' must be an expression statement of form \'x = expr;\', where x is a lvalue expression with scalar type",
[d]=l,
[e]=k,
[j]="the statement for \'atomic write\' must be an expression statement of form \'x = expr;\', where x is a lvalue expression with scalar type",
[c]=m,
[b]="the statement for \'atomic write\' must be an expression statement of form \'x \\= expr;\', where x is a lvalue expression with scalar type",
[i]=a,
[h]=u,
[g]={"dea4761c06f9",1406101619,"[OPENMP] Initial parsing an sema analysis for \'write\' clause of \'atomic\' directive."}
},
["err_omp_begin_declare_target_unexpected_implicit_to_clause"]={
[f]="unexpected \'(\', only \'to\', \'link\' or \'device_type\' clauses expected for \'begin declare target\' directive",
[d]=l,
[e]=k,
[j]="unexpected \'(\', only \'to\', \'link\' or \'device_type\' clauses expected for \'begin declare target\' directive",
[c]=m,
[b]="unexpected \'\\(\', only \'to\', \'link\' or \'device_type\' clauses expected for \'begin declare target\' directive",
[i]=a,
[h]=o,
[g]={Lb,1612659633,Gb}
},
["err_omp_bit_fields_forbidden_in_clause"]={
[f]="bit fields cannot be used to specify storage in a \'A\' clause",
[d]=l,
[e]=k,
[j]="bit fields cannot be used to specify storage in a \'%0\' clause",
[c]=m,
[b]="bit fields cannot be used to specify storage in a \'(.*?)\' clause",
[i]=a,
[h]=u,
[g]={"661c0904e144",1464284398,"[OpenMP] Parsing and sema support for the to clause"}
},
["err_omp_cannot_update_with_internal_linkage"]={
[f]="the host cannot update a declare target variable that is not externally visible.",
[d]=l,
[e]=k,
[j]="the host cannot update a declare target variable that is not externally visible.",
[c]=m,
[b]="the host cannot update a declare target variable that is not externally visible\\.",
[i]=a,
[h]=u,
[g]={hb,1620118562,jb}
},
["err_omp_clause_floating_type_arg"]={
[f]="arguments of OpenMP clause \'A\' with bitwise operators cannot be of floating type",
[d]=l,
[e]=k,
[j]="arguments of OpenMP clause \'%0\' with bitwise operators cannot be of floating type",
[c]=m,
[b]="arguments of OpenMP clause \'(.*?)\' with bitwise operators cannot be of floating type",
[i]=a,
[h]=u,
[g]={"c5e025831ba7",1402902515,"[OPENMP] Initial support of \'reduction\' clause"}
},
["err_omp_clause_not_arithmetic_type_arg"]={
[f]="arguments of OpenMP clause \'A\' for \'min\' or \'max\' must be of ... type",
[d]=l,
[e]=k,
[j]="arguments of OpenMP clause \'%0\' for \'min\' or \'max\' must be of %select{scalar|arithmetic}1 type",
[c]=m,
[b]="arguments of OpenMP clause \'(.*?)\' for \'min\' or \'max\' must be of (?:scalar|arithmetic) type",
[i]=a,
[h]=u,
[g]={"c5e025831ba7",1402902515,"[OPENMP] Initial support of \'reduction\' clause"}
},
["err_omp_clause_requires_dispatch_construct"]={
[f]="\'A\' clause requires \'dispatch\' context selector",
[d]=l,
[e]=k,
[j]="\'%0\' clause requires \'dispatch\' context selector",
[c]=m,
[b]="\'(.*?)\' clause requires \'dispatch\' context selector",
[i]=a,
[h]=u,
[g]={ub,1615397021,qb}
},
["err_omp_clauses_mutually_exclusive"]={
[f]="\'A\' and \'B\' clause are mutually exclusive and may not appear on the same directive",
[d]=l,
[e]=k,
[j]="\'%0\' and \'%1\' clause are mutually exclusive and may not appear on the same directive",
[c]=m,
[b]="\'(.*?)\' and \'(.*?)\' clause are mutually exclusive and may not appear on the same directive",
[i]=a,
[h]=u,
[g]={C,1576908663,B}
},
["err_omp_const_list_item"]={
[f]="const-qualified list item cannot be A",
[d]=l,
[e]=k,
[j]="const-qualified list item cannot be %0",
[c]=m,
[b]="const\\-qualified list item cannot be (.*?)",
[i]=a,
[h]=u,
[g]={"d2649292ef26",1546639916,"[OpenMP] Refactor const restriction for reductions"}
},
["err_omp_const_not_mutable_variable"]={
[f]="const-qualified variable without mutable fields cannot be A",
[d]=l,
[e]=k,
[j]="const-qualified variable without mutable fields cannot be %0",
[c]=m,
[b]="const\\-qualified variable without mutable fields cannot be (.*?)",
[i]=a,
[h]=u,
[g]={"e6234d142911",1546639891,"[OpenMP] Replace predetermined shared for const variable"}
},
["err_omp_const_variable"]={
[f]="const-qualified variable cannot be A",
[d]=l,
[e]=k,
[j]="const-qualified variable cannot be %0",
[c]=m,
[b]="const\\-qualified variable cannot be (.*?)",
[i]=a,
[h]=u,
[g]={"8dba66412b0a",1398172182,"[OPENMP] parsing \'linear\' clause (for directive \'omp simd\')"}
},
["err_omp_critical_with_hint"]={
[f]="constructs with the same name must have a \'hint\' clause with the same value",
[d]=l,
[e]=k,
[j]="constructs with the same name must have a \'hint\' clause with the same value",
[c]=m,
[b]="constructs with the same name must have a \'hint\' clause with the same value",
[i]=a,
[h]=u,
[g]={"28c75417b2c4",1450167564,"[OPENMP 4.5] Parsing/sema for \'hint\' clause of \'critical\' directive."}
},
["err_omp_decl_in_declare_simd_variant"]={
[f]="function declaration is expected after \'declare ...\' directive",
[d]=l,
[e]=k,
[j]="function declaration is expected after \'declare %select{simd|variant}0\' directive",
[c]=m,
[b]="function declaration is expected after \'declare (?:simd|variant)\' directive",
[i]=a,
[h]=o,
[g]={"d158cf64d64b",1568405897,"[OPENMP5.0]Add basic support for declare variant directive."}
},
["err_omp_declare_mapper_redefinition"]={
[f]="redefinition of user-defined mapper for type A with name B",
[d]=l,
[e]=k,
[j]="redefinition of user-defined mapper for type %0 with name %1",
[c]=m,
[b]="redefinition of user\\-defined mapper for type (.*?) with name (.*?)",
[i]=a,
[h]=u,
[g]={"251e1488e195",1549052704,"[OpenMP 5.0] Parsing/sema support for \"omp declare mapper\" directive."}
},
["err_omp_declare_mapper_wrong_var"]={
[f]="only variable A is allowed in map clauses of this \'omp declare mapper\' directive",
[d]=l,
[e]=k,
[j]="only variable %0 is allowed in map clauses of this \'omp declare mapper\' directive",
[c]=m,
[b]="only variable (.*?) is allowed in map clauses of this \'omp declare mapper\' directive",
[i]=a,
[h]=u,
[g]={"251e1488e195",1549052704,"[OpenMP 5.0] Parsing/sema support for \"omp declare mapper\" directive."}
},
["err_omp_declare_reduction_redefinition"]={
[f]="redefinition of user-defined reduction for type A",
[d]=l,
[e]=k,
[j]="redefinition of user-defined reduction for type %0",
[c]=m,
[b]="redefinition of user\\-defined reduction for type (.*?)",
[i]=a,
[h]=u,
[g]={"94a4f0cb5f8a",1456982499,"[OPENMP 4.0] Initial support for \'omp declare reduction\' construct."}
},
["err_omp_declare_simd_inbranch_notinbranch"]={
[f]="unexpected \'A\' clause, \'B\' is specified already",
[d]=l,
[e]=k,
[j]="unexpected \'%0\' clause, \'%1\' is specified already",
[c]=m,
[b]="unexpected \'(.*?)\' clause, \'(.*?)\' is specified already",
[i]=a,
[h]=o,
[g]={"20dfd778264a",1459764735,"[OPENMP 4.0] Support for \'inbranch|noinbranch\' clauses in \'declare"}
},
["err_omp_declare_target_indirect_device_type"]={
[f]="only \'device_type(any)\' clause is allowed with indirect clause",
[d]=l,
[e]=k,
[j]="only \'device_type(any)\' clause is allowed with indirect clause",
[c]=m,
[b]="only \'device_type\\(any\\)\' clause is allowed with indirect clause",
[i]=a,
[h]=o,
[g]={Lb,1612659633,Gb}
},
["err_omp_declare_target_missing_enter_or_link_clause"]={
[f]="expected at least one ... clause",
[d]=l,
[e]=k,
[j]="expected at least one %select{\'enter\' or \'link\'|\'enter\', \'link\' or \'indirect\'}0 clause",
[c]=m,
[b]="expected at least one (?:\'enter\' or \'link\'|\'enter\', \'link\' or \'indirect\') clause",
[i]=a,
[h]=o,
[g]={Zb,1668641028,Xb}
},
["err_omp_declare_target_missing_to_or_link_clause"]={
[f]="expected at least one ... clause",
[d]=l,
[e]=k,
[j]="expected at least one %select{\'to\' or \'link\'|\'to\', \'link\' or \'indirect\'}0 clause",
[c]=m,
[b]="expected at least one (?:\'to\' or \'link\'|\'to\', \'link\' or \'indirect\') clause",
[i]=a,
[h]=o,
[g]={Lb,1612659633,Gb}
},
["err_omp_declare_target_multiple"]={
[f]="A appears multiple times in clauses on the same declare target directive",
[d]=l,
[e]=k,
[j]="%0 appears multiple times in clauses on the same declare target directive",
[c]=m,
[b]="(.*?) appears multiple times in clauses on the same declare target directive",
[i]=a,
[h]=o,
[g]={"d69b505e3c67",1462805953,"[OpenMP] Parse+Sema for \'#pragma omp declare target\' syntax version 4.5"}
},
["err_omp_declare_target_to_and_link"]={
[f]="A must not appear in both clauses \'to\' and \'link\'",
[d]=l,
[e]=k,
[j]="%0 must not appear in both clauses \'to\' and \'link\'",
[c]=m,
[b]="(.*?) must not appear in both clauses \'to\' and \'link\'",
[i]=a,
[h]=u,
[g]={"d69b505e3c67",1462805953,"[OpenMP] Parse+Sema for \'#pragma omp declare target\' syntax version 4.5"}
},
["err_omp_declare_target_unexpected_clause"]={
[f]="unexpected \'A\' clause, only ... clauses expected",
[d]=l,
[e]=k,
[j]="unexpected \'%0\' clause, only %select{\'device_type\'|\'to\' or \'link\'|\'to\', \'link\' or \'device_type\'|\'device_type\', \'indirect\'|\'to\', \'link\', \'device_type\' or \'indirect\'}1 clauses expected",
[c]=m,
[b]="unexpected \'(.*?)\' clause, only (?:\'device_type\'|\'to\' or \'link\'|\'to\', \'link\' or \'device_type\'|\'device_type\', \'indirect\'|\'to\', \'link\', \'device_type\' or \'indirect\') clauses expected",
[i]=a,
[h]=o,
[g]={"d69b505e3c67",1462805953,"[OpenMP] Parse+Sema for \'#pragma omp declare target\' syntax version 4.5"}
},
["err_omp_declare_target_unexpected_clause_52"]={
[f]="unexpected \'A\' clause, only ... clauses expected",
[d]=l,
[e]=k,
[j]="unexpected \'%0\' clause, only %select{\'device_type\'|\'enter\' or \'link\'|\'enter\', \'link\' or \'device_type\'|\'device_type\', \'indirect\'|\'enter\', \'link\', \'device_type\' or \'indirect\'}1 clauses expected",
[c]=m,
[b]="unexpected \'(.*?)\' clause, only (?:\'device_type\'|\'enter\' or \'link\'|\'enter\', \'link\' or \'device_type\'|\'device_type\', \'indirect\'|\'enter\', \'link\', \'device_type\' or \'indirect\') clauses expected",
[i]=a,
[h]=o,
[g]={Zb,1668641028,Xb}
},
["err_omp_declare_target_unexpected_enter_clause"]={
[f]="unexpected \'enter\' clause, use \'to\' instead",
[d]=l,
[e]=k,
[j]="unexpected \'enter\' clause, use \'to\' instead",
[c]=m,
[b]="unexpected \'enter\' clause, use \'to\' instead",
[i]=a,
[h]=o,
[g]={Zb,1668641028,Xb}
},
["err_omp_declare_target_unexpected_to_clause"]={
[f]="unexpected \'to\' clause, use \'enter\' instead",
[d]=l,
[e]=k,
[j]="unexpected \'to\' clause, use \'enter\' instead",
[c]=m,
[b]="unexpected \'to\' clause, use \'enter\' instead",
[i]=a,
[h]=o,
[g]={Zb,1668641028,Xb}
},
["err_omp_declare_target_wrong_clause_after_implicit_enter"]={
[f]="unexpected clause after an implicit \'enter\' clause",
[d]=l,
[e]=k,
[j]="unexpected clause after an implicit \'enter\' clause",
[c]=m,
[b]="unexpected clause after an implicit \'enter\' clause",
[i]=a,
[h]=o,
[g]={Zb,1668641028,Xb}
},
["err_omp_declare_target_wrong_clause_after_implicit_to"]={
[f]="unexpected clause after an implicit \'to\' clause",
[d]=l,
[e]=k,
[j]="unexpected clause after an implicit \'to\' clause",
[c]=m,
[b]="unexpected clause after an implicit \'to\' clause",
[i]=a,
[h]=o,
[g]={Zb,1668641028,Xb}
},
["err_omp_declare_variant_diff"]={
[f]="function with \'#pragma omp declare variant\' has a different ...",
[d]=l,
[e]=k,
[j]="function with \'#pragma omp declare variant\' has a different %select{calling convention|return type|constexpr specification|inline specification|storage class|linkage}0",
[c]=m,
[b]="function with \'\\#pragma omp declare variant\' has a different (?:calling convention|return type|constexpr specification|inline specification|storage class|linkage)",
[i]=a,
[h]=u,
[g]={cb,1567434909,eb}
},
["err_omp_declare_variant_doesnt_support"]={
[f]="\'#pragma omp declare variant\' does not support ...",
[d]=l,
[e]=k,
[j]="\'#pragma omp declare variant\' does not support %select{function templates|virtual functions|deduced return types|constructors|destructors|deleted functions|defaulted functions|constexpr functions|consteval function}0",
[c]=m,
[b]="\'\\#pragma omp declare variant\' does not support (?:function templates|virtual functions|deduced return types|constructors|destructors|deleted functions|defaulted functions|constexpr functions|consteval function)",
[i]=a,
[h]=u,
[g]={cb,1567434909,eb}
},
["err_omp_declare_variant_duplicate_nested_trait"]={
[f]="nested OpenMP context selector contains duplicated trait \'A\' in selector \'B\' and set \'C\' with different score",
[d]=l,
[e]=k,
[j]="nested OpenMP context selector contains duplicated trait \'%0\' in selector \'%1\' and set \'%2\' with different score",
[c]=m,
[b]="nested OpenMP context selector contains duplicated trait \'(.*?)\' in selector \'(.*?)\' and set \'(.*?)\' with different score",
[i]=a,
[h]=o,
[g]={"5c63ae156e96",1597298751,"[OpenMP] Support nested OpenMP context selectors (declare variant)"}
},
["err_omp_declare_variant_incompat_attributes"]={
[f]="\'#pragma omp declare variant\' is not compatible with any target-specific attributes",
[d]=l,
[e]=k,
[j]="\'#pragma omp declare variant\' is not compatible with any target-specific attributes",
[c]=m,
[b]="\'\\#pragma omp declare variant\' is not compatible with any target\\-specific attributes",
[i]=a,
[h]=u,
[g]={cb,1567434909,eb}
},
["err_omp_declare_variant_incompat_types"]={
[f]="variant in \'#pragma omp declare variant\' with type A is incompatible with type B...",
[d]=l,
[e]=k,
[j]="variant in \'#pragma omp declare variant\' with type %0 is incompatible with type %1%select{| with appended arguments}2",
[c]=m,
[b]="variant in \'\\#pragma omp declare variant\' with type (.*?) is incompatible with type (.*?)(?:| with appended arguments)",
[i]=a,
[h]=u,
[g]={cb,1567434909,eb}
},
["err_omp_declare_variant_nested_user_condition"]={
[f]="nested user conditions in OpenMP context selector not supported (yet)",
[d]=l,
[e]=k,
[j]="nested user conditions in OpenMP context selector not supported (yet)",
[c]=m,
[b]="nested user conditions in OpenMP context selector not supported \\(yet\\)",
[i]=a,
[h]=o,
[g]={"5c63ae156e96",1597298751,"[OpenMP] Support nested OpenMP context selectors (declare variant)"}
},
["err_omp_declare_variant_prototype_required"]={
[f]="function with \'#pragma omp declare variant\' must have a prototype when \'append_args\' is used",
[d]=l,
[e]=k,
[j]="function with \'#pragma omp declare variant\' must have a prototype when \'append_args\' is used",
[c]=m,
[b]="function with \'\\#pragma omp declare variant\' must have a prototype when \'append_args\' is used",
[i]=a,
[h]=u,
[g]={R,1616787805,S}
},
["err_omp_declare_variant_same_base_function"]={
[f]="variant in \'#pragma omp declare variant\' is the same as the base function",
[d]=l,
[e]=k,
[j]="variant in \'#pragma omp declare variant\' is the same as the base function",
[c]=m,
[b]="variant in \'\\#pragma omp declare variant\' is the same as the base function",
[i]=a,
[h]=u,
[g]={R,1616787805,S}
},
["err_omp_declare_variant_user_condition_not_constant"]={
[f]="the user condition in the OpenMP context selector needs to be constant; A is not",
[d]=l,
[e]=k,
[j]="the user condition in the OpenMP context selector needs to be constant; %0 is not",
[c]=m,
[b]="the user condition in the OpenMP context selector needs to be constant; (.*?) is not",
[i]=a,
[h]=u,
[g]={mb,1576809732,lb}
},
["err_omp_declare_variant_wrong_clause"]={
[f]="expected ... clause on \'omp declare variant\' directive",
[d]=l,
[e]=k,
[j]="expected %select{\'match\'|\'match\', \'adjust_args\', or \'append_args\'}0 clause on \'omp declare variant\' directive",
[c]=m,
[b]="expected (?:\'match\'|\'match\', \'adjust_args\', or \'append_args\') clause on \'omp declare variant\' directive",
[i]=a,
[h]=o,
[g]={"d158cf64d64b",1568405897,"[OPENMP5.0]Add basic support for declare variant directive."}
},
["err_omp_defaultmap_no_attr_for_variable"]={
[f]="variable A must have explicitly specified data sharing attributes, data mapping attributes, or in an is_device_ptr clause",
[d]=l,
[e]=k,
[j]="variable %0 must have explicitly specified data sharing attributes, data mapping attributes, or in an is_device_ptr clause",
[c]=m,
[b]="variable (.*?) must have explicitly specified data sharing attributes, data mapping attributes, or in an is_device_ptr clause",
[i]=a,
[h]=u,
[g]={bb,1573050950,db}
},
["err_omp_depend_clause_thread_simd"]={
[f]="\'A\' clauses cannot be mixed with \'B\' clause",
[d]=l,
[e]=k,
[j]="\'%0\' clauses cannot be mixed with \'%1\' clause",
[c]=m,
[b]="\'(.*?)\' clauses cannot be mixed with \'(.*?)\' clause",
[i]=a,
[h]=u,
[g]={"eb4823503331",1450415156,"[OPENMP 4.5] Parsing/sema analysis for \'depend(source)\' clause in \'ordered\' directive."}
},
["err_omp_depend_modifier_not_iterator"]={
[f]="expected iterator specification as depend modifier",
[d]=l,
[e]=k,
[j]="expected iterator specification as depend modifier",
[c]=m,
[b]="expected iterator specification as depend modifier",
[i]=a,
[h]=u,
[g]={C,1576908663,B}
},
["err_omp_depend_sink_expected_loop_iteration"]={
[f]="expected... loop iteration variable",
[d]=l,
[e]=k,
[j]="expected%select{| %1}0 loop iteration variable",
[c]=m,
[b]="expected(?:| (.*?)) loop iteration variable",
[i]=a,
[h]=u,
[g]={"ef4c5584d59d",1450786907,"[OPENMP 4.5] Parsing/sema for \'depend(sink:vec)\' clause in \'ordered\' directive."}
},
["err_omp_depend_sink_expected_plus_minus"]={
[f]="expected \'+\' or \'-\' operation",
[d]=l,
[e]=k,
[j]="expected \'+\' or \'-\' operation",
[c]=m,
[b]="expected \'\\+\' or \'\\-\' operation",
[i]=a,
[h]=u,
[g]={"ef4c5584d59d",1450786907,"[OPENMP 4.5] Parsing/sema for \'depend(sink:vec)\' clause in \'ordered\' directive."}
},
["err_omp_depend_sink_source_with_modifier"]={
[f]="depend modifier cannot be used with \'sink\' or \'source\' depend type",
[d]=l,
[e]=k,
[j]="depend modifier cannot be used with \'sink\' or \'source\' depend type",
[c]=m,
[b]="depend modifier cannot be used with \'sink\' or \'source\' depend type",
[i]=a,
[h]=u,
[g]={C,1576908663,B}
},
["err_omp_depend_sink_unexpected_expr"]={
[f]="unexpected expression: number of expressions is larger than the number of associated loops",
[d]=l,
[e]=k,
[j]="unexpected expression: number of expressions is larger than the number of associated loops",
[c]=m,
[b]="unexpected expression\\: number of expressions is larger than the number of associated loops",
[i]=a,
[h]=u,
[g]={"ef4c5584d59d",1450786907,"[OPENMP 4.5] Parsing/sema for \'depend(sink:vec)\' clause in \'ordered\' directive."}
},
["err_omp_depend_zero_length_array_section_not_allowed"]={
[f]="zero-length array section is not allowed in \'depend\' clause",
[d]=l,
[e]=k,
[j]="zero-length array section is not allowed in \'depend\' clause",
[c]=m,
[b]="zero\\-length array section is not allowed in \'depend\' clause",
[i]=a,
[h]=u,
[g]={tc,1575555459,oc}
},
["err_omp_depobj_expected"]={
[f]="expected depobj expression",
[d]=l,
[e]=k,
[j]="expected depobj expression",
[c]=m,
[b]="expected depobj expression",
[i]=a,
[h]=u,
[g]={C,1576908663,B}
},
["err_omp_depobj_single_clause_expected"]={
[f]="exactly one of \'depend\', \'destroy\', or \'update\' clauses is expected",
[d]=l,
[e]=k,
[j]="exactly one of \'depend\', \'destroy\', or \'update\' clauses is expected",
[c]=m,
[b]="exactly one of \'depend\', \'destroy\', or \'update\' clauses is expected",
[i]=a,
[h]=u,
[g]={C,1576908663,B}
},
["err_omp_device_ancestor_without_requires_reverse_offload"]={
[f]="Device clause with ancestor device-modifier used without specifying \'requires reverse_offload\'",
[d]=l,
[e]=k,
[j]="Device clause with ancestor device-modifier used without specifying \'requires reverse_offload\'",
[c]=m,
[b]="Device clause with ancestor device\\-modifier used without specifying \'requires reverse_offload\'",
[i]=a,
[h]=u,
[g]={R,1616787805,S}
},
["err_omp_device_type_mismatch"]={
[f]="\'device_type(A)\' does not match previously specified \'device_type(B)\' for the same declaration",
[d]=l,
[e]=k,
[j]="\'device_type(%0)\' does not match previously specified \'device_type(%1)\' for the same declaration",
[c]=m,
[b]="\'device_type\\((.*?)\\)\' does not match previously specified \'device_type\\((.*?)\\)\' for the same declaration",
[i]=a,
[h]=u,
[g]={"729e242a7972",1566576674,"[OPENMP5.0]Add support for device_type clause in declare target"}
},
["err_omp_directive_before_requires"]={
[f]="\'A\' region encountered before requires directive with \'B\' clause",
[d]=l,
[e]=k,
[j]="\'%0\' region encountered before requires directive with \'%1\' clause",
[c]=m,
[b]="\'(.*?)\' region encountered before requires directive with \'(.*?)\' clause",
[i]=a,
[h]=u,
[g]={mb,1576809732,lb}
},
["err_omp_dispatch_statement_call"]={
[f]="statement after \'#pragma omp dispatch\' must be a direct call to a target function or an assignment to one",
[d]=l,
[e]=k,
[j]="statement after \'#pragma omp dispatch\' must be a direct call to a target function or an assignment to one",
[c]=m,
[b]="statement after \'\\#pragma omp dispatch\' must be a direct call to a target function or an assignment to one",
[i]=a,
[h]=u,
[g]={Z,1590001902,ab}
},
["err_omp_duplicate_map_type_modifier"]={
[f]="same map type modifier has been specified more than once",
[d]=l,
[e]=k,
[j]="same map type modifier has been specified more than once",
[c]=m,
[b]="same map type modifier has been specified more than once",
[i]=a,
[h]=u,
[g]={"ef57943e3fba",1545171521,"[OPENMP] parsing and sema support for \'close\' map-type-modifier"}
},
["err_omp_duplicate_motion_modifier"]={
[f]="same motion modifier has been specified more than once",
[d]=l,
[e]=k,
[j]="same motion modifier has been specified more than once",
[c]=m,
[b]="same motion modifier has been specified more than once",
[i]=a,
[h]=u,
[g]={G,1582847864,I}
},
["err_omp_expected_access_to_data_field"]={
[f]="expected access to data field",
[d]=l,
[e]=k,
[j]="expected access to data field",
[c]=m,
[b]="expected access to data field",
[i]=a,
[h]=u,
[g]={"5de996e3bd79",1453494096,"[OpenMP] Update map clause SEMA to support OpenMP 4.5 possible list items."}
}
}
};
};
Bots, Bureaucrats, Interface administrators, smwadministrator, smwcurator, smweditor, Administrators
2,557

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu