diff --git a/test/std/utilities/variant/variant.variant/variant.assign/conv.pass.cpp b/test/std/utilities/variant/variant.variant/variant.assign/conv.pass.cpp
index a1d9122..b723263 100644
--- a/test/std/utilities/variant/variant.variant/variant.assign/conv.pass.cpp
+++ b/test/std/utilities/variant/variant.variant/variant.assign/conv.pass.cpp
@@ -40,4 +40,5 @@
   static_assert(!std::is_assignable<std::variant<bool>, std::unique_ptr<char> >::value, "");
   static_assert(!std::is_assignable<std::variant<bool>, decltype(nullptr)>::value, "");
 
+  return 0;
 }
diff --git a/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp b/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp
index 820d81e..07ca63f 100644
--- a/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp
+++ b/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp
@@ -453,7 +453,7 @@
   {
     using V = std::variant<int, CopyAssign, unsigned>;
     CopyAssign::reset();
-    V v1(std::in_place_type<unsigned>, 43);
+    V v1(std::in_place_type<unsigned>, 43u);
     V v2(std::in_place_type<CopyAssign>, 42);
     assert(CopyAssign::copy_construct == 0);
     assert(CopyAssign::move_construct == 0);
diff --git a/test/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp b/test/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp
index 7ec76ab..b70f7aa 100644
--- a/test/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp
+++ b/test/std/utilities/variant/variant.variant/variant.assign/move.pass.cpp
@@ -462,7 +462,7 @@
     struct {
       constexpr Result<long> operator()() const {
         using V = std::variant<int, TMoveAssign, unsigned>;
-        V v(std::in_place_type<unsigned>, 43);
+        V v(std::in_place_type<unsigned>, 43u);
         V v2(std::in_place_type<TMoveAssign>, 42);
         v = std::move(v2);
         return {v.index(), std::get<1>(v).value};
diff --git a/test/std/utilities/variant/variant.variant/variant.ctor/conv.pass.cpp b/test/std/utilities/variant/variant.variant/variant.ctor/conv.pass.cpp
index c0b1560..de3def4 100644
--- a/test/std/utilities/variant/variant.variant/variant.ctor/conv.pass.cpp
+++ b/test/std/utilities/variant/variant.variant/variant.ctor/conv.pass.cpp
@@ -38,5 +38,6 @@
   static_assert(!std::is_constructible<std::variant<bool>, std::true_type>::value, "");
   static_assert(!std::is_constructible<std::variant<bool>, std::unique_ptr<char> >::value, "");
   static_assert(!std::is_constructible<std::variant<bool>, decltype(nullptr)>::value, "");
-  
+
+  return 0;
 }
diff --git a/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_args.pass.cpp b/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_args.pass.cpp
index 07a70e4..b09e357 100644
--- a/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_args.pass.cpp
+++ b/test/std/utilities/variant/variant.variant/variant.mod/emplace_index_args.pass.cpp
@@ -145,7 +145,7 @@
     assert(&std::get<3>(v) == &z);
     assert(&ref4 == &std::get<3>(v));
     // emplace with multiple args
-    auto& ref5 = v.emplace<5>(3, 'a');
+    auto& ref5 = v.emplace<5>(3u, 'a');
     static_assert(std::is_same_v<std::string&, decltype(ref5)>, "");
     assert(std::get<5>(v) == "aaa");
     assert(&ref5 == &std::get<5>(v));
diff --git a/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_args.pass.cpp b/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_args.pass.cpp
index 9eaddcc..e0a048a 100644
--- a/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_args.pass.cpp
+++ b/test/std/utilities/variant/variant.variant/variant.mod/emplace_type_args.pass.cpp
@@ -145,7 +145,7 @@
     assert(&std::get<int &&>(v) == &z);
     assert(&ref4 == &std::get<int &&>(v));
     // emplace with multiple args
-    auto& ref5 = v.emplace<std::string>(3, 'a');
+    auto& ref5 = v.emplace<std::string>(3u, 'a');
     static_assert(std::is_same_v<std::string&, decltype(ref5)>, "");
     assert(std::get<std::string>(v) == "aaa");
     assert(&ref5 == &std::get<std::string>(v));
