Lines Matching defs:II
63 Preprocessor::getLocalMacroDirectiveHistory(const IdentifierInfo *II) const {
64 if (!II->hadMacroDefinition())
66 auto Pos = CurSubmoduleState->Macros.find(II);
71 void Preprocessor::appendMacroDirective(IdentifierInfo *II, MacroDirective *MD){
75 MacroState &StoredMD = CurSubmoduleState->Macros[II];
79 StoredMD.overrideActiveModuleMacros(*this, II);
85 PendingModuleMacroNames.push_back(II);
89 II->setHasMacroDefinition(true);
90 if (!MD->isDefined() && !LeafModuleMacros.contains(II))
91 II->setHasMacroDefinition(false);
92 if (II->isFromAST())
93 II->setChangedSinceDeserialization();
96 void Preprocessor::setLoadedMacroDirective(IdentifierInfo *II,
108 assert(II && MD);
109 MacroState &StoredMD = CurSubmoduleState->Macros[II];
127 II->setHasMacroDefinition(true);
128 if (!MD->isDefined() && !LeafModuleMacros.contains(II))
129 II->setHasMacroDefinition(false);
132 ModuleMacro *Preprocessor::addModuleMacro(Module *Mod, IdentifierInfo *II,
137 ModuleMacro::Profile(ID, Mod, II);
145 auto *MM = ModuleMacro::create(*this, Mod, II, Macro, Overrides);
156 auto &LeafMacros = LeafModuleMacros[II];
165 II->setHasMacroDefinition(true);
172 const IdentifierInfo *II) {
174 ModuleMacro::Profile(ID, Mod, II);
180 void Preprocessor::updateModuleMacroInfo(const IdentifierInfo *II,
188 auto Leaf = LeafModuleMacros.find(II);
258 void Preprocessor::dumpMacroInfo(const IdentifierInfo *II) {
260 auto LeafIt = LeafModuleMacros.find(II);
264 auto Pos = CurSubmoduleState->Macros.find(II);
268 llvm::errs() << "MacroState " << State << " " << II->getNameStart();
269 if (State && State->isAmbiguous(*this, II))
288 State ? State->getActiveModuleMacros(*this, II) : std::nullopt)
411 IdentifierInfo *II = MI->getReplacementToken(0).getIdentifierInfo();
414 if (!II) return true;
418 if (II->isOutOfDate())
419 PP.getExternalSource()->updateOutOfDateIdentifier(*II);
423 if (auto *ExpansionMI = PP.getMacroInfo(II))
426 II != MacroIdent)
435 return !llvm::is_contained(MI->params(), II);
1192 static bool EvaluateHasIncludeCommon(Token &Tok, IdentifierInfo *II,
1202 PP.Diag(LParenLoc, diag::err_pp_directive_required) << II;
1205 Tok.setIdentifierInfo(II);
1219 PP.Diag(LParenLoc, diag::err_pp_expected_after) << II << tok::l_paren;
1251 << II << tok::r_paren;
1285 EmbedResult Preprocessor::EvaluateHasEmbed(Token &Tok, IdentifierInfo *II) {
1288 Diag(Tok, diag::err_pp_directive_required) << II;
1291 Tok.setIdentifierInfo(II);
1298 Diag(Tok, diag::err_pp_expected_after) << II << tok::l_paren;
1331 << II << tok::r_paren;
1382 bool Preprocessor::EvaluateHasInclude(Token &Tok, IdentifierInfo *II) {
1383 return EvaluateHasIncludeCommon(Tok, II, *this, nullptr, nullptr);
1386 bool Preprocessor::EvaluateHasIncludeNext(Token &Tok, IdentifierInfo *II) {
1391 return EvaluateHasIncludeCommon(Tok, II, *this, Lookup, LookupFromFile);
1397 Token &Tok, IdentifierInfo *II,
1405 PP.Diag(Tok.getLocation(), diag::err_pp_expected_after) << II
1450 PP.Diag(Tok.getLocation(), diag::err_pp_nested_paren) << II;
1509 IdentifierInfo *II;
1510 if (!Tok.isAnnotation() && (II = Tok.getIdentifierInfo()))
1511 return II;
1518 static bool isTargetArch(const TargetInfo &TI, const IdentifierInfo *II) {
1519 std::string ArchName = II->getName().lower() + "--";
1540 static bool isTargetVendor(const TargetInfo &TI, const IdentifierInfo *II) {
1544 return VendorName.equals_insensitive(II->getName());
1548 static bool isTargetOS(const TargetInfo &TI, const IdentifierInfo *II) {
1550 (llvm::Twine("unknown-unknown-") + II->getName().lower()).str();
1561 const IdentifierInfo *II) {
1562 std::string EnvName = (llvm::Twine("---") + II->getName().lower()).str();
1573 static bool isTargetVariantOS(const TargetInfo &TI, const IdentifierInfo *II) {
1580 (llvm::Twine("unknown-unknown-") + II->getName().lower()).str();
1593 const IdentifierInfo *II) {
1598 std::string EnvName = (llvm::Twine("---") + II->getName().lower()).str();
1637 IdentifierInfo *II = Tok.getIdentifierInfo();
1638 assert(II && "Can't be a macro without id info!");
1642 if (II == Ident_Pragma)
1644 else if (II == Ident__pragma) // in non-MS mode this is null
1658 if (II == Ident__LINE__) {
1679 } else if (II == Ident__FILE__ || II == Ident__BASE_FILE__ ||
1680 II == Ident__FILE_NAME__) {
1687 if (II == Ident__BASE_FILE__ && PLoc.isValid()) {
1703 if (II == Ident__FILE_NAME__) {
1713 } else if (II == Ident__DATE__) {
1723 } else if (II == Ident__TIME__) {
1733 } else if (II == Ident__INCLUDE_LEVEL__) {
1748 } else if (II == Ident__TIMESTAMP__) {
1774 } else if (II == Ident__FLT_EVAL_METHOD__) {
1785 } else if (II == Ident__COUNTER__) {
1789 } else if (II == Ident__has_feature) {
1790 EvaluateFeatureLikeBuiltinMacro(OS, Tok, II, *this, false,
1792 IdentifierInfo *II = ExpectFeatureIdentifierInfo(Tok, *this,
1794 return II && HasFeature(*this, II->getName());
1796 } else if (II == Ident__has_extension) {
1797 EvaluateFeatureLikeBuiltinMacro(OS, Tok, II, *this, false,
1799 IdentifierInfo *II = ExpectFeatureIdentifierInfo(Tok, *this,
1801 return II && HasExtension(*this, II->getName());
1803 } else if (II == Ident__has_builtin) {
1804 EvaluateFeatureLikeBuiltinMacro(OS, Tok, II, *this, false,
1806 IdentifierInfo *II = ExpectFeatureIdentifierInfo(Tok, *this,
1808 if (!II)
1810 else if (II->getBuiltinID() != 0) {
1811 switch (II->getBuiltinID()) {
1825 getBuiltinInfo().getRequiredFeatures(II->getBuiltinID()),
1831 } else if (II->getTokenID() != tok::identifier &&
1832 II->getName().starts_with("__builtin_")) {
1835 return llvm::StringSwitch<bool>(II->getName())
1851 } else if (II == Ident__has_constexpr_builtin) {
1853 OS, Tok, II, *this, false,
1855 IdentifierInfo *II = ExpectFeatureIdentifierInfo(
1857 if (!II)
1859 unsigned BuiltinOp = II->getBuiltinID();
1863 } else if (II == Ident__is_identifier) {
1864 EvaluateFeatureLikeBuiltinMacro(OS, Tok, II, *this, false,
1868 } else if (II == Ident__has_attribute) {
1869 EvaluateFeatureLikeBuiltinMacro(OS, Tok, II, *this, true,
1871 IdentifierInfo *II = ExpectFeatureIdentifierInfo(Tok, *this,
1873 return II ? hasAttribute(AttributeCommonInfo::Syntax::AS_GNU, nullptr,
1874 II, getTargetInfo(), getLangOpts())
1877 } else if (II == Ident__has_declspec) {
1878 EvaluateFeatureLikeBuiltinMacro(OS, Tok, II, *this, true,
1880 IdentifierInfo *II = ExpectFeatureIdentifierInfo(Tok, *this,
1882 if (II) {
1886 II, getTargetInfo(), LangOpts);
1891 } else if (II == Ident__has_cpp_attribute ||
1892 II == Ident__has_c_attribute) {
1893 bool IsCXX = II == Ident__has_cpp_attribute;
1894 EvaluateFeatureLikeBuiltinMacro(OS, Tok, II, *this, true,
1897 IdentifierInfo *II = ExpectFeatureIdentifierInfo(
1899 if (!II)
1908 ScopeII = II;
1911 II = ExpectFeatureIdentifierInfo(Tok, *this,
1918 return II ? hasAttribute(Syntax, ScopeII, II, getTargetInfo(),
1922 } else if (II == Ident__has_include ||
1923 II == Ident__has_include_next) {
1928 if (II == Ident__has_include)
1929 Value = EvaluateHasInclude(Tok, II);
1931 Value = EvaluateHasIncludeNext(Tok, II);
1937 } else if (II == Ident__has_embed) {
1942 EmbedResult Value = EvaluateHasEmbed(Tok, II);
1948 } else if (II == Ident__has_warning) {
1950 EvaluateFeatureLikeBuiltinMacro(OS, Tok, II, *this, false,
1977 } else if (II == Ident__building_module) {
1981 EvaluateFeatureLikeBuiltinMacro(OS, Tok, II, *this, false,
1983 IdentifierInfo *II = ExpectFeatureIdentifierInfo(Tok, *this,
1985 return getLangOpts().isCompilingModule() && II &&
1986 (II->getName() == getLangOpts().CurrentModule);
1988 } else if (II == Ident__MODULE__) {
1994 } else if (II == Ident__identifier) {
2003 << II << tok::l_paren;
2040 } else if (II == Ident__is_target_arch) {
2042 OS, Tok, II, *this, false,
2044 IdentifierInfo *II = ExpectFeatureIdentifierInfo(
2046 return II && isTargetArch(getTargetInfo(), II);
2048 } else if (II == Ident__is_target_vendor) {
2050 OS, Tok, II, *this, false,
2052 IdentifierInfo *II = ExpectFeatureIdentifierInfo(
2054 return II && isTargetVendor(getTargetInfo(), II);
2056 } else if (II == Ident__is_target_os) {
2058 OS, Tok, II, *this, false,
2060 IdentifierInfo *II = ExpectFeatureIdentifierInfo(
2062 return II && isTargetOS(getTargetInfo(), II);
2064 } else if (II == Ident__is_target_environment) {
2066 OS, Tok, II, *this, false,
2068 IdentifierInfo *II = ExpectFeatureIdentifierInfo(
2070 return II && isTargetEnvironment(getTargetInfo(), II);
2072 } else if (II == Ident__is_target_variant_os) {
2074 OS, Tok, II, *this, false,
2076 IdentifierInfo *II = ExpectFeatureIdentifierInfo(
2078 return II && isTargetVariantOS(getTargetInfo(), II);
2080 } else if (II == Ident__is_target_variant_environment) {
2082 OS, Tok, II, *this, false,
2084 IdentifierInfo *II = ExpectFeatureIdentifierInfo(
2086 return II && isTargetVariantEnvironment(getTargetInfo(), II);