Fix regression1 operator[](json_pointer) test under JSON_NO_THREAD_LOCAL (#5952)

The test relies on a copied fifo_map restarting its timestamps. Copying a
basic_json does that only on the recursive path; with JSON_NO_THREAD_LOCAL
the copy is built member by member and keeps correct timestamps, so the
premise was missing and the test failed (ci_test_no_thread_local, MinGW
clang). Copy the object_t explicitly to create the state on every path.

Signed-off-by: Niels Lohmann <mail@nlohmann.me>
diff --git a/tests/src/unit-regression1.cpp b/tests/src/unit-regression1.cpp
index fae261e..b98f2b6 100644
--- a/tests/src/unit-regression1.cpp
+++ b/tests/src/unit-regression1.cpp
@@ -1504,13 +1504,16 @@
         // a copied fifo_map restarts its timestamps, so a new key "k" gets
         // the timestamp of "x": the lookup does not find "k", but emplace()
         // finds "x" and inserts nothing; the pointer then continues with the
-        // member of "x", as basic_json::operator[] does
+        // member of "x", as basic_json::operator[] does. The object_t is
+        // copied explicitly: copying the my_json would build the object
+        // member by member (with fresh timestamps) when built with
+        // JSON_NO_THREAD_LOCAL.
         const my_json orig = my_json::parse(R"({"x":1})");
         const std::array<const char*, 3> pointers = {{"/k/0", "/k/a/b", "/k/-"}};
         for (const char* pointer : pointers)
         {
             CAPTURE(pointer)
-            my_json j = orig;
+            my_json j(orig.get_ref<const my_json::object_t&>());
             CHECK_THROWS_AS(j[my_json::json_pointer(pointer)], my_json::out_of_range&);
             CHECK(j.dump() == R"({"x":1})");
         }