diff options
Diffstat (limited to 'llvm/lib/IR/Verifier.cpp')
| -rw-r--r-- | llvm/lib/IR/Verifier.cpp | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp index 55de486e90e1..7b6f7b5aa617 100644 --- a/llvm/lib/IR/Verifier.cpp +++ b/llvm/lib/IR/Verifier.cpp @@ -808,6 +808,10 @@ void Verifier::visitGlobalValue(const GlobalValue &GV) { "visibility must be dso_local!", &GV); + if (GV.isTagged()) { + Check(!GV.hasSection(), "tagged GlobalValue must not be in section.", &GV); + } + forEachUser(&GV, GlobalValueVisited, [&](const Value *V) -> bool { if (const Instruction *I = dyn_cast<Instruction>(V)) { if (!I->getParent() || !I->getParent()->getParent()) @@ -2264,19 +2268,23 @@ void Verifier::verifyFunctionAttrs(FunctionType *FT, AttributeList Attrs, Check((Attrs.hasFnAttr("aarch64_new_za") + Attrs.hasFnAttr("aarch64_in_za") + Attrs.hasFnAttr("aarch64_inout_za") + Attrs.hasFnAttr("aarch64_out_za") + - Attrs.hasFnAttr("aarch64_preserves_za")) <= 1, + Attrs.hasFnAttr("aarch64_preserves_za") + + Attrs.hasFnAttr("aarch64_za_state_agnostic")) <= 1, "Attributes 'aarch64_new_za', 'aarch64_in_za', 'aarch64_out_za', " - "'aarch64_inout_za' and 'aarch64_preserves_za' are mutually exclusive", + "'aarch64_inout_za', 'aarch64_preserves_za' and " + "'aarch64_za_state_agnostic' are mutually exclusive", V); - Check( - (Attrs.hasFnAttr("aarch64_new_zt0") + Attrs.hasFnAttr("aarch64_in_zt0") + - Attrs.hasFnAttr("aarch64_inout_zt0") + - Attrs.hasFnAttr("aarch64_out_zt0") + - Attrs.hasFnAttr("aarch64_preserves_zt0")) <= 1, - "Attributes 'aarch64_new_zt0', 'aarch64_in_zt0', 'aarch64_out_zt0', " - "'aarch64_inout_zt0' and 'aarch64_preserves_zt0' are mutually exclusive", - V); + Check((Attrs.hasFnAttr("aarch64_new_zt0") + + Attrs.hasFnAttr("aarch64_in_zt0") + + Attrs.hasFnAttr("aarch64_inout_zt0") + + Attrs.hasFnAttr("aarch64_out_zt0") + + Attrs.hasFnAttr("aarch64_preserves_zt0") + + Attrs.hasFnAttr("aarch64_za_state_agnostic")) <= 1, + "Attributes 'aarch64_new_zt0', 'aarch64_in_zt0', 'aarch64_out_zt0', " + "'aarch64_inout_zt0', 'aarch64_preserves_zt0' and " + "'aarch64_za_state_agnostic' are mutually exclusive", + V); if (Attrs.hasFnAttr(Attribute::JumpTable)) { const GlobalValue *GV = cast<GlobalValue>(V); |
