|
reference, declaration → definition
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,