From b1c9c13ca36e80f5109c9c5b30dfed5820a5daf9 Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Sun, 4 Jan 2026 16:00:19 -0800 Subject: [PATCH] VolumeFileBlobReader: Define default destructor in source file Fix an error generated by Clang from the destructor of `std::unique_ptr m_file_info` when setting the standard version to c++23: `invalid application of 'sizeof' to an incomplete type 'DiscIO::FileInfo'` --- Source/Core/DiscIO/VolumeFileBlobReader.cpp | 5 +++++ Source/Core/DiscIO/VolumeFileBlobReader.h | 1 + 2 files changed, 6 insertions(+) diff --git a/Source/Core/DiscIO/VolumeFileBlobReader.cpp b/Source/Core/DiscIO/VolumeFileBlobReader.cpp index 7cbc06e589..92eb9b4ae2 100644 --- a/Source/Core/DiscIO/VolumeFileBlobReader.cpp +++ b/Source/Core/DiscIO/VolumeFileBlobReader.cpp @@ -33,6 +33,11 @@ VolumeFileBlobReader::VolumeFileBlobReader(const Volume& volume, const Partition { } +// This is defined here instead of the header so that the definition of FileInfo is visible when +// m_file_info is destroyed, preventing a compile error caused by calling unique_ptr's destructor +// with an incomplete type. +VolumeFileBlobReader::~VolumeFileBlobReader() = default; + std::unique_ptr VolumeFileBlobReader::CopyReader() const { ASSERT_MSG(DISCIO, false, "Unimplemented"); diff --git a/Source/Core/DiscIO/VolumeFileBlobReader.h b/Source/Core/DiscIO/VolumeFileBlobReader.h index 58d349a0d4..49fe4cd200 100644 --- a/Source/Core/DiscIO/VolumeFileBlobReader.h +++ b/Source/Core/DiscIO/VolumeFileBlobReader.h @@ -20,6 +20,7 @@ class VolumeFileBlobReader final : public BlobReader public: static std::unique_ptr Create(const Volume& volume, const Partition& partition, std::string_view file_path); + ~VolumeFileBlobReader(); BlobType GetBlobType() const override { return BlobType::PLAIN; } std::unique_ptr CopyReader() const override;