On Mon May 13 09:36:37 2024 +0000, Aida Jonikienė wrote:
Why is that part of the various structs guarded behind an `#if 0` though (essentially removing it)?
my bad, I picked the wrong element to be fixed, we cannot use FAM.
the issue here is that there are two entries following each other, each one with variable length - so we can't really describe them in a structure (hence the #if 0 in the mscvpdb.h file) - note that your changes hide the problem instead of fully fixing it: gcc warns about reading past the end of a struct inside the union, but doesn't trigger a warning with your fix as there are larger structs in the union; this would fail is the string was at the end of one of the largest structures (the changes compute string offset wrt. the union whereas they were done wrt the relevant struct in the union) - this calls at the end for a proper layer for deserializing the content of each entry - but this is likely to be too big here
so I'd rather with something like the attached file. I find it clearer about the intent (with the same limitation as noted above) [winedump-msc-gcc14.patch](/uploads/897942ed52c543850d046d79df4d861c/winedump-msc-gcc14.patch)