Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -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
},
Expand Down
11 changes: 11 additions & 0 deletions include/ifc/file.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
4 changes: 2 additions & 2 deletions test/basic.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
Loading