summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/validity.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/validity.cpp')
-rw-r--r--src/emu/validity.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/emu/validity.cpp b/src/emu/validity.cpp
index dd70af41506..ff29b1b7442 100644
--- a/src/emu/validity.cpp
+++ b/src/emu/validity.cpp
@@ -514,9 +514,13 @@ void validity_checker::validate_inlines()
testi32a = (testi32a & 0x0000ffff) | 0x400000;
if (count_leading_zeros(testi32a) != 9)
osd_printf_error("Error testing count_leading_zeros\n");
+ if (count_leading_zeros(0) != 32)
+ osd_printf_error("Error testing count_leading_zeros\n");
testi32a = (testi32a | 0xffff0000) & ~0x400000;
if (count_leading_ones(testi32a) != 9)
osd_printf_error("Error testing count_leading_ones\n");
+ if (count_leading_ones(0xffffffff) != 32)
+ osd_printf_error("Error testing count_leading_ones\n");
}
@@ -1921,7 +1925,8 @@ void validity_checker::validate_devices()
validate_tag(device.basetag());
// look for duplicates
- if (!device_map.insert(device.tag()).second)
+ bool duplicate = !device_map.insert(device.tag()).second;
+ if (duplicate)
osd_printf_error("Multiple devices with the same tag defined\n");
// check for device-specific validity check
@@ -1932,7 +1937,7 @@ void validity_checker::validate_devices()
// if it's a slot, iterate over possible cards (don't recurse, or you'll stack infinite tee connectors)
device_slot_interface *const slot = dynamic_cast<device_slot_interface *>(&device);
- if (slot != nullptr && !slot->fixed())
+ if (slot != nullptr && !slot->fixed() && !duplicate)
{
for (auto &option : slot->option_list())
{