Lines Matching defs:FTI

3280   const DeclaratorChunk::FunctionTypeInfo &FTI =
3282 if (FTI.hasTrailingReturnType()) {
3285 FTI.getTrailingReturnTypeLoc());
3784 const DeclaratorChunk::FunctionTypeInfo &FTI = DeclType.Fun;
3785 assert(FTI.isAmbiguous && "no direct-initializer / function ambiguity");
3792 if (!RT->isRecordType() && FTI.NumParams > 1)
3796 if (RT->isReferenceType() && FTI.NumParams != 1)
3815 FTI.NumParams ? diag::warn_parens_disambiguated_as_function_declaration
3839 if (FTI.NumParams > 0) {
3843 SourceRange Range = FTI.Params[0].Param->getSourceRange();
4000 const DeclaratorChunk::FunctionTypeInfo &FTI, unsigned ChunkIndex) {
4012 (!FTI.isVariadic || supportsVariadicCall(CC))) {
4059 CallingConv CC = S.Context.getDefaultCallingConvention(FTI.isVariadic,
5129 DeclaratorChunk::FunctionTypeInfo &FTI = DeclType.Fun;
5131 FTI.hasMethodTypeQualifiers() || FTI.hasRefQualifier();
5139 !FTI.hasTrailingReturnType() && chunkIndex == 0) {
5151 } else if (FTI.hasTrailingReturnType()) {
5175 T = S.GetTypeFromParser(FTI.getTrailingReturnType(), &TInfo);
5246 if (FTI.isVariadic &&
5352 if (IsTypedefName && FTI.getExceptionSpecType() && !LangOpts.CPlusPlus17)
5353 S.Diag(FTI.getExceptionSpecLocBeg(),
5360 if (FTI.isAmbiguous)
5364 getCCForDeclaratorChunk(S, D, DeclType.getAttrs(), FTI, chunkIndex));
5369 if (!FTI.NumParams && !FTI.isVariadic &&
5377 if (!FTI.NumParams && FTI.isVariadic && !LangOpts.CPlusPlus) {
5379 S.Diag(FTI.getEllipsisLoc(),
5387 S.Diag(FTI.getEllipsisLoc(), diag::err_ellipsis_first_param);
5390 if (FTI.NumParams && FTI.Params[0].Param == nullptr) {
5393 S.Diag(FTI.Params[0].IdentLoc,
5405 EPI.Variadic = FTI.isVariadic;
5406 EPI.EllipsisLoc = FTI.getEllipsisLoc();
5407 EPI.HasTrailingReturn = FTI.hasTrailingReturnType();
5409 FTI.MethodQualifiers ? FTI.MethodQualifiers->getTypeQualifiers()
5411 EPI.RefQualifier = !FTI.hasRefQualifier()? RQ_None
5412 : FTI.RefQualifierIsLValueRef? RQ_LValue
5418 ParamTys.reserve(FTI.NumParams);
5421 ExtParameterInfos(FTI.NumParams);
5424 for (unsigned i = 0, e = FTI.NumParams; i != e; ++i) {
5425 ParmVarDecl *Param = cast<ParmVarDecl>(FTI.Params[i].Param);
5436 if (FTI.NumParams != 1 || FTI.isVariadic) {
5437 S.Diag(FTI.Params[i].IdentLoc, diag::err_void_only_param);
5440 } else if (FTI.Params[i].Ident) {
5442 S.Diag(FTI.Params[i].IdentLoc, diag::err_param_with_void_type);
5470 } else if (!FTI.hasPrototype) {
5514 [&](unsigned i) { return FTI.Params[i].Param->getLocation(); });
5522 if (FTI.getExceptionSpecType() == EST_Dynamic) {
5525 unsigned N = FTI.getNumExceptions();
5529 DynamicExceptions.push_back(FTI.Exceptions[I].Ty);
5530 DynamicExceptionRanges.push_back(FTI.Exceptions[I].Range);
5532 } else if (isComputedNoexcept(FTI.getExceptionSpecType())) {
5533 NoexceptExpr = FTI.NoexceptExpr;
5537 FTI.getExceptionSpecType(),
5562 if (FTI.MethodQualifiers)
5563 for (ParsedAttr &attr : FTI.MethodQualifiers->getAttributes()) {
5689 const DeclaratorChunk::FunctionTypeInfo &FTI = DeclType.Fun;
5694 if (!FTI.hasPrototype && FTI.NumParams == 0 && !FTI.isVariadic &&
5695 FTI.getLParenLoc().isValid())
5698 << FixItHint::CreateInsertion(FTI.getRParenLoc(), "void");
6402 const DeclaratorChunk::FunctionTypeInfo &FTI = Chunk.Fun;
6403 TL.setLParenLoc(FTI.getLParenLoc());
6404 TL.setRParenLoc(FTI.getRParenLoc());
6406 ParmVarDecl *Param = cast<ParmVarDecl>(FTI.Params[i].Param);
6409 TL.setExceptionSpecRange(FTI.getExceptionSpecRange());