diff --git a/CMakePresets.json b/CMakePresets.json index e21c079..aa7e001 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -99,7 +99,7 @@ { "name": "ci-win64", "inherits": ["flags-msvc", "ci-std"], - "generator": "Visual Studio 17 2022", + "generator": "Visual Studio 18 2026", "architecture": "x64", "hidden": true }, diff --git a/include/ifc/file.hxx b/include/ifc/file.hxx index 4425ebd..fe8d32a 100644 --- a/include/ifc/file.hxx +++ b/include/ifc/file.hxx @@ -205,6 +205,17 @@ namespace ifc { } }; + // -- ToC entry for a member of an archive IFC. + // -- When header.unit.sort() == UnitSort::Archive, header.toc addresses header.partition_count + // -- of these, sorted by canonical name with sort() being tie-breaker. + struct ArchiveMember { + UnitIndex name; // canonical name; with `sort` -- member's identity. + TextOffset path; // path to the member's IFC container when it was embedded. + ByteOffset offset; // location of the member within the archive + EntitySize size; // size of the member in bytes count. + }; + static_assert(sizeof(ArchiveMember) == 16); + // Exception tag used to signal target architecture mismatch. struct IfcArchMismatch { Pathname name; diff --git a/test/basic.cxx b/test/basic.cxx index 6058eba..fb484de 100644 --- a/test/basic.cxx +++ b/test/basic.cxx @@ -308,8 +308,8 @@ TEST_CASE("IFC spec - Test header") InputIfc ifc; Reader reader = create_ifc_reader(IFC_FILE, &buf, &ifc); - // The currently documented version of the IFC that the MSVC compiler will emit is 0.43. - constexpr auto expected_version = FormatVersion{ Version{ 0 }, Version{ 43 } }; + // The currently documented version of the IFC that the MSVC compiler will emit is 0.44. + constexpr auto expected_version = FormatVersion{ Version{ 0 }, Version{ 44 } }; CHECK_MESSAGE(reader.ifc.header()->version == expected_version, "minor/major"); CHECK_MESSAGE(reader.ifc.header()->abi == Abi{}, "abi - not currently set in MSVC"); // arch - since we compile this file in multiple modes, let's just ensure that 'arch' matches one of the known types.