aboutsummaryrefslogtreecommitdiff
path: root/backend/unittests/CodeGen/TargetRegisterInfoTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backend/unittests/CodeGen/TargetRegisterInfoTest.cpp')
-rw-r--r--backend/unittests/CodeGen/TargetRegisterInfoTest.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/backend/unittests/CodeGen/TargetRegisterInfoTest.cpp b/backend/unittests/CodeGen/TargetRegisterInfoTest.cpp
index da13e19..49f23c0 100644
--- a/backend/unittests/CodeGen/TargetRegisterInfoTest.cpp
+++ b/backend/unittests/CodeGen/TargetRegisterInfoTest.cpp
@@ -168,6 +168,19 @@ void testDescriptionRejection(TestContext &Context) {
}
{
auto Description = rcc::test::createTestTargetRegisterInfoDescription();
+ Description.PhysicalRegisters.front().AlternativeNames = {"later-name"};
+ Description.PhysicalRegisters[1].Name = "later-name";
+ Context.expect(!rcc::TargetRegisterInfo::create(std::move(Description)),
+ "canonical register names must not collide with earlier ABI aliases");
+ }
+ {
+ auto Description = rcc::test::createTestTargetRegisterInfoDescription();
+ Description.PhysicalRegisters.front().IsReserved = true;
+ Context.expect(!rcc::TargetRegisterInfo::create(std::move(Description)),
+ "statically reserved registers must not appear in allocation orders");
+ }
+ {
+ auto Description = rcc::test::createTestTargetRegisterInfoDescription();
Description.PhysicalSubRegisters.front().SubReg = phys(rcc::test::TestRegister::G1Low32);
Context.expect(!rcc::TargetRegisterInfo::create(std::move(Description)),
"subregister mappings with unrelated units must be rejected");