diff --git a/cheriot/cheriot_load_filter.cc b/cheriot/cheriot_load_filter.cc
index 5d56bef..8ef1ca9 100644
--- a/cheriot/cheriot_load_filter.cc
+++ b/cheriot/cheriot_load_filter.cc
@@ -33,11 +33,15 @@
       revocation_base_(revocation_base) {
   cap_reg_ = new CheriotRegister(nullptr, "filter_cap");
   db_ = db_factory_.Allocate<uint32_t>(1);
+  db_->Set<uint32_t>(0, 0);
+  db_->set_latency(0);
   cap_reg_->SetDataBuffer(db_);
   db_->DecRef();
   // Allocate data buffers used in loads/stores.
   db_ = db_factory_.Allocate<uint8_t>(CheriotRegister::kCapabilitySizeInBytes);
+  db_->set_latency(0);
   tag_db_ = db_factory_.Allocate<uint8_t>(1);
+  tag_db_->set_latency(0);
   cap_address_ = base_;
 }
 
diff --git a/cheriot/cheriot_register.cc b/cheriot/cheriot_register.cc
index 11dc8cb..d964e33 100644
--- a/cheriot/cheriot_register.cc
+++ b/cheriot/cheriot_register.cc
@@ -197,7 +197,8 @@
   uint64_t t_hi = top_bits < base_bits ? 1 : 0;
   uint64_t c_b = 0 - a_hi;
   uint64_t c_t = t_hi - a_hi;
-  uint64_t a_top = address() >> (exponent_ + 9);
+  uint64_t address64 = address();
+  uint64_t a_top = address64 >> (exponent_ + 9);
   uint64_t base = ((a_top + c_b) << (exponent_ + 9)) | (base_bits << exponent_);
   base &= 0xffff'ffff;
   uint64_t top = ((a_top + c_t) << (exponent_ + 9)) | (top_bits << exponent_);
diff --git a/cheriot/cheriot_test_rig.cc b/cheriot/cheriot_test_rig.cc
index ae9d3a7..c794a9c 100644
--- a/cheriot/cheriot_test_rig.cc
+++ b/cheriot/cheriot_test_rig.cc
@@ -341,6 +341,8 @@
   ep_pc.rvfi_pc_wdata = next_pc;
   ep_metadata.rvfi_order = counter_num_instructions_.GetValue();
   ep_metadata.rvfi_valid = 1;
+  ep_metadata.rvfi_padding[0] = 0;
+  ep_metadata.rvfi_padding[1] = 0;
   pcc_->set_address(next_pc);
   inst->DecRef();
   ep_v2.trace_size = sizeof(ep_v2);
diff --git a/cheriot/test/cheriot_load_filter_test.cc b/cheriot/test/cheriot_load_filter_test.cc
index f9f6009..232ccd6 100644
--- a/cheriot/test/cheriot_load_filter_test.cc
+++ b/cheriot/test/cheriot_load_filter_test.cc
@@ -60,7 +60,7 @@
 // Test fixture to provide convenience methods and objects for the test.
 class CheriotLoadFilterTest : public ::testing::Test {
  public:
-  CheriotLoadFilterTest() : cap_reg_(nullptr, "dummy") {
+  CheriotLoadFilterTest() : counter_("dummy", 0), cap_reg_(nullptr, "dummy") {
     db_ = db_factory_.Allocate<uint32_t>(1);
     cap_reg_.SetDataBuffer(db_);
     cap_reg_.ResetNull();
@@ -82,7 +82,12 @@
           revoke_loads_.push_back(address);
         }));
     db_ = db_factory_.Allocate<uint32_t>(2);
+    db_->Set<uint32_t>(0, 0);
+    db_->Set<uint32_t>(1, 0);
+    db_->set_latency(0);
     tag_db_ = db_factory_.Allocate<uint8_t>(1);
+    tag_db_->Set<uint8_t>(0, 0);
+    tag_db_->set_latency(0);
     counter_.SetIsEnabled(/*is_enabled=*/true);
   }
 
diff --git a/cheriot/test_rig_packets.h b/cheriot/test_rig_packets.h
index 53a5bc2..651c6bb 100644
--- a/cheriot/test_rig_packets.h
+++ b/cheriot/test_rig_packets.h
@@ -153,7 +153,8 @@
   uint8_t rvfi_rs2_addr;
   // Padding to make the size a multiple of 8 bytes.
   uint8_t padding[5];
-  ExecutionPacketExtInteger() : magic{'i', 'n', 't', '-', 'd', 'a', 't', 'a'} {}
+  ExecutionPacketExtInteger()
+      : magic{'i', 'n', 't', '-', 'd', 'a', 't', 'a'}, padding{0, 0, 0, 0, 0} {}
 };
 
 struct ExecutionPacketExtMemAccess {
