Lines Matching refs:Attribute
1220 assert(Slot != ~0U && "Attribute set inconsistency!");
1227 if (I->getKindAsEnum() == Attribute::NoReturn ||
1228 I->getKindAsEnum() == Attribute::NoUnwind ||
1229 I->getKindAsEnum() == Attribute::NoInline ||
1230 I->getKindAsEnum() == Attribute::AlwaysInline ||
1231 I->getKindAsEnum() == Attribute::OptimizeForSize ||
1232 I->getKindAsEnum() == Attribute::StackProtect ||
1233 I->getKindAsEnum() == Attribute::StackProtectReq ||
1234 I->getKindAsEnum() == Attribute::StackProtectStrong ||
1235 I->getKindAsEnum() == Attribute::SafeStack ||
1236 I->getKindAsEnum() == Attribute::NoRedZone ||
1237 I->getKindAsEnum() == Attribute::NoImplicitFloat ||
1238 I->getKindAsEnum() == Attribute::Naked ||
1239 I->getKindAsEnum() == Attribute::InlineHint ||
1240 I->getKindAsEnum() == Attribute::StackAlignment ||
1241 I->getKindAsEnum() == Attribute::UWTable ||
1242 I->getKindAsEnum() == Attribute::NonLazyBind ||
1243 I->getKindAsEnum() == Attribute::ReturnsTwice ||
1244 I->getKindAsEnum() == Attribute::SanitizeAddress ||
1245 I->getKindAsEnum() == Attribute::SanitizeThread ||
1246 I->getKindAsEnum() == Attribute::SanitizeMemory ||
1247 I->getKindAsEnum() == Attribute::MinSize ||
1248 I->getKindAsEnum() == Attribute::NoDuplicate ||
1249 I->getKindAsEnum() == Attribute::Builtin ||
1250 I->getKindAsEnum() == Attribute::NoBuiltin ||
1251 I->getKindAsEnum() == Attribute::Cold ||
1252 I->getKindAsEnum() == Attribute::OptimizeNone ||
1253 I->getKindAsEnum() == Attribute::JumpTable ||
1254 I->getKindAsEnum() == Attribute::Convergent ||
1255 I->getKindAsEnum() == Attribute::ArgMemOnly ||
1256 I->getKindAsEnum() == Attribute::NoRecurse ||
1257 I->getKindAsEnum() == Attribute::InaccessibleMemOnly ||
1258 I->getKindAsEnum() == Attribute::InaccessibleMemOrArgMemOnly) {
1260 CheckFailed("Attribute '" + I->getAsString() +
1264 } else if (I->getKindAsEnum() == Attribute::ReadOnly ||
1265 I->getKindAsEnum() == Attribute::ReadNone) {
1267 CheckFailed("Attribute '" + I->getAsString() +
1272 CheckFailed("Attribute '" + I->getAsString() +
1289 Assert(!Attrs.hasAttribute(Idx, Attribute::ByVal) &&
1290 !Attrs.hasAttribute(Idx, Attribute::Nest) &&
1291 !Attrs.hasAttribute(Idx, Attribute::StructRet) &&
1292 !Attrs.hasAttribute(Idx, Attribute::NoCapture) &&
1293 !Attrs.hasAttribute(Idx, Attribute::Returned) &&
1294 !Attrs.hasAttribute(Idx, Attribute::InAlloca),
1302 AttrCount += Attrs.hasAttribute(Idx, Attribute::ByVal);
1303 AttrCount += Attrs.hasAttribute(Idx, Attribute::InAlloca);
1304 AttrCount += Attrs.hasAttribute(Idx, Attribute::StructRet) ||
1305 Attrs.hasAttribute(Idx, Attribute::InReg);
1306 AttrCount += Attrs.hasAttribute(Idx, Attribute::Nest);
1311 Assert(!(Attrs.hasAttribute(Idx, Attribute::InAlloca) &&
1312 Attribute::ReadOnly)),
1317 Assert(!(Attrs.hasAttribute(Idx, Attribute::StructRet) &&
1318 Attrs.hasAttribute(Idx, Attribute::Returned)),
1323 Assert(!(Attrs.hasAttribute(Idx, Attribute::ZExt) &&
1324 Attrs.hasAttribute(Idx, Attribute::SExt)),
1329 Assert(!(Attrs.hasAttribute(Idx, Attribute::ReadNone) &&
1330 Attrs.hasAttribute(Idx, Attribute::ReadOnly)),
1335 Assert(!(Attrs.hasAttribute(Idx, Attribute::NoInline) &&
1336 Attrs.hasAttribute(Idx, Attribute::AlwaysInline)),
1343 "Wrong types for attribute: " +
1351 Assert(!Attrs.hasAttribute(Idx, Attribute::ByVal) &&
1352 !Attrs.hasAttribute(Idx, Attribute::InAlloca),
1357 Assert(!Attrs.hasAttribute(Idx, Attribute::ByVal),
1358 "Attribute 'byval' only applies to parameters with pointer type!",
1390 if (Attrs.hasAttribute(Idx, Attribute::Nest)) {
1391 Assert(!SawNest, "More than one parameter has attribute nest!", V);
1395 if (Attrs.hasAttribute(Idx, Attribute::Returned)) {
1396 Assert(!SawReturned, "More than one parameter has attribute returned!",
1400 "argument and return types for 'returned' attribute",
1405 if (Attrs.hasAttribute(Idx, Attribute::StructRet)) {
1408 "Attribute 'sret' is not on first or second parameter!", V);
1412 if (Attrs.hasAttribute(Idx, Attribute::InAlloca)) {
1424 !(Attrs.hasAttribute(AttributeSet::FunctionIndex, Attribute::ReadNone) &&
1425 Attrs.hasAttribute(AttributeSet::FunctionIndex, Attribute::ReadOnly)),
1429 !(Attrs.hasAttribute(AttributeSet::FunctionIndex, Attribute::ReadNone) &&
1431 Attribute::InaccessibleMemOrArgMemOnly)),
1435 !(Attrs.hasAttribute(AttributeSet::FunctionIndex, Attribute::ReadNone) &&
1437 Attribute::InaccessibleMemOnly)),
1441 !(Attrs.hasAttribute(AttributeSet::FunctionIndex, Attribute::NoInline) &&
1443 Attribute::AlwaysInline)),
1447 Attribute::OptimizeNone)) {
1448 Assert(Attrs.hasAttribute(AttributeSet::FunctionIndex, Attribute::NoInline),
1449 "Attribute 'optnone' requires 'noinline'!", V);
1452 Attribute::OptimizeForSize),
1455 Assert(!Attrs.hasAttribute(AttributeSet::FunctionIndex, Attribute::MinSize),
1460 Attribute::JumpTable)) {
1463 "Attribute 'jumptable' requires 'unnamed_addr'", V);
1720 "Attribute after last parameter!", &F);
1726 // attribute. We do not check this in VerifyFunctionAttrs since that is
1728 Assert(!Attrs.hasAttribute(AttributeSet::FunctionIndex, Attribute::Builtin),
1729 "Attribute 'builtin' can only be applied to a callsite.", &F);
2327 "Attribute after last parameter!", I);
2348 if (Attrs.hasAttribute(Idx, Attribute::Nest))
2350 if (Attrs.hasAttribute(Idx, Attribute::Returned))
2359 if (Attrs.hasAttribute(Idx, Attribute::Nest)) {
2360 Assert(!SawNest, "More than one parameter has attribute nest!", I);
2364 if (Attrs.hasAttribute(Idx, Attribute::Returned)) {
2365 Assert(!SawReturned, "More than one parameter has attribute returned!",
2369 "attribute",
2374 Assert(!Attrs.hasAttribute(Idx, Attribute::StructRet),
2375 "Attribute 'sret' cannot be used for vararg call arguments!", I);
2377 if (Attrs.hasAttribute(Idx, Attribute::InAlloca))
2439 static const Attribute::AttrKind ABIAttrs[] = {
2440 Attribute::StructRet, Attribute::ByVal, Attribute::InAlloca,
2441 Attribute::InReg, Attribute::Returned};
2447 if (Attrs.hasAttribute(I + 1, Attribute::Alignment))