reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

tools/clang/include/clang/AST/ComparisonCategories.h
   33 class Sema;
tools/clang/include/clang/Frontend/ASTUnit.h
   79 class Sema;
tools/clang/include/clang/Frontend/CompilerInstance.h
   50 class Sema;
tools/clang/include/clang/Parse/ParseAST.h
   23   class Sema;
tools/clang/include/clang/Sema/AnalysisBasedWarnings.h
   25 class Sema;
tools/clang/include/clang/Sema/CodeCompleteConsumer.h
   49 class Sema;
tools/clang/include/clang/Sema/DeclSpec.h
   47   class Sema;
tools/clang/include/clang/Sema/Designator.h
   24 class Sema;
tools/clang/include/clang/Sema/ExternalSemaSource.h
   35 class Sema;
tools/clang/include/clang/Sema/Initialization.h
   45 class Sema;
tools/clang/include/clang/Sema/MultiplexExternalSemaSource.h
   29   class Sema;
tools/clang/include/clang/Sema/Overload.h
   47 class Sema;
tools/clang/include/clang/Sema/SemaConsumer.h
   20   class Sema;
tools/clang/include/clang/Sema/SemaFixItUtils.h
   27 class Sema;
tools/clang/include/clang/Sema/SemaLambda.h
   24 class Sema;
tools/clang/include/clang/Sema/TemplateDeduction.h
   32 class Sema;
tools/clang/include/clang/Sema/TypoCorrection.h
   39 class Sema;
tools/clang/include/clang/Serialization/ASTReader.h
  109 class Sema;
tools/clang/include/clang/Serialization/ASTWriter.h
   88 class Sema;
tools/clang/include/clang/Serialization/ModuleFileExtension.h
   27 class Sema;
tools/clang/lib/ARCMigrate/Internals.h
   19   class Sema;

References

gen/tools/clang/include/clang/Sema/AttrParsedAttrImpl.inc
    9 static bool defaultAppertainsTo(Sema &, const ParsedAttr &,const Decl *) {
   13 static bool defaultDiagnoseLangOpts(Sema &, const ParsedAttr &) {
   25 static bool checkAMDGPUFlatWorkGroupSizeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
   38 static bool checkAMDGPUNumSGPRAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
   51 static bool checkAMDGPUNumVGPRAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
   64 static bool checkAMDGPUWavesPerEUAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
   82 static bool checkAVRSignalAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  106 static bool checkAbiTagAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  122 static bool checkAcquireCapabilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  161 static bool checkAcquiredAfterAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  170 static bool checkAcquiredBeforeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  185 static bool checkAliasAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  199 static bool checkAlignValueAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  244 static bool checkAllocAlignAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  253 static bool checkAllocSizeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  266 static bool checkAlwaysDestroyAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  279 static bool checkAlwaysInlineAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  324 static bool checkAnyX86NoCfCheckAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  337 static bool checkArcWeakrefUnavailableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  350 static bool checkArgumentWithTypeTagAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  383 static bool checkArmMveAliasAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  407 static bool checkArtificialAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  416 static bool checkAssertCapabilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  445 static bool checkAssertExclusiveLockAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  454 static bool checkAssertSharedLockAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  463 static bool checkAssumeAlignedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  477 static bool checkAvailabilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  504 static bool checkCFAuditedTransferAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  517 static bool checkCFConsumedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  530 static bool checkCFICanonicalJumpTableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  543 static bool checkCFUnknownTransferAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  556 static bool checkCPUDispatchAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  569 static bool checkCPUSpecificAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  582 static bool checkCUDAConstantAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  591 static bool checkCUDALangOpts(Sema &S, const ParsedAttr &Attr) {
  604 static bool checkCUDADeviceAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  618 static bool checkCUDAGlobalAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  631 static bool checkCUDAHostAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  644 static bool checkCUDAInvalidTargetAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  653 static bool checkCUDALaunchBoundsAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  667 static bool checkCUDASharedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  680 static bool checkCXX11NoReturnAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  693 static bool checkCallableWhenAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  706 static bool checkCallbackAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  719 static bool checkCapabilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  753 static bool checkCarriesDependencyAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  774 static bool checkCleanupAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  783 static bool checkCodeSegAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  792 static bool checkColdAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  805 static bool checkCommonAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  818 static bool checkConstInitAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  827 static bool checkCPlusPlusLangOpts(Sema &S, const ParsedAttr &Attr) {
  858 static bool checkConstructorAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  871 static bool checkConsumableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  884 static bool checkConsumableAutoCastAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  897 static bool checkConsumableSetOnReadAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  910 static bool checkConvergentAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  923 static bool checkDLLExportAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  944 static bool checkDLLExportStaticLocalAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  953 static bool checkDLLImportAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  969 static bool checkDLLImportStaticLocalAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  978 static bool checkDestructorAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
  991 static bool checkDiagnoseIfAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1000 static bool checkDisableTailCallsAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1014 static bool checkEmptyBasesAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1028 static bool checkEnableIfAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1041 static bool checkEnumExtensibilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1054 static bool checkExcludeFromExplicitInstantiationAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1069 static bool checkExclusiveTrylockFunctionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1078 static bool checkExtVectorTypeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1087 static bool checkExternalSourceSymbolAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1114 static bool checkFlagEnumAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1127 static bool checkFlattenAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1140 static bool checkFormatAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1149 static bool checkFormatArgAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1158 static bool checkGNUInlineAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1171 static bool checkGuardedByAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1180 static bool checkGuardedVarAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1189 static bool checkHIPPinnedShadowAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1198 static bool checkHIPLangOpts(Sema &S, const ParsedAttr &Attr) {
 1211 static bool checkHotAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1230 static bool checkIBActionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1243 static bool checkIFuncAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1261 static bool checkInitPriorityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1274 static bool checkInternalLinkageAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1289 static bool checkLTOVisibilityPublicAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1302 static bool checkLayoutVersionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1317 static bool checkLifetimeBoundAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1326 static bool checkLockReturnedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1335 static bool checkLockableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1348 static bool checkLocksExcludedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1379 static bool checkMIGServerRoutineAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1394 static bool checkMSAllocatorAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1403 static bool checkMicrosoftExtLangOpts(Sema &S, const ParsedAttr &Attr) {
 1432 static bool checkMSNoVTableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1441 static bool checkMSStructAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1454 static bool checkMicroMipsAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1472 static bool checkMinSizeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1486 static bool checkMinVectorWidthAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1499 static bool checkMips16AppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1512 static bool checkMipsLongCallAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1550 static bool checkMipsShortCallAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1583 static bool checkModeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1592 static bool checkNSConsumedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1605 static bool checkNSConsumesSelfAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1618 static bool checkNakedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1631 static bool checkNoAliasAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1640 static bool checkNoCommonAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1659 static bool checkNoDebugAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1675 static bool checkNoDestroyAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1688 static bool checkNoDuplicateAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1701 static bool checkNoEscapeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1714 static bool checkNoInlineAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1727 static bool checkNoInstrumentFunctionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1740 static bool checkNoMicroMipsAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1753 static bool checkNoMips16AppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1766 static bool checkNoSanitizeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1781 static bool checkNoSanitizeSpecificAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1795 static bool checkNoSpeculativeLoadHardeningAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1809 static bool checkNoSplitStackAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1822 static bool checkNoStackProtectorAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1835 static bool checkNoThreadSafetyAnalysisAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1848 static bool checkNoThrowAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1867 static bool checkNoUniqueAddressAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1881 static bool checkNonNullAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1890 static bool checkNotTailCalledAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1903 static bool checkOSConsumedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1922 static bool checkOSConsumesThisAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1931 static bool checkOSReturnsNotRetainedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1947 static bool checkOSReturnsRetainedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1963 static bool checkOSReturnsRetainedOnNonZeroAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1976 static bool checkOSReturnsRetainedOnZeroAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 1989 static bool checkObjCBoxableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2002 static bool checkObjCBridgeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2016 static bool checkObjCBridgeMutableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2029 static bool checkObjCBridgeRelatedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2042 static bool checkObjCClassStubAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2051 static bool checkObjCNonFragileRuntimeLangOpts(Sema &S, const ParsedAttr &Attr) {
 2064 static bool checkObjCDesignatedInitializerAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2077 static bool checkObjCExceptionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2090 static bool checkObjCExplicitProtocolImplAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2103 static bool checkObjCExternallyRetainedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2112 static bool checkObjCAutoRefCountLangOpts(Sema &S, const ParsedAttr &Attr) {
 2128 static bool checkObjCMethodFamilyAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2141 static bool checkObjCNonLazyClassAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2150 static bool checkObjCLangOpts(Sema &S, const ParsedAttr &Attr) {
 2164 static bool checkObjCPreciseLifetimeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2177 static bool checkObjCRequiresPropertyDefsAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2190 static bool checkObjCRequiresSuperAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2203 static bool checkObjCReturnsInnerPointerAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2217 static bool checkObjCRootClassAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2230 static bool checkObjCRuntimeNameAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2244 static bool checkObjCRuntimeVisibleAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2257 static bool checkObjCSubclassingRestrictedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2270 static bool checkOpenCLAccessAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2300 static bool checkOpenCLIntelReqdSubGroupSizeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2313 static bool checkOpenCLKernelAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2322 static bool checkOpenCLNoSVMAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2331 static bool checkOpenCLLangOpts(Sema &S, const ParsedAttr &Attr) {
 2344 static bool checkOptimizeNoneAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2358 static bool checkOverloadableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2371 static bool checkOwnerAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2384 static bool checkOwnershipAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2423 static bool checkParamTypestateAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2436 static bool checkPassObjectSizeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2473 static bool checkPointerAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2486 static bool checkPragmaClangBSSSectionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2495 static bool checkPragmaClangDataSectionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2504 static bool checkPragmaClangRelroSectionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2513 static bool checkPragmaClangRodataSectionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2522 static bool checkPragmaClangTextSectionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2531 static bool checkPtGuardedByAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2540 static bool checkPtGuardedVarAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2555 static bool checkReinitializesAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2564 static bool checkReleaseCapabilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2601 static bool checkRenderScriptKernelAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2610 static bool checkRenderScriptLangOpts(Sema &S, const ParsedAttr &Attr) {
 2623 static bool checkReqdWorkGroupSizeAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2636 static bool checkRequiresCapabilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2673 static bool checkRestrictAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2704 static bool checkReturnTypestateAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2718 static bool checkReturnsNonNullAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2732 static bool checkReturnsTwiceAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2745 static bool checkScopedLockableAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2758 static bool checkSectionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2792 static bool checkSetTypestateAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2805 static bool checkSharedTrylockFunctionAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2814 static bool checkSpeculativeLoadHardeningAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2828 static bool checkSwiftContextAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2841 static bool checkSwiftErrorResultAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2854 static bool checkSwiftIndirectResultAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2873 static bool checkTLSModelAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2886 static bool checkTargetAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2899 static bool checkTestTypestateAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2912 static bool checkThreadAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2921 static bool checkCOnlyLangOpts(Sema &S, const ParsedAttr &Attr) {
 2930 static bool checkTrivialABIAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2943 static bool checkTryAcquireCapabilityAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2972 static bool checkUninitializedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 2981 static bool checkUnusedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3016 static bool checkUsedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3025 static bool checkUuidAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3034 static bool checkMicrosoftExtBorlandLangOpts(Sema &S, const ParsedAttr &Attr) {
 3043 static bool checkVecReturnAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3056 static bool checkVecTypeHintAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3069 static bool checkWarnUnusedAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3082 static bool checkWarnUnusedResultAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3120 static bool checkWeakAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3135 static bool checkWeakRefAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3149 static bool checkWebAssemblyImportModuleAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3167 static bool checkWebAssemblyImportNameAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3180 static bool checkWorkGroupSizeHintAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3193 static bool checkXRayInstrumentAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
 3231 static bool checkXRayLogArgsAppertainsTo(Sema &S, const ParsedAttr &Attr, const Decl *D) {
gen/tools/clang/include/clang/Sema/AttrTemplateInstantiate.inc
   12 Attr *instantiateTemplateAttribute(const Attr *At, ASTContext &C, Sema &S,
   55         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
   70         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
   85         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
  176         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
  191         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
  206         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
  393         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
  411         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
  429         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
  435         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
  486         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
  552         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
  562         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
 1025         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
 1063         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
 1086         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
 1141         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
 1147         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
 1222         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
 1228         EnterExpressionEvaluationContext Unevaluated(S, Sema::ExpressionEvaluationContext::Unevaluated);
 1347  ASTContext &C, Sema &S,
include/llvm/ADT/Optional.h
   87   template <class... Args> void emplace(Args &&... args) {
  237   template <typename... ArgTypes> void emplace(ArgTypes &&... Args) {
include/llvm/ADT/SmallVector.h
  641   template <typename... ArgTypes> reference emplace_back(ArgTypes &&... Args) {
include/llvm/Support/BuryPointer.h
   23 template <typename T> void BuryPointer(std::unique_ptr<T> Ptr) {
include/llvm/Support/CrashRecoveryContext.h
  147   T *resource;
  148   CrashRecoveryContextCleanupBase(CrashRecoveryContext *context, T *resource)
  156   static Derived *create(T *x) {
  183   CrashRecoveryContextCleanupBase<CrashRecoveryContextDeleteCleanup<T>, T> {
  183   CrashRecoveryContextCleanupBase<CrashRecoveryContextDeleteCleanup<T>, T> {
  185   CrashRecoveryContextDeleteCleanup(CrashRecoveryContext *context, T *resource)
  241   CrashRecoveryContextCleanupRegistrar(T *x)
tools/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp
   69     clang::Sema &sema = Instance.getSema();
tools/clang/include/clang/Frontend/ASTUnit.h
  135   std::unique_ptr<Sema> TheSema;
  456   Sema &getSema() const {
tools/clang/include/clang/Frontend/CompilerInstance.h
  110   std::unique_ptr<Sema> TheSema;
  483   void setSema(Sema *S);
  509   Sema &getSema() const {
  514   std::unique_ptr<Sema> takeSema();
tools/clang/include/clang/Frontend/MultiplexConsumer.h
   76   void InitializeSema(Sema &S) override;
tools/clang/include/clang/Parse/ParseAST.h
   46   void ParseAST(Sema &S, bool PrintStats = false,
tools/clang/include/clang/Parse/Parser.h
   86   Sema &Actions;
  400   Parser(Preprocessor &PP, Sema &Actions, bool SkipFunctionBodies);
  406   Sema &getActions() const { return Actions; }
  424   typedef Sema::FullExprArg FullExprArg;
 1341     Sema::ParsingClassState State;
 1419   Sema::ParsingClassState
 1422   void PopParsingClass(Sema::ParsingClassState);
 1870   Sema::ConditionResult ParseCXXCondition(StmtResult *InitStmt,
 1872                                           Sema::ConditionKind CK,
 1961                                  Sema::ConditionResult &CondResult,
 1963                                  Sema::ConditionKind CK);
 2417                                       DeclSpec &DS, Sema::TagUseKind TUK);
 2857           void(SourceRange, const Sema::OpenMPDeclareVariantCtsSelectorData &)>
tools/clang/include/clang/Parse/RAIIObjectsForParser.h
   45     Sema &S;
   47     Sema::ParsingDeclState State;
   91     Sema &Actions;
   93     Sema::ParsingDeclState State;
tools/clang/include/clang/Sema/AnalysisBasedWarnings.h
   47   Sema &S;
   90   AnalysisBasedWarnings(Sema &s);
tools/clang/include/clang/Sema/CodeCompleteConsumer.h
  939   CodeCompletionString *CreateCodeCompletionString(Sema &S,
 1068                                                 Sema &S,
 1126   virtual void ProcessCodeCompleteResults(Sema &S,
 1142   virtual void ProcessOverloadCandidates(Sema &S, unsigned CurrentArg,
 1189   void ProcessCodeCompleteResults(Sema &S, CodeCompletionContext Context,
 1193   void ProcessOverloadCandidates(Sema &S, unsigned CurrentArg,
tools/clang/include/clang/Sema/DeclSpec.h
  642   bool SetStorageClassSpec(Sema &S, SCS SC, SourceLocation Loc,
  782   void Finish(Sema &S, const PrintingPolicy &Policy);
tools/clang/include/clang/Sema/Designator.h
  170   void ClearExprs(Sema &Actions) {}
  174   void FreeExprs(Sema &Actions) {}
  200   void ClearExprs(Sema &Actions) {}
  204   void FreeExprs(Sema &Actions) {}
tools/clang/include/clang/Sema/ExternalSemaSource.h
   63   virtual void InitializeSema(Sema &S) {}
tools/clang/include/clang/Sema/Initialization.h
 1099   void PrintInitLocationNote(Sema &S, const InitializedEntity &Entity);
 1121   InitializationSequence(Sema &S,
 1127   void InitializeFrom(Sema &S, const InitializedEntity &Entity,
 1154   ExprResult Perform(Sema &S,
 1164   bool Diagnose(Sema &S,
tools/clang/include/clang/Sema/Lookup.h
  145   LookupResult(Sema &SemaRef, const DeclarationNameInfo &NameInfo,
  146                Sema::LookupNameKind LookupKind,
  147                Sema::RedeclarationKind Redecl = Sema::NotForRedeclaration)
  147                Sema::RedeclarationKind Redecl = Sema::NotForRedeclaration)
  149         Redecl(Redecl != Sema::NotForRedeclaration),
  150         ExternalRedecl(Redecl == Sema::ForExternalRedeclaration),
  151         Diagnose(Redecl == Sema::NotForRedeclaration) {
  158   LookupResult(Sema &SemaRef, DeclarationName Name,
  159                SourceLocation NameLoc, Sema::LookupNameKind LookupKind,
  160                Sema::RedeclarationKind Redecl = Sema::NotForRedeclaration)
  160                Sema::RedeclarationKind Redecl = Sema::NotForRedeclaration)
  162         Redecl(Redecl != Sema::NotForRedeclaration),
  163         ExternalRedecl(Redecl == Sema::ForExternalRedeclaration),
  164         Diagnose(Redecl == Sema::NotForRedeclaration) {
  253   Sema::LookupNameKind getLookupKind() const {
  268   Sema::RedeclarationKind redeclarationKind() const {
  269     return ExternalRedecl ? Sema::ForExternalRedeclaration :
  270            Redecl ? Sema::ForVisibleRedeclaration : Sema::NotForRedeclaration;
  270            Redecl ? Sema::ForVisibleRedeclaration : Sema::NotForRedeclaration;
  349   static bool isVisible(Sema &SemaRef, NamedDecl *D) {
  372   static bool isVisibleSlow(Sema &SemaRef, NamedDecl *D);
  565   void clear(Sema::LookupNameKind Kind) {
  572   void setRedeclarationKind(Sema::RedeclarationKind RK) {
  573     Redecl = (RK != Sema::NotForRedeclaration);
  574     ExternalRedecl = (RK == Sema::ForExternalRedeclaration);
  612   Sema &getSema() const { return *SemaPtr; }
  732   Sema *SemaPtr;
  735   Sema::LookupNameKind LookupKind;
tools/clang/include/clang/Sema/MultiplexExternalSemaSource.h
  202   void InitializeSema(Sema &S) override;
tools/clang/include/clang/Sema/Overload.h
  689     void DiagnoseAmbiguousConversion(Sema &S,
  854     bool TryToFixBadConversion(unsigned Idx, Sema &S) {
 1066     OverloadingResult BestViableFunction(Sema &S, SourceLocation Loc,
 1070         Sema &S, OverloadCandidateDisplayKind OCD, ArrayRef<Expr *> Args,
 1076         PartialDiagnosticAt PA, Sema &S, OverloadCandidateDisplayKind OCD,
 1082     void NoteCandidates(Sema &S, ArrayRef<Expr *> Args,
 1099   bool isBetterOverloadCandidate(Sema &S,
tools/clang/include/clang/Sema/ParsedAttr.h
  501   bool diagnoseAppertainsTo(class Sema &S, const Decl *D) const;
  506   bool diagnoseLangOpts(class Sema &S) const;
tools/clang/include/clang/Sema/Sema.h
  289   void enterCondition(Sema &S, SourceLocation Tok);
  290   void enterReturn(Sema &S, SourceLocation Tok);
  302   void enterUnary(Sema &S, SourceLocation Tok, tok::TokenKind OpKind,
  304   void enterBinary(Sema &S, SourceLocation Tok, Expr *LHS, tok::TokenKind Op);
  305   void enterMemAccess(Sema &S, SourceLocation Tok, Expr *Base);
  306   void enterSubscript(Sema &S, SourceLocation Tok, Expr *LHS);
  332   Sema(const Sema &) = delete;
  333   void operator=(const Sema &) = delete;
  540     PragmaStackSentinelRAII(Sema &S, StringRef SlotLabel, bool ShouldAct);
  544     Sema &S;
  781     Sema &S;
  787     ContextRAII(Sema &S, DeclContext *ContextToPush, bool NewThisContext = true)
  823     Sema &S;
  824     Sema::ContextRAII SavedContext;
  828     SynthesizedFunctionScope(Sema &S, DeclContext *DC)
  832           Sema::ExpressionEvaluationContext::PotentiallyEvaluated);
  842       Sema::CodeSynthesisContext Ctx;
  843       Ctx.Kind = Sema::CodeSynthesisContext::DefiningSynthesizedFunction;
 1284     FPContractStateRAII(Sema &S) : S(S), OldFPFeaturesState(S.FPFeatures) {}
 1288     Sema& S;
 1347     Sema &SemaRef;
 1351     SemaDiagnosticBuilder(DiagnosticBuilder &DB, Sema &SemaRef, unsigned DiagID)
 1455     Sema *Self;
 1458     explicit PoppedFunctionScopeDeleter(Sema *Self) : Self(Self) {}
 1636     virtual void diagnose(Sema &S, SourceLocation Loc, QualType T) = 0;
 1674     void diagnose(Sema &S, SourceLocation Loc, QualType T) override {
 2987     diagnoseNoMatch(Sema &S, SourceLocation Loc, QualType T) = 0;
 2991     diagnoseIncomplete(Sema &S, SourceLocation Loc, QualType T) = 0;
 2996         Sema &S, SourceLocation Loc, QualType T, QualType ConvTy) = 0;
 3000     noteExplicitConv(Sema &S, CXXConversionDecl *Conv, QualType ConvTy) = 0;
 3005     diagnoseAmbiguous(Sema &S, SourceLocation Loc, QualType T) = 0;
 3009     noteAmbiguous(Sema &S, CXXConversionDecl *Conv, QualType ConvTy) = 0;
 3014         Sema &S, SourceLocation Loc, QualType T, QualType ConvTy) = 0;
 3032     diagnoseNoMatch(Sema &S, SourceLocation Loc, QualType T) override {
 3039     diagnoseNotInt(Sema &S, SourceLocation Loc, QualType T) = 0;
 3480   typedef std::function<ExprResult(Sema &, TypoExpr *, TypoCorrection)>
 3518                              Sema::LookupNameKind LookupKind, Scope *S,
 3616                              Sema::LookupNameKind LookupKind,
 3626                                Sema::LookupNameKind LookupKind, Scope *S,
 4006     FullExprArg(Sema &actions) : E(nullptr) { }
 4056     CompoundScopeRAII(Sema &S, bool IsStmtExpr = false) : S(S) {
 4065     Sema &S;
 4070     Sema &S;
 4072     FunctionScopeRAII(Sema &S) : S(S), Active(true) {}
 5162     Sema *Self;
 5179     explicit ImplicitExceptionSpecification(Sema &Self)
 5538     Sema &S;
 5547     CXXThisScopeRAII(Sema &S, Decl *ContextDecl, Qualifiers CXXThisTypeQuals,
 7891     Sema &Self;
 7895     ArgumentPackSubstitutionIndexRAII(Sema &Self, int NewSubstitutionIndex)
 7931     InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation,
 7938     InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation,
 7944     InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation,
 7951     InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation,
 7960     InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation,
 7969     InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation,
 7978     InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation,
 7986     InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation,
 7993     InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation,
 8001     InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation,
 8009     InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation,
 8019     InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation,
 8028     InstantiatingTemplate(Sema &SemaRef, SourceLocation PointOfInstantiation,
 8047     Sema &SemaRef;
 8054         Sema &SemaRef, CodeSynthesisContext::SynthesisKind Kind,
 8109     Sema &SemaRef;
 8116     explicit SFINAETrap(Sema &SemaRef, bool AccessCheckingSFINAE = false)
 8149     Sema &SemaRef;
 8154     explicit TentativeAnalysisScope(Sema &SemaRef)
 8207     GlobalEagerInstantiationScope(Sema &S, bool Enabled)
 8237     Sema &S;
 8254     LocalEagerInstantiationScope(Sema &S) : S(S) {
 8269     Sema &S;
 9799       const Sema::OpenMPDeclareVariantCtsSelectorData &Data);
10602     ConditionResult(Sema &S, Decl *ConditionVar, FullExprArg Condition,
10698     virtual void diagnoseNotICE(Sema &S, SourceLocation Loc, SourceRange SR) =0;
10699     virtual void diagnoseFold(Sema &S, SourceLocation Loc, SourceRange SR);
10810                       FunctionDecl *Fn, Sema &S);
10839     Sema &S;
10855       Sema &S, FunctionDecl *OrigCaller, FunctionDecl *OrigCallee,
10857       const llvm::function_ref<bool(Sema &, FunctionDecl *)> IsKnownEmitted);
11545     SavePendingParsedClassStateRAII(Sema &S) : S(S) { swapSavedState(); }
11558     Sema &S;
11632   Sema &Actions;
11637       Sema &Actions, Sema::ExpressionEvaluationContext NewContext,
11637       Sema &Actions, Sema::ExpressionEvaluationContext NewContext,
11639       Sema::ExpressionEvaluationContextRecord::ExpressionKind ExprContext =
11640           Sema::ExpressionEvaluationContextRecord::EK_Other,
11648       Sema &Actions, Sema::ExpressionEvaluationContext NewContext,
11648       Sema &Actions, Sema::ExpressionEvaluationContext NewContext,
11649       Sema::ReuseLambdaContextDecl_t,
11650       Sema::ExpressionEvaluationContextRecord::ExpressionKind ExprContext =
11651           Sema::ExpressionEvaluationContextRecord::EK_Other)
11654         NewContext, Sema::ReuseLambdaContextDecl, ExprContext);
11658   EnterExpressionEvaluationContext(Sema &Actions, InitListTag,
11668           Sema::ExpressionEvaluationContext::UnevaluatedList);
11680 MakeDeductionFailureInfo(ASTContext &Context, Sema::TemplateDeductionResult TDK,
11696   using FunctionDeclAndLoc = clang::Sema::FunctionDeclAndLoc;
tools/clang/include/clang/Sema/SemaConsumer.h
   35     virtual void InitializeSema(Sema &S) {}
tools/clang/include/clang/Sema/SemaFixItUtils.h
   36                                  Sema &S,
   53                                         Sema &S,
   77                           Sema &S);
tools/clang/include/clang/Sema/SemaInternal.h
   91   TypoCorrectionConsumer(Sema &SemaRef,
   93                          Sema::LookupNameKind LookupKind,
  304   Sema &SemaRef;
  322 inline Sema::TypoExprState &Sema::TypoExprState::
  323 operator=(Sema::TypoExprState &&other) noexcept {
tools/clang/include/clang/Sema/SemaLambda.h
   35     VarDecl *VarToCapture, Sema &S);
tools/clang/include/clang/Sema/Template.h
  235     Sema &SemaRef;
  290     LocalInstantiationScope(Sema &SemaRef, bool CombineWithOuterScope = false)
  304     const Sema &getSema() const { return SemaRef; }
  420     Sema &SemaRef;
  421     Sema::ArgumentPackSubstitutionIndexRAII SubstIndex;
  424     Sema::LateInstantiatedAttrVec* LateAttrs = nullptr;
  443     TemplateDeclInstantiator(Sema &SemaRef, DeclContext *Owner,
  488     void enableLateAttributeInstantiation(Sema::LateInstantiatedAttrVec *LA) {
tools/clang/include/clang/Sema/TemplateDeduction.h
  295   void NoteDeductionFailure(Sema &S, bool ForTakingAddress);
  342   void NoteCandidates(Sema &S, SourceLocation Loc);
  344   void NoteCandidates(Sema &S, SourceLocation Loc) const {
tools/clang/include/clang/Sema/TemplateInstCallback.h
   28   virtual void initialize(const Sema &TheSema) = 0;
   31   virtual void finalize(const Sema &TheSema) = 0;
   34   virtual void atTemplateBegin(const Sema &TheSema,
   35                                const Sema::CodeSynthesisContext &Inst) = 0;
   38   virtual void atTemplateEnd(const Sema &TheSema,
   39                              const Sema::CodeSynthesisContext &Inst) = 0;
   44                 const Sema &TheSema) {
   53               const Sema &TheSema) {
   62                      const Sema &TheSema,
   63                      const Sema::CodeSynthesisContext &Inst) {
   72                    const Sema &TheSema,
   73                    const Sema::CodeSynthesisContext &Inst) {
tools/clang/include/clang/Sema/TypoCorrection.h
  381   FunctionCallFilterCCC(Sema &SemaRef, unsigned NumArgs,
tools/clang/include/clang/Serialization/ASTReader.h
  429   Sema *SemaObj = nullptr;
 1969   void InitializeSema(Sema &S) override;
 2331   Sema *getSema() { return SemaObj; }
tools/clang/include/clang/Serialization/ASTWriter.h
  497   void WriteSelectors(Sema &SemaRef);
  498   void WriteReferencedSelectorsPool(Sema &SemaRef);
  504   void WriteOpenCLExtensions(Sema &SemaRef);
  505   void WriteOpenCLExtensionTypes(Sema &SemaRef);
  506   void WriteOpenCLExtensionDecls(Sema &SemaRef);
  507   void WriteCUDAPragmas(Sema &SemaRef);
  509   void WriteLateParsedTemplates(Sema &SemaRef);
  510   void WriteOptimizePragmaOptions(Sema &SemaRef);
  511   void WriteMSStructPragmaOptions(Sema &SemaRef);
  512   void WriteMSPointersToMembersPragmaOptions(Sema &SemaRef);
  513   void WritePackPragmaOptions(Sema &SemaRef);
  514   void WriteModuleFileExtension(Sema &SemaRef,
  537   ASTFileSignature WriteASTCore(Sema &SemaRef, StringRef isysroot,
  571   ASTFileSignature WriteAST(Sema &SemaRef, const std::string &OutputFile,
  976   Sema *SemaPtr;
  997   void InitializeSema(Sema &S) override { SemaPtr = &S; }
tools/clang/include/clang/Serialization/ModuleFileExtension.h
  123   virtual void writeExtensionContents(Sema &SemaRef,
tools/clang/lib/ARCMigrate/Internals.h
  149   Sema &SemaRef;
  156                 Sema &sema, TransformActions &TA,
tools/clang/lib/Frontend/ASTUnit.cpp
  860     AST->TheSema.reset(new Sema(PP, *AST->Ctx, *AST->Consumer));
 1937     void ProcessCodeCompleteResults(Sema &S, CodeCompletionContext Context,
 1941     void ProcessOverloadCandidates(Sema &S, unsigned CurrentArg,
 2046 void AugmentedCodeCompleteConsumer::ProcessCodeCompleteResults(Sema &S,
 2323                           Sema &S,
tools/clang/lib/Frontend/CompilerInstance.cpp
  119 void CompilerInstance::setSema(Sema *S) {
  134 std::unique_ptr<Sema> CompilerInstance::takeSema() {
  624   TheSema.reset(new Sema(getPreprocessor(), getASTContext(), getASTConsumer(),
tools/clang/lib/Frontend/FrontendActions.cpp
  376   using CodeSynthesisContext = Sema::CodeSynthesisContext;
  379   void initialize(const Sema &) override {}
  381   void finalize(const Sema &) override {}
  383   void atTemplateBegin(const Sema &TheSema,
  388   void atTemplateEnd(const Sema &TheSema,
  431   static void displayTemplightEntry(llvm::raw_ostream &Out, const Sema &TheSema,
  446   static TemplightEntry getTemplightEntry(const Sema &TheSema,
tools/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp
  240       clang::Sema &S = Instance.getSema();
tools/clang/lib/Parse/ParseAST.cpp
  105   std::unique_ptr<Sema> S(
  106       new Sema(PP, Ctx, *Consumer, TUKind, CompletionConsumer));
  109   llvm::CrashRecoveryContextCleanupRegistrar<Sema> CleanupSema(S.get());
  114 void clang::ParseAST(Sema &S, bool PrintStats, bool SkipFunctionBodies) {
tools/clang/lib/Parse/ParseCXXInlineMethods.cpp
  339           Sema::ExpressionEvaluationContext::PotentiallyEvaluatedIfUsed, Param);
  417     Sema::CXXThisScopeRAII ThisScope(Actions, Method->getParent(),
  596     Sema::CXXThisScopeRAII ThisScope(Actions, Class.TagOrTemplate,
 1045         Sema::TentativeAnalysisScope Scope(Actions);
tools/clang/lib/Parse/ParseDecl.cpp
  393             Uneval ? Sema::ExpressionEvaluationContext::Unevaluated
  394                    : Sema::ExpressionEvaluationContext::ConstantEvaluated);
 1503     Sema::CXXThisScopeRAII ThisScope(Actions, RD, Qualifiers(),
 1709                                             Sema::TagUseKind TUK) {
 1710   if (TUK == Sema::TUK_Reference)
 2652                      Sema::LookupOrdinaryName);
 2931       Sema::NameClassification Classification = Actions.ClassifyName(
 2935       case Sema::NC_Error:
 2939       case Sema::NC_Keyword:
 2942       case Sema::NC_Type:
 2943       case Sema::NC_TypeTemplate:
 2944       case Sema::NC_UndeclaredNonType:
 2945       case Sema::NC_UndeclaredTemplate:
 2950       case Sema::NC_Unknown:
 2951       case Sema::NC_NonType:
 2952       case Sema::NC_DependentNonType:
 2953       case Sema::NC_ContextIndependentExpr:
 2954       case Sema::NC_VarTemplate:
 2955       case Sema::NC_FunctionTemplate:
 3100       Sema::ParserCompletionContext CCC = Sema::PCC_Namespace;
 3100       Sema::ParserCompletionContext CCC = Sema::PCC_Namespace;
 3119         CCC = Sema::PCC_LocalDeclarationSpecifiers;
 3121         CCC = DSContext == DeclSpecContext::DSC_class ? Sema::PCC_MemberTemplate
 3122                                                       : Sema::PCC_Template;
 3124         CCC = Sema::PCC_Class;
 3126         CCC = Sema::PCC_ObjCImplementation;
 4397           Actions, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 4469   Sema::TagUseKind TUK;
 4471     TUK = Sema::TUK_Reference;
 4478       TUK = Sema::TUK_Friend;
 4480       TUK = Sema::TUK_Definition;
 4486     TUK = DS.isFriendSpecified() ? Sema::TUK_Friend : Sema::TUK_Declaration;
 4486     TUK = DS.isFriendSpecified() ? Sema::TUK_Friend : Sema::TUK_Declaration;
 4494     TUK = Sema::TUK_Reference;
 4499   if (TUK == Sema::TUK_Reference && shouldDelayDiagsInTag) {
 4505       TUK != Sema::TUK_Reference) {
 4525   if (TUK == Sema::TUK_Reference)
 4528   if (!Name && TUK != Sema::TUK_Definition) {
 4538   Sema::SkipBodyInfo SkipBody;
 4539   if (!Name && TUK == Sema::TUK_Definition && Tok.is(tok::l_brace) &&
 4601     if (Tok.is(tok::l_brace) && TUK != Sema::TUK_Reference) {
 4610   if (Tok.is(tok::l_brace) && TUK != Sema::TUK_Reference) {
 4686         Actions, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 6352       Sema::CXXThisScopeRAII ThisScope(
 6668               Sema::ExpressionEvaluationContext::PotentiallyEvaluatedIfUsed,
 6819           Actions, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 6951       Actions, Sema::ExpressionEvaluationContext::Unevaluated,
 6952       Sema::ReuseLambdaContextDecl);
tools/clang/lib/Parse/ParseDeclCXX.cpp
  882       Actions, Sema::ExpressionEvaluationContext::ConstantEvaluated);
  979           Actions, Sema::ExpressionEvaluationContext::Unevaluated, nullptr,
  980           Sema::ExpressionEvaluationContextRecord::EK_Decltype);
 1683   Sema::TagUseKind TUK;
 1685     TUK = Sema::TUK_Reference;
 1699       TUK = Sema::TUK_Friend;
 1702       TUK = Sema::TUK_Definition;
 1730       TUK = Sema::TUK_Definition;
 1732       TUK = Sema::TUK_Reference;
 1738     TUK = DS.isFriendSpecified() ? Sema::TUK_Friend : Sema::TUK_Declaration;
 1738     TUK = DS.isFriendSpecified() ? Sema::TUK_Friend : Sema::TUK_Declaration;
 1748     TUK = Sema::TUK_Reference;
 1752   if (TUK != Sema::TUK_Reference) {
 1776     if (TUK == Sema::TUK_Reference)
 1781                                TUK != Sema::TUK_Definition)) {
 1791     if (TUK == Sema::TUK_Definition && Tok.is(tok::colon))
 1803   Sema::SkipBodyInfo SkipBody;
 1810         TUK == Sema::TUK_Declaration) {
 1824     } else if (TUK == Sema::TUK_Reference ||
 1825                (TUK == Sema::TUK_Friend &&
 1855         if (TUK == Sema::TUK_Friend) {
 1886              TUK == Sema::TUK_Declaration) {
 1897   } else if (TUK == Sema::TUK_Friend &&
 1907     if (TUK != Sema::TUK_Declaration && TUK != Sema::TUK_Definition)
 1907     if (TUK != Sema::TUK_Declaration && TUK != Sema::TUK_Definition)
 1910     if (TUK == Sema::TUK_Definition &&
 1925     if (TUK != Sema::TUK_Reference && TemplateParams)
 1951   if (TUK == Sema::TUK_Definition) {
 2011   if (TUK == Sema::TUK_Definition &&
 2962       Actions, Sema::ExpressionEvaluationContext::PotentiallyEvaluated, D);
 3798 Sema::ParsingClassState
 3821 void Parser::PopParsingClass(Sema::ParsingClassState state) {
tools/clang/lib/Parse/ParseExpr.cpp
  216       Actions, Sema::ExpressionEvaluationContext::ConstantEvaluated);
  222       Actions, Sema::ExpressionEvaluationContext::ConstantEvaluated);
  236       Actions, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 1422         Actions, Sema::ExpressionEvaluationContext::Unevaluated);
 1785           Sema::TentativeAnalysisScope Trap(Actions);
 2026         Actions, Sema::ExpressionEvaluationContext::Unevaluated,
 2027         Sema::ReuseLambdaContextDecl);
 2039       Actions, Sema::ExpressionEvaluationContext::Unevaluated,
 2040       Sema::ReuseLambdaContextDecl);
 2161     SmallVector<Sema::OffsetOfComponent, 4> Comps;
 2434       Sema::ContextRAII SavedContext(Actions, CodeDC, /*NewThisContext=*/false);
 2757         Actions, Sema::ExpressionEvaluationContext::Unevaluated);
 2979     Actions.CodeCompleteOrdinaryName(getCurScope(), Sema::PCC_Type);
tools/clang/lib/Parse/ParseExprCXX.cpp
  390     Sema::NestedNameSpecInfo IdInfo(&II, Tok.getLocation(), Next.getLocation(),
  983             Actions, Sema::ExpressionEvaluationContext::PotentiallyEvaluated);
 1581       Actions, Sema::ExpressionEvaluationContext::Unevaluated,
 1582       Sema::ReuseLambdaContextDecl);
 1646         Actions, Sema::ExpressionEvaluationContext::Unevaluated);
 1910 Sema::ConditionResult Parser::ParseCXXCondition(StmtResult *InitStmt,
 1912                                                 Sema::ConditionKind CK,
 1918     Actions.CodeCompleteOrdinaryName(getCurScope(), Sema::PCC_Condition);
 1920     return Sema::ConditionError();
 1930         << (CK == Sema::ConditionKind::Switch);
 1945             << (CK == Sema::ConditionKind::Switch)
 1956       return Sema::ConditionError();
 2007       return Sema::ConditionError();
 2020     return Sema::ConditionError();
tools/clang/lib/Parse/ParseInit.cpp
  282       case Sema::ObjCSuperMessage:
  287       case Sema::ObjCClassMessage:
  315       case Sema::ObjCInstanceMessage:
tools/clang/lib/Parse/ParseObjc.cpp
   98   Sema &Actions;
  103   ObjCTypeParamListScope(Sema &Actions, Scope *S)
  167   Sema::ObjCContainerKind ock = Actions.getObjCContainerKind();
  168   if (ock == Sema::OCK_None)
  639                             CurParsedObjCImpl? Sema::PCC_ObjCImplementation
  640                                              : Sema::PCC_ObjCInterface);
 1391   SmallVector<Sema::ObjCArgInfo, 12> ArgInfos;
 1398     Sema::ObjCArgInfo ArgInfo;
 1631         Actions.CodeCompleteOrdinaryName(getCurScope(), Sema::PCC_Type);
 1955                                        Sema::PCC_ObjCInstanceVariableList);
 2244           << Sema::OCK_Implementation;
 3059     case Sema::ObjCSuperMessage:
 3063     case Sema::ObjCClassMessage:
 3089     case Sema::ObjCInstanceMessage:
tools/clang/lib/Parse/ParseOpenMP.cpp
  176   Sema &Actions = P.getActions();
  627   Sema::CXXThisScopeRAII *ThisScope;
  641     Sema &Actions = P.getActions();
  644     ThisScope = new Sema::CXXThisScopeRAII(Actions, RD, Qualifiers(),
  826                             const Sema::OpenMPDeclareVariantCtsSelectorData &)>
  888       Sema::OpenMPDeclareVariantCtsSelectorData Data(
  914                             const Sema::OpenMPDeclareVariantCtsSelectorData &)>
 1118   Sema::NamedDeclSetType SameDirectiveDecls;
tools/clang/lib/Parse/ParsePragma.cpp
   52   explicit PragmaClangSectionHandler(Sema &S)
   58   Sema &Actions;
  168   PragmaCommentHandler(Sema &Actions)
  174   Sema &Actions;
  178   PragmaDetectMismatchHandler(Sema &Actions)
  184   Sema &Actions;
  207   PragmaOptimizeHandler(Sema &S)
  213   Sema &Actions;
  245   PragmaForceCUDAHostDeviceHandler(Sema &Actions)
  251   Sema &Actions;
  514   Sema::PragmaMsStackAction Action;
  550   Sema::PragmaOptionsAlignKind Kind =
  735   Sema::PragmaMsStackAction Action =
  862   Sema::PragmaMsStackAction Action = Sema::PSK_Reset;
  862   Sema::PragmaMsStackAction Action = Sema::PSK_Reset;
  867       Action = Sema::PSK_Push;
  869       Action = Sema::PSK_Pop;
  876     if (Action != Sema::PSK_Reset) {
  902       unsigned DiagID = Action != Sema::PSK_Reset ? !SlotLabel.empty() ?
  920       Action = (Sema::PragmaMsStackAction)(Action | Sema::PSK_Set);
 1651   Sema::PragmaMsStackAction Action = Sema::PSK_Reset;
 1651   Sema::PragmaMsStackAction Action = Sema::PSK_Reset;
 1665         PP.getLangOpts().ApplePragmaPack ? Sema::PSK_Push_Set : Sema::PSK_Set;
 1665         PP.getLangOpts().ApplePragmaPack ? Sema::PSK_Push_Set : Sema::PSK_Set;
 1669       Action = Sema::PSK_Show;
 1673         Action = Sema::PSK_Push;
 1675         Action = Sema::PSK_Pop;
 1686           Action = (Sema::PragmaMsStackAction)(Action | Sema::PSK_Set);
 1702             Action = (Sema::PragmaMsStackAction)(Action | Sema::PSK_Set);
 1717     Action = Sema::PSK_Pop;
 1799   auto SecKind = Sema::PragmaClangSectionKind::PCSK_Invalid;
 1810       SecKind = Sema::PragmaClangSectionKind::PCSK_BSS;
 1812       SecKind = Sema::PragmaClangSectionKind::PCSK_Data;
 1814       SecKind = Sema::PragmaClangSectionKind::PCSK_Rodata;
 1816       SecKind = Sema::PragmaClangSectionKind::PCSK_Relro;
 1818       SecKind = Sema::PragmaClangSectionKind::PCSK_Text;
 1835       (SecName.size()? Sema::PragmaClangSectionAction::PCSA_Set :
 1836                        Sema::PragmaClangSectionAction::PCSA_Clear),
 1870   Sema::PragmaOptionsAlignKind Kind = Sema::POAK_Natural;
 1870   Sema::PragmaOptionsAlignKind Kind = Sema::POAK_Natural;
 1873     Kind = Sema::POAK_Native;
 1875     Kind = Sema::POAK_Natural;
 1877     Kind = Sema::POAK_Packed;
 1879     Kind = Sema::POAK_Power;
 1881     Kind = Sema::POAK_Mac68k;
 1883     Kind = Sema::POAK_Reset;
 2364   Sema::PragmaMsStackAction Action = Sema::PSK_Set;
 2364   Sema::PragmaMsStackAction Action = Sema::PSK_Set;
 2375       Action = Sema::PSK_Push_Set;
 2380       Action = Sema::PSK_Pop;
 2386       Action = Sema::PSK_Reset;
 2392   if (Action & Sema::PSK_Push || Action & Sema::PSK_Set) {
 2392   if (Action & Sema::PSK_Push || Action & Sema::PSK_Set) {
tools/clang/lib/Parse/ParseStmt.cpp
  173     Actions.CodeCompleteOrdinaryName(getCurScope(), Sema::PCC_Statement);
 1019   Sema::FPContractStateRAII SaveFPContractState(Actions);
 1026   Sema::CompoundScopeRAII CompoundScope(Actions, isStmtExpr);
 1150                                        Sema::ConditionResult &Cond,
 1152                                        Sema::ConditionKind CK) {
 1163       Cond = Sema::ConditionError();
 1238   Sema::ConditionResult Cond;
 1240                                 IsConstexpr ? Sema::ConditionKind::ConstexprIf
 1241                                             : Sema::ConditionKind::Boolean))
 1275         Actions, Sema::ExpressionEvaluationContext::DiscardedStatement, nullptr,
 1276         Sema::ExpressionEvaluationContextRecord::EK_Other,
 1309         Actions, Sema::ExpressionEvaluationContext::DiscardedStatement, nullptr,
 1310         Sema::ExpressionEvaluationContextRecord::EK_Other,
 1381   Sema::ConditionResult Cond;
 1383                                 Sema::ConditionKind::Switch))
 1469   Sema::ConditionResult Cond;
 1471                                 Sema::ConditionKind::Boolean))
 1658   Sema::ConditionResult SecondPart;
 1665                                      C99orCXXorObjC? Sema::PCC_ForInit
 1666                                                    : Sema::PCC_Expression);
 1782       SecondPart = Sema::ConditionError();
 1811             ParseCXXCondition(nullptr, ForLoc, Sema::ConditionKind::Boolean,
 1831           SecondPart = Sema::ConditionError();
 1835                                      Sema::ConditionKind::Boolean);
 1883         T.getCloseLocation(), Sema::BFRK_Build);
 2086   Sema::PragmaStackSentinelRAII
 2096     Sema::CompoundScopeRAII CompoundScope(Actions);
 2125   Sema::PragmaStackSentinelRAII
 2133     Sema::CompoundScopeRAII CompoundScope(Actions);
tools/clang/lib/Parse/ParseTemplate.cpp
  817         Actions, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 1341     Actions, Sema::ExpressionEvaluationContext::ConstantEvaluated,
 1343     /*ExprContext=*/Sema::ExpressionEvaluationContextRecord::EK_TemplateArgument);
 1455   Sema::ContextRAII GlobalSavedContext(
 1512   Sema::ContextRAII FunctionSavedContext(Actions,
tools/clang/lib/Parse/Parser.cpp
   30   Sema &S;
   33   explicit ActionCommentHandler(Sema &S) : S(S) { }
   50 Parser::Parser(Preprocessor &pp, Sema &actions, bool skipFunctionBodies)
  841         CurParsedObjCImpl ? Sema::PCC_ObjCImplementation : Sema::PCC_Namespace);
  841         CurParsedObjCImpl ? Sema::PCC_ObjCImplementation : Sema::PCC_Namespace);
 1242   Sema::SkipBodyInfo SkipBody;
 1603   Sema::NameClassification Classification = Actions.ClassifyName(
 1610   if (Classification.getKind() == Sema::NC_UndeclaredTemplate &&
 1621   case Sema::NC_Error:
 1624   case Sema::NC_Keyword:
 1634   case Sema::NC_Unknown:
 1638   case Sema::NC_Type: {
 1670   case Sema::NC_ContextIndependentExpr:
 1679   case Sema::NC_NonType:
 1689   case Sema::NC_UndeclaredNonType:
 1690   case Sema::NC_DependentNonType:
 1691     Tok.setKind(Classification.getKind() == Sema::NC_UndeclaredNonType
 1702   case Sema::NC_TypeTemplate:
 1710   case Sema::NC_VarTemplate:
 1711   case Sema::NC_FunctionTemplate:
 1712   case Sema::NC_UndeclaredTemplate: {
 2046                                        Sema::PCC_RecoveryInFunction);
 2052       Actions.CodeCompleteOrdinaryName(getCurScope(), Sema::PCC_Class);
 2058   Actions.CodeCompleteOrdinaryName(getCurScope(), Sema::PCC_Namespace);
 2137   case Sema::IER_Exists:
 2141   case Sema::IER_DoesNotExist:
 2145   case Sema::IER_Dependent:
 2149   case Sema::IER_Error:
 2208   Sema::ModuleDeclKind MDK = TryConsumeToken(tok::kw_export)
 2209                                  ? Sema::ModuleDeclKind::Interface
 2210                                  : Sema::ModuleDeclKind::Implementation;
 2230     if (MDK == Sema::ModuleDeclKind::Interface) {
 2240     if (MDK == Sema::ModuleDeclKind::Interface) {
tools/clang/lib/Sema/AnalysisBasedWarnings.cpp
   57     Sema &S;
   61     UnreachableCodeHandler(Sema &s) : S(s) {}
  108 static void CheckUnreachable(Sema &S, AnalysisDeclContext &AC) {
  126   Sema &S;
  129   LogicalErrorHandler(Sema &S) : CFGCallback(), S(S) {}
  253 static void checkRecursiveFunction(Sema &S, const FunctionDecl *FD,
  281 static bool throwEscapes(Sema &S, const CXXThrowExpr *E, CFGBlock &ThrowBlock,
  336 static void EmitDiagForCXXThrowInNonThrowingFunc(Sema &S, SourceLocation OpLoc,
  356 static void checkThrowInNonThrowingFunc(Sema &S, const FunctionDecl *FD,
  636 static void CheckFallThroughForBody(Sema &S, const Decl *D, const Stmt *Body,
  754 static bool SuggestInitializationFixit(Sema &S, const VarDecl *VD) {
  786 static void CreateIfFixit(Sema &S, const Stmt *If, const Stmt *Then,
  810 static void DiagUninitUse(Sema &S, const VarDecl *VD, const UninitUse &Use,
  982 static bool DiagnoseUninitializedUse(Sema &S, const VarDecl *VD,
 1035     FallthroughMapper(Sema &S)
 1213     Sema &S;
 1252 static void DiagnoseSwitchLabelsFallthrough(Sema &S, AnalysisDeclContext &AC,
 1343 static void diagnoseRepeatedUseOfWeak(Sema &S,
 1501   Sema &S;
 1511   UninitValsDiagReporter(Sema &S) : S(S) {}
 1613   Sema &S;
 1663   ThreadSafetyReporter(Sema &S, SourceLocation FL, SourceLocation FEL)
 1886   Sema &S;
 1891   ConsumedWarningsHandler(Sema &S) : S(S) {}
 1986 clang::sema::AnalysisBasedWarnings::AnalysisBasedWarnings(Sema &s)
 2014 static void flushDiagnostics(Sema &S, const sema::FunctionScopeInfo *fscope) {
tools/clang/lib/Sema/CodeCompleteConsumer.cpp
  537     Sema &SemaRef, CodeCompletionContext Context, CodeCompletionResult *Results,
  647     Sema &SemaRef, unsigned CurrentArg, OverloadCandidate *Candidates,
tools/clang/lib/Sema/CoroutineStmtBuilder.h
   25   Sema &S;
   37   CoroutineStmtBuilder(Sema &S, FunctionDecl &FD, sema::FunctionScopeInfo &Fn,
tools/clang/lib/Sema/DeclSpec.cpp
  589 bool DeclSpec::SetStorageClassSpec(Sema &S, SCS SC, SourceLocation Loc,
 1060 void DeclSpec::Finish(Sema &S, const PrintingPolicy &Policy) {
tools/clang/lib/Sema/JumpDiagnostics.cpp
   32   Sema &S;
   73   JumpScopeChecker(Stmt *Body, Sema &S);
   96 JumpScopeChecker::JumpScopeChecker(Stmt *Body, Sema &s)
  133 static ScopePair GetDiagForGotoScopeDecl(Sema &S, const Decl *D) {
  800 static bool IsCXX98CompatWarning(Sema &S, unsigned InDiagNote) {
  806 static void DiagnoseIndirectOrAsmJumpStmt(Sema &S, Stmt *Jump,
tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp
  205 void MultiplexExternalSemaSource::InitializeSema(Sema &S) {
tools/clang/lib/Sema/ParsedAttr.cpp
  113   bool (*DiagAppertainsToDecl)(Sema &S, const ParsedAttr &Attr, const Decl *);
  114   bool (*DiagLangOpts)(Sema &S, const ParsedAttr &Attr);
  142 bool ParsedAttr::diagnoseAppertainsTo(Sema &S, const Decl *D) const {
  158 bool ParsedAttr::diagnoseLangOpts(Sema &S) const {
tools/clang/lib/Sema/Sema.cpp
   81   Sema *S = nullptr;
   85   void set(Sema &S) { this->S = &S; }
  107             Sema::PragmaPackDiagnoseKind::NonDefaultStateAtInclude, IncludeLoc);
  117             Sema::PragmaPackDiagnoseKind::ChangedStateAtExit,
  577 static bool ShouldRemoveFromUnused(Sema *SemaRef, const DeclaratorDecl *D) {
  710 static void checkUndefinedButUsed(Sema &S) {
 1388 Sema::SemaDiagnosticBuilder
 1398 static void emitCallStackNotes(Sema &S, FunctionDecl *FD) {
 1412 static void emitDeferredDiags(Sema &S, FunctionDecl *FD, bool ShowCallStack) {
 1461                                            Sema &S)
 1509     Sema &S, FunctionDecl *OrigCaller, FunctionDecl *OrigCallee,
 1511     const llvm::function_ref<bool(Sema &, FunctionDecl *)> IsKnownEmitted) {
 1570 Sema::DeviceDiagBuilder Sema::targetDiag(SourceLocation Loc, unsigned DiagID) {
 1666 static void checkEscapingByref(VarDecl *VD, Sema &S) {
 1669       S, Sema::ExpressionEvaluationContext::PotentiallyEvaluated);
 1691 static void markEscapingByrefs(const FunctionScopeInfo &FSI, Sema &S) {
 1711                                 Sema::NTCUC_BlockCapture,
 1712                                 Sema::NTCUK_Destruct|Sema::NTCUK_Copy);
 1712                                 Sema::NTCUK_Destruct|Sema::NTCUK_Copy);
 1736 Sema::PoppedFunctionScopePtr
 1988     Sema::TentativeAnalysisScope Trap(*this);
 2037 static void noteOverloads(Sema &S, const UnresolvedSetImpl &Overloads,
 2066 static void notePlausibleOverloads(Sema &S, SourceLocation Loc,
 2181 const llvm::MapVector<FieldDecl *, Sema::DeleteLocs> &
tools/clang/lib/Sema/SemaAccess.cpp
  209   const CXXRecordDecl *resolveInstanceContext(Sema &S) const {
  329 static bool MightInstantiateTo(Sema &S, DeclContext *Context,
  349 static bool MightInstantiateTo(Sema &S, CanQualType Context, CanQualType Friend) {
  360 static bool MightInstantiateTo(Sema &S,
  398 static bool MightInstantiateTo(Sema &S,
  406 static AccessResult MatchesFriend(Sema &S,
  422 static AccessResult MatchesFriend(Sema &S,
  437 static AccessResult MatchesFriend(Sema &S,
  490 static AccessResult MatchesFriend(Sema &S,
  509 static AccessResult MatchesFriend(Sema &S,
  539 static AccessResult MatchesFriend(Sema &S,
  568 static AccessResult GetFriendKind(Sema &S,
  597   Sema &S;
  606   ProtectedFriendContext(Sema &S, const EffectiveContext &EC,
  709 static AccessResult GetProtectedFriendKind(Sema &S, const EffectiveContext &EC,
  727 static AccessResult HasAccess(Sema &S,
  925 static CXXBasePath *FindBestPath(Sema &S,
 1017 static bool TryDiagnoseProtectedAccess(Sema &S, const EffectiveContext &EC,
 1092 static void diagnoseBadDirectAccess(Sema &S,
 1149 static void DiagnoseAccessPath(Sema &S,
 1258 static void DiagnoseBadAccess(Sema &S, SourceLocation Loc,
 1293 static bool IsMicrosoftUsingDeclarationAccessBug(Sema& S,
 1313 static AccessResult IsAccessible(Sema &S,
 1391 static void DelayDependentAccess(Sema &S,
 1409 static AccessResult CheckEffectiveAccess(Sema &S,
 1436 static Sema::AccessResult CheckAccess(Sema &S, SourceLocation Loc,
 1436 static Sema::AccessResult CheckAccess(Sema &S, SourceLocation Loc,
 1440     return Sema::AR_accessible;
 1455     return Sema::AR_delayed;
 1460   case AR_accessible: return Sema::AR_accessible;
 1461   case AR_inaccessible: return Sema::AR_inaccessible;
 1462   case AR_dependent: return Sema::AR_dependent;
 1530 Sema::AccessResult Sema::CheckUnresolvedLookupAccess(UnresolvedLookupExpr *E,
 1546 Sema::AccessResult Sema::CheckUnresolvedMemberAccess(UnresolvedMemberExpr *E,
 1586 Sema::AccessResult Sema::CheckDestructorAccess(SourceLocation Loc,
 1610 Sema::AccessResult Sema::CheckConstructorAccess(SourceLocation UseLoc,
 1653 Sema::AccessResult Sema::CheckConstructorAccess(SourceLocation UseLoc,
 1695 Sema::AccessResult Sema::CheckAllocationAccess(SourceLocation OpLoc,
 1715 Sema::AccessResult Sema::CheckMemberAccess(SourceLocation UseLoc,
 1730 Sema::AccessResult
 1747 Sema::AccessResult Sema::CheckMemberOperatorAccess(SourceLocation OpLoc,
 1768 Sema::AccessResult Sema::CheckFriendAccess(NamedDecl *target) {
 1792   case ::AR_accessible: return Sema::AR_accessible;
 1793   case ::AR_inaccessible: return Sema::AR_inaccessible;
 1794   case ::AR_dependent: return Sema::AR_dependent;
 1799 Sema::AccessResult Sema::CheckAddressOfMemberAccess(Expr *OvlExpr,
 1823 Sema::AccessResult Sema::CheckBaseClassAccess(SourceLocation AccessLoc,
 1848     case ::AR_accessible: return Sema::AR_accessible;
 1849     case ::AR_inaccessible: return Sema::AR_inaccessible;
 1850     case ::AR_dependent: return Sema::AR_dependent;
tools/clang/lib/Sema/SemaAttr.cpp
   27 Sema::PragmaStackSentinelRAII::PragmaStackSentinelRAII(Sema &S,
   57     if (Alignment == Sema::kMac68kAlignmentSentinel)
  207   PragmaMsStackAction Action = Sema::PSK_Reset;
  216     Action = Sema::PSK_Push_Set;
  223     Action = Sema::PSK_Push_Set;
  233     Action = Sema::PSK_Push_Set;
  234     Alignment = Sema::kMac68kAlignmentSentinel;
  240     Action = Sema::PSK_Pop;
  243         Action = Sema::PSK_Reset;
  311   if (Action == Sema::PSK_Show) {
  318     if (AlignmentVal == Sema::kMac68kAlignmentSentinel)
  325   if (Action & Sema::PSK_Pop) {
  627 CharSourceRange replacementRangeForListElement(const Sema &S,
  905 static void PushPragmaVisibility(Sema &S, unsigned type, SourceLocation loc) {
tools/clang/lib/Sema/SemaCUDA.cpp
   57 Sema::CUDAFunctionTarget
  106 Sema::CUDAFunctionTarget Sema::IdentifyCUDATarget(const FunctionDecl *D,
  161 Sema::CUDAFunctionPreference
  245 resolveCalleeCUDATargetConflict(Sema::CUDAFunctionTarget Target1,
  246                                 Sema::CUDAFunctionTarget Target2,
  247                                 Sema::CUDAFunctionTarget *ResolvedTarget) {
  252   if (Target1 == Sema::CFT_HostDevice) {
  254   } else if (Target2 == Sema::CFT_HostDevice) {
  311     Sema::SpecialMemberOverloadResult SMOR =
  354     Sema::SpecialMemberOverloadResult SMOR =
  605 Sema::DeviceDiagBuilder Sema::CUDADiagIfDeviceCode(SourceLocation Loc,
  633 Sema::DeviceDiagBuilder Sema::CUDADiagIfHostCode(SourceLocation Loc,
  778 static void copyAttrIfPresent(Sema &S, FunctionDecl *FD,
tools/clang/lib/Sema/SemaCXXScopeSpec.cpp
  435   explicit NestedNameSpecifierValidatorCCC(Sema &SRef)
  447   Sema &SRef;
tools/clang/lib/Sema/SemaCast.cpp
   56     CastOperation(Sema &S, QualType destType, ExprResult src)
   70     Sema &Self;
  141     void checkObjCConversion(Sema::CheckedConversionKind CCK) {
  146           Sema::ACR_unbridged)
  164 static void DiagnoseCastQual(Sema &Self, const ExprResult &SrcExpr,
  178 static TryCastResult TryLValueToRValueCast(Sema &Self, Expr *SrcExpr,
  183 static TryCastResult TryStaticReferenceDowncast(Sema &Self, Expr *SrcExpr,
  189 static TryCastResult TryStaticPointerDowncast(Sema &Self, QualType SrcType,
  195 static TryCastResult TryStaticDowncast(Sema &Self, CanQualType SrcType,
  202 static TryCastResult TryStaticMemberPointerUpcast(Sema &Self, ExprResult &SrcExpr,
  210 static TryCastResult TryStaticImplicitCast(Sema &Self, ExprResult &SrcExpr,
  212                                            Sema::CheckedConversionKind CCK,
  216 static TryCastResult TryStaticCast(Sema &Self, ExprResult &SrcExpr,
  218                                    Sema::CheckedConversionKind CCK,
  223 static TryCastResult TryConstCast(Sema &Self, ExprResult &SrcExpr,
  226 static TryCastResult TryReinterpretCast(Sema &Self, ExprResult &SrcExpr,
  369 static bool tryDiagnoseOverloadedCast(Sema &S, CastType CT,
  445 static void diagnoseBadCast(Sema &S, unsigned msg, CastType castType,
  592 CastsAwayConstness(Sema &Self, QualType SrcType, QualType DestType,
  883 static void DiagnoseReinterpretUpDownCast(Sema &Self, const Expr *SrcExpr,
 1009       checkObjCConversion(Sema::CCK_OtherCast);
 1055     = TryStaticCast(Self, SrcExpr, DestType, Sema::CCK_OtherCast, OpRange, msg,
 1076       checkObjCConversion(Sema::CCK_OtherCast);
 1096 static TryCastResult TryStaticCast(Sema &Self, ExprResult &SrcExpr,
 1098                                    Sema::CheckedConversionKind CCK,
 1104     = (CCK == Sema::CCK_CStyleCast || CCK == Sema::CCK_FunctionalCast);
 1104     = (CCK == Sema::CCK_CStyleCast || CCK == Sema::CCK_FunctionalCast);
 1287 TryCastResult TryLValueToRValueCast(Sema &Self, Expr *SrcExpr,
 1315   Sema::ReferenceCompareResult RefResult = Self.CompareReferenceRelationship(
 1318   if (RefResult != Sema::Ref_Compatible) {
 1319     if (CStyle || RefResult == Sema::Ref_Incompatible)
 1346 TryStaticReferenceDowncast(Sema &Self, Expr *SrcExpr, QualType DestType,
 1384 TryStaticPointerDowncast(Sema &Self, QualType SrcType, QualType DestType,
 1418 TryStaticDowncast(Sema &Self, CanQualType SrcType, CanQualType DestType,
 1506     case Sema::AR_accessible:
 1507     case Sema::AR_delayed:     // be optimistic
 1508     case Sema::AR_dependent:   // be optimistic
 1511     case Sema::AR_inaccessible:
 1530 TryStaticMemberPointerUpcast(Sema &Self, ExprResult &SrcExpr, QualType SrcType,
 1605     case Sema::AR_accessible:
 1606     case Sema::AR_delayed:
 1607     case Sema::AR_dependent:
 1612     case Sema::AR_inaccessible:
 1648 TryStaticImplicitCast(Sema &Self, ExprResult &SrcExpr, QualType DestType,
 1649                       Sema::CheckedConversionKind CCK,
 1664     = (CCK == Sema::CCK_CStyleCast)
 1667     : (CCK == Sema::CCK_FunctionalCast)
 1682     = (CCK == Sema::CCK_CStyleCast || CCK == Sema::CCK_FunctionalCast);
 1682     = (CCK == Sema::CCK_CStyleCast || CCK == Sema::CCK_FunctionalCast);
 1703 static TryCastResult TryConstCast(Sema &Self, ExprResult &SrcExpr,
 1856 static void DiagnoseCastOfObjCSEL(Sema &Self, const ExprResult &SrcExpr,
 1875 static void DiagnoseCallingConvCast(Sema &Self, const ExprResult &SrcExpr,
 1965                                   Sema &Self) {
 1989 static bool fixOverloadedReinterpretCastExpr(Sema &Self, QualType DestType,
 2016 static TryCastResult TryReinterpretCast(Sema &Self, ExprResult &SrcExpr,
 2321 static TryCastResult TryAddressSpaceCast(Sema &Self, ExprResult &SrcExpr,
 2384             << SrcType << DestType << Sema::AA_Casting
 2481   Sema::CheckedConversionKind CCK =
 2482       FunctionalStyle ? Sema::CCK_FunctionalCast : Sema::CCK_CStyleCast;
 2482       FunctionalStyle ? Sema::CCK_FunctionalCast : Sema::CCK_CStyleCast;
 2546 static void DiagnoseBadFunctionCast(Sema &Self, const ExprResult &SrcExpr,
 2761     checkObjCConversion(Sema::CCK_CStyleCast);
 2775               << SrcType << DestType << Sema::AA_Casting
 2844 static void DiagnoseCastQual(Sema &Self, const ExprResult &SrcExpr,
tools/clang/lib/Sema/SemaChecking.cpp
  110 static bool checkArgCount(Sema &S, CallExpr *call, unsigned desiredArgCount) {
  130 static bool SemaBuiltinAnnotation(Sema &S, CallExpr *TheCall) {
  156 static bool SemaBuiltinMSVCAnnotation(Sema &S, CallExpr *TheCall) {
  180 static bool SemaBuiltinAddressof(Sema &S, CallExpr *TheCall) {
  196 static bool SemaBuiltinPreserveAI(Sema &S, CallExpr *TheCall) {
  204 static bool SemaBuiltinOverflow(Sema &S, CallExpr *TheCall) {
  249 static bool SemaBuiltinCallWithStaticChain(Sema &S, CallExpr *BuiltinCall) {
  455 static bool SemaBuiltinSEHScopeCheck(Sema &SemaRef, CallExpr *TheCall,
  483 static bool checkOpenCLBlockArgs(Sema &S, Expr *BlockArg) {
  516 static bool checkOpenCLSubgroupExt(Sema &S, CallExpr *Call) {
  525 static bool SemaOpenCLBuiltinNDRangeAndBlock(Sema &S, CallExpr *TheCall) {
  552 static bool SemaOpenCLBuiltinKernelWorkGroupSize(Sema &S, CallExpr *TheCall) {
  566 static bool checkOpenCLEnqueueIntType(Sema &S, Expr *E,
  569 static bool checkOpenCLEnqueueLocalSizeArgs(Sema &S, CallExpr *TheCall,
  580 static bool checkOpenCLEnqueueVariadicArgs(Sema &S, CallExpr *TheCall,
  628 static bool SemaOpenCLBuiltinEnqueueKernel(Sema &S, CallExpr *TheCall) {
  754 static bool checkOpenCLPipeArg(Sema &S, CallExpr *Call) {
  804 static bool checkOpenCLPipePacketType(Sema &S, CallExpr *Call, unsigned Idx) {
  827 static bool SemaBuiltinRWPipe(Sema &S, CallExpr *Call) {
  882 static bool SemaBuiltinReserveRWPipe(Sema &S, CallExpr *Call) {
  911 static bool SemaBuiltinCommitRWPipe(Sema &S, CallExpr *Call) {
  934 static bool SemaBuiltinPipePackets(Sema &S, CallExpr *Call) {
  953 static bool SemaOpenCLBuiltinToAddr(Sema &S, unsigned BuiltinID,
  997 static ExprResult SemaBuiltinLaunder(Sema &S, CallExpr *TheCall) {
 1060 CheckBuiltinTargetSupport(Sema &S, unsigned BuiltinID, CallExpr *TheCall,
 3368 static bool SemaBuiltinCpuSupports(Sema &S, CallExpr *TheCall) {
 3388 static bool SemaBuiltinCpuIs(Sema &S, CallExpr *TheCall) {
 4110 static bool CheckNonNullExpr(Sema &S, const Expr *Expr) {
 4135 static void CheckNonNullArgument(Sema &S,
 4157 DiagnoseCStringFormatDirectiveInCFAPI(Sema &S,
 4204 static void CheckNonNullArguments(Sema &S,
 4808   if (ArgOrder == Sema::AtomicArgumentOrder::AST) {
 4999 static bool checkBuiltinArgument(Sema &S, CallExpr *E, unsigned ArgIndex) {
 5516 static bool checkVAStartABI(Sema &S, unsigned BuiltinID, Expr *Fn) {
 5550 static bool checkVAStartIsInVariadicFunction(Sema &S, Expr *Fn,
 6673   void Diagnose(Sema &S, bool IsFunctionCall, const Expr *ArgExpr);
 6777 static void CheckFormatString(Sema &S, const FormatStringLiteral *FExpr,
 6782                               Sema::FormatStringType Type,
 6784                               Sema::VariadicCallType CallType,
 6794 checkFormatStringExpr(Sema &S, const Expr *E, ArrayRef<const Expr *> Args,
 6796                       unsigned firstDataArg, Sema::FormatStringType Type,
 6797                       Sema::VariadicCallType CallType, bool InFunctionCall,
 7101 Sema::FormatStringType Sema::GetFormatStringType(const FormatAttr *Format) {
 7220   Sema &S;
 7223   const Sema::FormatStringType FSType;
 7234   Sema::VariadicCallType CallType;
 7239   CheckFormatHandler(Sema &s, const FormatStringLiteral *fexpr,
 7241                      const Sema::FormatStringType type, unsigned firstDataArg,
 7244                      bool inFunctionCall, Sema::VariadicCallType callType,
 7287   EmitFormatDiagnostic(Sema &S, bool inFunctionCall, const Expr *ArgumentExpr,
 7498 void UncoveredArgHandler::Diagnose(Sema &S, bool IsFunctionCall,
 7651     Sema &S, bool InFunctionCall, const Expr *ArgumentExpr,
 7655     const Sema::SemaDiagnosticBuilder &D = S.Diag(Loc, PDiag);
 7662     const Sema::SemaDiagnosticBuilder &Note =
 7677   CheckPrintfHandler(Sema &s, const FormatStringLiteral *fexpr,
 7679                      const Sema::FormatStringType type, unsigned firstDataArg,
 7683                      Sema::VariadicCallType CallType,
 7691   bool isObjCContext() const { return FSType == Sema::FST_NSString; }
 7695     return FSType == Sema::FST_NSString || FSType == Sema::FST_OSLog ||
 7695     return FSType == Sema::FST_NSString || FSType == Sema::FST_OSLog ||
 7696            FSType == Sema::FST_OSTrace;
 7900 CXXRecordMembersNamed(StringRef Name, Sema &S, QualType Ty) {
 7911                  Sema::LookupMemberName);
 8061   if (FSType != Sema::FST_OSLog && CS.getKind() == ConversionSpecifier::PArg) {
 8067   if (FSType == Sema::FST_OSLog && CS.getKind() == ConversionSpecifier::nArg) {
 8077   if (FSType == Sema::FST_OSTrace &&
 8086   if (FSType != Sema::FST_OSLog) {
 8270 isArithmeticArgumentPromotion(Sema &S, const ImplicitCastExpr *ICE) {
 8391                           Sema::LookupOrdinaryName);
 8527     case Sema::VAK_Valid:
 8528     case Sema::VAK_ValidInCXX11: {
 8549     case Sema::VAK_Undefined:
 8550     case Sema::VAK_MSVCUndefined:
 8560     case Sema::VAK_Invalid:
 8591   CheckScanfHandler(Sema &s, const FormatStringLiteral *fexpr,
 8592                     const Expr *origFormatExpr, Sema::FormatStringType type,
 8596                     bool inFunctionCall, Sema::VariadicCallType CallType,
 8761 static void CheckFormatString(Sema &S, const FormatStringLiteral *FExpr,
 8766                               Sema::FormatStringType Type,
 8768                               Sema::VariadicCallType CallType,
 8818   if (Type == Sema::FST_Printf || Type == Sema::FST_NSString ||
 8818   if (Type == Sema::FST_Printf || Type == Sema::FST_NSString ||
 8819       Type == Sema::FST_FreeBSDKPrintf || Type == Sema::FST_OSLog ||
 8819       Type == Sema::FST_FreeBSDKPrintf || Type == Sema::FST_OSLog ||
 8820       Type == Sema::FST_OSTrace) {
 8823         (Type == Sema::FST_NSString || Type == Sema::FST_OSTrace), Str,
 8823         (Type == Sema::FST_NSString || Type == Sema::FST_OSTrace), Str,
 8830                                             Type == Sema::FST_FreeBSDKPrintf))
 8832   } else if (Type == Sema::FST_Scanf) {
 9069 static void emitReplacement(Sema &S, SourceLocation Loc, SourceRange Range,
 9086       LookupResult R(S, &S.Context.Idents.get("abs"), Loc, Sema::LookupAnyName);
 9121       LookupResult R(S, DN, Loc, Sema::LookupAnyName);
 9313 static bool CheckMemorySizeofForComparison(Sema &S, const Expr *E,
 9402   SearchNonTrivialToInitializeField(const Expr *E, Sema &S) : E(E), S(S) {}
 9430   static void diag(QualType RT, const Expr *E, Sema &S) {
 9437   Sema &S;
 9444   SearchNonTrivialToCopyField(const Expr *E, Sema &S) : E(E), S(S) {}
 9475   static void diag(QualType RT, const Expr *E, Sema &S) {
 9482   Sema &S;
 9524 static void CheckMemaccessSize(Sema &S, unsigned BId, const CallExpr *Call) {
10476 static void AnalyzeImplicitConversions(Sema &S, Expr *E, SourceLocation CC,
10479 static bool IsEnumConstOrFromMacro(Sema &S, Expr *E) {
10657 static bool CheckTautologicalComparison(Sema &S, BinaryOperator *E,
10773 static void AnalyzeImpConvsInComparison(Sema &S, BinaryOperator *E) {
10781 static void AnalyzeComparison(Sema &S, BinaryOperator *E) {
10897 static bool AnalyzeBitFieldAssignment(Sema &S, FieldDecl *Bitfield, Expr *Init,
11030 static void AnalyzeAssignment(Sema &S, BinaryOperator *E) {
11053 static void DiagnoseImpCast(Sema &S, Expr *E, QualType SourceType, QualType T,
11068 static void DiagnoseImpCast(Sema &S, Expr *E, QualType T,
11074 static bool isObjCSignedCharBool(Sema &S, QualType Ty) {
11080     Sema &S, Expr *SourceExpr, const Sema::SemaDiagnosticBuilder &Builder) {
11080     Sema &S, Expr *SourceExpr, const Sema::SemaDiagnosticBuilder &Builder) {
11095 static void DiagnoseFloatingImpCast(Sema &S, Expr *E, QualType T,
11212 static void AnalyzeCompoundAssignment(Sema &S, BinaryOperator *E) {
11258 static bool IsImplicitBoolFloatConversion(Sema &S, Expr *Ex, bool ToBool) {
11277 static void CheckImplicitArgumentConversions(Sema &S, CallExpr *TheCall,
11298 static void DiagnoseNullConversion(Sema &S, Expr *E, QualType T,
11345 static void checkObjCArrayLiteral(Sema &S, QualType TargetType,
11349 checkObjCDictionaryLiteral(Sema &S, QualType TargetType,
11354 static void checkObjCCollectionLiteralElement(Sema &S,
11371         != Sema::Compatible) {
11385 static void checkObjCArrayLiteral(Sema &S, QualType TargetType,
11414 checkObjCDictionaryLiteral(Sema &S, QualType TargetType,
11443 static bool isSameWidthConstantConversion(Sema &S, Expr *E, QualType T,
11479 static void CheckConditionalWithEnumTypes(Sema &S, SourceLocation Loc,
11505 static void DiagnoseIntInBoolContext(Sema &S, Expr *E) {
11542 static void CheckImplicitConversion(Sema &S, Expr *E, QualType T,
11974 static void CheckConditionalOperator(Sema &S, ConditionalOperator *E,
11977 static void CheckConditionalOperand(Sema &S, Expr *E, QualType T,
11989 static void CheckConditionalOperator(Sema &S, ConditionalOperator *E,
12024 static void CheckBoolLikeConversion(Sema &S, Expr *E, SourceLocation CC) {
12035 static void AnalyzeImplicitConversions(Sema &S, Expr *OrigE, SourceLocation CC,
12154 static bool checkOpenCLEnqueueIntType(Sema &S, Expr *E, const QualType &IntT) {
12170 static bool CheckForReference(Sema &SemaRef, const Expr *E,
12575   Sema &SemaRef;
12733   SequenceChecker(Sema &S, Expr *E, SmallVectorImpl<Expr *> &WorkList)
13010 static void diagnoseArrayStarInParamType(Sema &S, QualType PType,
13189 static bool IsTailPaddedMemberArray(Sema &S, const llvm::APInt &Size,
13463 static bool findRetainCycleOwner(Sema &S, Expr *e, RetainCycleOwner &owner) {
13599 static Expr *findCapturingExpr(Sema &S, Expr *e, RetainCycleOwner &owner) {
13634 static void diagnoseRetainCycle(Sema &S, Expr *capturer,
13667 static Optional<int> GetNSMutableArrayArgumentIndex(Sema &S,
13702 Optional<int> GetNSMutableDictionaryArgumentIndex(Sema &S,
13734 static Optional<int> GetNSSetArgumentIndex(Sema &S, ObjCMessageExpr *Message) {
13887 static bool checkUnsafeAssignLiteral(Sema &S, SourceLocation Loc,
13896   Sema::ObjCLiteralKind Kind = S.CheckLiteralKind(RHS);
13897   if (Kind == Sema::LK_String || Kind == Sema::LK_None)
13897   if (Kind == Sema::LK_String || Kind == Sema::LK_None)
13908 static bool checkUnsafeAssignObject(Sema &S, SourceLocation Loc,
14463     const llvm::DenseMap<Sema::TypeTagMagicValue, Sema::TypeTagData>
14463     const llvm::DenseMap<Sema::TypeTagMagicValue, Sema::TypeTagData>
14465     bool &FoundWrongKind, Sema::TypeTagData &TypeInfo,
14494   llvm::DenseMap<Sema::TypeTagMagicValue,
14495                  Sema::TypeTagData>::const_iterator I =
14779       rhs, std::bind(&Sema::AddPotentialMisalignedMembers, std::ref(*this), _1,
tools/clang/lib/Sema/SemaCodeComplete.cpp
  140   Sema &SemaRef;
  195   explicit ResultBuilder(Sema &SemaRef, CodeCompletionAllocator &Allocator,
  277   Sema &getSema() const { return SemaRef; }
  370 void PreferredTypeBuilder::enterReturn(Sema &S, SourceLocation Tok) {
  409 static QualType getPreferredTypeOfBinaryRHS(Sema &S, Expr *LHS,
  488 static QualType getPreferredTypeOfUnaryArg(Sema &S, QualType ContextType,
  519 void PreferredTypeBuilder::enterBinary(Sema &S, SourceLocation Tok, Expr *LHS,
  526 void PreferredTypeBuilder::enterMemAccess(Sema &S, SourceLocation Tok,
  538 void PreferredTypeBuilder::enterUnary(Sema &S, SourceLocation Tok,
  546 void PreferredTypeBuilder::enterSubscript(Sema &S, SourceLocation Tok,
  560 void PreferredTypeBuilder::enterCondition(Sema &S, SourceLocation Tok) {
  710 static bool shouldIgnoreDueToReservedName(const NamedDecl *ND, Sema &SemaRef) {
 1738 static void AddStorageSpecifiers(Sema::ParserCompletionContext CCC,
 1764 static void AddFunctionSpecifiers(Sema::ParserCompletionContext CCC,
 1769   case Sema::PCC_Class:
 1770   case Sema::PCC_MemberTemplate:
 1779   case Sema::PCC_ObjCInterface:
 1780   case Sema::PCC_ObjCImplementation:
 1781   case Sema::PCC_Namespace:
 1782   case Sema::PCC_Template:
 1787   case Sema::PCC_ObjCInstanceVariableList:
 1788   case Sema::PCC_Expression:
 1789   case Sema::PCC_Statement:
 1790   case Sema::PCC_ForInit:
 1791   case Sema::PCC_Condition:
 1792   case Sema::PCC_RecoveryInFunction:
 1793   case Sema::PCC_Type:
 1794   case Sema::PCC_ParenthesizedExpression:
 1795   case Sema::PCC_LocalDeclarationSpecifiers:
 1822 static bool WantTypesInContext(Sema::ParserCompletionContext CCC,
 1825   case Sema::PCC_Namespace:
 1826   case Sema::PCC_Class:
 1827   case Sema::PCC_ObjCInstanceVariableList:
 1828   case Sema::PCC_Template:
 1829   case Sema::PCC_MemberTemplate:
 1830   case Sema::PCC_Statement:
 1831   case Sema::PCC_RecoveryInFunction:
 1832   case Sema::PCC_Type:
 1833   case Sema::PCC_ParenthesizedExpression:
 1834   case Sema::PCC_LocalDeclarationSpecifiers:
 1837   case Sema::PCC_Expression:
 1838   case Sema::PCC_Condition:
 1841   case Sema::PCC_ObjCInterface:
 1842   case Sema::PCC_ObjCImplementation:
 1845   case Sema::PCC_ForInit:
 1854   PrintingPolicy Policy = Sema::getPrintingPolicy(Context, PP);
 1863 static PrintingPolicy getCompletionPrintingPolicy(Sema &S) {
 1906 static void addThisCompletion(Sema &S, ResultBuilder &Results) {
 1939   Sema &S = Results.getSema();
 1991 static void AddOrdinaryNameResults(Sema::ParserCompletionContext CCC, Scope *S,
 1992                                    Sema &SemaRef, ResultBuilder &Results) {
 1998   case Sema::PCC_Namespace:
 2054   case Sema::PCC_Class:
 2078       if (CCC == Sema::PCC_Class) {
 2110   case Sema::PCC_Template:
 2111   case Sema::PCC_MemberTemplate:
 2127   case Sema::PCC_ObjCInterface:
 2133   case Sema::PCC_ObjCImplementation:
 2139   case Sema::PCC_ObjCInstanceVariableList:
 2143   case Sema::PCC_RecoveryInFunction:
 2144   case Sema::PCC_Statement: {
 2348   case Sema::PCC_ForInit:
 2349   case Sema::PCC_Condition:
 2354   case Sema::PCC_ParenthesizedExpression:
 2356         CCC == Sema::PCC_ParenthesizedExpression) {
 2384   case Sema::PCC_Expression: {
 2575   case Sema::PCC_Type:
 2576   case Sema::PCC_LocalDeclarationSpecifiers:
 2583   if (SemaRef.getLangOpts().CPlusPlus && CCC != Sema::PCC_Type)
 3196     Sema &S, const CodeCompletionContext &CCContext,
 3377     Sema::MarkDeducedTemplateParameters(Ctx, FunTmpl, Deduced);
 3653     unsigned CurrentArg, Sema &S, CodeCompletionAllocator &Allocator,
 3875 static void HandleCodeCompleteResults(Sema *S,
 3885 mapCodeCompletionContext(Sema &S, Sema::ParserCompletionContext PCC) {
 3885 mapCodeCompletionContext(Sema &S, Sema::ParserCompletionContext PCC) {
 3887   case Sema::PCC_Namespace:
 3890   case Sema::PCC_Class:
 3893   case Sema::PCC_ObjCInterface:
 3896   case Sema::PCC_ObjCImplementation:
 3899   case Sema::PCC_ObjCInstanceVariableList:
 3902   case Sema::PCC_Template:
 3903   case Sema::PCC_MemberTemplate:
 3910   case Sema::PCC_RecoveryInFunction:
 3913   case Sema::PCC_ForInit:
 3920   case Sema::PCC_Expression:
 3922   case Sema::PCC_Condition:
 3926   case Sema::PCC_Statement:
 3929   case Sema::PCC_Type:
 3932   case Sema::PCC_ParenthesizedExpression:
 3935   case Sema::PCC_LocalDeclarationSpecifiers:
 3950 static void MaybeAddOverrideCalls(Sema &S, DeclContext *InContext,
 4143 static void AddClassMessageCompletions(Sema &SemaRef, Scope *S,
 4658     Sema &SemaRef, ResultBuilder &Results, Scope *S, QualType BaseType,
 4670   SemaRef.LookupVisibleDecls(RD, Sema::LookupMemberName, Consumer,
 5049     Sema &SemaRef, SmallVectorImpl<ResultCandidate> &Results,
 5069 static QualType getParamType(Sema &SemaRef,
 5094 ProduceSignatureHelp(Sema &SemaRef, Scope *S,
 6496 AddSuperSendCompletion(Sema &S, bool NeedSuperKeyword,
 6728 static void AddClassMessageCompletions(Sema &SemaRef, Scope *S,
 6783     for (Sema::GlobalMethodPool::iterator M = SemaRef.MethodPool.begin(),
 8570   CodeCompleteOrdinaryName(S, S->getFnParent() ? Sema::PCC_RecoveryInFunction
 8571                                                : Sema::PCC_Namespace);
tools/clang/lib/Sema/SemaConcept.cpp
   80       *this, Sema::ExpressionEvaluationContext::ConstantEvaluated);
   93     Sema::SFINAETrap Trap(*this);
tools/clang/lib/Sema/SemaCoroutine.cpp
   30 static LookupResult lookupMember(Sema &S, const char *Name, CXXRecordDecl *RD,
   33   LookupResult LR(S, DN, Loc, Sema::LookupMemberName);
   41 static bool lookupMember(Sema &S, const char *Name, CXXRecordDecl *RD,
   50 static QualType lookupPromiseType(Sema &S, const FunctionDecl *FD,
  110                  Sema::LookupOrdinaryName);
  143 static QualType lookupCoroutineHandleType(Sema &S, QualType PromiseType,
  152                       Loc, Sema::LookupOrdinaryName);
  186 static bool isValidCoroutineContext(Sema &S, SourceLocation Loc,
  252 static ExprResult buildOperatorCoawaitLookupExpr(Sema &SemaRef, Scope *S,
  257                          Sema::LookupOperatorName);
  275 static ExprResult buildOperatorCoawaitCall(Sema &SemaRef, SourceLocation Loc,
  283 static ExprResult buildOperatorCoawaitCall(Sema &SemaRef, Scope *S,
  292 static Expr *buildBuiltinCall(Sema &S, SourceLocation Loc, Builtin::ID Id,
  295   LookupResult R(S, &S.Context.Idents.get(Name), Loc, Sema::LookupOrdinaryName);
  312 static ExprResult buildCoroutineHandle(Sema &S, QualType PromiseType,
  320                      Sema::LookupOrdinaryName);
  346 static ExprResult buildMemberCall(Sema &S, Expr *Base, SourceLocation Loc,
  375 static Expr *maybeTailCall(Sema &S, QualType RetType, Expr *E,
  399 static ReadySuspendResumeResult buildCoawaitCalls(Sema &S, VarDecl *CoroPromise,
  467 static ExprResult buildPromiseCall(Sema &S, VarDecl *Promise,
  572 static FunctionScopeInfo *checkCoroutineContext(Sema &S, SourceLocation Loc,
  679 static void checkSuspensionContext(Sema &S, SourceLocation Loc,
  901 static Expr *buildStdNoThrowDeclRef(Sema &S, SourceLocation Loc) {
  906                       Sema::LookupOrdinaryName);
  932 static FunctionDecl *findDeleteForPromise(Sema &S, SourceLocation Loc,
  992 CoroutineStmtBuilder::CoroutineStmtBuilder(Sema &S, FunctionDecl &FD,
 1050 static bool diagReturnOnAllocFailure(Sema &S, Expr *E,
 1085   LookupResult Found(S, DN, Loc, Sema::LookupMemberName);
 1181   S.FindAllocationFunctions(Loc, SourceRange(), /*NewScope*/ Sema::AFS_Class,
 1182                             /*DeleteScope*/ Sema::AFS_Both, PromiseType,
 1192     S.FindAllocationFunctions(Loc, SourceRange(), /*NewScope*/ Sema::AFS_Class,
 1193                               /*DeleteScope*/ Sema::AFS_Both, PromiseType,
 1203     S.FindAllocationFunctions(Loc, SourceRange(), /*NewScope*/ Sema::AFS_Global,
 1204                               /*DeleteScope*/ Sema::AFS_Both, PromiseType,
 1220     S.FindAllocationFunctions(Loc, SourceRange(), /*NewScope*/ Sema::AFS_Both,
 1221                               /*DeleteScope*/ Sema::AFS_Both, PromiseType,
 1405 static void noteMemberDeclaredHere(Sema &S, Expr *E, FunctionScopeInfo &Fn) {
 1497 static Expr *castForMoving(Sema &S, Expr *E, QualType T = QualType()) {
 1513 static VarDecl *buildVarDecl(Sema &S, SourceLocation Loc, QualType Type,
tools/clang/lib/Sema/SemaDecl.cpp
   54 Sema::DeclGroupPtrTy Sema::ConvertDeclToDeclGroup(Decl *Ptr, Decl *OwnedType) {
  178 lookupUnqualifiedTypeNameInBase(Sema &S, const IdentifierInfo &II,
  233 static ParsedType recoverFromTypeInKnownDependentBase(Sema &S,
  784 static bool isTagTypeWithMissingTag(Sema &SemaRef, LookupResult &Result,
  788   LookupResult R(SemaRef, Name, NameLoc, Sema::LookupTagName);
  825     Result.clear(Sema::LookupTagName);
  834 static ParsedType buildNestedType(Sema &S, CXXScopeSpec &SS,
  848 Sema::NameClassification Sema::ClassifyName(Scope *S, CXXScopeSpec &SS,
 1230 Sema::TemplateNameKindForDiagnostics
 1303 Sema::SkippedDefinitionContext Sema::ActOnTagStartSkippedDefinition(Scope *S,
 1629 static bool isMainFileLoc(const Sema &S, SourceLocation Loc) {
 1867 static void CheckPoppedLabel(LabelDecl *L, Sema &S) {
 1996 static void LookupPredefedObjCSuperType(Sema &ThisSema, Scope *S,
 2003                       SourceLocation(), Sema::LookupTagName);
 2129 static void filterNonConflictingPreviousTypedefDecls(Sema &S,
 2411 static bool mergeAlignedAttrs(Sema &S, NamedDecl *New, Decl *Old) {
 2518 static bool mergeDeclAttribute(Sema &S, NamedDecl *D,
 2520                                Sema::AvailabilityMergeKind AMK) {
 2575            (AMK == Sema::AMK_Override ||
 2576             AMK == Sema::AMK_ProtocolImplementation))
 2621 static void checkNewAttributesAfterDef(Sema &S, Decl *New, const Decl *Old) {
 2635         Sema::SkipBodyInfo SkipBody;
 2715 static void diagnoseMissingConstinit(Sema &S, const VarDecl *InitDecl,
 2916                                      Sema &S) {
 2959                                 Sema &S) {
 3053 static bool checkUsingShadowRedecl(Sema &S, UsingShadowDecl *OldS,
 3816 static void diagnoseVarDeclTypeMismatch(Sema &S, VarDecl *New, VarDecl* Old) {
 3926 static bool mergeTypeWithPrevious(Sema &S, VarDecl *NewVD, VarDecl *OldVD,
 4652 static bool CheckAnonMemberRedeclaration(Sema &SemaRef,
 4658   LookupResult R(SemaRef, Name, NameLoc, Sema::LookupMemberName,
 4659                  Sema::ForVisibleRedeclaration);
 4693 InjectAnonymousStructOrUnionMembers(Sema &SemaRef, Scope *S, DeclContext *Owner,
 4790 static void checkDuplicateDefaultInit(Sema &S, CXXRecordDecl *Parent,
 4799 static void checkDuplicateDefaultInit(Sema &S, CXXRecordDecl *Parent,
 5310 static bool RebuildDeclaratorInCurrentInstantiation(Sema &S, Declarator &D,
 6070 static void SetNestedNameSpecifier(Sema &S, DeclaratorDecl *DD, Declarator &D) {
 6120 static void checkAttributesAfterMerging(Sema &S, NamedDecl &ND) {
 6222 static void checkDLLAttributeRedeclaration(Sema &S, NamedDecl *OldDecl,
 6360 static bool isFunctionDefinitionDiscarded(Sema &S, FunctionDecl *FD) {
 6391 static bool isIncompleteDeclExternC(Sema &S, const T *D) {
 7387                  Sema::LookupOrdinaryName, Sema::ForVisibleRedeclaration);
 7387                  Sema::LookupOrdinaryName, Sema::ForVisibleRedeclaration);
 7421     Sema &S, const T *ND, bool IsGlobal, LookupResult &Previous) {
 7503 static bool checkForConflictWithNonVisibleExternC(Sema &S, const T *ND,
 7798   Sema *S;
 7841 static void ReportOverrides(Sema& S, unsigned DiagID, const CXXMethodDecl *MD,
 7965     Sema &SemaRef, LookupResult &Previous, FunctionDecl *NewFD,
 7978                     IsLocalFriend ? Sema::LookupLocalFriendName
 7979                                   : Sema::LookupOrdinaryName,
 7980                     Sema::ForVisibleRedeclaration);
 8008                   &ExtraArgs.D.getCXXScopeSpec(), CCC, Sema::CTK_ErrorRecovery,
 8031       Sema::SFINAETrap Trap(SemaRef);
 8108 static StorageClass getFunctionStorageClass(Sema &SemaRef, Declarator &D) {
 8144 static FunctionDecl *CreateNewFunctionDecl(Sema &SemaRef, Declarator &D,
 8324 static OpenCLParamType getOpenCLKernelParameterType(Sema &S, QualType PT) {
 8372   Sema &S,
 9545 static Attr *getImplicitCodeSegAttrFromClass(Sema &S, const FunctionDecl *FD) {
 9665 static bool CheckMultiVersionValue(Sema &S, const FunctionDecl *FD) {
 9828 static bool CheckMultiVersionAdditionalRules(Sema &S, const FunctionDecl *OldFD,
 9880 static bool CheckMultiVersionFirstFunction(Sema &S, FunctionDecl *FD,
 9915     Sema &S, FunctionDecl *OldFD, FunctionDecl *NewFD, const TargetAttr *NewTA,
 9999     Sema &S, FunctionDecl *OldFD, FunctionDecl *NewFD,
10151 static bool CheckMultiVersionFunction(Sema &S, FunctionDecl *NewFD,
10773     Sema &S;
10785     SelfReferenceChecker(Sema &S, Decl *OrigDecl) : Inherited(S.Context),
11073   static void CheckSelfReference(Sema &S, Decl* OrigDecl, Expr *E,
11102     friend const Sema::SemaDiagnosticBuilder &
11103     operator<<(const Sema::SemaDiagnosticBuilder &Diag, VarDeclOrName VN) {
11329       Sema::NonTrivialCUnionContext UseContext, Sema &S)
11329       Sema::NonTrivialCUnionContext UseContext, Sema &S)
11383   Sema::NonTrivialCUnionContext UseContext;
11384   Sema &S;
11394       Sema::NonTrivialCUnionContext UseContext, Sema &S)
11394       Sema::NonTrivialCUnionContext UseContext, Sema &S)
11450   Sema::NonTrivialCUnionContext UseContext;
11451   Sema &S;
11459                                  Sema::NonTrivialCUnionContext UseContext,
11460                                  Sema &S)
11518   Sema::NonTrivialCUnionContext UseContext;
11519   Sema &S;
12800 Sema::DeclGroupPtrTy Sema::FinalizeDeclaratorGroup(Scope *S, const DeclSpec &DS,
12870 Sema::DeclGroupPtrTy
13436                                    Sema &S) {
13717   ExitFunctionBodyRAII(Sema &S, bool IsLambda) : S(S), IsLambda(IsLambda) {}
13724   Sema &S;
13728 static void diagnoseImplicitlyRetainedSelf(Sema &S) {
14475 Sema::NonTagKind Sema::getNonTagTypeDeclKind(const Decl *PrevDecl,
14633 static FixItHint createFriendTagNNSFixIt(Sema &SemaRef, NamedDecl *ND, Scope *S,
14649         S, II, NameLoc, Sema::LookupNestedNameSpecifierName);
14670 static bool isAcceptableTagRedeclContext(Sema &S, DeclContext *OldDC,
17070 Sema::SkipBodyInfo Sema::shouldSkipAnonEnumBody(Scope *S, IdentifierInfo *II,
17210 static void CheckForDuplicateEnumValues(Sema &S, ArrayRef<Decl *> Elements,
17659 Sema::FunctionEmissionStatus Sema::getEmissionStatus(FunctionDecl *FD) {
17703     Sema::CUDAFunctionTarget T = IdentifyCUDATarget(FD);
17704     if (LangOpts.CUDAIsDevice && T == Sema::CFT_Host)
17707         (T == Sema::CFT_Device || T == Sema::CFT_Global))
17707         (T == Sema::CFT_Device || T == Sema::CFT_Global))
tools/clang/lib/Sema/SemaDeclAttr.cpp
  188 static bool checkAttributeNumArgsImpl(Sema &S, const ParsedAttr &AL,
  201 static bool checkAttributeNumArgs(Sema &S, const ParsedAttr &AL, unsigned Num) {
  209 static bool checkAttributeAtLeastNumArgs(Sema &S, const ParsedAttr &AL,
  218 static bool checkAttributeAtMostNumArgs(Sema &S, const ParsedAttr &AL,
  241 static bool checkUInt32Argument(Sema &S, const AttrInfo &AI, const Expr *Expr,
  277 static bool checkPositiveIntArgument(Sema &S, const AttrInfo &AI, const Expr *Expr,
  298 static bool checkAttrMutualExclusion(Sema &S, Decl *D, const ParsedAttr &AL) {
  308 static bool checkAttrMutualExclusion(Sema &S, Decl *D, const Attr &AL) {
  324     Sema &S, const Decl *D, const AttrInfo &AI, unsigned AttrArgNum,
  402 static void handleSimpleAttribute(Sema &S, Decl *D,
  408 static const Sema::SemaDiagnosticBuilder&
  409 appendDiagnostics(const Sema::SemaDiagnosticBuilder &Bldr) {
  414 static const Sema::SemaDiagnosticBuilder&
  415 appendDiagnostics(const Sema::SemaDiagnosticBuilder &Bldr, T &&ExtraArg,
  426 static void handleSimpleAttributeOrDiagnose(Sema &S, Decl *D,
  431     Sema::SemaDiagnosticBuilder DB = S.Diag(D->getBeginLoc(), DiagID);
  439 static void handleSimpleAttributeWithExclusions(Sema &S, Decl *D,
  448 static void handleSimpleAttributeWithExclusions(Sema &S, Decl *D,
  465 static bool threadSafetyCheckIsSmartPointer(Sema &S, const RecordType* RT) {
  501 static bool threadSafetyCheckIsPointer(Sema &S, const Decl *D,
  559 static bool checkRecordTypeForCapability(Sema &S, QualType Ty) {
  589 static bool typeHasCapability(Sema &S, QualType Ty) {
  599 static bool isCapabilityExpr(Sema &S, const Expr *Ex) {
  629 static void checkAttrArgsAreCapabilityObjs(Sema &S, Decl *D,
  726 static void handlePtGuardedVarAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  733 static bool checkGuardedByAttrCommon(Sema &S, Decl *D, const ParsedAttr &AL,
  747 static void handleGuardedByAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  755 static void handlePtGuardedByAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  766 static bool checkAcquireOrderAttrCommon(Sema &S, Decl *D, const ParsedAttr &AL,
  786 static void handleAcquiredAfterAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  796 static void handleAcquiredBeforeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  806 static bool checkLockFunAttrCommon(Sema &S, Decl *D, const ParsedAttr &AL,
  815 static void handleAssertSharedLockAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  826 static void handleAssertExclusiveLockAttr(Sema &S, Decl *D,
  844 static bool checkParamIsIntegerType(Sema &S, const FunctionDecl *FD,
  863 static void handleAllocSizeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  899 static bool checkTryLockFunAttrCommon(Sema &S, Decl *D, const ParsedAttr &AL,
  916 static void handleSharedTrylockFunctionAttr(Sema &S, Decl *D,
  926 static void handleExclusiveTrylockFunctionAttr(Sema &S, Decl *D,
  936 static void handleLockReturnedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  947 static void handleLocksExcludedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
  963 static bool checkFunctionConditionAttr(Sema &S, Decl *D, const ParsedAttr &AL,
  991 static void handleEnableIfAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1046 static void handleDiagnoseIfAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1072 static void handlePassObjectSizeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1104 static void handleConsumableAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1124 static bool checkForConsumableClass(Sema &S, const CXXMethodDecl *MD,
 1140 static void handleCallableWhenAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1175 static void handleParamTypestateAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1209 static void handleReturnTypestateAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1254 static void handleSetTypestateAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1276 static void handleTestTypestateAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1298 static void handleExtVectorTypeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1303 static void handlePackedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1331 static bool checkIBOutletCommon(Sema &S, Decl *D, const ParsedAttr &AL) {
 1357 static void handleIBOutlet(Sema &S, Decl *D, const ParsedAttr &AL) {
 1364 static void handleIBOutletCollection(Sema &S, Decl *D, const ParsedAttr &AL) {
 1431 static bool attrNonNullArgCheck(Sema &S, QualType T, const ParsedAttr &AL,
 1447 static void handleNonNullAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1490 static void handleNonNullAttrParameter(Sema &S, ParmVarDecl *D,
 1510 static void handleReturnsNonNullAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1520 static void handleNoEscapeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1535 static void handleAssumeAlignedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1541 static void handleAllocAlignAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1637 static void handleOwnershipAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1739 static void handleWeakRefAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1797 static void handleIFuncAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1812 static void handleAliasAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1844     LookupResult LR(S, target, Sema::LookupOrdinaryName);
 1853 static void handleTLSModelAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1870 static void handleRestrictAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1881 static void handleCPUSpecificAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1931 static void handleCommonAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1942 static void handleNakedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 1960 static void handleNoReturnAttr(Sema &S, Decl *D, const ParsedAttr &Attrs) {
 1972 static void handleNoCfCheckAttr(Sema &S, Decl *D, const ParsedAttr &Attrs) {
 1999 static void handleAnalyzerNoReturnAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2019 static void handleVecReturnAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2073 static void handleDependencyAttr(Sema &S, Scope *Scope, Decl *D,
 2088 static void handleUnusedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2099 static void handleConstructorAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2108 static void handleDestructorAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2118 static void handleAttrWithMessage(Sema &S, Decl *D, const ParsedAttr &AL) {
 2127 static void handleObjCSuppresProtocolAttr(Sema &S, Decl *D,
 2138 static bool checkAvailabilityAttr(Sema &S, SourceRange Range,
 2350 static void handleAvailabilityAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2386                              ? Sema::AP_PragmaClangAttribute
 2387                              : Sema::AP_Explicit;
 2391       Sema::AMK_None, PriorityModifier);
 2431             Sema::AMK_None,
 2432             PriorityModifier + Sema::AP_InferredFromOtherPlatform);
 2449           Replacement, Sema::AMK_None,
 2450           PriorityModifier + Sema::AP_InferredFromOtherPlatform);
 2457 static void handleExternalSourceSymbolAttr(Sema &S, Decl *D,
 2477 static T *mergeVisibilityAttr(Sema &S, Decl *D, const AttributeCommonInfo &CI,
 2503 static void handleVisibilityAttr(Sema &S, Decl *D, const ParsedAttr &AL,
 2553 static void handleObjCMethodFamilyAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2579 static void handleObjCNSObject(Sema &S, Decl *D, const ParsedAttr &AL) {
 2606 static void handleObjCIndependentClass(Sema &S, Decl *D, const ParsedAttr &AL) {
 2620 static void handleBlocksAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2637 static void handleSentinelAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2724 static void handleWarnUnusedResult(Sema &S, Decl *D, const ParsedAttr &AL) {
 2762 static void handleWeakImportAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2785 static void handleWorkGroupSize(Sema &S, Decl *D, const ParsedAttr &AL) {
 2810 static void handleSubGroupSize(Sema &S, Decl *D, const ParsedAttr &AL) {
 2830 static void handleVecTypeHint(Sema &S, Decl *D, const ParsedAttr &AL) {
 2887 static void handleSectionAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2913 static bool checkCodeSegName(Sema &S, SourceLocation LiteralLoc,
 2945 static void handleCodeSegAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 2997 static void handleTargetAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3008 static void handleMinVectorWidthAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3025 static void handleCleanupAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3071                                    ParamTy, Ty) != Sema::Compatible) {
 3080 static void handleEnumExtensibilityAttr(Sema &S, Decl *D,
 3102 static void handleFormatArgAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3167 static void handleInitPriorityAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3224 static void handleFormatAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3345 static void handleCallbackAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3483 static void handleTransparentUnionAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3554 static void handleAnnotateAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3570 static void handleAlignValueAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3616 static void handleAlignedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 3831 static void parseModeAttrArg(Sema &S, StringRef Str, unsigned &DestWidth,
 3891 static void handleModeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4045 static void handleNoDebugAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4173 static void handleAlwaysInlineAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4182 static void handleMinSizeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4187 static void handleOptimizeNoneAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4192 static void handleConstantAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4203 static void handleSharedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4221 static void handleGlobalAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4252 static void handleGNUInlineAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4265 static void handleCallConvAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4344 static void handleSuppressAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4364 static void handleLifetimeCategoryAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4699 static Expr *makeLaunchBoundsArgExpr(Sema &S, Expr *E,
 4753 static void handleLaunchBoundsAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4762 static void handleArgumentWithTypeTagAttr(Sema &S, Decl *D,
 4794 static void handleTypeTagForDatatypeAttr(Sema &S, Decl *D,
 4821 static void handleXRayLogArgsAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4844 static void handleArmMveAliasAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 4920 static Sema::RetainOwnershipKind
 4926     return Sema::RetainOwnershipKind::CF;
 4933     return Sema::RetainOwnershipKind::OS;
 4939     return Sema::RetainOwnershipKind::NS;
 4964 static void handleXReturnsXRetainedAttr(Sema &S, Decl *D,
 4967   Sema::RetainOwnershipKind K = parsedAttrToRetainOwnershipKind(AL);
 4981     unsigned DiagID = K == Sema::RetainOwnershipKind::CF
 5095 static void handleObjCReturnsInnerPointerAttr(Sema &S, Decl *D,
 5121 static void handleObjCRequiresSuperAttr(Sema &S, Decl *D,
 5141 static void handleObjCBridgeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5167 static void handleObjCBridgeMutableAttr(Sema &S, Decl *D,
 5180 static void handleObjCBridgeRelatedAttr(Sema &S, Decl *D,
 5196 static void handleObjCDesignatedInitializer(Sema &S, Decl *D,
 5222 static void handleObjCRuntimeName(Sema &S, Decl *D, const ParsedAttr &AL) {
 5234 static void handleObjCBoxable(Sema &S, Decl *D, const ParsedAttr &AL) {
 5256 static void handleObjCOwnershipAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5263 static void handleObjCPreciseLifetimeAttr(Sema &S, Decl *D,
 5319 static void handleUuidAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5368 static void handleMSInheritanceAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5383 static void handleDeclspecThreadAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5400 static void handleAbiTagAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5431 static void handleARMInterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5456 static void handleMSP430InterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5508 static void handleMipsInterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5563 static void handleAnyX86InterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5627 static void handleAVRInterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5640 static void handleAVRSignalAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5653 static void handleWebAssemblyImportModuleAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5675 static void handleWebAssemblyImportNameAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5696 static void handleRISCVInterruptAttr(Sema &S, Decl *D,
 5754 static void handleInterruptAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5782 checkAMDGPUFlatWorkGroupSizeArguments(Sema &S, Expr *MinExpr, Expr *MaxExpr,
 5823 static void handleAMDGPUFlatWorkGroupSizeAttr(Sema &S, Decl *D,
 5831 static bool checkAMDGPUWavesPerEUArguments(Sema &S, Expr *MinExpr,
 5876 static void handleAMDGPUWavesPerEUAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5887 static void handleAMDGPUNumSGPRAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5896 static void handleAMDGPUNumVGPRAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 5905 static void handleX86ForceAlignArgPointerAttr(Sema &S, Decl *D,
 5928 static void handleLayoutVersion(Sema &S, Decl *D, const ParsedAttr &AL) {
 5975 static void handleDLLAttr(Sema &S, Decl *D, const ParsedAttr &A) {
 6042 static void handleCapabilityAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6065 static void handleAssertCapabilityAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6074 static void handleAcquireCapabilityAttr(Sema &S, Decl *D,
 6084 static void handleTryAcquireCapabilityAttr(Sema &S, Decl *D,
 6094 static void handleReleaseCapabilityAttr(Sema &S, Decl *D,
 6104 static void handleRequiresCapabilityAttr(Sema &S, Decl *D,
 6121 static void handleDeprecatedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6157 static void handleNoSanitizeAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6183 static void handleNoSanitizeSpecificAttr(Sema &S, Decl *D,
 6214 static void handleInternalLinkageAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6219 static void handleOpenCLNoSVMAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6231 static bool handleCommonAttributeFeatures(Sema &S, Decl *D,
 6271 static void handleOpenCLAccessAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6311 static void handleDestroyAttr(Sema &S, Decl *D, const ParsedAttr &A) {
 6324 static void handleUninitializedAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6330 static bool tryMakeVariablePseudoStrong(Sema &S, VarDecl *VD,
 6367 static void handleObjCExternallyRetainedAttr(Sema &S, Decl *D,
 6403 static void handleMIGServerRoutineAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6425 static void handleMSAllocatorAttr(Sema &S, Decl *D, const ParsedAttr &AL) {
 6446 static void ProcessDeclAttribute(Sema &S, Scope *scope, Decl *D,
 7302 static void checkUnusedDeclAttributes(Sema &S, const ParsedAttributesView &A) {
 7452 static bool isForbiddenTypeAllowed(Sema &S, Decl *D,
 7487 static void handleDelayedForbiddenType(Sema &S, DelayedDiagnostic &DD,
 7549 ShouldDiagnoseAvailabilityOfDecl(Sema &S, const NamedDecl *D,
 7606 ShouldDiagnoseAvailabilityInContext(Sema &S, AvailabilityResult K,
 7796 static void DoEmitAvailabilityWarning(Sema &S, AvailabilityResult K,
 8028 static void handleDelayedAvailabilityCheck(Sema &S, DelayedDiagnostic &DD,
 8104 static void EmitAvailabilityWarning(Sema &S, AvailabilityResult AR,
 8202   Sema &SemaRef;
 8213   DiagnoseUnguardedAvailability(Sema &SemaRef, Decl *Ctx)
tools/clang/lib/Sema/SemaDeclCXX.cpp
   62     Sema *S;
   65     CheckDefaultArgumentVisitor(Expr *defarg, Sema *s)
  874     Sema &S, ArrayRef<BindingDecl *> Bindings, ValueDecl *Src,
  899 static bool checkArrayLikeDecomposition(Sema &S,
  914 static bool checkArrayDecomposition(Sema &S, ArrayRef<BindingDecl*> Bindings,
  922 static bool checkVectorDecomposition(Sema &S, ArrayRef<BindingDecl*> Bindings,
  931 static bool checkComplexDecomposition(Sema &S,
  958 static bool lookupStdTypeTraitMember(Sema &S, LookupResult &TraitMemberLookup,
  980                       Loc, Sema::LookupOrdinaryName);
 1016 getTrivialIntegralTemplateArgument(Sema &S, SourceLocation Loc, QualType T,
 1023 getTrivialTypeTemplateArgument(Sema &S, SourceLocation Loc, QualType T) {
 1029 static IsTupleLike isTupleLike(Sema &S, SourceLocation Loc, QualType T,
 1032       S, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 1035   LookupResult R(S, Value, Loc, Sema::LookupOrdinaryName);
 1050   struct ICEDiagnoser : Sema::VerifyICEDiagnoser {
 1055     void diagnoseNotICE(Sema &S, SourceLocation Loc, SourceRange SR) {
 1074 static QualType getTupleLikeElementType(Sema &S, SourceLocation Loc,
 1083   LookupResult R(S, TypeDN, Loc, Sema::LookupOrdinaryName);
 1104   Sema &S;
 1108   BindingDiagnosticTrap(Sema &S, BindingDecl *BD)
 1117 static bool checkTupleLikeDecomposition(Sema &S,
 1136   LookupResult MemberGet(S, GetDN, Src->getLocation(), Sema::LookupMemberName);
 1255 static DeclAccessPair findDecomposableBaseClass(Sema &S, SourceLocation Loc,
 1326 static bool checkMemberDecomposition(Sema &S, ArrayRef<BindingDecl*> Bindings,
 1582 static bool CheckLiteralType(Sema &SemaRef, Sema::CheckConstexprKind Kind,
 1582 static bool CheckLiteralType(Sema &SemaRef, Sema::CheckConstexprKind Kind,
 1589   case Sema::CheckConstexprKind::Diagnose:
 1593   case Sema::CheckConstexprKind::CheckValid:
 1601 static bool CheckConstexprDestructorSubobjects(Sema &SemaRef,
 1603                                                Sema::CheckConstexprKind Kind) {
 1610     if (Kind == Sema::CheckConstexprKind::Diagnose) {
 1633 static bool CheckConstexprParameterTypes(Sema &SemaRef,
 1635                                          Sema::CheckConstexprKind Kind) {
 1666 static bool CheckConstexprFunctionBody(Sema &SemaRef, const FunctionDecl *Dcl,
 1668                                        Sema::CheckConstexprKind Kind);
 1766 static bool CheckConstexprDeclStmt(Sema &SemaRef, const FunctionDecl *Dcl,
 1768                                    Sema::CheckConstexprKind Kind) {
 1792         if (Kind == Sema::CheckConstexprKind::Diagnose) {
 1807         if (Kind == Sema::CheckConstexprKind::Diagnose) {
 1835           if (Kind == Sema::CheckConstexprKind::Diagnose) {
 1849           if (Kind == Sema::CheckConstexprKind::Diagnose) {
 1862       if (Kind == Sema::CheckConstexprKind::Diagnose) {
 1883       if (Kind == Sema::CheckConstexprKind::Diagnose) {
 1907 static bool CheckConstexprCtorInitializer(Sema &SemaRef,
 1912                                           Sema::CheckConstexprKind Kind) {
 1914   if (Kind == Sema::CheckConstexprKind::CheckValid &&
 1934     if (Kind == Sema::CheckConstexprKind::Diagnose) {
 1963 CheckConstexprFunctionStmt(Sema &SemaRef, const FunctionDecl *Dcl, Stmt *S,
 1966                            Sema::CheckConstexprKind Kind) {
 2096   if (Kind == Sema::CheckConstexprKind::Diagnose) {
 2108 static bool CheckConstexprFunctionBody(Sema &SemaRef, const FunctionDecl *Dcl,
 2110                                        Sema::CheckConstexprKind Kind) {
 2127     case Sema::CheckConstexprKind::CheckValid:
 2132     case Sema::CheckConstexprKind::Diagnose:
 2155   if (Kind == Sema::CheckConstexprKind::CheckValid) {
 2187         if (Kind == Sema::CheckConstexprKind::Diagnose) {
 2246       case Sema::CheckConstexprKind::Diagnose:
 2255       case Sema::CheckConstexprKind::CheckValid:
 2265       case Sema::CheckConstexprKind::Diagnose:
 2276       case Sema::CheckConstexprKind::CheckValid:
 2298   if (Kind == Sema::CheckConstexprKind::Diagnose &&
 3455     Sema &S;
 3476     UninitializedFieldVisitor(Sema &S,
 3791       Sema &SemaRef, const CXXConstructorDecl *Constructor) {
 3925 static bool FindBaseInitializer(Sema &SemaRef,
 4483 static Expr *CastForMoving(Sema &SemaRef, Expr *E, QualType T = QualType()) {
 4506 BuildImplicitBaseInitializer(Sema &SemaRef, CXXConstructorDecl *Constructor,
 4589 BuildImplicitMemberInitializer(Sema &SemaRef, CXXConstructorDecl *Constructor,
 4621                               Sema::LookupMemberName);
 4749   Sema &S;
 4757   BaseAndFieldInfo(Sema &S, CXXConstructorDecl *Ctor, bool ErrorsInInits)
 4853 static bool CollectFieldInitializer(Sema &SemaRef, BaseAndFieldInfo &Info,
 5144     Sema &SemaRef, const CXXConstructorDecl *Constructor,
 5207       Sema::SemaDiagnosticBuilder D =
 5235 bool CheckRedundantInit(Sema &S,
 5265 bool CheckRedundantUnionInit(Sema &S,
 5588   Sema &S;
 5593   AbstractUsageInfo(Sema &S, CXXRecordDecl *Record)
 5605   void CheckType(const NamedDecl *D, TypeLoc TL, Sema::AbstractDiagSelID Sel);
 5615   void Visit(TypeLoc TL, Sema::AbstractDiagSelID Sel) {
 5624   void Check(FunctionProtoTypeLoc TL, Sema::AbstractDiagSelID Sel) {
 5625     Visit(TL.getReturnLoc(), Sema::AbstractReturnType);
 5631       if (TSI) Visit(TSI->getTypeLoc(), Sema::AbstractParamType);
 5635   void Check(ArrayTypeLoc TL, Sema::AbstractDiagSelID Sel) {
 5636     Visit(TL.getElementLoc(), Sema::AbstractArrayType);
 5639   void Check(TemplateSpecializationTypeLoc TL, Sema::AbstractDiagSelID Sel) {
 5645           Visit(TSI->getTypeLoc(), Sema::AbstractNone);
 5663   void Check(TypeLoc TL, Sema::AbstractDiagSelID Sel) {
 5672     if (Sel == Sema::AbstractNone) return;
 5677       Sel = Sema::AbstractArrayType;
 5684     if (Sel == Sema::AbstractArrayType) {
 5696                                   Sema::AbstractDiagSelID Sel) {
 5714     Info.CheckType(MD, TSI->getTypeLoc(), Sema::AbstractNone);
 5734         Info.CheckType(FD, TSI->getTypeLoc(), Sema::AbstractFieldType);
 5738         Info.CheckType(VD, TSI->getTypeLoc(), Sema::AbstractVariableType);
 5750 static void ReferenceDllExportedMembers(Sema &S, CXXRecordDecl *Class) {
 5815 static void checkForMultipleExportedDefaultConstructors(Sema &S,
 6094 Sema::DefaultedFunctionKind
 6099         return Sema::CXXDefaultConstructor;
 6102         return Sema::CXXCopyConstructor;
 6105         return Sema::CXXMoveConstructor;
 6109       return Sema::CXXCopyAssignment;
 6112       return Sema::CXXMoveAssignment;
 6115       return Sema::CXXDestructor;
 6148 static void DefineImplicitSpecialMember(Sema &S, CXXMethodDecl *MD,
 6151   case Sema::CXXDefaultConstructor:
 6155   case Sema::CXXCopyConstructor:
 6158   case Sema::CXXCopyAssignment:
 6161   case Sema::CXXDestructor:
 6164   case Sema::CXXMoveConstructor:
 6167   case Sema::CXXMoveAssignment:
 6170   case Sema::CXXInvalid:
 6177 static bool canPassInRegisters(Sema &S, CXXRecordDecl *D,
 6541 static Sema::SpecialMemberOverloadResult lookupCallFromSpecialMember(
 6542     Sema &S, CXXRecordDecl *Class, Sema::CXXSpecialMember CSM,
 6542     Sema &S, CXXRecordDecl *Class, Sema::CXXSpecialMember CSM,
 6545   if (CSM == Sema::CXXCopyAssignment || CSM == Sema::CXXMoveAssignment)
 6545   if (CSM == Sema::CXXCopyAssignment || CSM == Sema::CXXMoveAssignment)
 6549   if (CSM == Sema::CXXDefaultConstructor || CSM == Sema::CXXDestructor)
 6549   if (CSM == Sema::CXXDefaultConstructor || CSM == Sema::CXXDestructor)
 6563   Sema &S;
 6573   InheritedConstructorInfo(Sema &S, SourceLocation UseLoc,
 6646 specialMemberIsConstexpr(Sema &S, CXXRecordDecl *ClassDecl,
 6647                          Sema::CXXSpecialMember CSM, unsigned Quals,
 6650                          Sema::InheritedConstructorInfo *Inherited = nullptr) {
 6661   if (CSM == Sema::CXXDefaultConstructor)
 6663   if (CSM == Sema::CXXDestructor)
 6666   Sema::SpecialMemberOverloadResult SMOR =
 6678     Sema &S, CXXRecordDecl *ClassDecl, Sema::CXXSpecialMember CSM,
 6678     Sema &S, CXXRecordDecl *ClassDecl, Sema::CXXSpecialMember CSM,
 6680     Sema::InheritedConstructorInfo *Inherited = nullptr) {
 6688   case Sema::CXXDefaultConstructor:
 6699   case Sema::CXXCopyConstructor:
 6700   case Sema::CXXMoveConstructor:
 6704   case Sema::CXXCopyAssignment:
 6705   case Sema::CXXMoveAssignment:
 6712   case Sema::CXXDestructor:
 6715   case Sema::CXXInvalid:
 6727     return CSM == Sema::CXXDefaultConstructor
 6765     if (CSM == Sema::CXXDefaultConstructor && F->hasInClassInitializer())
 6774     } else if (CSM == Sema::CXXDefaultConstructor) {
 6783 static Sema::ImplicitExceptionSpecification
 6785     Sema &S, SourceLocation Loc, CXXMethodDecl *MD, Sema::CXXSpecialMember CSM,
 6785     Sema &S, SourceLocation Loc, CXXMethodDecl *MD, Sema::CXXSpecialMember CSM,
 6786     Sema::InheritedConstructorInfo *ICI);
 6788 static Sema::ImplicitExceptionSpecification
 6789 computeImplicitExceptionSpec(Sema &S, SourceLocation Loc, CXXMethodDecl *MD) {
 6791   if (CSM != Sema::CXXInvalid)
 6797   Sema::InheritedConstructorInfo ICI(
 6800       S, Loc, CD, Sema::CXXDefaultConstructor, &ICI);
 6803 static FunctionProtoType::ExtProtoInfo getImplicitMethodEPI(Sema &S,
 7185   Sema &S;
 7187   Sema::CXXSpecialMember CSM;
 7188   Sema::InheritedConstructorInfo *ICI;
 7193   SpecialMemberVisitor(Sema &S, CXXMethodDecl *MD, Sema::CXXSpecialMember CSM,
 7193   SpecialMemberVisitor(Sema &S, CXXMethodDecl *MD, Sema::CXXSpecialMember CSM,
 7194                        Sema::InheritedConstructorInfo *ICI)
 7197     case Sema::CXXDefaultConstructor:
 7198     case Sema::CXXCopyConstructor:
 7199     case Sema::CXXMoveConstructor:
 7202     case Sema::CXXCopyAssignment:
 7203     case Sema::CXXMoveAssignment:
 7206     case Sema::CXXDestructor:
 7208     case Sema::CXXInvalid:
 7223     return CSM == Sema::CXXMoveConstructor || CSM == Sema::CXXMoveAssignment;
 7223     return CSM == Sema::CXXMoveConstructor || CSM == Sema::CXXMoveAssignment;
 7227   Sema::SpecialMemberOverloadResult lookupIn(CXXRecordDecl *Class,
 7235   Sema::SpecialMemberOverloadResult lookupInheritedCtor(CXXRecordDecl *Class) {
 7307   SpecialMemberDeletionInfo(Sema &S, CXXMethodDecl *MD,
 7308                             Sema::CXXSpecialMember CSM,
 7309                             Sema::InheritedConstructorInfo *ICI, bool Diagnose)
 7315   Sema::CXXSpecialMember getEffectiveCSM() {
 7316     return ICI ? Sema::CXXInvalid : CSM;
 7331                                     Sema::SpecialMemberOverloadResult SMOR,
 7361     Subobject Subobj, Sema::SpecialMemberOverloadResult SMOR,
 7368   if (SMOR.getKind() == Sema::SpecialMemberOverloadResult::NoMemberOrDeleted)
 7370   else if (SMOR.getKind() == Sema::SpecialMemberOverloadResult::Ambiguous)
 7431   if (!(CSM == Sema::CXXDefaultConstructor &&
 7441     Sema::SpecialMemberOverloadResult SMOR =
 7442         S.LookupSpecialMember(Class, Sema::CXXDestructor,
 7461   if (CSM == Sema::CXXDefaultConstructor && FD->hasInClassInitializer())
 7485   Sema::SpecialMemberOverloadResult SMOR = lookupInheritedCtor(BaseClass);
 7513   if (CSM == Sema::CXXDefaultConstructor) {
 7537   } else if (CSM == Sema::CXXCopyConstructor) {
 7588       if (CSM == Sema::CXXDefaultConstructor && AllVariantFieldsAreConst &&
 7616   if (CSM == Sema::CXXDefaultConstructor && inUnion() && AllFieldsAreConst) {
 7777 static bool findTrivialSpecialMember(Sema &S, CXXRecordDecl *RD,
 7778                                      Sema::CXXSpecialMember CSM, unsigned Quals,
 7780                                      Sema::TrivialABIHandling TAH,
 7786   case Sema::CXXInvalid:
 7789   case Sema::CXXDefaultConstructor:
 7818   case Sema::CXXDestructor:
 7823         (TAH == Sema::TAH_ConsiderTrivialABI &&
 7835   case Sema::CXXCopyConstructor:
 7840         (TAH == Sema::TAH_ConsiderTrivialABI &&
 7856   case Sema::CXXCopyAssignment:
 7871   case Sema::CXXMoveConstructor:
 7872   case Sema::CXXMoveAssignment:
 7874     Sema::SpecialMemberOverloadResult SMOR =
 7881     if (SMOR.getKind() == Sema::SpecialMemberOverloadResult::Ambiguous)
 7895     if (TAH == Sema::TAH_ConsiderTrivialABI &&
 7896         (CSM == Sema::CXXCopyConstructor || CSM == Sema::CXXMoveConstructor))
 7896         (CSM == Sema::CXXCopyConstructor || CSM == Sema::CXXMoveConstructor))
 7932 static bool checkTrivialSubobjectCall(Sema &S, SourceLocation SubobjLoc,
 7934                                       Sema::CXXSpecialMember CSM,
 7936                                       Sema::TrivialABIHandling TAH, bool Diagnose) {
 7950     if (!Selected && CSM == Sema::CXXDefaultConstructor) {
 7973       S.SpecialMemberIsTrivial(Selected, CSM, Sema::TAH_IgnoreTrivialABI,
 7983 static bool checkTrivialClassMembers(Sema &S, CXXRecordDecl *RD,
 7984                                      Sema::CXXSpecialMember CSM,
 7986                                      Sema::TrivialABIHandling TAH,
 8006     if (CSM == Sema::CXXDefaultConstructor && FI->hasInClassInitializer()) {
 8185   Sema *S;
 8602 static void checkMethodTypeQualifiers(Sema &S, Declarator &D, unsigned DiagID) {
 9117   BadSpecifierDiagnoser(Sema &S, SourceLocation Loc, unsigned DiagID)
 9137   Sema &S;
 9138   Sema::SemaDiagnosticBuilder Diagnostic;
 9265 static void DiagnoseNamespaceInlineMismatch(Sema &S, SourceLocation KeywordLoc,
 9508   Sema &S;
 9705 static ClassTemplateDecl *LookupStdInitializerList(Sema &S, SourceLocation Loc){
 9713                       Loc, Sema::LookupOrdinaryName);
 9802 static bool TryNamespaceTypoCorrection(Sema &S, LookupResult &R, Scope *Sc,
 9810                         Sema::CTK_ErrorRecovery)) {
11197   Sema::ImplicitExceptionSpecification ExceptSpec;
11199   SpecialMemberExceptionSpecInfo(Sema &S, CXXMethodDecl *MD,
11200                                  Sema::CXXSpecialMember CSM,
11201                                  Sema::InheritedConstructorInfo *ICI,
11212                           Sema::SpecialMemberOverloadResult SMOR);
11222   Sema::SpecialMemberOverloadResult SMOR = lookupInheritedCtor(BaseClass);
11233   if (CSM == Sema::CXXDefaultConstructor && FD->hasInClassInitializer()) {
11261     Subobject Subobj, Sema::SpecialMemberOverloadResult SMOR) {
11271   Sema &S;
11273   ComputingExceptionSpec(Sema &S, CXXMethodDecl *MD, SourceLocation Loc)
11275     Sema::CodeSynthesisContext Ctx;
11276     Ctx.Kind = Sema::CodeSynthesisContext::ExceptionSpecEvaluation;
11309 static Sema::ImplicitExceptionSpecification
11311     Sema &S, SourceLocation Loc, CXXMethodDecl *MD, Sema::CXXSpecialMember CSM,
11311     Sema &S, SourceLocation Loc, CXXMethodDecl *MD, Sema::CXXSpecialMember CSM,
11312     Sema::InheritedConstructorInfo *ICI) {
11356   Sema &S;
11357   Sema::SpecialMemberDecl D;
11358   Sema::ContextRAII SavedContext;
11361   DeclaringSpecialMember(Sema &S, CXXRecordDecl *RD, Sema::CXXSpecialMember CSM)
11361   DeclaringSpecialMember(Sema &S, CXXRecordDecl *RD, Sema::CXXSpecialMember CSM)
11371       Sema::CodeSynthesisContext Ctx;
11372       Ctx.Kind = Sema::CodeSynthesisContext::DeclaringSpecialMember;
11912   virtual Expr *build(Sema &S, SourceLocation Loc) const = 0;
11920   Expr *build(Sema &S, SourceLocation Loc) const override {
11930   Expr *build(Sema &S, SourceLocation Loc) const override {
11942   Expr *build(Sema &S, SourceLocation Loc) const override {
11957   Expr *build(Sema &S, SourceLocation Loc) const override {
11973   Expr *build(Sema &S, SourceLocation Loc) const override {
11989   Expr *build(Sema &S, SourceLocation Loc) const override {
12000   Expr *build(Sema &S, SourceLocation Loc) const override {
12013   Expr *build(Sema &S, SourceLocation Loc) const override {
12029 buildMemcpyForAssignmentOp(Sema &S, SourceLocation Loc, QualType T,
12058                  Sema::LookupOrdinaryName);
12109 buildSingleCopyAssignRecursively(Sema &S, SourceLocation Loc, QualType T,
12133     LookupResult OpLookup(S, Name, Loc, Sema::LookupOrdinaryName);
12296       S.ActOnCondition(nullptr, Loc, Comparison, Sema::ConditionKind::Boolean),
12301 buildSingleCopyAssign(Sema &S, SourceLocation Loc, QualType T,
12401 static void diagnoseDeprecatedCopyOperation(Sema &S, CXXMethodDecl *CopyOp) {
12727 static void checkMoveAssignmentForRepeatedMove(Sema &S, CXXRecordDecl *Class,
12760       Sema::SpecialMemberOverloadResult SMOR =
12761         S.LookupSpecialMember(Base, Sema::CXXMoveAssignment,
13146     Sema::CompoundScopeRAII CompoundScope(*this);
13271     Sema::CompoundScopeRAII CompoundScope(*this);
13677 CheckOperatorNewDeleteDeclarationScope(Sema &SemaRef,
13697 RemoveAddressSpaceFromPtr(Sema &SemaRef, const PointerType *PtrTy) {
13704 CheckOperatorNewDeleteTypes(Sema &SemaRef, const FunctionDecl *FnDecl,
13766 CheckOperatorNewDeclaration(Sema &SemaRef, const FunctionDecl *FnDecl) {
13797 CheckOperatorDeleteDeclaration(Sema &SemaRef, FunctionDecl *FnDecl) {
13976 checkLiteralOperatorTemplateParameterList(Sema &SemaRef,
15288 static void SearchForReturnInStmt(Sema &Self, Stmt *S) {
15846                            Sema &S) {
15922     Sema &S;
15925     explicit FindCXXThisExpr(Sema &S) : S(S) { }
tools/clang/lib/Sema/SemaDeclObjC.cpp
  114                              Sema &S) {
  128                              const ObjCProtocolDecl *PD, Sema &S) {
  281 static void DiagnoseObjCImplementedDeprecations(Sema &S, const NamedDecl *ND,
  343 HasExplicitOwnershipAttr(Sema &S, ParmVarDecl *Param) {
  524 static void diagnoseUseOfProtocols(Sema &TheSema,
  531   Sema::ContextRAII SavedContext(TheSema, CD);
  827 static bool checkTypeParamListConsistency(Sema &S,
 1343   Sema::LookupNameKind LookupKind;
 1346                                     Sema::LookupNameKind lookupKind)
 1351     if (LookupKind != Sema::LookupOrdinaryName) {
 1357     if (LookupKind != Sema::LookupObjCProtocolName) {
 1768 Sema::DeclGroupPtrTy
 2091 Sema::DeclGroupPtrTy
 2205 static void WarnUndefinedMethod(Sema &S, SourceLocation ImpLoc,
 2220     const Sema::SemaDiagnosticBuilder &B = S.Diag(ImpLoc, DiagID);
 2308 static bool CheckMethodOverrideReturn(Sema &S,
 2392 static bool CheckMethodOverrideParam(Sema &S,
 2477 static bool checkMethodFamilyMismatch(Sema &S, ObjCMethodDecl *impl,
 2672 static void CheckProtocolMethodDefs(Sema &S,
 2676                                     const Sema::SelectorSet &InsMap,
 2677                                     const Sema::SelectorSet &ClsMap,
 3029 Sema::DeclGroupPtrTy
 3126                                 Sema::MethodMatchStrategy strategy,
 3129 static bool matchTypes(ASTContext &Context, Sema::MethodMatchStrategy strategy,
 3139   if (strategy == Sema::MMS_strict) return false;
 3187                                 Sema::MethodMatchStrategy strategy,
 3654 static bool HelperIsMethodInObjCType(Sema &S, Selector Sel,
 3744 static void DiagnoseWeakIvars(Sema &S, ObjCImplementationDecl *ID) {
 3761 static void DiagnoseRetainableFlexibleArrayMember(Sema &S,
 3780 Sema::ObjCContainerKind Sema::getObjCContainerKind() const {
 3783       return Sema::OCK_Interface;
 3785       return Sema::OCK_Protocol;
 3788         return Sema::OCK_ClassExtension;
 3789       return Sema::OCK_Category;
 3791       return Sema::OCK_Implementation;
 3793       return Sema::OCK_CategoryImplementation;
 3796       return Sema::OCK_None;
 3807 static void DiagnoseVariableSizedIvars(Sema &S, ObjCContainerDecl *OCD) {
 3893   if (getObjCContainerKind() == Sema::OCK_None)
 4133 static Sema::ResultTypeCompatibilityKind
 4134 CheckRelatedResultTypeCompatibility(Sema &S, ObjCMethodDecl *Method,
 4146       return Sema::RTC_Compatible;
 4153           return Sema::RTC_Compatible;
 4157           return Sema::RTC_Compatible;
 4162       return Sema::RTC_Unknown;
 4166   return Sema::RTC_Incompatible;
 4179   OverrideSearch(Sema &S, const ObjCMethodDecl *method) : Method(method) {
 4184     Sema::GlobalMethodPool::iterator it = S.MethodPool.find(selector);
 4372     if (RTC != Sema::RTC_Incompatible && overridden->hasRelatedResultType())
 4415 static QualType mergeTypeNullabilityForRedecl(Sema &S, SourceLocation loc,
 4455 static void mergeInterfaceMethodToImpl(Sema &S,
 4498 static void checkObjCMethodX86VectorTypes(Sema &SemaRef,
 4737   if (!ARCError && RTC == Sema::RTC_Compatible &&
 5019     Sema &S;
 5025     UnusedBackingIvarChecker(Sema &S, const ObjCMethodDecl *Method,
tools/clang/lib/Sema/SemaExceptionSpec.cpp
  243     Sema &S, const PartialDiagnostic &DiagID, const PartialDiagnostic &NoteID,
  494     Sema &S, const PartialDiagnostic &DiagID, const PartialDiagnostic &NoteID,
  848 CheckSpecForTypesEquivalent(Sema &S, const PartialDiagnostic &DiagID,
  973 static CanThrowResult canSubExprsThrow(Sema &S, const Expr *E) {
  983 static CanThrowResult canCalleeThrow(Sema &S, const Expr *E, const Decl *D) {
 1049 static CanThrowResult canTypeidThrow(Sema &S, const CXXTypeidExpr *DC) {
tools/clang/lib/Sema/SemaExpr.cpp
   84 static void DiagnoseUnusedOfDecl(Sema &S, NamedDecl *D, SourceLocation Loc) {
  144 static void diagnoseUseOfInternalDeclInInlineFunction(Sema &S,
  478 static void CheckForNullPointerDereference(Sema &S, Expr *E) {
  497 static void DiagnoseDirectIsaAccess(Sema &S, const ObjCIvarRefExpr *OIRE,
  790 Sema::VarArgKind Sema::isValidVarArgType(const QualType &Ty) {
  950 static bool handleIntegerToComplexFloatConversion(Sema &S, ExprResult &IntExpr,
  972 static QualType handleComplexFloatConversion(Sema &S, ExprResult &LHS,
 1028 static QualType handleIntToFloatConversion(Sema &S, ExprResult &FloatExpr,
 1059 static QualType handleFloatConversion(Sema &S, ExprResult &LHS,
 1098 static bool unsupportedTypeConversion(const Sema &S, QualType LHSType,
 1154 static QualType handleIntegerConversion(Sema &S, ExprResult &LHS,
 1204 static QualType handleComplexIntConversion(Sema &S, ExprResult &LHS,
 1297 static QualType handleFixedPointConversion(Sema &S, QualType LHSTy,
 1459         *this, Sema::ExpressionEvaluationContext::Unevaluated);
 1592 static SourceLocation getUDSuffixLoc(Sema &S, SourceLocation TokLoc,
 1619   LookupResult R(S, OpName, UDSuffixLoc, Sema::LookupOrdinaryName);
 1623                               /*DiagnoseMissing*/ true) == Sema::LOLR_Error)
 1885     const TypoCorrection &TC, Sema &SemaRef, const CXXScopeSpec &SS,
 2119 recoverFromMSUnqualifiedLookup(Sema &S, ASTContext &Context,
 2875 static bool CheckDeclInExpr(Sema &S, SourceLocation Loc, NamedDecl *D) {
 2941 diagnoseUncapturableValueReference(Sema &S, SourceLocation loc,
 3331 static Expr *BuildFloatingLiteral(Sema &S, NumericLiteralParser &Literal,
 3733 static bool CheckVecStepTraitOperandType(Sema &S, QualType T,
 3751 static bool CheckExtensionTraitOperandType(Sema &S, QualType T,
 3781 static bool CheckObjCTraitOperandConstraints(Sema &S, QualType T,
 3799 static void warnOnSizeofOnArrayDecay(Sema &S, SourceLocation Loc, QualType T,
 3973 static bool CheckAlignOfExpr(Sema &S, Expr *E, UnaryExprOrTypeTrait ExprKind) {
 4251 static QualType CheckRealImagOperand(Sema &S, ExprResult &V, SourceLocation Loc,
 4308 static bool checkArithmeticOnObjCPointer(Sema &S,
 4322 static bool isMSPropertySubscriptExpr(Sema &S, Expr *Base) {
 4936 Sema::VariadicCallType
 4958   FunctionCallCCC(Sema &SemaRef, const IdentifierInfo *FuncName,
 4981 static TypoCorrection TryTypoCorrectionForCall(Sema &S, Expr *Fn,
 4990           DeclarationNameInfo(FuncName, NameLoc), Sema::LookupOrdinaryName,
 4992           Sema::CTK_ErrorRecovery)) {
 5245 static void DiagnoseCalleeStaticArrayParam(Sema &S, ParmVarDecl *PVD) {
 5375 static bool checkArgsForPlaceholders(Sema &S, MultiExprArg args) {
 5402 static FunctionDecl *rewriteBuiltinFunctionDecl(Sema *Sema, ASTContext &Context,
 5476 static void checkDirectCallValidity(Sema &S, const Expr *Fn,
 5503     const UnresolvedMemberExpr *const UME, Sema &S) {
 5545     Sema &S, const UnresolvedMemberExpr *const UME, SourceLocation CallLoc) {
 6870 static bool checkCondition(Sema &S, Expr *Cond, SourceLocation QuestionLoc) {
 6889 static QualType checkConditionalVoidType(Sema &S, ExprResult &LHS,
 6907 static bool checkConditionalNullPointer(Sema &S, ExprResult &NullExpr,
 6920 static QualType checkConditionalPointerCompatibility(Sema &S, ExprResult &LHS,
 7049 static QualType checkConditionalBlockPointerCompatibility(Sema &S,
 7075 checkConditionalObjectPointersCompatibility(Sema &S, ExprResult &LHS,
 7114 static bool checkPointerIntegerMismatch(Sema &S, ExprResult &Int,
 7144 static QualType OpenCLArithmeticConversions(Sema &S, ExprResult &LHS,
 7199 OpenCLConvertScalarsToVectors(Sema &S, ExprResult &LHS, ExprResult &RHS,
 7233 static bool checkOpenCLConditionVector(Sema &S, Expr *Cond,
 7253 static bool checkVectorResult(Sema &S, QualType CondTy, QualType VecResTy,
 7281 OpenCLCheckVectorConditional(Sema &S, ExprResult &Cond,
 7313 static bool checkBlockType(Sema &S, const Expr *E) {
 7605 static void SuggestParentheses(Sema &Self, SourceLocation Loc,
 7702 static void DiagnoseConditionalPrecedence(Sema &Self,
 7896 static Sema::AssignConvertType
 7897 checkPointerTypesForAssignment(Sema &S, QualType LHSType, QualType RHSType) {
 7909   Sema::AssignConvertType ConvTy = Sema::Compatible;
 7909   Sema::AssignConvertType ConvTy = Sema::Compatible;
 7926       return Sema::IncompatiblePointerDiscardsQualifiers;
 7938       ConvTy = Sema::IncompatiblePointerDiscardsQualifiers;
 7942     else ConvTy = Sema::CompatiblePointerDiscardsQualifiers;
 7954     return Sema::FunctionVoidPointer;
 7963     return Sema::FunctionVoidPointer;
 7987       if (ConvTy != Sema::Compatible)
 7990       return Sema::IncompatiblePointerSign;
 8013           return Sema::IncompatibleNestedPointerAddressSpaceMismatch;
 8018         return Sema::IncompatibleNestedPointerQualifiers;
 8022     return Sema::IncompatiblePointer;
 8026     return Sema::IncompatiblePointer;
 8034 static Sema::AssignConvertType
 8035 checkBlockPointerTypesForAssignment(Sema &S, QualType LHSType,
 8048     return Sema::IncompatibleBlockPointer;
 8050   Sema::AssignConvertType ConvTy = Sema::Compatible;
 8050   Sema::AssignConvertType ConvTy = Sema::Compatible;
 8060     ConvTy = Sema::CompatiblePointerDiscardsQualifiers;
 8076       return Sema::IncompatibleBlockPointer;
 8078     return Sema::IncompatibleBlockPointer;
 8085 static Sema::AssignConvertType
 8086 checkObjCPointerTypesForAssignment(Sema &S, QualType LHSType,
 8095       return Sema::IncompatiblePointer;
 8096     return Sema::Compatible;
 8101       return Sema::IncompatiblePointer;
 8102     return Sema::Compatible;
 8110     return Sema::CompatiblePointerDiscardsQualifiers;
 8113     return Sema::Compatible;
 8115     return Sema::IncompatibleObjCQualifiedId;
 8116   return Sema::IncompatiblePointer;
 8119 Sema::AssignConvertType
 8158 Sema::AssignConvertType
 8178     Sema::AssignConvertType result =
 8372       Sema::AssignConvertType result =
 8471 static void ConstructTransparentUnion(Sema &S, ASTContext &C,
 8489 Sema::AssignConvertType
 8541 Sema::AssignConvertType
 8591       Sema::AssignConvertType result = Compatible;
 8650   Sema::AssignConvertType result =
 8777 static bool tryVectorConvertAndSplat(Sema &S, ExprResult *scalar,
 8843 static bool canConvertIntToOtherIntTy(Sema &S, ExprResult *Int,
 8881 static bool canConvertIntTyToFloatTy(Sema &S, ExprResult *Int,
 8925 static bool tryGCCVectorConvertAndSplat(Sema &S, ExprResult *Scalar,
 9171 static void checkArithmeticNull(Sema &S, ExprResult &LHS, ExprResult &RHS,
 9207 static void DiagnoseDivisionSizeofPointerOrArray(Sema &S, Expr *LHS, Expr *RHS,
 9255 static void DiagnoseBadDivideOrRemainderValues(Sema& S, ExprResult &LHS,
 9318 static void diagnoseArithmeticOnTwoVoidPointers(Sema &S, SourceLocation Loc,
 9328 static void diagnoseArithmeticOnVoidPointer(Sema &S, SourceLocation Loc,
 9341 static void diagnoseArithmeticOnNullPointer(Sema &S, SourceLocation Loc,
 9352 static void diagnoseArithmeticOnTwoFunctionPointers(Sema &S, SourceLocation Loc,
 9368 static void diagnoseArithmeticOnFunctionPointer(Sema &S, SourceLocation Loc,
 9382 static bool checkArithmeticIncompletePointerType(Sema &S, SourceLocation Loc,
 9403 static bool checkArithmeticOpPointerOperand(Sema &S, SourceLocation Loc,
 9435 static bool checkArithmeticBinOpPointerOperands(Sema &S, SourceLocation Loc,
 9490 static void diagnoseStringPlusInt(Sema &Self, SourceLocation OpLoc,
 9520 static void diagnoseStringPlusChar(Sema &Self, SourceLocation OpLoc,
 9571 static void diagnosePointerIncompatibility(Sema &S, SourceLocation Loc,
 9791 static void DiagnoseBadShiftValues(Sema& S, ExprResult &LHS, ExprResult &RHS,
 9877 static QualType checkVectorShift(Sema &S, ExprResult &LHS, ExprResult &RHS,
10022 static void checkEnumComparison(Sema &S, SourceLocation Loc, Expr *LHS,
10051 static void diagnoseDistinctPointerComparison(Sema &S, SourceLocation Loc,
10062 static bool convertPointersToCompositeType(Sema &S, SourceLocation Loc,
10093 static void diagnoseFunctionPointerToVoidComparison(Sema &S, SourceLocation Loc,
10116 static bool hasIsEqualMethod(Sema &S, const Expr *LHS, const Expr *RHS) {
10162 Sema::ObjCLiteralKind Sema::CheckLiteralKind(Expr *FromE) {
10204 static void diagnoseObjCLiteralComparison(Sema &S, SourceLocation Loc,
10226   Sema::ObjCLiteralKind LiteralKind = S.CheckLiteralKind(Literal);
10228   if (LiteralKind == Sema::LK_None) {
10232   if (LiteralKind == Sema::LK_String)
10254 static void diagnoseLogicalNotOnLHSofCheck(Sema &S, ExprResult &LHS,
10310 static void diagnoseTautologicalComparison(Sema &S, SourceLocation Loc,
10456 static bool checkThreeWayNarrowingConversion(Sema &S, QualType ToType, Expr *E,
10499 static QualType checkArithmeticOrEnumeralThreeWayCompare(Sema &S,
10589 static QualType checkArithmeticOrEnumeralCompare(Sema &S, ExprResult &LHS,
11164 static void diagnoseXorMisusedAsPow(Sema &S, const ExprResult &XorLHS,
11441 static bool IsReadonlyMessage(Expr *E, Sema &S) {
11455 static NonConstCaptureKind isReferenceToNonConstCapture(Sema &S, Expr *E) {
11513 static void DiagnoseConstAssignment(Sema &S, const Expr *E,
11638 static void DiagnoseRecursiveConstFields(Sema &S, const ValueDecl *VD,
11679 static void DiagnoseRecursiveConstFields(Sema &S, const Expr *E,
11702 static bool CheckForModifiableLvalue(Expr *E, SourceLocation Loc, Sema &S) {
11832                                          Sema &Sema) {
12078 static QualType CheckCommaOperands(Sema &S, ExprResult &LHS, ExprResult &RHS,
12114 static QualType CheckIncrementDecrementOperand(Sema &S, Expr *Op,
12273 static void diagnoseAddressOfInvalidType(Sema &S, SourceLocation Loc,
12501 static void RecordModifiableNonNullParam(Sema &S, const Expr *Exp) {
12520 static QualType CheckIndirectionOperand(Sema &S, Expr *Op, ExprValueKind &VK,
12644 static void DiagnoseSelfAssignment(Sema &S, Expr *LHSExpr, Expr *RHSExpr,
12680 static void checkObjCPointerIntrospection(Sema &S, ExprResult &L, ExprResult &R,
13077 static void DiagnoseBitwisePrecedence(Sema &Self, BinaryOperatorKind Opc,
13120 EmitDiagnosticForLogicalAndInLogicalOr(Sema &Self, SourceLocation OpLoc,
13133 static bool EvaluatesAsTrue(Sema &S, Expr *E) {
13141 static bool EvaluatesAsFalse(Sema &S, Expr *E) {
13148 static void DiagnoseLogicalAndInLogicalOrLHS(Sema &S, SourceLocation OpLoc,
13170 static void DiagnoseLogicalAndInLogicalOrRHS(Sema &S, SourceLocation OpLoc,
13187 static void DiagnoseBitwiseOpInBitwiseOp(Sema &S, BinaryOperatorKind Opc,
13202 static void DiagnoseAdditionInShift(Sema &S, SourceLocation OpLoc,
13216 static void DiagnoseShiftCompare(Sema &S, SourceLocation OpLoc,
13244 static void DiagnoseBinOpPrecedence(Sema &Self, BinaryOperatorKind Opc,
14612 static bool maybeDiagnoseAssignmentToFunction(Sema &S, QualType DstType,
14848     void diagnoseNotICE(Sema &S, SourceLocation Loc, SourceRange SR) override {
14867     void diagnoseNotICE(Sema &S, SourceLocation Loc, SourceRange SR) override {
14875 void Sema::VerifyICEDiagnoser::diagnoseFold(Sema &S, SourceLocation Loc,
14899       SemaDiagnosticBuilder diagnoseNotInt(Sema &S, SourceLocation Loc,
14905           Sema &S, SourceLocation Loc, QualType T) override {
14910           Sema &S, SourceLocation Loc, QualType T, QualType ConvTy) override {
14915           Sema &S, CXXConversionDecl *Conv, QualType ConvTy) override {
14921           Sema &S, SourceLocation Loc, QualType T) override {
14926           Sema &S, CXXConversionDecl *Conv, QualType ConvTy) override {
14932           Sema &S, SourceLocation Loc, QualType T, QualType ConvTy) override {
15018     TransformToPE(Sema &SemaRef) : BaseTransform(SemaRef) { }
15090 const DeclRefExpr *CheckPossibleDeref(Sema &S, const Expr *PossibleDeref) {
15238 static bool isPotentiallyConstantEvaluatedContext(Sema &SemaRef) {
15242     case Sema::ExpressionEvaluationContext::ConstantEvaluated:
15244     case Sema::ExpressionEvaluationContext::PotentiallyEvaluated:
15245     case Sema::ExpressionEvaluationContext::PotentiallyEvaluatedIfUsed:
15246     case Sema::ExpressionEvaluationContext::DiscardedStatement:
15248     case Sema::ExpressionEvaluationContext::UnevaluatedList:
15257     case Sema::ExpressionEvaluationContext::Unevaluated:
15258     case Sema::ExpressionEvaluationContext::UnevaluatedAbstract:
15267 static bool funcHasParameterSizeMangling(Sema &S, FunctionDecl *FD) {
15302 static void CheckCompleteParameterTypesForMangler(Sema &S, FunctionDecl *FD,
15304   class ParamIncompleteTypeDiagnoser : public Sema::TypeDiagnoser {
15312     void diagnose(Sema &S, SourceLocation Loc, QualType T) override {
15356 static OdrUseContext isOdrUseContext(Sema &SemaRef) {
15360     case Sema::ExpressionEvaluationContext::Unevaluated:
15361     case Sema::ExpressionEvaluationContext::UnevaluatedList:
15362     case Sema::ExpressionEvaluationContext::UnevaluatedAbstract:
15365     case Sema::ExpressionEvaluationContext::ConstantEvaluated:
15366     case Sema::ExpressionEvaluationContext::PotentiallyEvaluated:
15370     case Sema::ExpressionEvaluationContext::DiscardedStatement:
15374     case Sema::ExpressionEvaluationContext::PotentiallyEvaluatedIfUsed:
15625 MarkVarDeclODRUsed(VarDecl *Var, SourceLocation Loc, Sema &SemaRef,
15640   SemaRef.tryCaptureVariable(Var, Loc, Sema::TryCapture_Implicit,
15656 diagnoseUncapturableValueReference(Sema &S, SourceLocation loc,
15731                                  const bool Diagnose, Sema &S) {
15746                                  const bool Diagnose, Sema &S) {
15818                                  Sema &S, bool Invalid) {
15893                                     Sema &S, bool Invalid) {
15930                             const Sema::TryCaptureKind Kind,
15933                             Sema &S, bool Invalid) {
15936   if (IsTopScope && Kind != Sema::TryCapture_Implicit) {
15937     ByRef = (Kind == Sema::TryCapture_ExplicitByRef);
16631                           Sema::NTCUC_LValueToRValueVolatile,
16685 static void DoMarkVarDeclReferenced(Sema &SemaRef, SourceLocation Loc,
16864 static void MarkExprReferenced(Sema &SemaRef, SourceLocation Loc,
16964     Sema &S;
16970     MarkReferencedDecls(Sema &S, SourceLocation Loc) : S(S), Loc(Loc) { }
16981         S, Sema::ExpressionEvaluationContext::ConstantEvaluated);
17002     Sema &S;
17008     EvaluatedExprMarker(Sema &S, bool SkipLocalVariables)
17161     void diagnose(Sema &S, SourceLocation Loc, QualType T) override {
17299 Sema::ConditionResult Sema::ActOnCondition(Scope *S, SourceLocation Loc,
17337     Sema &S;
17339     RebuildUnknownAnyFunction(Sema &S) : S(S) {}
17425     Sema &S;
17430     RebuildUnknownAnyExpr(Sema &S, QualType CastType)
17983                         Sema::LookupOrdinaryName);
tools/clang/lib/Sema/SemaExprCXX.cpp
  592 getUuidAttrOfType(Sema &SemaRef, QualType QT,
 1115 Sema::CXXThisScopeRAII::CXXThisScopeRAII(Sema &S,
 1458 static bool isNonPlacementDeallocationFunction(Sema &S, FunctionDecl *FD) {
 1486     UsualDeallocFnInfo(Sema &S, DeclAccessPair Found)
 1489           CUDAPref(Sema::CFP_Native) {
 1546     Sema::CUDAFunctionPreference CUDAPref;
 1554 static bool hasNewExtendedAlignment(Sema &S, QualType AllocType) {
 1563     Sema &S, LookupResult &R, bool WantSize, bool WantAlign,
 1570         Info.CUDAPref == Sema::CFP_Never)
 1600 static bool doesUsualArrayDeleteWantSize(Sema &S, SourceLocation loc,
 1610   LookupResult ops(S, deleteName, loc, Sema::LookupOrdinaryName);
 1935         SemaDiagnosticBuilder diagnoseNotInt(Sema &S, SourceLocation Loc,
 1942             Sema &S, SourceLocation Loc, QualType T) override {
 1948             Sema &S, SourceLocation Loc, QualType T, QualType ConvTy) override {
 1953             Sema &S, CXXConversionDecl *Conv, QualType ConvTy) override {
 1959             Sema &S, SourceLocation Loc, QualType T) override {
 1964             Sema &S, CXXConversionDecl *Conv, QualType ConvTy) override {
 1969         SemaDiagnosticBuilder diagnoseConversion(Sema &S, SourceLocation Loc,
 2223     Sema &S, LookupResult &R, SourceRange Range, SmallVectorImpl<Expr *> &Args,
 2254                                 Best->FoundDecl) == Sema::AR_inaccessible)
 3158 DiagnoseMismatchedNewDelete(Sema &SemaRef, SourceLocation DeleteLoc,
 3256       SemaDiagnosticBuilder diagnoseNoMatch(Sema &S, SourceLocation Loc,
 3261       SemaDiagnosticBuilder diagnoseIncomplete(Sema &S, SourceLocation Loc,
 3266       SemaDiagnosticBuilder diagnoseExplicitConv(Sema &S, SourceLocation Loc,
 3272       SemaDiagnosticBuilder noteExplicitConv(Sema &S, CXXConversionDecl *Conv,
 3278       SemaDiagnosticBuilder diagnoseAmbiguous(Sema &S, SourceLocation Loc,
 3283       SemaDiagnosticBuilder noteAmbiguous(Sema &S, CXXConversionDecl *Conv,
 3289       SemaDiagnosticBuilder diagnoseConversion(Sema &S, SourceLocation Loc,
 3443 static bool resolveBuiltinNewDeleteOverload(Sema &S, CallExpr *TheCall,
 3450   LookupResult R(S, NewName, TheCall->getBeginLoc(), Sema::LookupOrdinaryName);
 3617 Sema::ConditionResult Sema::ActOnConditionVariable(Decl *ConditionVar,
 4243     Sema::AssignConvertType ConvTy =
 4349 static bool CheckUnaryTypeTraitTypeCompleteness(Sema &S, TypeTrait UTT,
 4467                                Sema &Self, SourceLocation KeyLoc, ASTContext &C,
 4478   LookupResult Res(Self, NameInfo, Sema::LookupOrdinaryName);
 4502 static bool EvaluateUnaryTypeTrait(Sema &Self, TypeTrait UTT,
 4904 static bool EvaluateBinaryTypeTrait(Sema &Self, TypeTrait BTT, QualType LhsT,
 4907 static bool evaluateTypeTrait(Sema &S, TypeTrait Kind, SourceLocation KWLoc,
 4980         S, Sema::ExpressionEvaluationContext::Unevaluated);
 4981     Sema::SFINAETrap SFINAE(S, /*AccessCheckingSFINAE=*/true);
 4982     Sema::ContextRAII TUContext(S, S.Context.getTranslationUnitDecl());
 5070 static bool EvaluateBinaryTypeTrait(Sema &Self, TypeTrait BTT, QualType LhsT,
 5189         Self, Sema::ExpressionEvaluationContext::Unevaluated);
 5190     Sema::SFINAETrap SFINAE(Self, /*AccessCheckingSFINAE=*/true);
 5191     Sema::ContextRAII TUContext(Self, Self.Context.getTranslationUnitDecl());
 5241         Self, Sema::ExpressionEvaluationContext::Unevaluated);
 5242     Sema::SFINAETrap SFINAE(Self, /*AccessCheckingSFINAE=*/true);
 5243     Sema::ContextRAII TUContext(Self, Self.Context.getTranslationUnitDecl());
 5291 static uint64_t EvaluateArrayTypeTrait(Sema &Self, ArrayTypeTrait ATT,
 5568 static bool TryClassUnification(Sema &Self, Expr *From, Expr *To,
 5660 static bool FindConditionalOverload(Sema &Self, ExprResult &LHS, ExprResult &RHS,
 5674           Sema::AA_Converting);
 5681           Sema::AA_Converting);
 5719 static bool ConvertForConditional(Sema &Self, ExprResult &E, QualType T) {
 6027 mergeExceptionSpecs(Sema &S, FunctionProtoType::ExceptionSpecInfo ESI1,
 6303     Sema &S;
 6311     Conversion(Sema &S, SourceLocation Loc, Expr *&E1, Expr *&E2,
 6678 static void noteOperatorArrows(Sema &S,
 6845 static bool CheckArrow(Sema& S, QualType& ObjectType, Expr *&Base,
 6881 canRecoverDotPseudoDestructorCallsOnPointerObjects(Sema &SemaRef,
 7456     Expr *const FE, LambdaScopeInfo *const CurrentLSI, Sema &S) {
 7691     Sema::SFINAETrap Trap(SemaRef);
 7844   TransformTypos(Sema &SemaRef, VarDecl *InitDecl, llvm::function_ref<ExprResult(Expr *)> Filter)
 8045 Sema::IfExistsResult
 8058   LookupResult R(*this, TargetNameInfo, Sema::LookupAnyName,
 8059                  Sema::NotForRedeclaration);
 8080 Sema::IfExistsResult
tools/clang/lib/Sema/SemaExprMember.cpp
   32 static bool isProvablyNotDerivedFrom(Sema &SemaRef, CXXRecordDecl *Record,
   88 static IMAKind ClassifyImplicitMemberAccess(Sema &SemaRef,
  135   case Sema::ExpressionEvaluationContext::Unevaluated:
  136   case Sema::ExpressionEvaluationContext::UnevaluatedList:
  141   case Sema::ExpressionEvaluationContext::UnevaluatedAbstract:
  145   case Sema::ExpressionEvaluationContext::DiscardedStatement:
  146   case Sema::ExpressionEvaluationContext::ConstantEvaluated:
  147   case Sema::ExpressionEvaluationContext::PotentiallyEvaluated:
  148   case Sema::ExpressionEvaluationContext::PotentiallyEvaluatedIfUsed:
  196 static void diagnoseInstanceReference(Sema &SemaRef,
  299 CheckExtVectorComponent(Sema &S, QualType baseType, ExprValueKind &VK,
  419   for (Sema::ExtVectorDeclsType::iterator
  522 static void DiagnoseQualifiedMemberReference(Sema &SemaRef,
  641 static bool LookupMemberExprInRecord(Sema &SemaRef, LookupResult &R,
  696     Sema &SemaRef;
  698     Sema::LookupNameKind LookupKind;
  699     Sema::RedeclarationKind Redecl;
  732       Sema::CTK_ErrorRecovery, DC);
  737 static ExprResult LookupMemberExpr(Sema &S, LookupResult &R,
  884 BuildMSPropertyRefExpr(Sema &S, Expr *BaseExpr, bool IsArrow,
 1191 static bool ShouldTryAgainWithRedefinitionType(Sema &S, ExprResult &base) {
 1245 static ExprResult LookupMemberExpr(Sema &S, LookupResult &R,
 1355               R.getLookupNameInfo(), Sema::LookupMemberName, nullptr, nullptr,
 1356               Validator, Sema::CTK_ErrorRecovery, IDecl)) {
tools/clang/lib/Sema/SemaExprObjC.cpp
  146 static bool validateBoxingMethod(Sema &S, SourceLocation Loc,
  170                                             Sema::ObjCLiteralKind LiteralKind) {
  172     case Sema::LK_Array:
  174     case Sema::LK_Dictionary:
  176     case Sema::LK_Numeric:
  178     case Sema::LK_String:
  180     case Sema::LK_Boxed:
  185     case Sema::LK_Block:
  186     case Sema::LK_None:
  195 static bool ValidateObjCLiteralInterfaceDecl(Sema &S, ObjCInterfaceDecl *Decl,
  197                                             Sema::ObjCLiteralKind LiteralKind) {
  217 static ObjCInterfaceDecl *LookupObjCInterfaceDeclForLiteral(Sema &S,
  219                                             Sema::ObjCLiteralKind LiteralKind) {
  223                                      Sema::LookupOrdinaryName);
  241 static ObjCMethodDecl *getNSNumberFactoryMethod(Sema &S, SourceLocation Loc,
  269                                                        Sema::LK_Numeric);
  384 static ExprResult CheckObjCCollectionLiteralElement(Sema &S, Expr *Element,
  520                                                          Sema::LK_String);
  651                                                       Sema::LK_Boxed);
  800                                                     Sema::LK_Array);
  905                                                          Sema::LK_Dictionary);
 1121 static bool HelperToDiagnoseMismatchedMethodsInGlobalPool(Sema &S,
 1136                                       MatchingMethodDecl, Sema::MMS_loose)) {
 1152 static void DiagnoseMismatchedSelectors(Sema &S, SourceLocation AtLoc,
 1161   for (Sema::GlobalMethodPool::iterator b = S.MethodPool.begin(),
 1303 static QualType getBaseMessageSendResultType(Sema &S,
 2124 Sema::ObjCMessageKind Sema::getObjCMessageKind(Scope *S,
 2289 static void applyCocoaAPICheck(Sema &S, const ObjCMessageExpr *Msg,
 2328 static void checkCocoaAPI(Sema &S, const ObjCMessageExpr *Msg) {
 2333 static void checkFoundationAPI(Sema &S, SourceLocation Loc,
 2383 DiagnoseCStringFormatDirectiveInObjCAPI(Sema &S,
 2624 static bool isMethodDeclaredInRootProtocol(Sema &S, const ObjCMethodDecl *M) {
 2633                              Sema::LookupOrdinaryName))) {
 3197 static void RemoveSelectorFromWarningCache(Sema &S, Expr* Arg) {
 3541                  Sema::LookupOrdinaryName);
 3545 static void addFixitForObjCARCConversion(Sema &S,
 3547                                          Sema::CheckedConversionKind CCK,
 3556   case Sema::CCK_ImplicitConversion:
 3557   case Sema::CCK_ForBuiltinOverloadedOp:
 3558   case Sema::CCK_CStyleCast:
 3559   case Sema::CCK_OtherCast:
 3561   case Sema::CCK_FunctionalCast:
 3566     if (CCK == Sema::CCK_OtherCast) {
 3611   if (CCK == Sema::CCK_CStyleCast) {
 3613   } else if (CCK == Sema::CCK_OtherCast) {
 3670 diagnoseObjCARCConversion(Sema &S, SourceRange castRange,
 3674                           Sema::CheckedConversionKind CCK) {
 3711   unsigned convKindForDiag = Sema::isCast(CCK) ? 0 : 1;
 3731         (CCK != Sema::CCK_OtherCast) ? S.Diag(noteLoc, diag::note_arc_bridge)
 3741         (CCK == Sema::CCK_OtherCast && !br) ?
 3772       (CCK != Sema::CCK_OtherCast) ? S.Diag(noteLoc, diag::note_arc_bridge)
 3781         (CCK == Sema::CCK_OtherCast && !br) ?
 3802 static bool CheckObjCBridgeNSCast(Sema &S, QualType castType, Expr *castExpr,
 3817                        Sema::LookupOrdinaryName);
 3868 static bool CheckObjCBridgeCFCast(Sema &S, QualType castType, Expr *castExpr,
 3883                        Sema::LookupOrdinaryName);
 4044                  Sema::LookupOrdinaryName);
 4192 Sema::ARCConversionResult
tools/clang/lib/Sema/SemaFixItUtils.cpp
   24                                                   Sema &S,
   53                                                   Sema &S) {
  162 static bool isMacroDefined(const Sema &S, SourceLocation Loc, StringRef Name) {
  168     const Type &T, SourceLocation Loc, const Sema &S) {
tools/clang/lib/Sema/SemaInit.cpp
  189                             Sema &S) {
  280   Sema &SemaRef;
  471   InitListChecker(Sema &S, const InitializedEntity &Entity, InitListExpr *IL,
  936 InitListChecker::InitListChecker(Sema &S, const InitializedEntity &Entity,
 1103 static void warnBracedScalarInit(Sema &S, const InitializedEntity &Entity,
 1421             ElemType, ExprRes, !VerifyOnly) != Sema::Incompatible) {
 1800                                      Sema &SemaRef) {
 2255 static void ExpandAnonymousFieldDesignator(Sema &SemaRef,
 2283 static DesignatedInitExpr *CloneDesignatedInitExpr(Sema &SemaRef,
 2534                 Sema::LookupMemberName, /*Scope=*/nullptr, /*SS=*/nullptr, CCC,
 2535                 Sema::CTK_ErrorRecovery, RT->getDecl())) {
 3110 CheckArrayDesignatorExpr(Sema &S, Expr *Index, llvm::APSInt &Value) {
 3754 maybeRecoverWithZeroInitialization(Sema &S, InitializationSequence &Sequence,
 3774 static void MaybeProduceObjCObject(Sema &S,
 3802 static void TryListInitialization(Sema &S,
 3814 static bool TryInitializerListConstruction(Sema &S,
 3863 ResolveConstructorOverload(Sema &S, SourceLocation DeclLoc,
 3984 static void TryConstructorInitialization(Sema &S,
 4148 ResolveOverloadedFunctionForReferenceBinding(Sema &S,
 4175 static void TryReferenceInitializationCore(Sema &S,
 4185 static void TryValueInitialization(Sema &S,
 4192 static void TryReferenceListInitialization(Sema &S,
 4233     Sema::ReferenceCompareResult RefRelationship
 4236     if (RefRelationship >= Sema::Ref_Related) {
 4266 static void TryListInitialization(Sema &S,
 4463     Sema &S, const InitializedEntity &Entity, const InitializationKind &Kind,
 4611   Sema::ReferenceCompareResult NewRefRelationship =
 4617   if (NewRefRelationship == Sema::Ref_Incompatible) {
 4654 static void CheckCXX98CompatAccessibleCopy(Sema &S,
 4659 static void TryReferenceInitialization(Sema &S,
 4692 static void TryReferenceInitializationCore(Sema &S,
 4711   Sema::ReferenceCompareResult RefRelationship = S.CompareReferenceRelationship(
 4728         (RefRelationship == Sema::Ref_Compatible ||
 4730           RefRelationship == Sema::Ref_Related))) {
 4762     if (RefRelationship == Sema::Ref_Incompatible && T2->isRecordType() &&
 4798       case Sema::Ref_Compatible:
 4808       case Sema::Ref_Related:
 4811       case Sema::Ref_Incompatible:
 4829       (RefRelationship == Sema::Ref_Compatible ||
 4831         RefRelationship == Sema::Ref_Related)) &&
 4894     if (RefRelationship == Sema::Ref_Incompatible) {
 4906     if (RefRelationship == Sema::Ref_Compatible &&
 4965   if ((RefRelationship == Sema::Ref_Related &&
 4974   if (RefRelationship >= Sema::Ref_Related && !isLValueRef &&
 4997 static void TryStringLiteralInitialization(Sema &S,
 5006 static void TryValueInitialization(Sema &S,
 5084 static void TryDefaultInitialization(Sema &S,
 5125 static void TryUserDefinedConversion(Sema &S,
 5306 static bool isLibstdcxxPointerReturnFalseHack(Sema &S,
 5388 static void checkIndirectCopyRestoreSource(Sema &S, Expr *src) {
 5422 static bool tryObjCWritebackConversion(Sema &S,
 5469 static bool TryOCLSamplerInitialization(Sema &S,
 5482 static bool IsZeroInitializer(Expr *Initializer, Sema &S) {
 5487 static bool TryOCLZeroOpaqueTypeInitialization(Sema &S,
 5529 InitializationSequence::InitializationSequence(Sema &S,
 5542 static bool isExprAnUnaddressableFunction(Sema &S, const Expr *E) {
 5587 void InitializationSequence::InitializeFrom(Sema &S,
 5933 static Sema::AssignmentAction
 5941     return Sema::AA_Initializing;
 5946       return Sema::AA_Sending;
 5948     return Sema::AA_Passing;
 5953       return Sema::AA_Sending;
 5955     return !Diagnose ? Sema::AA_Passing : Sema::AA_Passing_CFAudited;
 5955     return !Diagnose ? Sema::AA_Passing : Sema::AA_Passing_CFAudited;
 5959     return Sema::AA_Returning;
 5964     return Sema::AA_Casting;
 5975     return Sema::AA_Initializing;
 6102 static ExprResult CopyObject(Sema &S,
 6254 static void CheckCXX98CompatAccessibleCopy(Sema &S,
 6308 void InitializationSequence::PrintInitLocationNote(Sema &S,
 6354 PerformConstructorInitialization(Sema &S,
 7573 static void DiagnoseNarrowingInInitList(Sema &S,
 7580 static void CheckMoveOnConstruction(Sema &S, const Expr *InitExpr,
 7677 static void CheckForNullPointerDereference(Sema &S, const Expr *E) {
 7744 ExprResult InitializationSequence::Perform(Sema &S,
 8164       Sema::CheckedConversionKind CCK
 8165         = Kind.isCStyleCast()? Sema::CCK_CStyleCast
 8166         : Kind.isFunctionalCast()? Sema::CCK_FunctionalCast
 8167         : Kind.isExplicitCast()? Sema::CCK_OtherCast
 8168         : Sema::CCK_ImplicitConversion;
 8334       Sema::AssignConvertType ConvTy =
 8343       if (ConvTy != Sema::Compatible &&
 8346             == Sema::Compatible)
 8347         ConvTy = Sema::Compatible;
 8596 static bool DiagnoseUninitializedReference(Sema &S, SourceLocation Loc,
 8635 static void emitBadConversionNotes(Sema &S, const InitializedEntity &entity,
 8652 static void diagnoseListInit(Sema &S, const InitializedEntity &Entity,
 8688 bool InitializationSequence::Diagnose(Sema &S,
 9489 static void DiagnoseNarrowingInInitList(Sema &S,
tools/clang/lib/Sema/SemaLambda.cpp
  175     VarDecl *VarToCapture, Sema &S) {
  206                               clang::Sema::TryCapture_Implicit,
  228 getGenericLambdaTemplateParameterList(LambdaScopeInfo *LSI, Sema &SemaRef) {
  666 static void adjustBlockReturnsToEnum(Sema &S, ArrayRef<ReturnStmt*> returns,
 1276 static void addFunctionPointerConversion(Sema &S,
 1436 static void addBlockPointerConversion(Sema &S,
tools/clang/lib/Sema/SemaLookup.cpp
   93     Sema &SemaRef;
  101     UnqualUsingDirectiveSet(Sema &SemaRef) : SemaRef(SemaRef) {}
  209 static inline unsigned getIDNS(Sema::LookupNameKind NameKind,
  214   case Sema::LookupObjCImplicitSelfParam:
  215   case Sema::LookupOrdinaryName:
  216   case Sema::LookupRedeclarationWithLinkage:
  217   case Sema::LookupLocalFriendName:
  228   case Sema::LookupOperatorName:
  235   case Sema::LookupTagName:
  251   case Sema::LookupLabel:
  255   case Sema::LookupMemberName:
  261   case Sema::LookupNestedNameSpecifierName:
  265   case Sema::LookupNamespaceName:
  269   case Sema::LookupUsingDeclName:
  276   case Sema::LookupObjCProtocolName:
  280   case Sema::LookupOMPReductionName:
  284   case Sema::LookupOMPMapperName:
  288   case Sema::LookupAnyName:
  365 static bool isPreferredLookupResult(Sema &S, Sema::LookupNameKind Kind,
  365 static bool isPreferredLookupResult(Sema &S, Sema::LookupNameKind Kind,
  369   if (Kind == Sema::LookupUsingDeclName && isa<UsingShadowDecl>(D) &&
  385     bool WantTag = Kind == Sema::LookupTagName;
  751 static void InsertOCLBuiltinDeclarationsFromTable(Sema &S, LookupResult &LR,
  830   Sema::LookupNameKind NameKind = R.getLookupKind();
  835   if (NameKind == Sema::LookupOrdinaryName ||
  836       NameKind == Sema::LookupRedeclarationWithLinkage) {
  839       if (getLangOpts().CPlusPlus && NameKind == Sema::LookupOrdinaryName) {
  943 static void DeclareImplicitMemberFunctionsWithName(Sema &S,
  999 static bool LookupDirect(Sema &S, LookupResult &R, const DeclContext *DC) {
 1090           == Sema::TDK_Success) {
 1101 CppNamespaceLookup(Sema &S, LookupResult &R, ASTContext &Context,
 1220   Sema::LookupNameKind NameKind = R.getLookupKind();
 1523 static Module *getDefiningModule(Sema &S, Decl *Entity) {
 1585 hasVisibleDefaultArgument(Sema &S, const ParmDecl *D,
 1617 static bool hasVisibleDeclarationImpl(Sema &S, const NamedDecl *D,
 1680 bool LookupResult::isVisibleSlow(Sema &SemaRef, NamedDecl *D) {
 1836 static NamedDecl *findAcceptableDecl(Sema &SemaRef, NamedDecl *D,
 1923     if (NameKind == Sema::LookupRedeclarationWithLinkage) {
 2051 static bool LookupQualifiedNameInUsingDirectives(Sema &S, LookupResult &R,
 2613     AssociatedLookup(Sema &S, SourceLocation InstantiationLoc,
 2614                      Sema::AssociatedNamespaceSet &Namespaces,
 2615                      Sema::AssociatedClassSet &Classes)
 2625     Sema &S;
 2626     Sema::AssociatedNamespaceSet &Namespaces;
 2627     Sema::AssociatedClassSet &Classes;
 2631     Sema::AssociatedClassSet ClassesTransitive;
 2641 static void CollectEnclosingNamespace(Sema::AssociatedNamespaceSet &Namespaces,
 3056 Sema::SpecialMemberOverloadResult Sema::LookupSpecialMember(CXXRecordDecl *RD,
 3377 Sema::LiteralOperatorLookupResult
 3719   void lookupVisibleDecls(Sema &SemaRef, Scope *S, Sema::LookupNameKind Kind,
 3719   void lookupVisibleDecls(Sema &SemaRef, Scope *S, Sema::LookupNameKind Kind,
 3743   void lookupVisibleDecls(Sema &SemaRef, DeclContext *Ctx,
 3744                           Sema::LookupNameKind Kind, bool IncludeGlobalScope) {
 3770       auto &S = Result.getSema();
 3979                                     Sema::LookupMemberName);
 4097 static void LookupPotentialTypoResult(Sema &SemaRef,
 4109 static void checkCorrectionVisibility(Sema &SemaRef, TypoCorrection &TC) {
 4453                                         TRD.getPair()) == Sema::AR_accessible)
 4592 static void LookupPotentialTypoResult(Sema &SemaRef,
 4646 static void AddKeywordsToConsumer(Sema &SemaRef,
 4798     const DeclarationNameInfo &TypoName, Sema::LookupNameKind LookupKind,
 4973                                  Sema::LookupNameKind LookupKind,
 5108     const DeclarationNameInfo &TypoName, Sema::LookupNameKind LookupKind,
 5197 FunctionCallFilterCCC::FunctionCallFilterCCC(Sema &SemaRef, unsigned NumArgs,
 5490 const Sema::TypoExprState &Sema::getTypoExprState(TypoExpr *TE) const {
 5503   LookupResult R(*this, Name, LookupAnyName, Sema::NotForRedeclaration);
tools/clang/lib/Sema/SemaModule.cpp
   22 static void checkModuleImportContext(Sema &S, Module *M,
   59 Sema::DeclGroupPtrTy
   92 Sema::DeclGroupPtrTy
  247 Sema::DeclGroupPtrTy
  585 static bool checkExportedDeclContext(Sema &S, DeclContext *DC,
  634 static void diagExportedUnnamedDecl(Sema &S, UnnamedDeclKind UDK, Decl *D,
  643 static bool checkExportedDecl(Sema &S, Decl *D, SourceLocation BlockStart) {
  682 static bool checkExportedDeclContext(Sema &S, DeclContext *DC,
tools/clang/lib/Sema/SemaObjCProperty.cpp
   65 static void checkPropertyDeclWithOwnership(Sema &S,
  109 CheckPropertyAgainstProtocol(Sema &S, ObjCPropertyDecl *Prop,
  130 static unsigned deducePropertyOwnershipFromType(Sema &S, QualType T) {
  343 static void checkAtomicPropertyMismatch(Sema &S,
  714 static void checkARCPropertyImpl(Sema &S, SourceLocation propertyImplLoc,
  833 SelectPropertyForSynthesisFromProtocols(Sema &S, SourceLocation AtLoc,
 1939     Sema &S, ObjCInterfaceDecl *PrimaryClass, Selector Method,
 2307 static void AddPropertyAttrs(Sema &S, ObjCMethodDecl *PropertyMethod,
 2533     CheckObjCMethodOverrides(GetterMethod, CurrentClass, Sema::RTC_Unknown);
 2535     CheckObjCMethodOverrides(SetterMethod, CurrentClass, Sema::RTC_Unknown);
tools/clang/lib/Sema/SemaOpenMP.cpp
   39     Sema &SemaRef, Expr *E,
  171   Sema &SemaRef;
  267   explicit DSAStackTy(Sema &S) : SemaRef(S) {}
 1100 static VarDecl *buildVarDecl(Sema &SemaRef, SourceLocation Loc, QualType Type,
 1121 static DeclRefExpr *buildDeclRefExpr(Sema &S, VarDecl *D, QualType Ty,
 1242 static bool isConstNotMutableType(Sema &SemaRef, QualType Type,
 1261 static bool rejectConstNotMutableType(Sema &SemaRef, const ValueDecl *D,
 1553 static bool isOpenMPDeviceDelayedContext(Sema &S) {
 1569 Sema::DeviceDiagBuilder Sema::diagIfOpenMPDeviceCode(SourceLocation Loc,
 1595 Sema::DeviceDiagBuilder Sema::diagIfOpenMPHostCode(SourceLocation Loc,
 2146 static void checkAllocateClauses(Sema &S, DSAStackTy *Stack,
 2205                                      Expr *NumIterations, Sema &SemaRef,
 2212   Sema &SemaRef;
 2215   explicit VarDeclFilterCCC(Sema &S) : SemaRef(S) {}
 2234   Sema &SemaRef;
 2237   explicit VarOrFuncDeclFilterCCC(Sema &S) : SemaRef(S) {}
 2382 Sema::DeclGroupPtrTy
 2395   Sema &SemaRef;
 2418   explicit LocalVarRefChecker(Sema &SemaRef) : SemaRef(SemaRef) {}
 2504 getAllocatorKind(Sema &S, DSAStackTy *Stack, Expr *Allocator) {
 2529     Sema &S, DSAStackTy *Stack, Expr *RefExpr, VarDecl *VD,
 2579 applyOMPAllocateAttribute(Sema &S, VarDecl *VD,
 2596 Sema::DeclGroupPtrTy Sema::ActOnOpenMPAllocateDirective(
 2664 Sema::DeclGroupPtrTy
 2709 static void reportOriginalDsa(Sema &SemaRef, const DSAStackTy *Stack,
 2769   Sema &SemaRef;
 2774   Sema::VarsWithInheritedDSAType VarsWithInheritedDSA;
 3076   const Sema::VarsWithInheritedDSAType &getVarsWithInheritedDSA() const {
 3080   DSAAttrChecker(DSAStackTy *S, Sema &SemaRef, CapturedStmt *CS)
 3103     Sema::CapturedParamNameType Params[] = {
 3126     Sema::CapturedParamNameType Params[] = {
 3144     Sema::CapturedParamNameType ParamsTarget[] = {
 3150     Sema::CapturedParamNameType ParamsTeamsOrParallel[] = {
 3171     Sema::CapturedParamNameType Params[] = {
 3208     Sema::CapturedParamNameType Params[] = {
 3224     Sema::CapturedParamNameType Params[] = {
 3264     Sema::CapturedParamNameType Params[] = {
 3302     Sema::CapturedParamNameType ParamsParallel[] = {
 3314     Sema::CapturedParamNameType Params[] = {
 3344     Sema::CapturedParamNameType Params[] = {
 3366     Sema::CapturedParamNameType Params[] = {
 3384     Sema::CapturedParamNameType ParamsTarget[] = {
 3391     Sema::CapturedParamNameType ParamsTeams[] = {
 3400     Sema::CapturedParamNameType ParamsParallel[] = {
 3420     Sema::CapturedParamNameType ParamsTeams[] = {
 3429     Sema::CapturedParamNameType ParamsParallel[] = {
 3453     Sema::CapturedParamNameType Params[] = {
 3504 static OMPCapturedExprDecl *buildCaptureDecl(Sema &S, IdentifierInfo *Id,
 3533 static DeclRefExpr *buildCapture(Sema &S, ValueDecl *D, Expr *CaptureExpr,
 3576   Sema &S;
 3581   CaptureRegionUnwinderRAII(Sema &S, bool &ErrorFound,
 3752 static bool checkCancelRegion(Sema &SemaRef, OpenMPDirectiveKind CurrentRegion,
 3768 static bool checkNestingOfRegions(Sema &SemaRef, const DSAStackTy *Stack,
 3989 static bool checkIfClauses(Sema &S, OpenMPDirectiveKind Kind,
 4072 getPrivateItem(Sema &S, Expr *&RefExpr, SourceLocation &ELoc,
 4131 static void checkAllocateClauses(Sema &S, DSAStackTy *Stack,
 4709 Sema::DeclGroupPtrTy Sema::ActOnOpenMPDeclareSimdDirective(
 4958 Sema::checkOpenMPDeclareVariantFunction(Sema::DeclGroupPtrTy DG,
 5032         Sema::TentativeAnalysisScope Trap(*this);
 5173     const Sema::OpenMPDeclareVariantCtsSelectorData &Data) {
 5291   Sema &SemaRef;
 5340   OpenMPIterationSpaceChecker(Sema &SemaRef, DSAStackTy &Stack,
 5541   Sema &SemaRef;
 5611   explicit LoopCounterRefChecker(Sema &SemaRef, DSAStackTy &Stack,
 5933         Capture->IgnoreImpCasts(), Capture->getType(), Sema::AA_Converting,
 6175           Diff.get(), Type, Sema::AA_Converting, /*AllowExplicit=*/true);
 6193                                                  Sema::AA_Converting, true);
 6276         Diff.get(), VarType, Sema::AA_Converting, /*AllowExplicit=*/true);
 6283         Sema::AA_Converting, /*AllowExplicit=*/true);
 6334         SemaRef.Context.BoolTy, /*Action=*/Sema::AA_Casting,
 6338   Sema::TentativeAnalysisScope Trap(SemaRef);
 6355           CondExpr.get(), SemaRef.Context.BoolTy, /*Action=*/Sema::AA_Casting,
 6550     OpenMPDirectiveKind DKind, Stmt *S, Sema &SemaRef, DSAStackTy &DSA,
 6554     Sema::VarsWithInheritedDSAType &VarsWithImplicitDSA,
 6736         NewStart.get(), VarRef.get()->getType(), Sema::AA_Converting,
 6787     Sema::TentativeAnalysisScope Trap(SemaRef);
 6812           Update.get(), VarRef.get()->getType(), Sema::AA_Converting, true);
 6834   return SemaRef.PerformImplicitConversion(E, NewType, Sema::AA_Converting,
 6840 static bool fitsInto(unsigned Bits, bool Signed, const Expr *E, Sema &SemaRef) {
 6874 static Expr *buildPostUpdate(Sema &S, ArrayRef<Expr *> PostUpdates) {
 6898                 Expr *OrderedLoopCountExpr, Stmt *AStmt, Sema &SemaRef,
 6900                 Sema::VarsWithInheritedDSAType &VarsWithImplicitDSA,
 7033                                   Sema::AA_Converting, /*AllowExplicit=*/true)
 7040                                      Sema::AA_Converting,
 7066                                          Sema::AA_Converting,
 7074                                          Sema::AA_Converting,
 7600 static bool checkSimdlenSafelenSpecified(Sema &S,
 8203   Sema &SemaRef;
 8224   OpenMPAtomicUpdateChecker(Sema &SemaRef)
 8409                                                Sema::AA_Casting);
 9198 static bool checkGrainsizeNumTasksClauses(Sema &S,
 9222 static bool checkReductionClauseWithNogroup(Sema &S,
11045     SemaDiagnosticBuilder diagnoseNotInt(Sema &S, SourceLocation Loc,
11049     SemaDiagnosticBuilder diagnoseIncomplete(Sema &S, SourceLocation Loc,
11053     SemaDiagnosticBuilder diagnoseExplicitConv(Sema &S, SourceLocation Loc,
11058     SemaDiagnosticBuilder noteExplicitConv(Sema &S, CXXConversionDecl *Conv,
11063     SemaDiagnosticBuilder diagnoseAmbiguous(Sema &S, SourceLocation Loc,
11067     SemaDiagnosticBuilder noteAmbiguous(Sema &S, CXXConversionDecl *Conv,
11072     SemaDiagnosticBuilder diagnoseConversion(Sema &, SourceLocation, QualType,
11081 isNonNegativeIntegerValue(Expr *&ValExpr, Sema &SemaRef, OpenMPClauseKind CKind,
11205 static bool findOMPAllocatorHandleT(Sema &S, SourceLocation Loc,
11219         S.LookupSingleName(S.TUScope, AllocatorName, Loc, Sema::LookupAnyName));
11261                                         Sema::AA_Initializing,
11573 static bool checkScheduleModifiers(Sema &S, OpenMPScheduleClauseModifier M1,
12700   TransformExprToCaptures(Sema &SemaRef, ValueDecl *FieldDecl)
12727 static NamedDecl *findAcceptableDecl(Sema &SemaRef, NamedDecl *D) {
12744 argumentDependentLookup(Sema &SemaRef, const DeclarationNameInfo &Id,
12749   Sema::AssociatedNamespaceSet AssociatedNamespaces;
12750   Sema::AssociatedClassSet AssociatedClasses;
12810     LookupResult Lookup(SemaRef, ReductionId, Sema::LookupOMPReductionName);
12870   LookupResult Lookup(SemaRef, ReductionId, Sema::LookupOMPReductionName);
12913                   /*DiagID=*/0) != Sema::AR_inaccessible) {
13051     Sema &S, DSAStackTy *Stack, OpenMPClauseKind ClauseKind,
13929                                      Expr *NumIterations, Sema &SemaRef,
14456         Sema::TentativeAnalysisScope Trap(*this);
14515 static bool checkTypeMappable(SourceLocation SL, SourceRange SR, Sema &SemaRef,
14532 static bool checkArrayExpressionDoesNotReferToWholeSize(Sema &SemaRef,
14589 static bool checkArrayExpressionDoesNotReferToUnitySize(Sema &SemaRef,
14626     Sema &SemaRef, Expr *E,
14876     Sema &SemaRef, DSAStackTy *DSAS, const ValueDecl *VD, const Expr *E,
15130   LookupResult Lookup(SemaRef, MapperId, Sema::LookupOMPMapperName);
15211                 /*DiagID=*/0) != Sema::AR_inaccessible) {
15257     Sema &SemaRef, DSAStackTy *DSAS, OpenMPClauseKind CKind,
15578 Sema::DeclGroupPtrTy Sema::ActOnOpenMPDeclareReductionDirectiveStart(
15789 Sema::DeclGroupPtrTy Sema::ActOnOpenMPDeclareReductionDirectiveEnd(
15925 Sema::DeclGroupPtrTy
16247                                      Sema &SemaRef, Decl *D) {
16279                                    Sema &SemaRef, DSAStackTy *Stack,
16565                                              Sema::AA_Initializing,
tools/clang/lib/Sema/SemaOverload.cpp
   49 CreateFunctionRefExpr(Sema &S, FunctionDecl *Fn, NamedDecl *FoundDecl,
   75 static bool IsStandardConversion(Sema &S, Expr* From, QualType ToType,
   81 static bool IsTransparentUnionStandardConversion(Sema &S, Expr* From,
   87 IsUserDefinedConversion(Sema &S, Expr *From, QualType ToType,
   95 CompareStandardConversionSequences(Sema &S, SourceLocation Loc,
  100 CompareQualificationConversions(Sema &S,
  105 CompareDerivedToBaseConversions(Sema &S, SourceLocation Loc,
  600                                 Sema::TemplateDeductionResult TDK,
  606   case Sema::TDK_Invalid:
  607   case Sema::TDK_InstantiationDepth:
  608   case Sema::TDK_TooManyArguments:
  609   case Sema::TDK_TooFewArguments:
  610   case Sema::TDK_MiscellaneousDeductionFailure:
  611   case Sema::TDK_CUDATargetMismatch:
  615   case Sema::TDK_Incomplete:
  616   case Sema::TDK_InvalidExplicitArguments:
  620   case Sema::TDK_DeducedMismatch:
  621   case Sema::TDK_DeducedMismatchNested: {
  632   case Sema::TDK_NonDeducedMismatch: {
  641   case Sema::TDK_IncompletePack:
  643   case Sema::TDK_Inconsistent:
  644   case Sema::TDK_Underqualified: {
  654   case Sema::TDK_SubstitutionFailure:
  664   case Sema::TDK_Success:
  665   case Sema::TDK_NonDependentConversionFailure:
  674   case Sema::TDK_Success:
  675   case Sema::TDK_Invalid:
  676   case Sema::TDK_InstantiationDepth:
  677   case Sema::TDK_Incomplete:
  678   case Sema::TDK_TooManyArguments:
  679   case Sema::TDK_TooFewArguments:
  680   case Sema::TDK_InvalidExplicitArguments:
  681   case Sema::TDK_CUDATargetMismatch:
  682   case Sema::TDK_NonDependentConversionFailure:
  685   case Sema::TDK_IncompletePack:
  686   case Sema::TDK_Inconsistent:
  687   case Sema::TDK_Underqualified:
  688   case Sema::TDK_DeducedMismatch:
  689   case Sema::TDK_DeducedMismatchNested:
  690   case Sema::TDK_NonDeducedMismatch:
  695   case Sema::TDK_SubstitutionFailure:
  705   case Sema::TDK_MiscellaneousDeductionFailure:
  718   case Sema::TDK_Success:
  719   case Sema::TDK_Invalid:
  720   case Sema::TDK_InstantiationDepth:
  721   case Sema::TDK_TooManyArguments:
  722   case Sema::TDK_TooFewArguments:
  723   case Sema::TDK_SubstitutionFailure:
  724   case Sema::TDK_DeducedMismatch:
  725   case Sema::TDK_DeducedMismatchNested:
  726   case Sema::TDK_NonDeducedMismatch:
  727   case Sema::TDK_CUDATargetMismatch:
  728   case Sema::TDK_NonDependentConversionFailure:
  731   case Sema::TDK_Incomplete:
  732   case Sema::TDK_InvalidExplicitArguments:
  735   case Sema::TDK_IncompletePack:
  736   case Sema::TDK_Inconsistent:
  737   case Sema::TDK_Underqualified:
  741   case Sema::TDK_MiscellaneousDeductionFailure:
  750   case Sema::TDK_Success:
  751   case Sema::TDK_Invalid:
  752   case Sema::TDK_InstantiationDepth:
  753   case Sema::TDK_TooManyArguments:
  754   case Sema::TDK_TooFewArguments:
  755   case Sema::TDK_Incomplete:
  756   case Sema::TDK_IncompletePack:
  757   case Sema::TDK_InvalidExplicitArguments:
  758   case Sema::TDK_Inconsistent:
  759   case Sema::TDK_Underqualified:
  760   case Sema::TDK_NonDeducedMismatch:
  761   case Sema::TDK_CUDATargetMismatch:
  762   case Sema::TDK_NonDependentConversionFailure:
  765   case Sema::TDK_DeducedMismatch:
  766   case Sema::TDK_DeducedMismatchNested:
  769   case Sema::TDK_SubstitutionFailure:
  773   case Sema::TDK_MiscellaneousDeductionFailure:
  782   case Sema::TDK_Success:
  783   case Sema::TDK_Invalid:
  784   case Sema::TDK_InstantiationDepth:
  785   case Sema::TDK_Incomplete:
  786   case Sema::TDK_TooManyArguments:
  787   case Sema::TDK_TooFewArguments:
  788   case Sema::TDK_InvalidExplicitArguments:
  789   case Sema::TDK_SubstitutionFailure:
  790   case Sema::TDK_CUDATargetMismatch:
  791   case Sema::TDK_NonDependentConversionFailure:
  794   case Sema::TDK_IncompletePack:
  795   case Sema::TDK_Inconsistent:
  796   case Sema::TDK_Underqualified:
  797   case Sema::TDK_DeducedMismatch:
  798   case Sema::TDK_DeducedMismatchNested:
  799   case Sema::TDK_NonDeducedMismatch:
  803   case Sema::TDK_MiscellaneousDeductionFailure:
  812   case Sema::TDK_Success:
  813   case Sema::TDK_Invalid:
  814   case Sema::TDK_InstantiationDepth:
  815   case Sema::TDK_Incomplete:
  816   case Sema::TDK_IncompletePack:
  817   case Sema::TDK_TooManyArguments:
  818   case Sema::TDK_TooFewArguments:
  819   case Sema::TDK_InvalidExplicitArguments:
  820   case Sema::TDK_SubstitutionFailure:
  821   case Sema::TDK_CUDATargetMismatch:
  822   case Sema::TDK_NonDependentConversionFailure:
  825   case Sema::TDK_Inconsistent:
  826   case Sema::TDK_Underqualified:
  827   case Sema::TDK_DeducedMismatch:
  828   case Sema::TDK_DeducedMismatchNested:
  829   case Sema::TDK_NonDeducedMismatch:
  833   case Sema::TDK_MiscellaneousDeductionFailure:
  842   case Sema::TDK_DeducedMismatch:
  843   case Sema::TDK_DeducedMismatchNested:
  897     void save(Sema &S, Expr *&E) {
  920 checkPlaceholderForOverload(Sema &S, Expr *&E,
  950 static bool checkArgPlaceholdersForOverload(Sema &S,
  993 Sema::OverloadKind
 1267 TryUserDefinedConversion(Sema &S, Expr *From, QualType ToType,
 1370 TryImplicitConversion(Sema &S, Expr *From, QualType ToType,
 1576 static bool IsVectorConversion(Sema &S, QualType FromType,
 1616 static bool tryAtomicConversion(Sema &S, Expr *From, QualType ToType,
 1629 static bool IsStandardConversion(Sema &S, Expr* From, QualType ToType,
 1934   Sema::AssignConvertType Conv =
 1941   case Sema::Compatible:
 1947   case Sema::CompatiblePointerDiscardsQualifiers:
 1948   case Sema::IncompatiblePointer:
 1949   case Sema::IncompatiblePointerSign:
 1972 IsTransparentUnionStandardConversion(Sema &S, Expr* From,
 3219 static bool tryAtomicConversion(Sema &S, Expr *From, QualType ToType,
 3256 IsInitializerListConstructorConversion(Sema &S, Expr *From, QualType ToType,
 3333 IsUserDefinedConversion(Sema &S, Expr *From, QualType ToType,
 3574 compareConversionFunctions(Sema &S, FunctionDecl *Function1,
 3615 CompareImplicitConversionSequences(Sema &S, SourceLocation Loc,
 3798 getFixedEnumPromtion(Sema &S, const StandardConversionSequence &SCS) {
 3822 CompareStandardConversionSequences(Sema &S, SourceLocation Loc,
 4034 CompareQualificationConversions(Sema &S,
 4150 CompareDerivedToBaseConversions(Sema &S, SourceLocation Loc,
 4373 Sema::ReferenceCompareResult
 4465 FindConversionForRefInit(Sema &S, ImplicitConversionSequence &ICS,
 4518               FunctionConversion) == Sema::Ref_Incompatible)
 4594 TryReferenceInit(Sema &S, Expr *Init, QualType DeclType,
 4624   Sema::ReferenceCompareResult RefRelationship = S.CompareReferenceRelationship(
 4638     if (InitCategory.isLValue() && RefRelationship == Sema::Ref_Compatible) {
 4682         RefRelationship == Sema::Ref_Incompatible) {
 4700   if (RefRelationship == Sema::Ref_Compatible &&
 4743   if (!SuppressUserConversions && RefRelationship == Sema::Ref_Incompatible &&
 4770   if (RefRelationship == Sema::Ref_Related) {
 4796   if (SuppressUserConversions && RefRelationship == Sema::Ref_Incompatible &&
 4802   if (RefRelationship >= Sema::Ref_Related &&
 4862 TryCopyInitialization(Sema &S, Expr *From, QualType ToType,
 4871 TryListConversion(Sema &S, InitListExpr *From, QualType ToType,
 5052       Sema::ReferenceCompareResult RefRelationship =
 5056       if (RefRelationship >= Sema::Ref_Related) {
 5127 TryCopyInitialization(Sema &S, Expr *From, QualType ToType,
 5152                                   Sema &S,
 5166 TryObjectArgumentInitialization(Sema &S, SourceLocation Loc, QualType FromType,
 5385 TryContextuallyConvertToBool(Sema &S, Expr *From) {
 5414 static bool CheckConvertedConstantConversions(Sema &S,
 5480 static ExprResult CheckConvertedConstantExpression(Sema &S, Expr *From,
 5482                                                    Sema::CCEKind CCE,
 5500       CCE == Sema::CCEK_ConstexprIf || CCE == Sema::CCEK_ExplicitBool
 5500       CCE == Sema::CCEK_ConstexprIf || CCE == Sema::CCEK_ExplicitBool
 5543       S.PerformImplicitConversion(From, T, ICS, Sema::AA_Converting);
 5590   Expr::ConstExprUsage Usage = CCE == Sema::CCEK_TemplateArg
 5653 TryContextuallyConvertToObjCPointer(Sema &S, Expr *From) {
 5708 diagnoseAmbiguousConversion(Sema &SemaRef, SourceLocation Loc, Expr *From,
 5709                             Sema::ContextualImplicitConverter &Converter,
 5726 diagnoseNoViableConversion(Sema &SemaRef, SourceLocation Loc, Expr *&From,
 5727                            Sema::ContextualImplicitConverter &Converter,
 5766 static bool recordConversion(Sema &SemaRef, SourceLocation Loc, Expr *&From,
 5767                              Sema::ContextualImplicitConverter &Converter,
 5795     Sema &SemaRef, SourceLocation Loc, Expr *From,
 5796     Sema::ContextualImplicitConverter &Converter) {
 5805 collectViableConversionCandidates(Sema &SemaRef, Expr *From, QualType ToType,
 5890     void diagnose(Sema &S, SourceLocation Loc, QualType T) override {
 6126       *this, Sema::ExpressionEvaluationContext::Unevaluated);
 6391 convertArgsForAvailabilityChecks(Sema &S, FunctionDecl *Function, Expr *ThisArg,
 6392                                  ArrayRef<Expr *> Args, Sema::SFINAETrap &Trap,
 6492 static bool diagnoseDiagnoseIfAttrsWith(Sema &S, const NamedDecl *ND,
 6693       *this, Sema::ExpressionEvaluationContext::Unevaluated);
 6961       *this, Sema::ExpressionEvaluationContext::Unevaluated);
 7010 static bool isAllowableExplicitConversion(Sema &S,
 7078       *this, Sema::ExpressionEvaluationContext::Unevaluated);
 7285       *this, Sema::ExpressionEvaluationContext::Unevaluated);
 7485       *this, Sema::ExpressionEvaluationContext::Unevaluated);
 7573   Sema &SemaRef;
 7586   BuiltinCandidateTypeSet(Sema &SemaRef)
 7821 static QualType AdjustAddressSpaceForBuiltinOperandType(Sema &S, QualType T,
 7829 static void AddBuiltinAssignmentOperatorCandidates(Sema &S,
 7912   Sema &S;
 8024     Sema &S, ArrayRef<Expr *> Args,
 9195 static Comparison compareEnableIfAttrs(const Sema &S, const FunctionDecl *Cand1,
 9282     Sema &S, const OverloadCandidate &Cand1, const OverloadCandidate &Cand2,
 9593 OverloadCandidateSet::BestViableFunction(Sema &S, SourceLocation Loc,
 9613                      Sema::CFP_SameSide;
 9620                    Sema::CFP_WrongSide;
 9702 ClassifyOverloadCandidate(Sema &S, NamedDecl *Found, FunctionDecl *Fn,
 9764 void MaybeEmitInheritedConstructorNote(Sema &S, Decl *FoundDecl) {
 9795 static bool checkAddressOfFunctionIsAvailable(Sema &S, const FunctionDecl *FD,
 9830 static bool checkAddressOfCandidateIsAvailable(Sema &S,
 9894                                  Sema &S,
 9915 static void DiagnoseBadConversion(Sema &S, OverloadCandidate *Cand,
10148 static bool CheckArityMismatch(Sema &S, OverloadCandidate *Cand,
10176 static void DiagnoseArityMismatch(Sema &S, NamedDecl *Found, Decl *D,
10223 static void DiagnoseArityMismatch(Sema &S, OverloadCandidate *Cand,
10237 static void DiagnoseBadDeduction(Sema &S, NamedDecl *Found, Decl *Templated,
10247   case Sema::TDK_Success:
10250   case Sema::TDK_Incomplete: {
10259   case Sema::TDK_IncompletePack: {
10270   case Sema::TDK_Underqualified: {
10295   case Sema::TDK_Inconsistent: {
10330   case Sema::TDK_InvalidExplicitArguments:
10352   case Sema::TDK_TooManyArguments:
10353   case Sema::TDK_TooFewArguments:
10357   case Sema::TDK_InstantiationDepth:
10363   case Sema::TDK_SubstitutionFailure: {
10411   case Sema::TDK_DeducedMismatch:
10412   case Sema::TDK_DeducedMismatchNested: {
10426         << (DeductionFailure.Result == Sema::TDK_DeducedMismatchNested);
10430   case Sema::TDK_NonDeducedMismatch: {
10471   case Sema::TDK_MiscellaneousDeductionFailure:
10475   case Sema::TDK_CUDATargetMismatch:
10483 static void DiagnoseBadDeduction(Sema &S, OverloadCandidate *Cand,
10487   if (TDK == Sema::TDK_TooFewArguments || TDK == Sema::TDK_TooManyArguments) {
10487   if (TDK == Sema::TDK_TooFewArguments || TDK == Sema::TDK_TooManyArguments) {
10496 static void DiagnoseBadTarget(Sema &S, OverloadCandidate *Cand) {
10500   Sema::CUDAFunctionTarget CallerTarget = S.IdentifyCUDATarget(Caller),
10518     Sema::CXXSpecialMember CSM;
10524       CSM = Sema::CXXDefaultConstructor;
10527       CSM = Sema::CXXCopyConstructor;
10530       CSM = Sema::CXXMoveConstructor;
10533       CSM = Sema::CXXCopyAssignment;
10536       CSM = Sema::CXXMoveAssignment;
10554 static void DiagnoseFailedEnableIfAttr(Sema &S, OverloadCandidate *Cand) {
10563 static void DiagnoseFailedExplicitSpec(Sema &S, OverloadCandidate *Cand) {
10590 static void DiagnoseOpenCLExtensionDisabled(Sema &S, OverloadCandidate *Cand) {
10613 static void NoteFunctionCandidate(Sema &S, OverloadCandidate *Cand,
10717 static void NoteSurrogateCandidate(Sema &S, OverloadCandidate *Cand) {
10749 static void NoteBuiltinOperatorCandidate(Sema &S, StringRef Opc,
10768 static void NoteAmbiguousUserConversions(Sema &S, SourceLocation OpLoc,
10789   case Sema::TDK_Success:
10790   case Sema::TDK_NonDependentConversionFailure:
10793   case Sema::TDK_Invalid:
10794   case Sema::TDK_Incomplete:
10795   case Sema::TDK_IncompletePack:
10798   case Sema::TDK_Underqualified:
10799   case Sema::TDK_Inconsistent:
10802   case Sema::TDK_SubstitutionFailure:
10803   case Sema::TDK_DeducedMismatch:
10804   case Sema::TDK_DeducedMismatchNested:
10805   case Sema::TDK_NonDeducedMismatch:
10806   case Sema::TDK_MiscellaneousDeductionFailure:
10807   case Sema::TDK_CUDATargetMismatch:
10810   case Sema::TDK_InstantiationDepth:
10813   case Sema::TDK_InvalidExplicitArguments:
10816   case Sema::TDK_TooManyArguments:
10817   case Sema::TDK_TooFewArguments:
10825   Sema &S;
10831       Sema &S, SourceLocation Loc, size_t NArgs,
10956 CompleteNonViableCandidate(Sema &S, OverloadCandidate *Cand,
11087     Sema &S, OverloadCandidateDisplayKind OCD, ArrayRef<Expr *> Args,
11098 void OverloadCandidateSet::NoteCandidates(Sema &S, ArrayRef<Expr *> Args,
11153   Sema &S;
11154   CompareTemplateSpecCandidatesForDisplay(Sema &S) : S(S) {}
11187 void TemplateSpecCandidate::NoteDeductionFailure(Sema &S,
11209 void TemplateSpecCandidateSet::NoteCandidates(Sema &S, SourceLocation Loc) {
11271 static bool completeFunctionType(Sema &S, FunctionDecl *FD, SourceLocation Loc,
11290   Sema& S;
11311   AddressOfFunctionResolver(Sema &S, Expr *SourceExpr,
11449     if (Sema::TemplateDeductionResult Result
11977 static void AddOverloadedCallCandidate(Sema &S,
12091 DiagnoseTwoPhaseLookup(Sema &SemaRef, SourceLocation FnLoc,
12134       Sema::AssociatedNamespaceSet AssociatedNamespaces;
12135       Sema::AssociatedClassSet AssociatedClasses;
12139       Sema::AssociatedNamespaceSet SuggestedNamespaces;
12142         for (Sema::AssociatedNamespaceSet::iterator
12195 DiagnoseTwoPhaseOperatorLookup(Sema &SemaRef, OverloadedOperatorKind Op,
12200   LookupResult R(SemaRef, OpName, OpLoc, Sema::LookupOperatorName);
12208   Sema &SemaRef;
12210   BuildRecoveryCallExprRAII(Sema &S) : SemaRef(S) {
12226 BuildRecoveryCallExpr(Sema &SemaRef, Scope *S, Expr *Fn,
12254                  Sema::LookupOrdinaryName);
12374 static ExprResult FinishOverloadedCallExpr(Sema &SemaRef, Scope *S, Expr *Fn,
12464 static void markUnaddressableCandidatesUnviable(Sema &S,
13000             Sema::CodeSynthesisContext Ctx;
13001             Ctx.Kind = Sema::CodeSynthesisContext::RewritingOperatorAsSpaceship;
14067 Sema::ForRangeStatus
tools/clang/lib/Sema/SemaPseudoObject.cpp
   47     Sema &S;
   51     Rebuilder(Sema &S, const SpecificRebuilderRefTy &SpecificCallback)
  188     Sema &S;
  194     PseudoOpBuilder(Sema &S, SourceLocation genericLoc, bool IsUnique)
  282     ObjCPropertyOpBuilder(Sema &S, ObjCPropertyRefExpr *refExpr, bool IsUnique)
  322    ObjCSubscriptOpBuilder(Sema &S, ObjCSubscriptRefExpr *refExpr, bool IsUnique)
  349    MSPropertyOpBuilder(Sema &S, MSPropertyRefExpr *refExpr, bool IsUnique)
  352    MSPropertyOpBuilder(Sema &S, MSPropertySubscriptExpr *refExpr, bool IsUnique)
  555 static ObjCMethodDecl *LookupMethodInReceiverType(Sema &S, Selector sel,
  784       Sema::AssignConvertType assignResult
  789                                      Sema::AA_Assigning))
 1052 Sema::ObjCSubscriptKind
 1126 static void CheckKeyForObjCARCConversion(Sema &S, QualType ContainerT,
 1142                         Sema::CCK_ImplicitConversion);
 1157   Sema::ObjCSubscriptKind Res =
 1159   if (Res == Sema::OS_Error) {
 1165   bool arrayRef = (Res == Sema::OS_Array);
 1262   Sema::ObjCSubscriptKind Res =
 1264   if (Res == Sema::OS_Error) {
 1270   bool arrayRef = (Res == Sema::OS_Array);
 1631 static Expr *stripOpaqueValuesFromPseudoObjectRef(Sema &S, Expr *E) {
tools/clang/lib/Sema/SemaStmt.cpp
  128 static bool DiagnoseUnusedComparison(Sema &S, const Expr *E) {
  199 static bool DiagnoseNoDiscard(Sema &S, const WarnUnusedResultAttr *A,
  551   Sema &SemaRef;
  553   CommaVisitor(Sema &SemaRef) : Inherited(SemaRef.Context), SemaRef(SemaRef) {}
  671     SemaDiagnosticBuilder diagnoseNotInt(Sema &S, SourceLocation Loc,
  677         Sema &S, SourceLocation Loc, QualType T) override {
  683         Sema &S, SourceLocation Loc, QualType T, QualType ConvTy) override {
  688         Sema &S, CXXConversionDecl *Conv, QualType ConvTy) override {
  693     SemaDiagnosticBuilder diagnoseAmbiguous(Sema &S, SourceLocation Loc,
  699         Sema &S, CXXConversionDecl *Conv, QualType ConvTy) override {
  705         Sema &S, SourceLocation Loc, QualType T, QualType ConvTy) override {
  762 static void checkCaseValue(Sema &S, SourceLocation Loc, const llvm::APSInt &Val,
  788 static bool ShouldDiagnoseSwitchCaseNotInEnum(const Sema &S,
  820 static void checkEnumTypesInSwitchStmt(Sema &S, const Expr *Cond,
 1376     DeclExtractor(Sema &S, DeclSetVector &Decls,
 1458     DeclMatcher(Sema &S, DeclSetVector &Decls, Stmt *Statement) :
 1530   void CheckForLoopConditionalStatement(Sema &S, Expr *Second,
 1578   bool ProcessIterationStmt(Sema &S, Stmt* Statement, bool &Increment,
 1627     BreakContinueFinder(Sema &S, const Stmt* Body) :
 1709   void CheckForRedundantIteration(Sema &S, Expr *Third, Stmt *Body) {
 1985 static bool FinishForRangeVarDecl(Sema &SemaRef, VarDecl *Decl, Expr *Init,
 2001           Sema::DAR_Failed)
 2034 void NoteForRangeBeginEndFunction(Sema &SemaRef, Expr *E,
 2057 VarDecl *BuildForRangeVarDecl(Sema &SemaRef, SourceLocation Loc,
 2168 static Sema::ForRangeStatus
 2169 BuildNonArrayForRange(Sema &SemaRef, Expr *BeginRange, Expr *EndRange,
 2180                                  Sema::LookupMemberName);
 2181   LookupResult EndMemberLookup(SemaRef, EndNameInfo, Sema::LookupMemberName);
 2185     Sema::ForRangeStatus RangeStatus =
 2190     if (RangeStatus != Sema::FRS_Success) {
 2191       if (RangeStatus == Sema::FRS_DiagnosticIssued)
 2203         return Sema::FRS_DiagnosticIssued;
 2208       return Sema::FRS_DiagnosticIssued;
 2210     return Sema::FRS_Success;
 2215     Sema::ForRangeStatus RangeStatus =
 2219     if (RangeStatus != Sema::FRS_Success) {
 2220       if (RangeStatus == Sema::FRS_DiagnosticIssued)
 2228       return Sema::FRS_DiagnosticIssued;
 2230     return Sema::FRS_Success;
 2241       return Sema::FRS_DiagnosticIssued;
 2245       return Sema::FRS_DiagnosticIssued;
 2259         if (Sema::ForRangeStatus Result = BuildNotFound())
 2263         case Sema::FRS_Success:
 2264           return Sema::FRS_Success;
 2266         case Sema::FRS_NoViableFunction:
 2274         case Sema::FRS_DiagnosticIssued:
 2280           return Sema::FRS_DiagnosticIssued;
 2295   if (Sema::ForRangeStatus Result = BuildBegin())
 2303 static StmtResult RebuildForRangeWithDereference(Sema &SemaRef, Scope *S,
 2316     Sema::SFINAETrap Trap(SemaRef);
 2324         AdjustedRange.get(), RParenLoc, Sema::BFRK_Check);
 2336       AdjustedRange.get(), RParenLoc, Sema::BFRK_Rebuild);
 2342   InvalidateOnErrorScope(Sema &SemaRef, Decl *D, bool Enabled)
 2707 static void DiagnoseForRangeReferenceVariableCopies(Sema &SemaRef,
 2781 static void DiagnoseForRangeConstVariableCopies(Sema &SemaRef,
 2822 static void DiagnoseForRangeVariableCopies(Sema &SemaRef,
 2911 static void CheckJumpOutOfSEHFinally(Sema &S, SourceLocation Loc,
 3042 static void TryMoveInitialization(Sema& S,
 3416   LocalTypedefNameReferencer(Sema &S) : S(S) {}
 3419   Sema &S;
 4277 buildCapturedStmtCaptureList(Sema &S, CapturedRegionScopeInfo *RSI,
tools/clang/lib/Sema/SemaStmtAsm.cpp
   70                                            Sema &S) {
   88 static bool CheckAsmLValue(Expr *E, Sema &S) {
  127 static bool CheckNakedParmReference(Expr *E, Sema &S) {
  160 static bool checkExprMemoryConstraintCompat(Sema &S, Expr *E,
tools/clang/lib/Sema/SemaStmtAttr.cpp
   24 static Attr *handleFallThroughAttr(Sema &S, Stmt *St, const ParsedAttr &A,
   53 static Attr *handleSuppressAttr(Sema &S, Stmt *St, const ParsedAttr &A,
   76 static Attr *handleLoopHintAttr(Sema &S, Stmt *St, const ParsedAttr &A,
  174 CheckForIncompatibleAttributes(Sema &S,
  280 static Attr *handleOpenCLUnrollHint(Sema &S, Stmt *St, const ParsedAttr &A,
  321 static Attr *ProcessStmtAttribute(Sema &S, Stmt *St, const ParsedAttr &A,
tools/clang/lib/Sema/SemaTemplate.cpp
  615     Sema &S;
  616     TemplateCandidateFilter(Sema &S) : S(S) {
  753                               Sema::MissingImportKind::Definition, Recover);
  866 static TemplateArgumentLoc translateTemplateArgument(Sema &SemaRef,
  910 static void maybeDiagnoseTemplateParameterShadow(Sema &SemaRef, Scope *S,
  914       S, Name, Loc, Sema::LookupOrdinaryName, Sema::ForVisibleRedeclaration);
  914       S, Name, Loc, Sema::LookupOrdinaryName, Sema::ForVisibleRedeclaration);
 1345 static void SetNestedNameSpecifier(Sema &S, TagDecl *T,
 1727   ExtractTypeForDeductionGuide(Sema &SemaRef) : Base(SemaRef) {}
 1741   ConvertConstructorToDeductionGuideTransform(Sema &S,
 1745   Sema &SemaRef;
 1961       Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, 0);
 2116 static bool DiagnoseDefaultTemplateArgument(Sema &S,
 2117                                             Sema::TemplateParamListContext TPC,
 2121   case Sema::TPC_ClassTemplate:
 2122   case Sema::TPC_VarTemplate:
 2123   case Sema::TPC_TypeAliasTemplate:
 2126   case Sema::TPC_FunctionTemplate:
 2127   case Sema::TPC_FriendFunctionTemplateDefinition:
 2142   case Sema::TPC_ClassTemplateMember:
 2151   case Sema::TPC_FriendClassTemplate:
 2152   case Sema::TPC_FriendFunctionTemplate:
 2170 static bool DiagnoseUnexpandedParameterPacks(Sema &S,
 2184                                       Sema::UPPC_NonTypeTemplateParameterType))
 2990 checkBuiltinTemplateIdType(Sema &SemaRef, BuiltinTemplateDecl *BTD,
 3173       *this, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 3640 static bool CheckTemplateSpecializationScope(Sema &S, NamedDecl *Specialized,
 3712 makeTemplateArgumentListInfo(Sema &S, TemplateIdAnnotation &TemplateId) {
 3722 static void checkMoreSpecializedThanPrimary(Sema &S, PartialSpecDecl *Partial) {
 3752 noteNonDeducibleParameters(Sema &S, TemplateParameterList *TemplateParams,
 3769 static void checkTemplatePartialSpecialization(Sema &S,
 4619 SubstDefaultTemplateArgument(Sema &SemaRef,
 4630     Sema::InstantiatingTemplate Inst(SemaRef, TemplateLoc,
 4644     Sema::ContextRAII SavedContext(SemaRef, Template->getDeclContext());
 4682   Sema::InstantiatingTemplate Inst(SemaRef, TemplateLoc,
 4696   Sema::ContextRAII SavedContext(SemaRef, Template->getDeclContext());
 4698       SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 4728 SubstDefaultTemplateArgument(Sema &SemaRef,
 4735   Sema::InstantiatingTemplate Inst(
 4749   Sema::ContextRAII SavedContext(SemaRef, Template->getDeclContext());
 4929         Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(*this,
 5168 static bool diagnoseMissingArgument(Sema &S, SourceLocation Loc,
 5184                             Sema::MissingImportKind::DefaultArgument,
 5470     Sema &S;
 5476     UnnamedLocalNoLinkageFinder(Sema &S, SourceRange SR) : S(S), SR(SR) { }
 5764 isNullPointerValueTemplateArgument(Sema &S, NonTypeTemplateParmDecl *Param,
 5860     Sema &S, NonTypeTemplateParmDecl *Param, QualType ParamType, Expr *ArgIn,
 5917 CheckTemplateArgumentAddressOfObjectOrFunction(Sema &S,
 6203 static bool CheckTemplateArgumentPointerToMember(Sema &S,
 6444       *this, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 6632         void diagnoseNotICE(Sema &S, SourceLocation Loc,
 6865     Sema &S, TemplateParameterList *New, TemplateParameterList *Old,
 6866     Sema::TemplateParameterListEqualKind Kind, SourceLocation TemplateArgLoc);
 7119 static bool MatchTemplateParameterKind(Sema &S, NamedDecl *New, NamedDecl *Old,
 7121                                      Sema::TemplateParameterListEqualKind Kind,
 7132         << (Kind != Sema::TPL_TemplateMatch);
 7134         << (Kind != Sema::TPL_TemplateMatch);
 7145       !(Kind == Sema::TPL_TemplateTemplateArgumentMatch &&
 7176     if (Kind == Sema::TPL_TemplateTemplateArgumentMatch &&
 7191           << (Kind != Sema::TPL_TemplateMatch);
 7212                                         (Kind == Sema::TPL_TemplateMatch
 7213                                            ? Sema::TPL_TemplateTemplateParmMatch
 7227 void DiagnoseTemplateParameterListArityMismatch(Sema &S,
 7230                                       Sema::TemplateParameterListEqualKind Kind,
 7239     << (Kind != Sema::TPL_TemplateMatch)
 7242     << (Kind != Sema::TPL_TemplateMatch)
 7247 DiagnoseTemplateParameterListRequiresClauseMismatch(Sema &S,
 7457 static bool CheckTemplateSpecializationScope(Sema &S,
 7552     Sema &S, SourceLocation TemplateNameLoc, NonTypeTemplateParmDecl *Param,
 8794 static void completeMemberSpecializationImpl(Sema &S, DeclT *OrigD,
 8828 static bool CheckExplicitInstantiationScope(Sema &S, NamedDecl *D,
 8880 static bool CheckExplicitInstantiation(Sema &S, NamedDecl *D,
 8926     Sema &S, ClassTemplateSpecializationDecl *Def) {
 9255   Decl *TagD = ActOnTag(S, TagSpec, Sema::TUK_Reference,
10133     CurrentInstantiationRebuilder(Sema &SemaRef,
10371   Sema &S;
10376   ExplicitSpecializationVisibilityChecker(Sema &S, SourceLocation Loc)
10392     auto Kind = IsPartialSpec ? Sema::MissingImportKind::PartialSpecialization
10393                               : Sema::MissingImportKind::ExplicitSpecialization;
tools/clang/lib/Sema/SemaTemplateDeduction.cpp
  133 static Sema::TemplateDeductionResult
  134 DeduceTemplateArguments(Sema &S,
  141 static Sema::TemplateDeductionResult
  142 DeduceTemplateArgumentsByTypeMatch(Sema &S,
  153 static Sema::TemplateDeductionResult
  154 DeduceTemplateArguments(Sema &S, TemplateParameterList *TemplateParams,
  374 static Sema::TemplateDeductionResult DeduceNonTypeTemplateArgument(
  375     Sema &S, TemplateParameterList *TemplateParams,
  388     return Sema::TDK_Inconsistent;
  393     return Sema::TDK_Success;
  400     return Sema::TDK_Success;
  421 static Sema::TemplateDeductionResult DeduceNonTypeTemplateArgument(
  422     Sema &S, TemplateParameterList *TemplateParams,
  435 static Sema::TemplateDeductionResult DeduceNullPtrTemplateArgument(
  436     Sema &S, TemplateParameterList *TemplateParams,
  454 static Sema::TemplateDeductionResult DeduceNonTypeTemplateArgument(
  455     Sema &S, TemplateParameterList *TemplateParams,
  467 static Sema::TemplateDeductionResult DeduceNonTypeTemplateArgument(
  468     Sema &S, TemplateParameterList *TemplateParams,
  478 static Sema::TemplateDeductionResult
  479 DeduceTemplateArguments(Sema &S,
  489     return Sema::TDK_Success;
  496       return Sema::TDK_Success;
  506       return Sema::TDK_Inconsistent;
  510     return Sema::TDK_Success;
  515     return Sema::TDK_Success;
  520   return Sema::TDK_NonDeducedMismatch;
  541 static Sema::TemplateDeductionResult
  542 DeduceTemplateArguments(Sema &S,
  558     if (Sema::TemplateDeductionResult Result
  582     return Sema::TDK_NonDeducedMismatch;
  590     return Sema::TDK_NonDeducedMismatch;
  594   if (Sema::TemplateDeductionResult Result
  683   PackDeductionScope(Sema &S, TemplateParameterList *TemplateParams,
  692   PackDeductionScope(Sema &S, TemplateParameterList *TemplateParams,
  862   Sema::TemplateDeductionResult
  937         return Sema::TDK_Inconsistent;
  946           return Sema::TDK_IncompletePack;
  953     return Sema::TDK_Success;
  957   Sema &S;
 1001 static Sema::TemplateDeductionResult
 1002 DeduceTemplateArguments(Sema &S,
 1025         return Sema::TDK_MiscellaneousDeductionFailure;
 1032         return Sema::TDK_MiscellaneousDeductionFailure;
 1035       if (Sema::TemplateDeductionResult Result
 1061         if (Sema::TemplateDeductionResult Result
 1103     return Sema::TDK_MiscellaneousDeductionFailure;
 1105   return Sema::TDK_Success;
 1215 static Sema::TemplateDeductionResult
 1216 DeduceTemplateArgumentsByTypeMatch(Sema &S,
 1280         return Sema::TDK_NonDeducedMismatch;
 1336       return Sema::TDK_Success;
 1359       return Sema::TDK_Underqualified;
 1365       return Sema::TDK_NonDeducedMismatch;
 1393       return Sema::TDK_Underqualified;
 1418       return Sema::TDK_Inconsistent;
 1422     return Sema::TDK_Success;
 1434     return Sema::TDK_Success;
 1442         return Sema::TDK_NonDeducedMismatch;
 1448         return Sema::TDK_NonDeducedMismatch;
 1457         return Sema::TDK_NonDeducedMismatch;
 1468           return Sema::TDK_NonDeducedMismatch;
 1471       return Sema::TDK_Success;
 1481       return Sema::TDK_Success;
 1507         return Sema::TDK_Success;
 1514       return Param == Arg? Sema::TDK_Success : Sema::TDK_NonDeducedMismatch;
 1514       return Param == Arg? Sema::TDK_Success : Sema::TDK_NonDeducedMismatch;
 1524       return Sema::TDK_NonDeducedMismatch;
 1534       return Sema::TDK_NonDeducedMismatch;
 1545         return Sema::TDK_NonDeducedMismatch;
 1560         return Sema::TDK_NonDeducedMismatch;
 1572         return Sema::TDK_NonDeducedMismatch;
 1585         return Sema::TDK_NonDeducedMismatch;
 1599         return Sema::TDK_NonDeducedMismatch;
 1604         return Sema::TDK_NonDeducedMismatch;
 1617         return Sema::TDK_NonDeducedMismatch;
 1624       if (Sema::TemplateDeductionResult Result
 1635         return Sema::TDK_Success;
 1657       return Sema::TDK_NonDeducedMismatch;
 1668         return Sema::TDK_NonDeducedMismatch;
 1678         return Sema::TDK_NonDeducedMismatch;
 1695         return Sema::TDK_Success;
 1733       return Sema::TDK_Success;
 1764       Sema::TemplateDeductionResult Result = DeduceTemplateArguments(
 1767       if (Result == Sema::TDK_Success)
 1810           Sema::TemplateDeductionResult BaseResult =
 1817           if (BaseResult == Sema::TDK_Success) {
 1821               return Sema::TDK_MiscellaneousDeductionFailure;
 1845         return Sema::TDK_Success;
 1864         return Sema::TDK_NonDeducedMismatch;
 1875       if (Sema::TemplateDeductionResult Result
 1900         return Sema::TDK_NonDeducedMismatch;
 1916           return Sema::TDK_NonDeducedMismatch;
 1938       return Sema::TDK_NonDeducedMismatch;
 1946         if (Sema::TemplateDeductionResult Result =
 1956           return Sema::TDK_Success;
 1970         if (Sema::TemplateDeductionResult Result =
 1980           return Sema::TDK_Success;
 1986       return Sema::TDK_NonDeducedMismatch;
 1998         if (Sema::TemplateDeductionResult Result
 2009           return Sema::TDK_Success;
 2024         if (Sema::TemplateDeductionResult Result
 2035           return Sema::TDK_Success;
 2042       return Sema::TDK_NonDeducedMismatch;
 2055         if (Sema::TemplateDeductionResult Result =
 2065           return Sema::TDK_Success;
 2078         if (Sema::TemplateDeductionResult Result =
 2088           return Sema::TDK_Success;
 2095       return Sema::TDK_NonDeducedMismatch;
 2110       return Sema::TDK_Success;
 2116 static Sema::TemplateDeductionResult
 2117 DeduceTemplateArguments(Sema &S,
 2141     return Sema::TDK_NonDeducedMismatch;
 2150     return Sema::TDK_NonDeducedMismatch;
 2158       return Sema::TDK_Success;
 2162     return Sema::TDK_NonDeducedMismatch;
 2167       return Sema::TDK_Success;
 2171     return Sema::TDK_NonDeducedMismatch;
 2176         return Sema::TDK_Success;
 2180       return Sema::TDK_NonDeducedMismatch;
 2186       return Sema::TDK_NonDeducedMismatch;
 2191     return Sema::TDK_NonDeducedMismatch;
 2217       return Sema::TDK_NonDeducedMismatch;
 2221     return Sema::TDK_Success;
 2273 static Sema::TemplateDeductionResult
 2274 DeduceTemplateArguments(Sema &S, TemplateParameterList *TemplateParams,
 2285     return Sema::TDK_Success;
 2299                    ? Sema::TDK_MiscellaneousDeductionFailure
 2300                    : Sema::TDK_Success;
 2306         return Sema::TDK_MiscellaneousDeductionFailure;
 2309       if (Sema::TemplateDeductionResult Result
 2339       if (Sema::TemplateDeductionResult Result
 2353   return Sema::TDK_Success;
 2356 static Sema::TemplateDeductionResult
 2357 DeduceTemplateArguments(Sema &S,
 2507 ConvertDeducedTemplateArgument(Sema &S, NamedDecl *Param,
 2526             ? (Arg.wasDeducedFromArrayBound() ? Sema::CTAK_DeducedFromArrayBound
 2527                                               : Sema::CTAK_Deduced)
 2528             : Sema::CTAK_Specified);
 2568         Sema::InstantiatingTemplate Inst(S, Template->getLocation(), Template,
 2576         Sema::InstantiatingTemplate Inst(S, Template->getLocation(), Template,
 2598 static Sema::TemplateDeductionResult ConvertDeducedTemplateArguments(
 2599     Sema &S, TemplateDeclT *Template, bool IsDeduced,
 2647         return Sema::TDK_SubstitutionFailure;
 2659       return Sema::TDK_Incomplete;
 2673       return HasDefaultArg ? Sema::TDK_SubstitutionFailure
 2674                            : Sema::TDK_Incomplete;
 2680                                 Sema::CTAK_Specified)) {
 2685       return Sema::TDK_SubstitutionFailure;
 2691   return Sema::TDK_Success;
 2715                                Sema::TemplateDeductionResult>::type
 2717     Sema &S, T *Partial, bool IsPartialOrdering,
 2723       S, Sema::ExpressionEvaluationContext::Unevaluated);
 2724   Sema::SFINAETrap Trap(S);
 2726   Sema::ContextRAII SavedContext(S, getAsDeclContextOrEnclosing(Partial));
 2767     return Sema::TDK_SubstitutionFailure;
 2773     return Sema::TDK_SubstitutionFailure;
 2782       return Sema::TDK_NonDeducedMismatch;
 2787     return Sema::TDK_SubstitutionFailure;
 2789   return Sema::TDK_Success;
 2795 static Sema::TemplateDeductionResult FinishTemplateArgumentDeduction(
 2796     Sema &S, TemplateDecl *Template, bool PartialOrdering,
 2802       S, Sema::ExpressionEvaluationContext::Unevaluated);
 2803   Sema::SFINAETrap Trap(S);
 2805   Sema::ContextRAII SavedContext(S, getAsDeclContextOrEnclosing(Template));
 2824       return Sema::TDK_NonDeducedMismatch;
 2829     return Sema::TDK_SubstitutionFailure;
 2831   return Sema::TDK_Success;
 2838 Sema::TemplateDeductionResult
 2853       *this, Sema::ExpressionEvaluationContext::Unevaluated);
 2872     return Sema::TDK_SubstitutionFailure;
 2881 Sema::TemplateDeductionResult
 2896       *this, Sema::ExpressionEvaluationContext::Unevaluated);
 2913     return Sema::TDK_SubstitutionFailure;
 2963 Sema::TemplateDeductionResult
 2988       *this, Sema::ExpressionEvaluationContext::Unevaluated);
 3160 static Sema::TemplateDeductionResult
 3161 CheckOriginalCallArgDeduction(Sema &S, TemplateDeductionInfo &Info,
 3162                               Sema::OriginalCallArg OriginalArg,
 3170     return OriginalArg.DecomposedParam ? Sema::TDK_DeducedMismatchNested
 3171                                        : Sema::TDK_DeducedMismatch;
 3179     return Sema::TDK_Success;
 3203       return Sema::TDK_Success;
 3244     return Sema::TDK_Success;
 3265     return Sema::TDK_Success;
 3269     return Sema::TDK_Success;
 3282 static unsigned getPackIndexForParam(Sema &S,
 3310 Sema::TemplateDeductionResult Sema::FinishTemplateArgumentDeduction(
 3319       *this, Sema::ExpressionEvaluationContext::Unevaluated);
 3450 static QualType GetTypeOfFunction(Sema &S, const OverloadExpr::FindResult &R,
 3477 ResolveOverloadForDeduction(Sema &S, TemplateParameterList *TemplateParams,
 3564     Sema::TemplateDeductionResult Result
 3583     Sema &S, TemplateParameterList *TemplateParams, unsigned FirstInnerIndex,
 3673 hasDeducibleTemplateParameters(Sema &S, FunctionTemplateDecl *FunctionTemplate,
 3676 static Sema::TemplateDeductionResult DeduceTemplateArgumentsFromCallArgument(
 3677     Sema &S, TemplateParameterList *TemplateParams, unsigned FirstInnerIndex,
 3680     SmallVectorImpl<Sema::OriginalCallArg> &OriginalCallArgs,
 3685 static Sema::TemplateDeductionResult DeduceFromInitializerList(
 3686     Sema &S, TemplateParameterList *TemplateParams, QualType AdjustedParamType,
 3689     SmallVectorImpl<Sema::OriginalCallArg> &OriginalCallArgs, unsigned ArgIdx,
 3700     return Sema::TDK_Success;
 3709     return Sema::TDK_Success;
 3716       return Sema::TDK_Success;
 3747   return Sema::TDK_Success;
 3752 static Sema::TemplateDeductionResult DeduceTemplateArgumentsFromCallArgument(
 3753     Sema &S, TemplateParameterList *TemplateParams, unsigned FirstInnerIndex,
 3756     SmallVectorImpl<Sema::OriginalCallArg> &OriginalCallArgs,
 3765     return Sema::TDK_Success;
 3808 Sema::TemplateDeductionResult Sema::DeduceTemplateArguments(
 3871       return Sema::TDK_Success;
 4025 Sema::TemplateDeductionResult Sema::DeduceTemplateArguments(
 4063       *this, Sema::ExpressionEvaluationContext::Unevaluated);
 4142 Sema::TemplateDeductionResult
 4208       *this, Sema::ExpressionEvaluationContext::Unevaluated);
 4281 Sema::TemplateDeductionResult Sema::DeduceTemplateArguments(
 4303     SubstituteDeducedTypeTransform(Sema &SemaRef, DependentAuto DA)
 4307     SubstituteDeducedTypeTransform(Sema &SemaRef, QualType Replacement,
 4372 Sema::DeduceAutoResult
 4382 static bool diagnoseAutoDeductionFailure(Sema &S,
 4383                                          Sema::TemplateDeductionResult TDK,
 4387   case Sema::TDK_Inconsistent: {
 4418 Sema::DeduceAutoResult
 4713 static bool isAtLeastAsSpecializedAs(Sema &S,
 5049 static bool isAtLeastAsSpecializedAs(Sema &S, QualType T1, QualType T2,
 5087   Sema::InstantiatingTemplate Inst(S, Info.getLocation(), P2, DeducedArgs,
 5704 bool hasDeducibleTemplateParameters(Sema &S,
tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
  221     Sema &SemaRef, CodeSynthesisContext::SynthesisKind Kind,
  256     Sema &SemaRef, SourceLocation PointOfInstantiation, Decl *Entity,
  263     Sema &SemaRef, SourceLocation PointOfInstantiation, FunctionDecl *Entity,
  270     Sema &SemaRef, SourceLocation PointOfInstantiation, TemplateParameter Param,
  280     Sema &SemaRef, SourceLocation PointOfInstantiation,
  294     Sema &SemaRef, SourceLocation PointOfInstantiation,
  305     Sema &SemaRef, SourceLocation PointOfInstantiation,
  316     Sema &SemaRef, SourceLocation PointOfInstantiation,
  327     Sema &SemaRef, SourceLocation PointOfInstantiation, ParmVarDecl *Param,
  336     Sema &SemaRef, SourceLocation PointOfInstantiation, NamedDecl *Template,
  346     Sema &SemaRef, SourceLocation PointOfInstantiation, NamedDecl *Template,
  356     Sema &SemaRef, SourceLocation PointOfInstantiation, TemplateDecl *Template,
  365     Sema &SemaRef, SourceLocation PointOfInstantiation,
  374     Sema &SemaRef, SourceLocation PointOfInstantiation,
  799     TemplateInstantiator(Sema &SemaRef,
 1036 getPackSubstitutedTemplateArgument(Sema &S, TemplateArgument Arg) {
 1874       Sema::ContextRAII SavedContext(*this, OwningFunc);
 1978             Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(*this, I);
 2006       Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(*this, -1);
 2044     Attr *instantiateTemplateAttribute(const Attr *At, ASTContext &C, Sema &S,
 2047         const Attr *At, ASTContext &C, Sema &S,
 2119       *this, Sema::ExpressionEvaluationContext::PotentiallyEvaluated);
 2361       *this, Sema::ExpressionEvaluationContext::PotentiallyEvaluated);
 2433       *this, Sema::ExpressionEvaluationContext::PotentiallyEvaluated);
 2488     Sema &S, SourceLocation PointOfInstantiation,
 2491   Sema::InstantiatingTemplate Inst(S, PointOfInstantiation, ClassTemplateSpec);
 2518       if (Sema::TemplateDeductionResult Result = S.DeduceTemplateArguments(
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
   42 static bool SubstQualifier(Sema &SemaRef, const DeclT *OldDecl, DeclT *NewDecl,
   50   Sema::ContextRAII SavedContext(
   81     Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs,
   86         S, Sema::ExpressionEvaluationContext::ConstantEvaluated);
  100     Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs,
  127     Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(S, -1);
  131       Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(S, I);
  138     Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs,
  142       S, Sema::ExpressionEvaluationContext::ConstantEvaluated);
  161     Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs,
  165       S, Sema::ExpressionEvaluationContext::ConstantEvaluated);
  172     Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs,
  182     Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs,
  186     Sema::ContextRAII SwitchContext(S, New);
  188         S, Sema::ExpressionEvaluationContext::ConstantEvaluated);
  213     Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs,
  224     Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs,
  238     Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs,
  242       S, Sema::ExpressionEvaluationContext::ConstantEvaluated);
  261 instantiateDependentModeAttr(Sema &S,
  270     Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs,
  283         Sema::ContextRAII SavedContext(S, FD);
  290     Sema::CXXThisScopeRAII ThisScope(S, ThisContext, Qualifiers(),
  299         S, Sema::ExpressionEvaluationContext::PotentiallyEvaluated);
  353     Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs,
  364         Sema::ContextRAII SavedContext(S, FD);
  371     Sema::CXXThisScopeRAII ThisScope(S, ThisContext, Qualifiers(),
  380         S, Sema::ExpressionEvaluationContext::PotentiallyEvaluated);
  402   Sema::OpenMPDeclareVariantCtsSelectorData Data(
  413     Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs,
  417       S, Sema::ExpressionEvaluationContext::ConstantEvaluated);
  433 instantiateExplicitSpecifier(Sema &S,
  442         S, Sema::ExpressionEvaluationContext::ConstantEvaluated);
  456     Sema &S, const MultiLevelTemplateArgumentList &TemplateArgs,
  460       S, Sema::ExpressionEvaluationContext::ConstantEvaluated);
  498 static Sema::RetainOwnershipKind
  502     return Sema::RetainOwnershipKind::CF;
  504     return Sema::RetainOwnershipKind::OS;
  506     return Sema::RetainOwnershipKind::NS;
  917     if (SemaRef.isCopyElisionCandidate(ReturnType, Var, Sema::CES_Strict))
  968         SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 1145       SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 1255           SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 1364                    Sema::LookupOrdinaryName,
 1411                                                   Sema::TPL_TemplateMatch)) {
 1423                                              Sema::TPC_ClassTemplate))
 1715     Sema::LocalEagerInstantiationScope LocalInstantiations(SemaRef);
 1926       D->isLocalExternDecl() ? Sema::LookupRedeclarationWithLinkage
 1927                              : Sema::LookupOrdinaryName,
 1928       D->isLocalExternDecl() ? Sema::ForExternalRedeclaration
 2047               ? Sema::TPC_FriendFunctionTemplateDefinition
 2048               : Sema::TPC_FriendFunctionTemplate);
 2243   LookupResult Previous(SemaRef, NameInfo, Sema::LookupOrdinaryName,
 2244                         Sema::ForExternalRedeclaration);
 2489         Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, I);
 2514       Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, -1);
 2564         SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 2577     Sema &S,
 2642         Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, I);
 2658       Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, -1);
 2761   LookupResult Prev(SemaRef, NameInfo, Sema::LookupUsingDeclName,
 2762                     Sema::ForVisibleRedeclaration);
 2877       Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, -1);
 2897       Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, I);
 3017   Sema::DeclGroupPtrTy Res = SemaRef.ActOnOpenMPAllocateDirective(
 3088     Sema::CXXThisScopeRAII ThisScope(SemaRef, ThisContext, Qualifiers(),
 3178     Sema::CXXThisScopeRAII ThisScope(SemaRef, ThisContext, Qualifiers(),
 3901     Sema::ExtParameterInfoBuilder ExtParamInfos;
 3914 static bool addInstantiatedParametersToScope(Sema &S, FunctionDecl *Function,
 3957           Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(S, Arg);
 3999   Sema::ContextRAII savedContext(*this, Decl);
 4037   typedef Sema::CodeSynthesisContext ActiveInstType;
 4086       Sema::ContextRAII SwitchContext(SemaRef, New);
 4151 static void InstantiateDefaultCtorDefaultArgs(Sema &S,
 4325       *this, Sema::ExpressionEvaluationContext::PotentiallyEvaluated);
 4353     Sema::ContextRAII savedContext(*this, Function);
 4531       NewVar->isLocalExternDecl() ? Sema::LookupRedeclarationWithLinkage
 4532                                   : Sema::LookupOrdinaryName,
 4533       NewVar->isLocalExternDecl() ? Sema::ForExternalRedeclaration
 4629         *this, Sema::ExpressionEvaluationContext::PotentiallyEvaluated, Var);
 4957         Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(*this, I);
tools/clang/lib/Sema/SemaTemplateVariadic.cpp
 1141 static void CheckFoldOperand(Sema &S, Expr *E) {
tools/clang/lib/Sema/SemaType.cpp
   66 static void diagnoseBadTypeAttribute(Sema &S, const ParsedAttr &attr,
  152     Sema &sema;
  194     TypeProcessingState(Sema &sema, Declarator &declarator)
  199     Sema &getSema() const {
  774 static void diagnoseAndRemoveTypeQualifiers(Sema &S, const DeclSpec &DS,
  802 static bool checkOmittedBlockReturnType(Sema &S, Declarator &declarator,
  832 static QualType applyObjCTypeArgs(Sema &S, SourceLocation loc, QualType type,
 1264   Sema &S = state.getSema();
 1864 static QualType inferARCLifetimeForPointee(Sema &S, QualType type,
 1954 static bool checkQualifiedFunction(Sema &S, QualType T, SourceLocation Loc,
 2107 static bool isArraySizeVLA(Sema &S, Expr *ArraySize, llvm::APSInt &SizeVal) {
 2110   class VLADiagnoser : public Sema::VerifyICEDiagnoser {
 2114     void diagnoseNotICE(Sema &S, SourceLocation Loc, SourceRange SR) override {
 2117     void diagnoseFold(Sema &S, SourceLocation Loc, SourceRange SR) override {
 2489 static void checkExtParameterInfos(Sema &S, ArrayRef<QualType> paramTypes,
 2687   Sema &S = state.getSema();
 2832 static void diagnoseRedundantReturnTypeQualifiers(Sema &S, QualType RetTy,
 2904   Sema &SemaRef = state.getSema();
 3226 static void warnAboutAmbiguousFunction(Sema &S, Declarator &D,
 3275                           Sema::LookupOrdinaryName);
 3324 static void warnAboutRedundantParens(Sema &S, Declarator &D, QualType T) {
 3395                         Sema::LookupOrdinaryName);
 3444     Sema &S, Declarator &D, const ParsedAttributesView &AttrList,
 3610 classifyPointerDeclarator(Sema &S, QualType type, Declarator &declarator,
 3761 static FileID getNullabilityCompletenessCheckFileID(Sema &S,
 3800 static void fixItNullability(Sema &S, DiagnosticBuilder &Diag,
 3835 static void emitNullabilityConsistencyWarning(Sema &S,
 3869 checkNullabilityConsistency(Sema &S, SimplePointerKind pointerKind,
 3910 static void recordNullabilitySeen(Sema &S, SourceLocation loc) {
 3993 static bool DiagnoseMultipleAddrSpaceAttributes(Sema &S, LangAS ASOld,
 4019   Sema &S = state.getSema();
 5299 static void transferARCOwnershipToDeclSpec(Sema &S,
 5313   Sema &S = state.getSema();
 5350   Sema &S = state.getSema();
 5453       Sema::GetTypeFromParser(DS.getRepAsType(), &RepTInfo);
 5458       Sema::GetTypeFromParser(DS.getRepAsType(), &RepTInfo);
 5463       Sema::GetTypeFromParser(DS.getRepAsType(), &TInfo);
 5495       Sema::GetTypeFromParser(DS.getRepAsType(), &TInfo);
 5505       Sema::GetTypeFromParser(DS.getRepAsType(), &TInfo);
 5526         Sema::GetTypeFromParser(DS.getRepAsType(), &TInfo);
 5542       Sema::GetTypeFromParser(DS.getRepAsType(), &TInfo);
 5550       Sema::GetTypeFromParser(DS.getRepAsType(), &TInfo);
 5566         Sema::GetTypeFromParser(DS.getRepAsType(), &TInfo);
 5581       Sema::GetTypeFromParser(DS.getRepAsType(), &TInfo);
 5772   Sema &S = State.getSema();
 5892 static bool BuildAddressSpaceIndex(Sema &S, LangAS &ASIdx,
 5974   Sema &S = State.getSema();
 6095   Sema &S = state.getSema();
 6257   Sema &S = state.getSema();
 6335     FunctionTypeUnwrapper(Sema &S, QualType T) : Original(T) {
 6375     QualType wrap(Sema &S, const FunctionType *New) {
 6448   Sema &S = State.getSema();
 6551   Sema &S = state.getSema();
 6653   Sema &S = state.getSema();
 6845   Sema &S = state.getSema();
 7041                << (int)Sema::CallingConventionIgnoredReason::VariadicFunction;
 7106           << (int)Sema::CallingConventionIgnoredReason::ConstructorDestructor;
 7135                                  Sema &S) {
 7173                                     Sema &S) {
 7208                                     VectorType::VectorKind VecKind, Sema &S) {
 7263                                      Sema &S, VectorType::VectorKind VecKind) {
 7312                                    Sema &S) {
 7946 static void assignInheritanceModel(Sema &S, CXXRecordDecl *RD) {
 8314 static QualType getDecltypeForExpr(Sema &S, Expr *E) {
tools/clang/lib/Sema/TreeTransform.h
  114   Sema &SemaRef;
  123   TreeTransform(Sema &SemaRef) : SemaRef(SemaRef) { }
  138   Sema &getSema() const { return SemaRef; }
  440   Sema::ConditionResult TransformCondition(SourceLocation Loc, VarDecl *Var,
  442                                            Sema::ConditionKind Kind);
  650       Sema::ExtParameterInfoBuilder &PInfos);
 1080     LookupResult Result(SemaRef, Id, IdLoc, Sema::LookupTagName);
 1111       LookupResult Result(SemaRef, Id, IdLoc, Sema::LookupTagName);
 1118           Sema::NonTagKind NTK = SemaRef.getNonTagTypeDeclKind(SomeDecl, Kind);
 1286                            Sema::ConditionResult Cond, Stmt *Init, Stmt *Then,
 1297                                     Sema::ConditionResult Cond) {
 1315                               Sema::ConditionResult Cond, Stmt *Body) {
 1335                             Stmt *Init, Sema::ConditionResult Cond,
 1336                             Sema::FullExprArg Inc, SourceLocation RParenLoc,
 1375     Sema::DeclGroupPtrTy DG = getSema().BuildDeclaratorGroup(Decls);
 2106                                           RParenLoc, Sema::BFRK_Rebuild);
 2335     LookupResult R(getSema(), MemberNameInfo, Sema::LookupMemberName);
 3349                                      Sema::AtomicArgumentOrder::AST);
 3567         Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), -1);
 3591         Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), I);
 3642 Sema::ConditionResult TreeTransform<Derived>::TransformCondition(
 3643     SourceLocation Loc, VarDecl *Var, Expr *Expr, Sema::ConditionKind Kind) {
 3649       return Sema::ConditionError();
 3658       return Sema::ConditionError();
 3684       Sema::NestedNameSpecInfo IdInfo(QNNS->getAsIdentifier(),
 4035         Uneval ? Sema::ExpressionEvaluationContext::Unevaluated
 4036                : Sema::ExpressionEvaluationContext::ConstantEvaluated,
 4038         Sema::ExpressionEvaluationContextRecord::EK_TemplateArgument);
 4173         Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), -1);
 4189         Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), I);
 4569 static void deduceOpenCLPointeeAddrSpace(Sema &SemaRef, QualType &PointeeType) {
 4767         SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 4837         SemaRef, Sema::ExpressionEvaluationContext::PotentiallyEvaluated);
 4883       SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 4929       SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 4971       SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 5014       SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 5157     Sema::ExtParameterInfoBuilder &PInfos) {
 5198             Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), I);
 5245         Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), -1);
 5294           Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), I);
 5337       Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), -1);
 5396   Sema::ExtParameterInfoBuilder ExtParamInfos;
 5416       Sema::CXXThisScopeRAII ThisScope(SemaRef, ThisContext, ThisTypeQuals);
 5485         getSema(), Sema::ExpressionEvaluationContext::ConstantEvaluated);
 5534         Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), -1);
 5547         Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), ArgIdx);
 5646       SemaRef, Sema::ExpressionEvaluationContext::Unevaluated,
 5647       Sema::ReuseLambdaContextDecl);
 5705       SemaRef, Sema::ExpressionEvaluationContext::Unevaluated, nullptr,
 5706       Sema::ExpressionEvaluationContextRecord::EK_Decltype);
 6186             << TAT << Sema::NTK_TypeAliasTemplate
 6534         Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), -1);
 6555         Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), ArgIdx);
 6656   Sema::CompoundScopeRAII CompoundScope(getSema());
 6700         SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated);
 6824   Sema::ConditionResult Cond = getDerived().TransformCondition(
 6826       S->isConstexpr() ? Sema::ConditionKind::ConstexprIf
 6827                        : Sema::ConditionKind::Boolean);
 6875   Sema::ConditionResult Cond = getDerived().TransformCondition(
 6877       Sema::ConditionKind::Switch);
 6901   Sema::ConditionResult Cond = getDerived().TransformCondition(
 6903       Sema::ConditionKind::Boolean);
 6960   Sema::ConditionResult Cond = getDerived().TransformCondition(
 6962       Sema::ConditionKind::Boolean);
 6971   Sema::FullExprArg FullInc(getSema().MakeFullDiscardedValueExpr(Inc.get()));
 7730   case Sema::IER_Exists:
 7736   case Sema::IER_DoesNotExist:
 7742   case Sema::IER_Dependent:
 7746   case Sema::IER_Error:
 7896       Sema::CompoundScopeRAII CompoundScope(getSema());
 9457   typedef Sema::OffsetOfComponent Component;
 9565       SemaRef, Sema::ExpressionEvaluationContext::Unevaluated,
 9566       Sema::ReuseLambdaContextDecl);
 9776   Sema::FPContractStateRAII FPContractState(getSema());
10302   Sema::FPContractStateRAII FPContractState(getSema());
10476       SemaRef, Sema::ExpressionEvaluationContext::Unevaluated,
10477       Sema::ReuseLambdaContextDecl);
10509       SemaRef, Sema::ExpressionEvaluationContext::Unevaluated);
10906                  Sema::LookupOrdinaryName);
11019       Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), -1);
11045       Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, I);
11133         SemaRef, Sema::ExpressionEvaluationContext::Unevaluated);
11152         SemaRef, Sema::ExpressionEvaluationContext::Unevaluated);
11443           Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), I);
11458   Sema::FunctionScopeRAII FuncScopeCleanup(getSema());
11521           Sema::ExpressionEvaluationContext::PotentiallyEvaluatedIfUsed, P);
11535   Sema::ContextRAII SavedContext(getSema(), NewCallOperator,
11605     Sema::TryCaptureKind Kind
11606       = C->isImplicit()? Sema::TryCapture_Implicit
11608                            ? Sema::TryCapture_ExplicitByVal
11609                            : Sema::TryCapture_ExplicitByRef;
11631           Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), I);
11670       Sema::ExpressionEvaluationContext::PotentiallyEvaluated);
11906                  Sema::LookupOrdinaryName);
11956       SemaRef, Sema::ExpressionEvaluationContext::Unevaluated);
11990       getSema(), Sema::ExpressionEvaluationContext::Unevaluated);
12064     Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), -1);
12176     Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), -1);
12221     Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(
12357         Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), -1);
12386         Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(getSema(), I);
12741   Sema::ExtParameterInfoBuilder extParamInfos;
13157   Sema::TemplateTy Template;
13178   Sema::TemplateTy Template;
13370   SmallVector<Sema::CapturedParamNameType, 4> Params;
13385     Sema::CompoundScopeRAII CompoundScope(getSema());
tools/clang/lib/Serialization/ASTReader.cpp
 3964 static void moveMethodToBackOfGlobalList(Sema &S, ObjCMethodDecl *Method) {
 3966   Sema::GlobalMethodPool::iterator Known
 8284 void ASTReader::InitializeSema(Sema &S) {
 8586 static void addMethodsToPool(Sema &S, ArrayRef<ObjCMethodDecl *> Methods,
 8614   Sema &S = *getSema();
 8615   Sema::GlobalMethodPool::iterator Pos
tools/clang/lib/Serialization/ASTWriter.cpp
 3444 void ASTWriter::WriteSelectors(Sema &SemaRef) {
 3462       Sema::GlobalMethodPool::iterator F = SemaRef.MethodPool.find(S);
 3544 void ASTWriter::WriteReferencedSelectorsPool(Sema &SemaRef) {
 4314 void ASTWriter::WriteOpenCLExtensions(Sema &SemaRef) {
 4331 void ASTWriter::WriteOpenCLExtensionTypes(Sema &SemaRef) {
 4364 void ASTWriter::WriteOpenCLExtensionDecls(Sema &SemaRef) {
 4396 void ASTWriter::WriteCUDAPragmas(Sema &SemaRef) {
 4455 void ASTWriter::WriteLateParsedTemplates(Sema &SemaRef) {
 4456   Sema::LateParsedTemplateMapT &LPTMap = SemaRef.LateParsedTemplateMap;
 4477 void ASTWriter::WriteOptimizePragmaOptions(Sema &SemaRef) {
 4485 void ASTWriter::WriteMSStructPragmaOptions(Sema &SemaRef) {
 4493 void ASTWriter::WriteMSPointersToMembersPragmaOptions(Sema &SemaRef) {
 4501 void ASTWriter::WritePackPragmaOptions(Sema &SemaRef) {
 4520 void ASTWriter::WriteModuleFileExtension(Sema &SemaRef,
 4693 ASTFileSignature ASTWriter::WriteAST(Sema &SemaRef,
 4739 ASTFileSignature ASTWriter::WriteASTCore(Sema &SemaRef, StringRef isysroot,
tools/clang/tools/extra/clangd/CodeComplete.cpp
  545 getQueryScopes(CodeCompletionContext &CCContext, const Sema &CCSema,
  691   Sema *CCSema = nullptr; // Sema that created the results.
  694   void ProcessCodeCompleteResults(class Sema &S, CodeCompletionContext Context,
  807   void ProcessOverloadCandidates(Sema &S, unsigned CurrentArg,
tools/clang/tools/extra/clangd/IncludeFixer.cpp
  306 collectAccessibleScopes(Sema &Sem, const DeclarationNameInfo &Typo, Scope *S,
  307                         Sema::LookupNameKind LookupKind) {
  327   void InitializeSema(Sema &S) override { this->SemaPtr = &S; }
  345             Sema::LookupNameKind::LookupNestedNameSpecifierName);
  374   Sema *SemaPtr = nullptr;
tools/clang/tools/libclang/CIndexCodeCompletion.cpp
  387                                                     Sema &S) {
  575     void ProcessCodeCompleteResults(Sema &S, 
  656     void ProcessOverloadCandidates(Sema &S, unsigned CurrentArg,
tools/clang/unittests/CodeGen/IncrementalProcessingTest.cpp
   58   Sema& S = CI.getSema();
  142     Sema& S = compiler.getSema();
tools/clang/unittests/Lex/PPCallbacksTest.cpp
  286     Sema S(PP, Context, Consumer);
tools/clang/unittests/Sema/CodeCompleteTest.cpp
   45   void ProcessCodeCompleteResults(Sema &S, CodeCompletionContext Context,
tools/clang/unittests/Sema/ExternalSemaSourceTest.cpp
   97   Sema *CurrentSema;
  103   void InitializeSema(Sema &S) override { CurrentSema = &S; }
  139   Sema *CurrentSema;
  145   void InitializeSema(Sema &S) override { CurrentSema = &S; }
tools/lldb/include/lldb/Symbol/ClangASTContext.h
  111   void setSema(clang::Sema *s);
  112   clang::Sema *getSema() { return m_sema; }
 1006   clang::Sema *m_sema = nullptr;
tools/lldb/include/lldb/Symbol/CxxModuleHandler.h
   38   clang::Sema *m_sema = nullptr;
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp
  376   Sema::DeclGroupPtrTy result_decl_group_ptr;
  502 void ASTResultSynthesizer::InitializeSema(Sema &S) {
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.h
   89   void InitializeSema(clang::Sema &S) override;
  167   clang::Sema *m_sema; ///< The Sema to use.
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.cpp
  171 void ASTStructExtractor::InitializeSema(Sema &S) {
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.h
   94   void InitializeSema(clang::Sema &S) override;
  123   clang::Sema *m_sema;                     ///< The Sema to use.
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h
  212   void InitializeSema(clang::Sema &S) override {
  436   void InitializeSema(clang::Sema &S) override {
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
  790 clang::Sema *ClangASTSource::getSema() {
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h
  196   clang::Sema *getSema();
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
  759   void ProcessCodeCompleteResults(Sema &SemaRef, CodeCompletionContext Context,
  839   void ProcessOverloadCandidates(Sema &S, unsigned CurrentArg,
  974   m_compiler->setSema(new Sema(m_compiler->getPreprocessor(), ast_context,
 1014     llvm::CrashRecoveryContextCleanupRegistrar<Sema> CleanupSema(
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp
  375       clang::SourceLocation(), clang::Sema::LookupOrdinaryName);
tools/lldb/source/Symbol/ClangASTContext.cpp
  664 void ClangASTContext::setSema(Sema *s) {
tools/lldb/source/Symbol/CxxModuleHandler.cpp
   47 static void makeScopes(Sema &sema, DeclContext *ctxt,
   65 emulateLookupInCtxt(Sema &sema, llvm::StringRef name, DeclContext *ctxt) {
   71                                        Sema::LookupOrdinaryName));
  118 getEqualLocalDeclContext(Sema &sema, DeclContext *foreign_ctxt) {
usr/include/c++/7.4.0/bits/invoke.h
   53     constexpr _Up&&
usr/include/c++/7.4.0/bits/move.h
   46     inline _GLIBCXX_CONSTEXPR _Tp*
   47     __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
   72     constexpr _Tp&&
   83     constexpr _Tp&&
usr/include/c++/7.4.0/bits/refwrap.h
   63     : _Maybe_get_result_type<_Functor>
  176     : _Weak_result_type_impl<typename remove_cv<_Functor>::type>
  215     : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp>
  215     : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp>
  215     : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp>
  327     : public _Reference_wrapper_base<typename remove_cv<_Tp>::type>
  329       _Tp* _M_data;
  332       typedef _Tp type;
  334       reference_wrapper(_Tp& __indata) noexcept
  338       reference_wrapper(_Tp&&) = delete;
  345       operator _Tp&() const noexcept
  348       _Tp&
  353 	typename result_of<_Tp&(_Args&&...)>::type
  363     inline reference_wrapper<_Tp>
  364     ref(_Tp& __t) noexcept
  374     void ref(const _Tp&&) = delete;
usr/include/c++/7.4.0/bits/unique_ptr.h
   68         default_delete(const default_delete<_Up>&) noexcept { }
   72       operator()(_Tp* __ptr) const
   74 	static_assert(!is_void<_Tp>::value,
   76 	static_assert(sizeof(_Tp)>0,
  122 	  using type = _Up*;
  137       using pointer = typename _Ptr<_Tp, _Dp>::type;
  161 	typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type;
  163       __uniq_ptr_impl<_Tp, _Dp> _M_t;
  166       using pointer	  = typename __uniq_ptr_impl<_Tp, _Dp>::pointer;
  167       using element_type  = _Tp;
  252 	unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept
  297           __safe_conversion_up<_Up, _Ep>,
  301 	operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
  824     make_unique(_Args&&... __args)
usr/include/c++/7.4.0/functional
  110 	= _Maybe_unary_or_binary_function<_Res, _Class*, _ArgTypes...>;
  361 	_Tp&
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
 1554     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1633     { typedef _Tp   type; };
 1645     { typedef _Tp&   type; };
 1650     : public __add_lvalue_reference_helper<_Tp>
 1659     { typedef _Tp&&   type; };
 2104     { typedef typename remove_cv<_Up>::type __type; };
 2381       typedef typename conditional<__or_<is_same<_Argval, _Class>,
 2382         is_base_of<_Class, _Argval>>::value,