• Home
  • Raw
  • Download

Lines Matching refs:E

260 void ASTStmtWriter::VisitExpr(Expr *E) {  in VisitExpr()  argument
261 VisitStmt(E); in VisitExpr()
262 Writer.AddTypeRef(E->getType(), Record); in VisitExpr()
263 Record.push_back(E->isTypeDependent()); in VisitExpr()
264 Record.push_back(E->isValueDependent()); in VisitExpr()
265 Record.push_back(E->isInstantiationDependent()); in VisitExpr()
266 Record.push_back(E->containsUnexpandedParameterPack()); in VisitExpr()
267 Record.push_back(E->getValueKind()); in VisitExpr()
268 Record.push_back(E->getObjectKind()); in VisitExpr()
271 void ASTStmtWriter::VisitPredefinedExpr(PredefinedExpr *E) { in VisitPredefinedExpr() argument
272 VisitExpr(E); in VisitPredefinedExpr()
273 Writer.AddSourceLocation(E->getLocation(), Record); in VisitPredefinedExpr()
274 Record.push_back(E->getIdentType()); // FIXME: stable encoding in VisitPredefinedExpr()
278 void ASTStmtWriter::VisitDeclRefExpr(DeclRefExpr *E) { in VisitDeclRefExpr() argument
279 VisitExpr(E); in VisitDeclRefExpr()
281 Record.push_back(E->hasQualifier()); in VisitDeclRefExpr()
282 Record.push_back(E->getDecl() != E->getFoundDecl()); in VisitDeclRefExpr()
283 Record.push_back(E->hasTemplateKWAndArgsInfo()); in VisitDeclRefExpr()
284 Record.push_back(E->hadMultipleCandidates()); in VisitDeclRefExpr()
285 Record.push_back(E->refersToEnclosingLocal()); in VisitDeclRefExpr()
287 if (E->hasTemplateKWAndArgsInfo()) { in VisitDeclRefExpr()
288 unsigned NumTemplateArgs = E->getNumTemplateArgs(); in VisitDeclRefExpr()
292 DeclarationName::NameKind nk = (E->getDecl()->getDeclName().getNameKind()); in VisitDeclRefExpr()
294 if ((!E->hasTemplateKWAndArgsInfo()) && (!E->hasQualifier()) && in VisitDeclRefExpr()
295 (E->getDecl() == E->getFoundDecl()) && in VisitDeclRefExpr()
300 if (E->hasQualifier()) in VisitDeclRefExpr()
301 Writer.AddNestedNameSpecifierLoc(E->getQualifierLoc(), Record); in VisitDeclRefExpr()
303 if (E->getDecl() != E->getFoundDecl()) in VisitDeclRefExpr()
304 Writer.AddDeclRef(E->getFoundDecl(), Record); in VisitDeclRefExpr()
306 if (E->hasTemplateKWAndArgsInfo()) in VisitDeclRefExpr()
307 AddTemplateKWAndArgsInfo(*E->getTemplateKWAndArgsInfo()); in VisitDeclRefExpr()
309 Writer.AddDeclRef(E->getDecl(), Record); in VisitDeclRefExpr()
310 Writer.AddSourceLocation(E->getLocation(), Record); in VisitDeclRefExpr()
311 Writer.AddDeclarationNameLoc(E->DNLoc, E->getDecl()->getDeclName(), Record); in VisitDeclRefExpr()
315 void ASTStmtWriter::VisitIntegerLiteral(IntegerLiteral *E) { in VisitIntegerLiteral() argument
316 VisitExpr(E); in VisitIntegerLiteral()
317 Writer.AddSourceLocation(E->getLocation(), Record); in VisitIntegerLiteral()
318 Writer.AddAPInt(E->getValue(), Record); in VisitIntegerLiteral()
320 if (E->getValue().getBitWidth() == 32) { in VisitIntegerLiteral()
327 void ASTStmtWriter::VisitFloatingLiteral(FloatingLiteral *E) { in VisitFloatingLiteral() argument
328 VisitExpr(E); in VisitFloatingLiteral()
329 Writer.AddAPFloat(E->getValue(), Record); in VisitFloatingLiteral()
330 Record.push_back(E->isExact()); in VisitFloatingLiteral()
331 Writer.AddSourceLocation(E->getLocation(), Record); in VisitFloatingLiteral()
335 void ASTStmtWriter::VisitImaginaryLiteral(ImaginaryLiteral *E) { in VisitImaginaryLiteral() argument
336 VisitExpr(E); in VisitImaginaryLiteral()
337 Writer.AddStmt(E->getSubExpr()); in VisitImaginaryLiteral()
341 void ASTStmtWriter::VisitStringLiteral(StringLiteral *E) { in VisitStringLiteral() argument
342 VisitExpr(E); in VisitStringLiteral()
343 Record.push_back(E->getByteLength()); in VisitStringLiteral()
344 Record.push_back(E->getNumConcatenated()); in VisitStringLiteral()
345 Record.push_back(E->getKind()); in VisitStringLiteral()
346 Record.push_back(E->isPascal()); in VisitStringLiteral()
351 Record.append(E->getBytes().begin(), E->getBytes().end()); in VisitStringLiteral()
352 for (unsigned I = 0, N = E->getNumConcatenated(); I != N; ++I) in VisitStringLiteral()
353 Writer.AddSourceLocation(E->getStrTokenLoc(I), Record); in VisitStringLiteral()
357 void ASTStmtWriter::VisitCharacterLiteral(CharacterLiteral *E) { in VisitCharacterLiteral() argument
358 VisitExpr(E); in VisitCharacterLiteral()
359 Record.push_back(E->getValue()); in VisitCharacterLiteral()
360 Writer.AddSourceLocation(E->getLocation(), Record); in VisitCharacterLiteral()
361 Record.push_back(E->getKind()); in VisitCharacterLiteral()
368 void ASTStmtWriter::VisitParenExpr(ParenExpr *E) { in VisitParenExpr() argument
369 VisitExpr(E); in VisitParenExpr()
370 Writer.AddSourceLocation(E->getLParen(), Record); in VisitParenExpr()
371 Writer.AddSourceLocation(E->getRParen(), Record); in VisitParenExpr()
372 Writer.AddStmt(E->getSubExpr()); in VisitParenExpr()
376 void ASTStmtWriter::VisitParenListExpr(ParenListExpr *E) { in VisitParenListExpr() argument
377 VisitExpr(E); in VisitParenListExpr()
378 Record.push_back(E->NumExprs); in VisitParenListExpr()
379 for (unsigned i=0; i != E->NumExprs; ++i) in VisitParenListExpr()
380 Writer.AddStmt(E->Exprs[i]); in VisitParenListExpr()
381 Writer.AddSourceLocation(E->LParenLoc, Record); in VisitParenListExpr()
382 Writer.AddSourceLocation(E->RParenLoc, Record); in VisitParenListExpr()
386 void ASTStmtWriter::VisitUnaryOperator(UnaryOperator *E) { in VisitUnaryOperator() argument
387 VisitExpr(E); in VisitUnaryOperator()
388 Writer.AddStmt(E->getSubExpr()); in VisitUnaryOperator()
389 Record.push_back(E->getOpcode()); // FIXME: stable encoding in VisitUnaryOperator()
390 Writer.AddSourceLocation(E->getOperatorLoc(), Record); in VisitUnaryOperator()
394 void ASTStmtWriter::VisitOffsetOfExpr(OffsetOfExpr *E) { in VisitOffsetOfExpr() argument
395 VisitExpr(E); in VisitOffsetOfExpr()
396 Record.push_back(E->getNumComponents()); in VisitOffsetOfExpr()
397 Record.push_back(E->getNumExpressions()); in VisitOffsetOfExpr()
398 Writer.AddSourceLocation(E->getOperatorLoc(), Record); in VisitOffsetOfExpr()
399 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitOffsetOfExpr()
400 Writer.AddTypeSourceInfo(E->getTypeSourceInfo(), Record); in VisitOffsetOfExpr()
401 for (unsigned I = 0, N = E->getNumComponents(); I != N; ++I) { in VisitOffsetOfExpr()
402 const OffsetOfExpr::OffsetOfNode &ON = E->getComponent(I); in VisitOffsetOfExpr()
424 for (unsigned I = 0, N = E->getNumExpressions(); I != N; ++I) in VisitOffsetOfExpr()
425 Writer.AddStmt(E->getIndexExpr(I)); in VisitOffsetOfExpr()
429 void ASTStmtWriter::VisitUnaryExprOrTypeTraitExpr(UnaryExprOrTypeTraitExpr *E) { in VisitUnaryExprOrTypeTraitExpr() argument
430 VisitExpr(E); in VisitUnaryExprOrTypeTraitExpr()
431 Record.push_back(E->getKind()); in VisitUnaryExprOrTypeTraitExpr()
432 if (E->isArgumentType()) in VisitUnaryExprOrTypeTraitExpr()
433 Writer.AddTypeSourceInfo(E->getArgumentTypeInfo(), Record); in VisitUnaryExprOrTypeTraitExpr()
436 Writer.AddStmt(E->getArgumentExpr()); in VisitUnaryExprOrTypeTraitExpr()
438 Writer.AddSourceLocation(E->getOperatorLoc(), Record); in VisitUnaryExprOrTypeTraitExpr()
439 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitUnaryExprOrTypeTraitExpr()
443 void ASTStmtWriter::VisitArraySubscriptExpr(ArraySubscriptExpr *E) { in VisitArraySubscriptExpr() argument
444 VisitExpr(E); in VisitArraySubscriptExpr()
445 Writer.AddStmt(E->getLHS()); in VisitArraySubscriptExpr()
446 Writer.AddStmt(E->getRHS()); in VisitArraySubscriptExpr()
447 Writer.AddSourceLocation(E->getRBracketLoc(), Record); in VisitArraySubscriptExpr()
451 void ASTStmtWriter::VisitCallExpr(CallExpr *E) { in VisitCallExpr() argument
452 VisitExpr(E); in VisitCallExpr()
453 Record.push_back(E->getNumArgs()); in VisitCallExpr()
454 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitCallExpr()
455 Writer.AddStmt(E->getCallee()); in VisitCallExpr()
456 for (CallExpr::arg_iterator Arg = E->arg_begin(), ArgEnd = E->arg_end(); in VisitCallExpr()
462 void ASTStmtWriter::VisitMemberExpr(MemberExpr *E) { in VisitMemberExpr() argument
465 Record.push_back(E->hasQualifier()); in VisitMemberExpr()
466 if (E->hasQualifier()) in VisitMemberExpr()
467 Writer.AddNestedNameSpecifierLoc(E->getQualifierLoc(), Record); in VisitMemberExpr()
469 Record.push_back(E->HasTemplateKWAndArgsInfo); in VisitMemberExpr()
470 if (E->HasTemplateKWAndArgsInfo) { in VisitMemberExpr()
471 Writer.AddSourceLocation(E->getTemplateKeywordLoc(), Record); in VisitMemberExpr()
472 unsigned NumTemplateArgs = E->getNumTemplateArgs(); in VisitMemberExpr()
474 Writer.AddSourceLocation(E->getLAngleLoc(), Record); in VisitMemberExpr()
475 Writer.AddSourceLocation(E->getRAngleLoc(), Record); in VisitMemberExpr()
477 Writer.AddTemplateArgumentLoc(E->getTemplateArgs()[i], Record); in VisitMemberExpr()
480 Record.push_back(E->hadMultipleCandidates()); in VisitMemberExpr()
482 DeclAccessPair FoundDecl = E->getFoundDecl(); in VisitMemberExpr()
486 Writer.AddTypeRef(E->getType(), Record); in VisitMemberExpr()
487 Record.push_back(E->getValueKind()); in VisitMemberExpr()
488 Record.push_back(E->getObjectKind()); in VisitMemberExpr()
489 Writer.AddStmt(E->getBase()); in VisitMemberExpr()
490 Writer.AddDeclRef(E->getMemberDecl(), Record); in VisitMemberExpr()
491 Writer.AddSourceLocation(E->getMemberLoc(), Record); in VisitMemberExpr()
492 Record.push_back(E->isArrow()); in VisitMemberExpr()
493 Writer.AddDeclarationNameLoc(E->MemberDNLoc, in VisitMemberExpr()
494 E->getMemberDecl()->getDeclName(), Record); in VisitMemberExpr()
498 void ASTStmtWriter::VisitObjCIsaExpr(ObjCIsaExpr *E) { in VisitObjCIsaExpr() argument
499 VisitExpr(E); in VisitObjCIsaExpr()
500 Writer.AddStmt(E->getBase()); in VisitObjCIsaExpr()
501 Writer.AddSourceLocation(E->getIsaMemberLoc(), Record); in VisitObjCIsaExpr()
502 Record.push_back(E->isArrow()); in VisitObjCIsaExpr()
507 VisitObjCIndirectCopyRestoreExpr(ObjCIndirectCopyRestoreExpr *E) { in VisitObjCIndirectCopyRestoreExpr() argument
508 VisitExpr(E); in VisitObjCIndirectCopyRestoreExpr()
509 Writer.AddStmt(E->getSubExpr()); in VisitObjCIndirectCopyRestoreExpr()
510 Record.push_back(E->shouldCopy()); in VisitObjCIndirectCopyRestoreExpr()
514 void ASTStmtWriter::VisitObjCBridgedCastExpr(ObjCBridgedCastExpr *E) { in VisitObjCBridgedCastExpr() argument
515 VisitExplicitCastExpr(E); in VisitObjCBridgedCastExpr()
516 Writer.AddSourceLocation(E->getLParenLoc(), Record); in VisitObjCBridgedCastExpr()
517 Writer.AddSourceLocation(E->getBridgeKeywordLoc(), Record); in VisitObjCBridgedCastExpr()
518 Record.push_back(E->getBridgeKind()); // FIXME: Stable encoding in VisitObjCBridgedCastExpr()
522 void ASTStmtWriter::VisitCastExpr(CastExpr *E) { in VisitCastExpr() argument
523 VisitExpr(E); in VisitCastExpr()
524 Record.push_back(E->path_size()); in VisitCastExpr()
525 Writer.AddStmt(E->getSubExpr()); in VisitCastExpr()
526 Record.push_back(E->getCastKind()); // FIXME: stable encoding in VisitCastExpr()
529 PI = E->path_begin(), PE = E->path_end(); PI != PE; ++PI) in VisitCastExpr()
533 void ASTStmtWriter::VisitBinaryOperator(BinaryOperator *E) { in VisitBinaryOperator() argument
534 VisitExpr(E); in VisitBinaryOperator()
535 Writer.AddStmt(E->getLHS()); in VisitBinaryOperator()
536 Writer.AddStmt(E->getRHS()); in VisitBinaryOperator()
537 Record.push_back(E->getOpcode()); // FIXME: stable encoding in VisitBinaryOperator()
538 Writer.AddSourceLocation(E->getOperatorLoc(), Record); in VisitBinaryOperator()
542 void ASTStmtWriter::VisitCompoundAssignOperator(CompoundAssignOperator *E) { in VisitCompoundAssignOperator() argument
543 VisitBinaryOperator(E); in VisitCompoundAssignOperator()
544 Writer.AddTypeRef(E->getComputationLHSType(), Record); in VisitCompoundAssignOperator()
545 Writer.AddTypeRef(E->getComputationResultType(), Record); in VisitCompoundAssignOperator()
549 void ASTStmtWriter::VisitConditionalOperator(ConditionalOperator *E) { in VisitConditionalOperator() argument
550 VisitExpr(E); in VisitConditionalOperator()
551 Writer.AddStmt(E->getCond()); in VisitConditionalOperator()
552 Writer.AddStmt(E->getLHS()); in VisitConditionalOperator()
553 Writer.AddStmt(E->getRHS()); in VisitConditionalOperator()
554 Writer.AddSourceLocation(E->getQuestionLoc(), Record); in VisitConditionalOperator()
555 Writer.AddSourceLocation(E->getColonLoc(), Record); in VisitConditionalOperator()
560 ASTStmtWriter::VisitBinaryConditionalOperator(BinaryConditionalOperator *E) { in VisitBinaryConditionalOperator() argument
561 VisitExpr(E); in VisitBinaryConditionalOperator()
562 Writer.AddStmt(E->getOpaqueValue()); in VisitBinaryConditionalOperator()
563 Writer.AddStmt(E->getCommon()); in VisitBinaryConditionalOperator()
564 Writer.AddStmt(E->getCond()); in VisitBinaryConditionalOperator()
565 Writer.AddStmt(E->getTrueExpr()); in VisitBinaryConditionalOperator()
566 Writer.AddStmt(E->getFalseExpr()); in VisitBinaryConditionalOperator()
567 Writer.AddSourceLocation(E->getQuestionLoc(), Record); in VisitBinaryConditionalOperator()
568 Writer.AddSourceLocation(E->getColonLoc(), Record); in VisitBinaryConditionalOperator()
572 void ASTStmtWriter::VisitImplicitCastExpr(ImplicitCastExpr *E) { in VisitImplicitCastExpr() argument
573 VisitCastExpr(E); in VisitImplicitCastExpr()
577 void ASTStmtWriter::VisitExplicitCastExpr(ExplicitCastExpr *E) { in VisitExplicitCastExpr() argument
578 VisitCastExpr(E); in VisitExplicitCastExpr()
579 Writer.AddTypeSourceInfo(E->getTypeInfoAsWritten(), Record); in VisitExplicitCastExpr()
582 void ASTStmtWriter::VisitCStyleCastExpr(CStyleCastExpr *E) { in VisitCStyleCastExpr() argument
583 VisitExplicitCastExpr(E); in VisitCStyleCastExpr()
584 Writer.AddSourceLocation(E->getLParenLoc(), Record); in VisitCStyleCastExpr()
585 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitCStyleCastExpr()
589 void ASTStmtWriter::VisitCompoundLiteralExpr(CompoundLiteralExpr *E) { in VisitCompoundLiteralExpr() argument
590 VisitExpr(E); in VisitCompoundLiteralExpr()
591 Writer.AddSourceLocation(E->getLParenLoc(), Record); in VisitCompoundLiteralExpr()
592 Writer.AddTypeSourceInfo(E->getTypeSourceInfo(), Record); in VisitCompoundLiteralExpr()
593 Writer.AddStmt(E->getInitializer()); in VisitCompoundLiteralExpr()
594 Record.push_back(E->isFileScope()); in VisitCompoundLiteralExpr()
598 void ASTStmtWriter::VisitExtVectorElementExpr(ExtVectorElementExpr *E) { in VisitExtVectorElementExpr() argument
599 VisitExpr(E); in VisitExtVectorElementExpr()
600 Writer.AddStmt(E->getBase()); in VisitExtVectorElementExpr()
601 Writer.AddIdentifierRef(&E->getAccessor(), Record); in VisitExtVectorElementExpr()
602 Writer.AddSourceLocation(E->getAccessorLoc(), Record); in VisitExtVectorElementExpr()
606 void ASTStmtWriter::VisitInitListExpr(InitListExpr *E) { in VisitInitListExpr() argument
607 VisitExpr(E); in VisitInitListExpr()
608 Writer.AddStmt(E->getSyntacticForm()); in VisitInitListExpr()
609 Writer.AddSourceLocation(E->getLBraceLoc(), Record); in VisitInitListExpr()
610 Writer.AddSourceLocation(E->getRBraceLoc(), Record); in VisitInitListExpr()
611 bool isArrayFiller = E->ArrayFillerOrUnionFieldInit.is<Expr*>(); in VisitInitListExpr()
614 Writer.AddStmt(E->getArrayFiller()); in VisitInitListExpr()
616 Writer.AddDeclRef(E->getInitializedFieldInUnion(), Record); in VisitInitListExpr()
617 Record.push_back(E->hadArrayRangeDesignator()); in VisitInitListExpr()
618 Record.push_back(E->initializesStdInitializerList()); in VisitInitListExpr()
619 Record.push_back(E->getNumInits()); in VisitInitListExpr()
623 Expr *filler = E->getArrayFiller(); in VisitInitListExpr()
624 for (unsigned I = 0, N = E->getNumInits(); I != N; ++I) in VisitInitListExpr()
625 Writer.AddStmt(E->getInit(I) != filler ? E->getInit(I) : 0); in VisitInitListExpr()
627 for (unsigned I = 0, N = E->getNumInits(); I != N; ++I) in VisitInitListExpr()
628 Writer.AddStmt(E->getInit(I)); in VisitInitListExpr()
633 void ASTStmtWriter::VisitDesignatedInitExpr(DesignatedInitExpr *E) { in VisitDesignatedInitExpr() argument
634 VisitExpr(E); in VisitDesignatedInitExpr()
635 Record.push_back(E->getNumSubExprs()); in VisitDesignatedInitExpr()
636 for (unsigned I = 0, N = E->getNumSubExprs(); I != N; ++I) in VisitDesignatedInitExpr()
637 Writer.AddStmt(E->getSubExpr(I)); in VisitDesignatedInitExpr()
638 Writer.AddSourceLocation(E->getEqualOrColonLoc(), Record); in VisitDesignatedInitExpr()
639 Record.push_back(E->usesGNUSyntax()); in VisitDesignatedInitExpr()
640 for (DesignatedInitExpr::designators_iterator D = E->designators_begin(), in VisitDesignatedInitExpr()
641 DEnd = E->designators_end(); in VisitDesignatedInitExpr()
670 void ASTStmtWriter::VisitImplicitValueInitExpr(ImplicitValueInitExpr *E) { in VisitImplicitValueInitExpr() argument
671 VisitExpr(E); in VisitImplicitValueInitExpr()
675 void ASTStmtWriter::VisitVAArgExpr(VAArgExpr *E) { in VisitVAArgExpr() argument
676 VisitExpr(E); in VisitVAArgExpr()
677 Writer.AddStmt(E->getSubExpr()); in VisitVAArgExpr()
678 Writer.AddTypeSourceInfo(E->getWrittenTypeInfo(), Record); in VisitVAArgExpr()
679 Writer.AddSourceLocation(E->getBuiltinLoc(), Record); in VisitVAArgExpr()
680 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitVAArgExpr()
684 void ASTStmtWriter::VisitAddrLabelExpr(AddrLabelExpr *E) { in VisitAddrLabelExpr() argument
685 VisitExpr(E); in VisitAddrLabelExpr()
686 Writer.AddSourceLocation(E->getAmpAmpLoc(), Record); in VisitAddrLabelExpr()
687 Writer.AddSourceLocation(E->getLabelLoc(), Record); in VisitAddrLabelExpr()
688 Writer.AddDeclRef(E->getLabel(), Record); in VisitAddrLabelExpr()
692 void ASTStmtWriter::VisitStmtExpr(StmtExpr *E) { in VisitStmtExpr() argument
693 VisitExpr(E); in VisitStmtExpr()
694 Writer.AddStmt(E->getSubStmt()); in VisitStmtExpr()
695 Writer.AddSourceLocation(E->getLParenLoc(), Record); in VisitStmtExpr()
696 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitStmtExpr()
700 void ASTStmtWriter::VisitChooseExpr(ChooseExpr *E) { in VisitChooseExpr() argument
701 VisitExpr(E); in VisitChooseExpr()
702 Writer.AddStmt(E->getCond()); in VisitChooseExpr()
703 Writer.AddStmt(E->getLHS()); in VisitChooseExpr()
704 Writer.AddStmt(E->getRHS()); in VisitChooseExpr()
705 Writer.AddSourceLocation(E->getBuiltinLoc(), Record); in VisitChooseExpr()
706 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitChooseExpr()
710 void ASTStmtWriter::VisitGNUNullExpr(GNUNullExpr *E) { in VisitGNUNullExpr() argument
711 VisitExpr(E); in VisitGNUNullExpr()
712 Writer.AddSourceLocation(E->getTokenLocation(), Record); in VisitGNUNullExpr()
716 void ASTStmtWriter::VisitShuffleVectorExpr(ShuffleVectorExpr *E) { in VisitShuffleVectorExpr() argument
717 VisitExpr(E); in VisitShuffleVectorExpr()
718 Record.push_back(E->getNumSubExprs()); in VisitShuffleVectorExpr()
719 for (unsigned I = 0, N = E->getNumSubExprs(); I != N; ++I) in VisitShuffleVectorExpr()
720 Writer.AddStmt(E->getExpr(I)); in VisitShuffleVectorExpr()
721 Writer.AddSourceLocation(E->getBuiltinLoc(), Record); in VisitShuffleVectorExpr()
722 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitShuffleVectorExpr()
726 void ASTStmtWriter::VisitBlockExpr(BlockExpr *E) { in VisitBlockExpr() argument
727 VisitExpr(E); in VisitBlockExpr()
728 Writer.AddDeclRef(E->getBlockDecl(), Record); in VisitBlockExpr()
732 void ASTStmtWriter::VisitGenericSelectionExpr(GenericSelectionExpr *E) { in VisitGenericSelectionExpr() argument
733 VisitExpr(E); in VisitGenericSelectionExpr()
734 Record.push_back(E->getNumAssocs()); in VisitGenericSelectionExpr()
736 Writer.AddStmt(E->getControllingExpr()); in VisitGenericSelectionExpr()
737 for (unsigned I = 0, N = E->getNumAssocs(); I != N; ++I) { in VisitGenericSelectionExpr()
738 Writer.AddTypeSourceInfo(E->getAssocTypeSourceInfo(I), Record); in VisitGenericSelectionExpr()
739 Writer.AddStmt(E->getAssocExpr(I)); in VisitGenericSelectionExpr()
741 Record.push_back(E->isResultDependent() ? -1U : E->getResultIndex()); in VisitGenericSelectionExpr()
743 Writer.AddSourceLocation(E->getGenericLoc(), Record); in VisitGenericSelectionExpr()
744 Writer.AddSourceLocation(E->getDefaultLoc(), Record); in VisitGenericSelectionExpr()
745 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitGenericSelectionExpr()
749 void ASTStmtWriter::VisitPseudoObjectExpr(PseudoObjectExpr *E) { in VisitPseudoObjectExpr() argument
750 VisitExpr(E); in VisitPseudoObjectExpr()
751 Record.push_back(E->getNumSemanticExprs()); in VisitPseudoObjectExpr()
755 unsigned result = E->getResultExprIndex(); in VisitPseudoObjectExpr()
759 Writer.AddStmt(E->getSyntacticForm()); in VisitPseudoObjectExpr()
761 i = E->semantics_begin(), e = E->semantics_end(); i != e; ++i) { in VisitPseudoObjectExpr()
767 void ASTStmtWriter::VisitAtomicExpr(AtomicExpr *E) { in VisitAtomicExpr() argument
768 VisitExpr(E); in VisitAtomicExpr()
769 Record.push_back(E->getOp()); in VisitAtomicExpr()
770 for (unsigned I = 0, N = E->getNumSubExprs(); I != N; ++I) in VisitAtomicExpr()
771 Writer.AddStmt(E->getSubExprs()[I]); in VisitAtomicExpr()
772 Writer.AddSourceLocation(E->getBuiltinLoc(), Record); in VisitAtomicExpr()
773 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitAtomicExpr()
781 void ASTStmtWriter::VisitObjCStringLiteral(ObjCStringLiteral *E) { in VisitObjCStringLiteral() argument
782 VisitExpr(E); in VisitObjCStringLiteral()
783 Writer.AddStmt(E->getString()); in VisitObjCStringLiteral()
784 Writer.AddSourceLocation(E->getAtLoc(), Record); in VisitObjCStringLiteral()
788 void ASTStmtWriter::VisitObjCBoxedExpr(ObjCBoxedExpr *E) { in VisitObjCBoxedExpr() argument
789 VisitExpr(E); in VisitObjCBoxedExpr()
790 Writer.AddStmt(E->getSubExpr()); in VisitObjCBoxedExpr()
791 Writer.AddDeclRef(E->getBoxingMethod(), Record); in VisitObjCBoxedExpr()
792 Writer.AddSourceRange(E->getSourceRange(), Record); in VisitObjCBoxedExpr()
796 void ASTStmtWriter::VisitObjCArrayLiteral(ObjCArrayLiteral *E) { in VisitObjCArrayLiteral() argument
797 VisitExpr(E); in VisitObjCArrayLiteral()
798 Record.push_back(E->getNumElements()); in VisitObjCArrayLiteral()
799 for (unsigned i = 0; i < E->getNumElements(); i++) in VisitObjCArrayLiteral()
800 Writer.AddStmt(E->getElement(i)); in VisitObjCArrayLiteral()
801 Writer.AddDeclRef(E->getArrayWithObjectsMethod(), Record); in VisitObjCArrayLiteral()
802 Writer.AddSourceRange(E->getSourceRange(), Record); in VisitObjCArrayLiteral()
806 void ASTStmtWriter::VisitObjCDictionaryLiteral(ObjCDictionaryLiteral *E) { in VisitObjCDictionaryLiteral() argument
807 VisitExpr(E); in VisitObjCDictionaryLiteral()
808 Record.push_back(E->getNumElements()); in VisitObjCDictionaryLiteral()
809 Record.push_back(E->HasPackExpansions); in VisitObjCDictionaryLiteral()
810 for (unsigned i = 0; i < E->getNumElements(); i++) { in VisitObjCDictionaryLiteral()
811 ObjCDictionaryElement Element = E->getKeyValueElement(i); in VisitObjCDictionaryLiteral()
814 if (E->HasPackExpansions) { in VisitObjCDictionaryLiteral()
823 Writer.AddDeclRef(E->getDictWithObjectsMethod(), Record); in VisitObjCDictionaryLiteral()
824 Writer.AddSourceRange(E->getSourceRange(), Record); in VisitObjCDictionaryLiteral()
828 void ASTStmtWriter::VisitObjCEncodeExpr(ObjCEncodeExpr *E) { in VisitObjCEncodeExpr() argument
829 VisitExpr(E); in VisitObjCEncodeExpr()
830 Writer.AddTypeSourceInfo(E->getEncodedTypeSourceInfo(), Record); in VisitObjCEncodeExpr()
831 Writer.AddSourceLocation(E->getAtLoc(), Record); in VisitObjCEncodeExpr()
832 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitObjCEncodeExpr()
836 void ASTStmtWriter::VisitObjCSelectorExpr(ObjCSelectorExpr *E) { in VisitObjCSelectorExpr() argument
837 VisitExpr(E); in VisitObjCSelectorExpr()
838 Writer.AddSelectorRef(E->getSelector(), Record); in VisitObjCSelectorExpr()
839 Writer.AddSourceLocation(E->getAtLoc(), Record); in VisitObjCSelectorExpr()
840 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitObjCSelectorExpr()
844 void ASTStmtWriter::VisitObjCProtocolExpr(ObjCProtocolExpr *E) { in VisitObjCProtocolExpr() argument
845 VisitExpr(E); in VisitObjCProtocolExpr()
846 Writer.AddDeclRef(E->getProtocol(), Record); in VisitObjCProtocolExpr()
847 Writer.AddSourceLocation(E->getAtLoc(), Record); in VisitObjCProtocolExpr()
848 Writer.AddSourceLocation(E->ProtoLoc, Record); in VisitObjCProtocolExpr()
849 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitObjCProtocolExpr()
853 void ASTStmtWriter::VisitObjCIvarRefExpr(ObjCIvarRefExpr *E) { in VisitObjCIvarRefExpr() argument
854 VisitExpr(E); in VisitObjCIvarRefExpr()
855 Writer.AddDeclRef(E->getDecl(), Record); in VisitObjCIvarRefExpr()
856 Writer.AddSourceLocation(E->getLocation(), Record); in VisitObjCIvarRefExpr()
857 Writer.AddStmt(E->getBase()); in VisitObjCIvarRefExpr()
858 Record.push_back(E->isArrow()); in VisitObjCIvarRefExpr()
859 Record.push_back(E->isFreeIvar()); in VisitObjCIvarRefExpr()
863 void ASTStmtWriter::VisitObjCPropertyRefExpr(ObjCPropertyRefExpr *E) { in VisitObjCPropertyRefExpr() argument
864 VisitExpr(E); in VisitObjCPropertyRefExpr()
865 Record.push_back(E->SetterAndMethodRefFlags.getInt()); in VisitObjCPropertyRefExpr()
866 Record.push_back(E->isImplicitProperty()); in VisitObjCPropertyRefExpr()
867 if (E->isImplicitProperty()) { in VisitObjCPropertyRefExpr()
868 Writer.AddDeclRef(E->getImplicitPropertyGetter(), Record); in VisitObjCPropertyRefExpr()
869 Writer.AddDeclRef(E->getImplicitPropertySetter(), Record); in VisitObjCPropertyRefExpr()
871 Writer.AddDeclRef(E->getExplicitProperty(), Record); in VisitObjCPropertyRefExpr()
873 Writer.AddSourceLocation(E->getLocation(), Record); in VisitObjCPropertyRefExpr()
874 Writer.AddSourceLocation(E->getReceiverLocation(), Record); in VisitObjCPropertyRefExpr()
875 if (E->isObjectReceiver()) { in VisitObjCPropertyRefExpr()
877 Writer.AddStmt(E->getBase()); in VisitObjCPropertyRefExpr()
878 } else if (E->isSuperReceiver()) { in VisitObjCPropertyRefExpr()
880 Writer.AddTypeRef(E->getSuperReceiverType(), Record); in VisitObjCPropertyRefExpr()
883 Writer.AddDeclRef(E->getClassReceiver(), Record); in VisitObjCPropertyRefExpr()
889 void ASTStmtWriter::VisitObjCSubscriptRefExpr(ObjCSubscriptRefExpr *E) { in VisitObjCSubscriptRefExpr() argument
890 VisitExpr(E); in VisitObjCSubscriptRefExpr()
891 Writer.AddSourceLocation(E->getRBracket(), Record); in VisitObjCSubscriptRefExpr()
892 Writer.AddStmt(E->getBaseExpr()); in VisitObjCSubscriptRefExpr()
893 Writer.AddStmt(E->getKeyExpr()); in VisitObjCSubscriptRefExpr()
894 Writer.AddDeclRef(E->getAtIndexMethodDecl(), Record); in VisitObjCSubscriptRefExpr()
895 Writer.AddDeclRef(E->setAtIndexMethodDecl(), Record); in VisitObjCSubscriptRefExpr()
900 void ASTStmtWriter::VisitObjCMessageExpr(ObjCMessageExpr *E) { in VisitObjCMessageExpr() argument
901 VisitExpr(E); in VisitObjCMessageExpr()
902 Record.push_back(E->getNumArgs()); in VisitObjCMessageExpr()
903 Record.push_back(E->getNumStoredSelLocs()); in VisitObjCMessageExpr()
904 Record.push_back(E->SelLocsKind); in VisitObjCMessageExpr()
905 Record.push_back(E->isDelegateInitCall()); in VisitObjCMessageExpr()
906 Record.push_back(E->IsImplicit); in VisitObjCMessageExpr()
907 Record.push_back((unsigned)E->getReceiverKind()); // FIXME: stable encoding in VisitObjCMessageExpr()
908 switch (E->getReceiverKind()) { in VisitObjCMessageExpr()
910 Writer.AddStmt(E->getInstanceReceiver()); in VisitObjCMessageExpr()
914 Writer.AddTypeSourceInfo(E->getClassReceiverTypeInfo(), Record); in VisitObjCMessageExpr()
919 Writer.AddTypeRef(E->getSuperType(), Record); in VisitObjCMessageExpr()
920 Writer.AddSourceLocation(E->getSuperLoc(), Record); in VisitObjCMessageExpr()
924 if (E->getMethodDecl()) { in VisitObjCMessageExpr()
926 Writer.AddDeclRef(E->getMethodDecl(), Record); in VisitObjCMessageExpr()
929 Writer.AddSelectorRef(E->getSelector(), Record); in VisitObjCMessageExpr()
932 Writer.AddSourceLocation(E->getLeftLoc(), Record); in VisitObjCMessageExpr()
933 Writer.AddSourceLocation(E->getRightLoc(), Record); in VisitObjCMessageExpr()
935 for (CallExpr::arg_iterator Arg = E->arg_begin(), ArgEnd = E->arg_end(); in VisitObjCMessageExpr()
939 SourceLocation *Locs = E->getStoredSelLocs(); in VisitObjCMessageExpr()
940 for (unsigned i = 0, e = E->getNumStoredSelLocs(); i != e; ++i) in VisitObjCMessageExpr()
1001 void ASTStmtWriter::VisitObjCBoolLiteralExpr(ObjCBoolLiteralExpr *E) { in VisitObjCBoolLiteralExpr() argument
1002 VisitExpr(E); in VisitObjCBoolLiteralExpr()
1003 Record.push_back(E->getValue()); in VisitObjCBoolLiteralExpr()
1004 Writer.AddSourceLocation(E->getLocation(), Record); in VisitObjCBoolLiteralExpr()
1054 void ASTStmtWriter::VisitCXXOperatorCallExpr(CXXOperatorCallExpr *E) { in VisitCXXOperatorCallExpr() argument
1055 VisitCallExpr(E); in VisitCXXOperatorCallExpr()
1056 Record.push_back(E->getOperator()); in VisitCXXOperatorCallExpr()
1057 Writer.AddSourceRange(E->Range, Record); in VisitCXXOperatorCallExpr()
1061 void ASTStmtWriter::VisitCXXMemberCallExpr(CXXMemberCallExpr *E) { in VisitCXXMemberCallExpr() argument
1062 VisitCallExpr(E); in VisitCXXMemberCallExpr()
1066 void ASTStmtWriter::VisitCXXConstructExpr(CXXConstructExpr *E) { in VisitCXXConstructExpr() argument
1067 VisitExpr(E); in VisitCXXConstructExpr()
1068 Record.push_back(E->getNumArgs()); in VisitCXXConstructExpr()
1069 for (unsigned I = 0, N = E->getNumArgs(); I != N; ++I) in VisitCXXConstructExpr()
1070 Writer.AddStmt(E->getArg(I)); in VisitCXXConstructExpr()
1071 Writer.AddDeclRef(E->getConstructor(), Record); in VisitCXXConstructExpr()
1072 Writer.AddSourceLocation(E->getLocation(), Record); in VisitCXXConstructExpr()
1073 Record.push_back(E->isElidable()); in VisitCXXConstructExpr()
1074 Record.push_back(E->hadMultipleCandidates()); in VisitCXXConstructExpr()
1075 Record.push_back(E->requiresZeroInitialization()); in VisitCXXConstructExpr()
1076 Record.push_back(E->getConstructionKind()); // FIXME: stable encoding in VisitCXXConstructExpr()
1077 Writer.AddSourceRange(E->getParenRange(), Record); in VisitCXXConstructExpr()
1081 void ASTStmtWriter::VisitCXXTemporaryObjectExpr(CXXTemporaryObjectExpr *E) { in VisitCXXTemporaryObjectExpr() argument
1082 VisitCXXConstructExpr(E); in VisitCXXTemporaryObjectExpr()
1083 Writer.AddTypeSourceInfo(E->getTypeSourceInfo(), Record); in VisitCXXTemporaryObjectExpr()
1087 void ASTStmtWriter::VisitLambdaExpr(LambdaExpr *E) { in VisitLambdaExpr() argument
1088 VisitExpr(E); in VisitLambdaExpr()
1089 Record.push_back(E->NumCaptures); in VisitLambdaExpr()
1091 if (E->HasArrayIndexVars) in VisitLambdaExpr()
1092 NumArrayIndexVars = E->getArrayIndexStarts()[E->NumCaptures]; in VisitLambdaExpr()
1094 Writer.AddSourceRange(E->IntroducerRange, Record); in VisitLambdaExpr()
1095 Record.push_back(E->CaptureDefault); // FIXME: stable encoding in VisitLambdaExpr()
1096 Record.push_back(E->ExplicitParams); in VisitLambdaExpr()
1097 Record.push_back(E->ExplicitResultType); in VisitLambdaExpr()
1098 Writer.AddSourceLocation(E->ClosingBrace, Record); in VisitLambdaExpr()
1101 for (LambdaExpr::capture_init_iterator C = E->capture_init_begin(), in VisitLambdaExpr()
1102 CEnd = E->capture_init_end(); in VisitLambdaExpr()
1109 Record.append(E->getArrayIndexStarts(), in VisitLambdaExpr()
1110 E->getArrayIndexStarts() + E->NumCaptures + 1); in VisitLambdaExpr()
1111 VarDecl **ArrayIndexVars = E->getArrayIndexVars(); in VisitLambdaExpr()
1119 void ASTStmtWriter::VisitCXXNamedCastExpr(CXXNamedCastExpr *E) { in VisitCXXNamedCastExpr() argument
1120 VisitExplicitCastExpr(E); in VisitCXXNamedCastExpr()
1121 Writer.AddSourceRange(SourceRange(E->getOperatorLoc(), E->getRParenLoc()), in VisitCXXNamedCastExpr()
1125 void ASTStmtWriter::VisitCXXStaticCastExpr(CXXStaticCastExpr *E) { in VisitCXXStaticCastExpr() argument
1126 VisitCXXNamedCastExpr(E); in VisitCXXStaticCastExpr()
1130 void ASTStmtWriter::VisitCXXDynamicCastExpr(CXXDynamicCastExpr *E) { in VisitCXXDynamicCastExpr() argument
1131 VisitCXXNamedCastExpr(E); in VisitCXXDynamicCastExpr()
1135 void ASTStmtWriter::VisitCXXReinterpretCastExpr(CXXReinterpretCastExpr *E) { in VisitCXXReinterpretCastExpr() argument
1136 VisitCXXNamedCastExpr(E); in VisitCXXReinterpretCastExpr()
1140 void ASTStmtWriter::VisitCXXConstCastExpr(CXXConstCastExpr *E) { in VisitCXXConstCastExpr() argument
1141 VisitCXXNamedCastExpr(E); in VisitCXXConstCastExpr()
1145 void ASTStmtWriter::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr *E) { in VisitCXXFunctionalCastExpr() argument
1146 VisitExplicitCastExpr(E); in VisitCXXFunctionalCastExpr()
1147 Writer.AddSourceLocation(E->getTypeBeginLoc(), Record); in VisitCXXFunctionalCastExpr()
1148 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitCXXFunctionalCastExpr()
1152 void ASTStmtWriter::VisitUserDefinedLiteral(UserDefinedLiteral *E) { in VisitUserDefinedLiteral() argument
1153 VisitCallExpr(E); in VisitUserDefinedLiteral()
1154 Writer.AddSourceLocation(E->UDSuffixLoc, Record); in VisitUserDefinedLiteral()
1158 void ASTStmtWriter::VisitCXXBoolLiteralExpr(CXXBoolLiteralExpr *E) { in VisitCXXBoolLiteralExpr() argument
1159 VisitExpr(E); in VisitCXXBoolLiteralExpr()
1160 Record.push_back(E->getValue()); in VisitCXXBoolLiteralExpr()
1161 Writer.AddSourceLocation(E->getLocation(), Record); in VisitCXXBoolLiteralExpr()
1165 void ASTStmtWriter::VisitCXXNullPtrLiteralExpr(CXXNullPtrLiteralExpr *E) { in VisitCXXNullPtrLiteralExpr() argument
1166 VisitExpr(E); in VisitCXXNullPtrLiteralExpr()
1167 Writer.AddSourceLocation(E->getLocation(), Record); in VisitCXXNullPtrLiteralExpr()
1171 void ASTStmtWriter::VisitCXXTypeidExpr(CXXTypeidExpr *E) { in VisitCXXTypeidExpr() argument
1172 VisitExpr(E); in VisitCXXTypeidExpr()
1173 Writer.AddSourceRange(E->getSourceRange(), Record); in VisitCXXTypeidExpr()
1174 if (E->isTypeOperand()) { in VisitCXXTypeidExpr()
1175 Writer.AddTypeSourceInfo(E->getTypeOperandSourceInfo(), Record); in VisitCXXTypeidExpr()
1178 Writer.AddStmt(E->getExprOperand()); in VisitCXXTypeidExpr()
1183 void ASTStmtWriter::VisitCXXThisExpr(CXXThisExpr *E) { in VisitCXXThisExpr() argument
1184 VisitExpr(E); in VisitCXXThisExpr()
1185 Writer.AddSourceLocation(E->getLocation(), Record); in VisitCXXThisExpr()
1186 Record.push_back(E->isImplicit()); in VisitCXXThisExpr()
1190 void ASTStmtWriter::VisitCXXThrowExpr(CXXThrowExpr *E) { in VisitCXXThrowExpr() argument
1191 VisitExpr(E); in VisitCXXThrowExpr()
1192 Writer.AddSourceLocation(E->getThrowLoc(), Record); in VisitCXXThrowExpr()
1193 Writer.AddStmt(E->getSubExpr()); in VisitCXXThrowExpr()
1194 Record.push_back(E->isThrownVariableInScope()); in VisitCXXThrowExpr()
1198 void ASTStmtWriter::VisitCXXDefaultArgExpr(CXXDefaultArgExpr *E) { in VisitCXXDefaultArgExpr() argument
1199 VisitExpr(E); in VisitCXXDefaultArgExpr()
1201 bool HasOtherExprStored = E->Param.getInt(); in VisitCXXDefaultArgExpr()
1205 Writer.AddStmt(E->getExpr()); in VisitCXXDefaultArgExpr()
1206 Writer.AddDeclRef(E->getParam(), Record); in VisitCXXDefaultArgExpr()
1207 Writer.AddSourceLocation(E->getUsedLocation(), Record); in VisitCXXDefaultArgExpr()
1212 void ASTStmtWriter::VisitCXXBindTemporaryExpr(CXXBindTemporaryExpr *E) { in VisitCXXBindTemporaryExpr() argument
1213 VisitExpr(E); in VisitCXXBindTemporaryExpr()
1214 Writer.AddCXXTemporary(E->getTemporary(), Record); in VisitCXXBindTemporaryExpr()
1215 Writer.AddStmt(E->getSubExpr()); in VisitCXXBindTemporaryExpr()
1219 void ASTStmtWriter::VisitCXXScalarValueInitExpr(CXXScalarValueInitExpr *E) { in VisitCXXScalarValueInitExpr() argument
1220 VisitExpr(E); in VisitCXXScalarValueInitExpr()
1221 Writer.AddTypeSourceInfo(E->getTypeSourceInfo(), Record); in VisitCXXScalarValueInitExpr()
1222 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitCXXScalarValueInitExpr()
1226 void ASTStmtWriter::VisitCXXNewExpr(CXXNewExpr *E) { in VisitCXXNewExpr() argument
1227 VisitExpr(E); in VisitCXXNewExpr()
1228 Record.push_back(E->isGlobalNew()); in VisitCXXNewExpr()
1229 Record.push_back(E->isArray()); in VisitCXXNewExpr()
1230 Record.push_back(E->doesUsualArrayDeleteWantSize()); in VisitCXXNewExpr()
1231 Record.push_back(E->getNumPlacementArgs()); in VisitCXXNewExpr()
1232 Record.push_back(E->StoredInitializationStyle); in VisitCXXNewExpr()
1233 Writer.AddDeclRef(E->getOperatorNew(), Record); in VisitCXXNewExpr()
1234 Writer.AddDeclRef(E->getOperatorDelete(), Record); in VisitCXXNewExpr()
1235 Writer.AddTypeSourceInfo(E->getAllocatedTypeSourceInfo(), Record); in VisitCXXNewExpr()
1236 Writer.AddSourceRange(E->getTypeIdParens(), Record); in VisitCXXNewExpr()
1237 Writer.AddSourceLocation(E->getStartLoc(), Record); in VisitCXXNewExpr()
1238 Writer.AddSourceRange(E->getDirectInitRange(), Record); in VisitCXXNewExpr()
1239 for (CXXNewExpr::arg_iterator I = E->raw_arg_begin(), e = E->raw_arg_end(); in VisitCXXNewExpr()
1246 void ASTStmtWriter::VisitCXXDeleteExpr(CXXDeleteExpr *E) { in VisitCXXDeleteExpr() argument
1247 VisitExpr(E); in VisitCXXDeleteExpr()
1248 Record.push_back(E->isGlobalDelete()); in VisitCXXDeleteExpr()
1249 Record.push_back(E->isArrayForm()); in VisitCXXDeleteExpr()
1250 Record.push_back(E->isArrayFormAsWritten()); in VisitCXXDeleteExpr()
1251 Record.push_back(E->doesUsualArrayDeleteWantSize()); in VisitCXXDeleteExpr()
1252 Writer.AddDeclRef(E->getOperatorDelete(), Record); in VisitCXXDeleteExpr()
1253 Writer.AddStmt(E->getArgument()); in VisitCXXDeleteExpr()
1254 Writer.AddSourceLocation(E->getSourceRange().getBegin(), Record); in VisitCXXDeleteExpr()
1259 void ASTStmtWriter::VisitCXXPseudoDestructorExpr(CXXPseudoDestructorExpr *E) { in VisitCXXPseudoDestructorExpr() argument
1260 VisitExpr(E); in VisitCXXPseudoDestructorExpr()
1262 Writer.AddStmt(E->getBase()); in VisitCXXPseudoDestructorExpr()
1263 Record.push_back(E->isArrow()); in VisitCXXPseudoDestructorExpr()
1264 Writer.AddSourceLocation(E->getOperatorLoc(), Record); in VisitCXXPseudoDestructorExpr()
1265 Writer.AddNestedNameSpecifierLoc(E->getQualifierLoc(), Record); in VisitCXXPseudoDestructorExpr()
1266 Writer.AddTypeSourceInfo(E->getScopeTypeInfo(), Record); in VisitCXXPseudoDestructorExpr()
1267 Writer.AddSourceLocation(E->getColonColonLoc(), Record); in VisitCXXPseudoDestructorExpr()
1268 Writer.AddSourceLocation(E->getTildeLoc(), Record); in VisitCXXPseudoDestructorExpr()
1271 Writer.AddIdentifierRef(E->getDestroyedTypeIdentifier(), Record); in VisitCXXPseudoDestructorExpr()
1272 if (E->getDestroyedTypeIdentifier()) in VisitCXXPseudoDestructorExpr()
1273 Writer.AddSourceLocation(E->getDestroyedTypeLoc(), Record); in VisitCXXPseudoDestructorExpr()
1275 Writer.AddTypeSourceInfo(E->getDestroyedTypeInfo(), Record); in VisitCXXPseudoDestructorExpr()
1280 void ASTStmtWriter::VisitExprWithCleanups(ExprWithCleanups *E) { in VisitExprWithCleanups() argument
1281 VisitExpr(E); in VisitExprWithCleanups()
1282 Record.push_back(E->getNumObjects()); in VisitExprWithCleanups()
1283 for (unsigned i = 0, e = E->getNumObjects(); i != e; ++i) in VisitExprWithCleanups()
1284 Writer.AddDeclRef(E->getObject(i), Record); in VisitExprWithCleanups()
1286 Writer.AddStmt(E->getSubExpr()); in VisitExprWithCleanups()
1291 ASTStmtWriter::VisitCXXDependentScopeMemberExpr(CXXDependentScopeMemberExpr *E){ in VisitCXXDependentScopeMemberExpr() argument
1292 VisitExpr(E); in VisitCXXDependentScopeMemberExpr()
1297 Record.push_back(E->HasTemplateKWAndArgsInfo); in VisitCXXDependentScopeMemberExpr()
1298 if (E->HasTemplateKWAndArgsInfo) { in VisitCXXDependentScopeMemberExpr()
1299 const ASTTemplateKWAndArgsInfo &Args = *E->getTemplateKWAndArgsInfo(); in VisitCXXDependentScopeMemberExpr()
1304 if (!E->isImplicitAccess()) in VisitCXXDependentScopeMemberExpr()
1305 Writer.AddStmt(E->getBase()); in VisitCXXDependentScopeMemberExpr()
1308 Writer.AddTypeRef(E->getBaseType(), Record); in VisitCXXDependentScopeMemberExpr()
1309 Record.push_back(E->isArrow()); in VisitCXXDependentScopeMemberExpr()
1310 Writer.AddSourceLocation(E->getOperatorLoc(), Record); in VisitCXXDependentScopeMemberExpr()
1311 Writer.AddNestedNameSpecifierLoc(E->getQualifierLoc(), Record); in VisitCXXDependentScopeMemberExpr()
1312 Writer.AddDeclRef(E->getFirstQualifierFoundInScope(), Record); in VisitCXXDependentScopeMemberExpr()
1313 Writer.AddDeclarationNameInfo(E->MemberNameInfo, Record); in VisitCXXDependentScopeMemberExpr()
1318 ASTStmtWriter::VisitDependentScopeDeclRefExpr(DependentScopeDeclRefExpr *E) { in VisitDependentScopeDeclRefExpr() argument
1319 VisitExpr(E); in VisitDependentScopeDeclRefExpr()
1324 Record.push_back(E->HasTemplateKWAndArgsInfo); in VisitDependentScopeDeclRefExpr()
1325 if (E->HasTemplateKWAndArgsInfo) { in VisitDependentScopeDeclRefExpr()
1326 const ASTTemplateKWAndArgsInfo &Args = *E->getTemplateKWAndArgsInfo(); in VisitDependentScopeDeclRefExpr()
1331 Writer.AddNestedNameSpecifierLoc(E->getQualifierLoc(), Record); in VisitDependentScopeDeclRefExpr()
1332 Writer.AddDeclarationNameInfo(E->NameInfo, Record); in VisitDependentScopeDeclRefExpr()
1337 ASTStmtWriter::VisitCXXUnresolvedConstructExpr(CXXUnresolvedConstructExpr *E) { in VisitCXXUnresolvedConstructExpr() argument
1338 VisitExpr(E); in VisitCXXUnresolvedConstructExpr()
1339 Record.push_back(E->arg_size()); in VisitCXXUnresolvedConstructExpr()
1341 ArgI = E->arg_begin(), ArgE = E->arg_end(); ArgI != ArgE; ++ArgI) in VisitCXXUnresolvedConstructExpr()
1343 Writer.AddTypeSourceInfo(E->getTypeSourceInfo(), Record); in VisitCXXUnresolvedConstructExpr()
1344 Writer.AddSourceLocation(E->getLParenLoc(), Record); in VisitCXXUnresolvedConstructExpr()
1345 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitCXXUnresolvedConstructExpr()
1349 void ASTStmtWriter::VisitOverloadExpr(OverloadExpr *E) { in VisitOverloadExpr() argument
1350 VisitExpr(E); in VisitOverloadExpr()
1355 Record.push_back(E->HasTemplateKWAndArgsInfo); in VisitOverloadExpr()
1356 if (E->HasTemplateKWAndArgsInfo) { in VisitOverloadExpr()
1357 const ASTTemplateKWAndArgsInfo &Args = *E->getTemplateKWAndArgsInfo(); in VisitOverloadExpr()
1362 Record.push_back(E->getNumDecls()); in VisitOverloadExpr()
1364 OvI = E->decls_begin(), OvE = E->decls_end(); OvI != OvE; ++OvI) { in VisitOverloadExpr()
1369 Writer.AddDeclarationNameInfo(E->NameInfo, Record); in VisitOverloadExpr()
1370 Writer.AddNestedNameSpecifierLoc(E->getQualifierLoc(), Record); in VisitOverloadExpr()
1373 void ASTStmtWriter::VisitUnresolvedMemberExpr(UnresolvedMemberExpr *E) { in VisitUnresolvedMemberExpr() argument
1374 VisitOverloadExpr(E); in VisitUnresolvedMemberExpr()
1375 Record.push_back(E->isArrow()); in VisitUnresolvedMemberExpr()
1376 Record.push_back(E->hasUnresolvedUsing()); in VisitUnresolvedMemberExpr()
1377 Writer.AddStmt(!E->isImplicitAccess() ? E->getBase() : 0); in VisitUnresolvedMemberExpr()
1378 Writer.AddTypeRef(E->getBaseType(), Record); in VisitUnresolvedMemberExpr()
1379 Writer.AddSourceLocation(E->getOperatorLoc(), Record); in VisitUnresolvedMemberExpr()
1383 void ASTStmtWriter::VisitUnresolvedLookupExpr(UnresolvedLookupExpr *E) { in VisitUnresolvedLookupExpr() argument
1384 VisitOverloadExpr(E); in VisitUnresolvedLookupExpr()
1385 Record.push_back(E->requiresADL()); in VisitUnresolvedLookupExpr()
1386 if (E->requiresADL()) in VisitUnresolvedLookupExpr()
1387 Record.push_back(E->isStdAssociatedNamespace()); in VisitUnresolvedLookupExpr()
1388 Record.push_back(E->isOverloaded()); in VisitUnresolvedLookupExpr()
1389 Writer.AddDeclRef(E->getNamingClass(), Record); in VisitUnresolvedLookupExpr()
1393 void ASTStmtWriter::VisitUnaryTypeTraitExpr(UnaryTypeTraitExpr *E) { in VisitUnaryTypeTraitExpr() argument
1394 VisitExpr(E); in VisitUnaryTypeTraitExpr()
1395 Record.push_back(E->getTrait()); in VisitUnaryTypeTraitExpr()
1396 Record.push_back(E->getValue()); in VisitUnaryTypeTraitExpr()
1397 Writer.AddSourceRange(E->getSourceRange(), Record); in VisitUnaryTypeTraitExpr()
1398 Writer.AddTypeSourceInfo(E->getQueriedTypeSourceInfo(), Record); in VisitUnaryTypeTraitExpr()
1402 void ASTStmtWriter::VisitBinaryTypeTraitExpr(BinaryTypeTraitExpr *E) { in VisitBinaryTypeTraitExpr() argument
1403 VisitExpr(E); in VisitBinaryTypeTraitExpr()
1404 Record.push_back(E->getTrait()); in VisitBinaryTypeTraitExpr()
1405 Record.push_back(E->getValue()); in VisitBinaryTypeTraitExpr()
1406 Writer.AddSourceRange(E->getSourceRange(), Record); in VisitBinaryTypeTraitExpr()
1407 Writer.AddTypeSourceInfo(E->getLhsTypeSourceInfo(), Record); in VisitBinaryTypeTraitExpr()
1408 Writer.AddTypeSourceInfo(E->getRhsTypeSourceInfo(), Record); in VisitBinaryTypeTraitExpr()
1412 void ASTStmtWriter::VisitTypeTraitExpr(TypeTraitExpr *E) { in VisitTypeTraitExpr() argument
1413 VisitExpr(E); in VisitTypeTraitExpr()
1414 Record.push_back(E->TypeTraitExprBits.NumArgs); in VisitTypeTraitExpr()
1415 Record.push_back(E->TypeTraitExprBits.Kind); // FIXME: Stable encoding in VisitTypeTraitExpr()
1416 Record.push_back(E->TypeTraitExprBits.Value); in VisitTypeTraitExpr()
1417 for (unsigned I = 0, N = E->getNumArgs(); I != N; ++I) in VisitTypeTraitExpr()
1418 Writer.AddTypeSourceInfo(E->getArg(I), Record); in VisitTypeTraitExpr()
1422 void ASTStmtWriter::VisitArrayTypeTraitExpr(ArrayTypeTraitExpr *E) { in VisitArrayTypeTraitExpr() argument
1423 VisitExpr(E); in VisitArrayTypeTraitExpr()
1424 Record.push_back(E->getTrait()); in VisitArrayTypeTraitExpr()
1425 Record.push_back(E->getValue()); in VisitArrayTypeTraitExpr()
1426 Writer.AddSourceRange(E->getSourceRange(), Record); in VisitArrayTypeTraitExpr()
1427 Writer.AddTypeSourceInfo(E->getQueriedTypeSourceInfo(), Record); in VisitArrayTypeTraitExpr()
1431 void ASTStmtWriter::VisitExpressionTraitExpr(ExpressionTraitExpr *E) { in VisitExpressionTraitExpr() argument
1432 VisitExpr(E); in VisitExpressionTraitExpr()
1433 Record.push_back(E->getTrait()); in VisitExpressionTraitExpr()
1434 Record.push_back(E->getValue()); in VisitExpressionTraitExpr()
1435 Writer.AddSourceRange(E->getSourceRange(), Record); in VisitExpressionTraitExpr()
1436 Writer.AddStmt(E->getQueriedExpression()); in VisitExpressionTraitExpr()
1440 void ASTStmtWriter::VisitCXXNoexceptExpr(CXXNoexceptExpr *E) { in VisitCXXNoexceptExpr() argument
1441 VisitExpr(E); in VisitCXXNoexceptExpr()
1442 Record.push_back(E->getValue()); in VisitCXXNoexceptExpr()
1443 Writer.AddSourceRange(E->getSourceRange(), Record); in VisitCXXNoexceptExpr()
1444 Writer.AddStmt(E->getOperand()); in VisitCXXNoexceptExpr()
1448 void ASTStmtWriter::VisitPackExpansionExpr(PackExpansionExpr *E) { in VisitPackExpansionExpr() argument
1449 VisitExpr(E); in VisitPackExpansionExpr()
1450 Writer.AddSourceLocation(E->getEllipsisLoc(), Record); in VisitPackExpansionExpr()
1451 Record.push_back(E->NumExpansions); in VisitPackExpansionExpr()
1452 Writer.AddStmt(E->getPattern()); in VisitPackExpansionExpr()
1456 void ASTStmtWriter::VisitSizeOfPackExpr(SizeOfPackExpr *E) { in VisitSizeOfPackExpr() argument
1457 VisitExpr(E); in VisitSizeOfPackExpr()
1458 Writer.AddSourceLocation(E->OperatorLoc, Record); in VisitSizeOfPackExpr()
1459 Writer.AddSourceLocation(E->PackLoc, Record); in VisitSizeOfPackExpr()
1460 Writer.AddSourceLocation(E->RParenLoc, Record); in VisitSizeOfPackExpr()
1461 Record.push_back(E->Length); in VisitSizeOfPackExpr()
1462 Writer.AddDeclRef(E->Pack, Record); in VisitSizeOfPackExpr()
1467 SubstNonTypeTemplateParmExpr *E) { in VisitSubstNonTypeTemplateParmExpr() argument
1468 VisitExpr(E); in VisitSubstNonTypeTemplateParmExpr()
1469 Writer.AddDeclRef(E->getParameter(), Record); in VisitSubstNonTypeTemplateParmExpr()
1470 Writer.AddSourceLocation(E->getNameLoc(), Record); in VisitSubstNonTypeTemplateParmExpr()
1471 Writer.AddStmt(E->getReplacement()); in VisitSubstNonTypeTemplateParmExpr()
1476 SubstNonTypeTemplateParmPackExpr *E) { in VisitSubstNonTypeTemplateParmPackExpr() argument
1477 VisitExpr(E); in VisitSubstNonTypeTemplateParmPackExpr()
1478 Writer.AddDeclRef(E->getParameterPack(), Record); in VisitSubstNonTypeTemplateParmPackExpr()
1479 Writer.AddTemplateArgument(E->getArgumentPack(), Record); in VisitSubstNonTypeTemplateParmPackExpr()
1480 Writer.AddSourceLocation(E->getParameterPackLocation(), Record); in VisitSubstNonTypeTemplateParmPackExpr()
1484 void ASTStmtWriter::VisitMaterializeTemporaryExpr(MaterializeTemporaryExpr *E) { in VisitMaterializeTemporaryExpr() argument
1485 VisitExpr(E); in VisitMaterializeTemporaryExpr()
1486 Writer.AddStmt(E->Temporary); in VisitMaterializeTemporaryExpr()
1490 void ASTStmtWriter::VisitOpaqueValueExpr(OpaqueValueExpr *E) { in VisitOpaqueValueExpr() argument
1491 VisitExpr(E); in VisitOpaqueValueExpr()
1492 Writer.AddStmt(E->getSourceExpr()); in VisitOpaqueValueExpr()
1493 Writer.AddSourceLocation(E->getLocation(), Record); in VisitOpaqueValueExpr()
1501 void ASTStmtWriter::VisitCUDAKernelCallExpr(CUDAKernelCallExpr *E) { in VisitCUDAKernelCallExpr() argument
1502 VisitCallExpr(E); in VisitCUDAKernelCallExpr()
1503 Writer.AddStmt(E->getConfig()); in VisitCUDAKernelCallExpr()
1510 void ASTStmtWriter::VisitAsTypeExpr(AsTypeExpr *E) { in VisitAsTypeExpr() argument
1511 VisitExpr(E); in VisitAsTypeExpr()
1512 Writer.AddSourceLocation(E->getBuiltinLoc(), Record); in VisitAsTypeExpr()
1513 Writer.AddSourceLocation(E->getRParenLoc(), Record); in VisitAsTypeExpr()
1514 Writer.AddStmt(E->getSrcExpr()); in VisitAsTypeExpr()
1521 void ASTStmtWriter::VisitCXXUuidofExpr(CXXUuidofExpr *E) { in VisitCXXUuidofExpr() argument
1522 VisitExpr(E); in VisitCXXUuidofExpr()
1523 Writer.AddSourceRange(E->getSourceRange(), Record); in VisitCXXUuidofExpr()
1524 if (E->isTypeOperand()) { in VisitCXXUuidofExpr()
1525 Writer.AddTypeSourceInfo(E->getTypeOperandSourceInfo(), Record); in VisitCXXUuidofExpr()
1528 Writer.AddStmt(E->getExprOperand()); in VisitCXXUuidofExpr()