[test] Fix aggregate initialization incompatible with c++20
authorSamira Bazuzi <bazuzi@google.com>
Wed, 30 Nov 2022 20:48:42 +0000 (12:48 -0800)
committerJordan Rupprecht <rupprecht@google.com>
Wed, 30 Nov 2022 20:48:42 +0000 (12:48 -0800)
In C++20, types that declare or delete any constructors are no longer aggregates, breaking compilation of many existing uses of aggregate initialization. In this test, provide a one-arg constructor so that `StructWithoutCopyOrMove{1}` still works.

llvm/unittests/Support/HashBuilderTest.cpp

index 2600744..2e27e4b 100644 (file)
@@ -134,6 +134,7 @@ void addHash(llvm::HashBuilderImpl<HasherT, Endianness> &HBuilder,
 struct StructWithoutCopyOrMove {
   int I;
   StructWithoutCopyOrMove() = default;
+  explicit StructWithoutCopyOrMove(int I) : I(I) {}
   StructWithoutCopyOrMove(const StructWithoutCopyOrMove &) = delete;
   StructWithoutCopyOrMove &operator=(const StructWithoutCopyOrMove &) = delete;