v1.11.1
Bug fixes
-
GH-1831: Fix optimizer regression.
We were no longer marking types as used that are referenced through a type name.
-
GH-1823: Don't qualify magic linker symbols with C++ namespace.
We need them at their original values because that's what the runtime lbirary is hard-coded to expect.
-
Fix use of move'd from variable.
Function parameters still shadown members in C++. This is a fixup of c3abbbe.
-
Fix undefined shifts of 32bit integer in
toInt()
.1U
is 32bit on a 64bit system and shifting it by more than 31 bits is undefined. The following does currently produce-4294967296
instead of-1
:b"\xff\xff\xff\xff".to_int(spicy::ByteOrder::Big)
-
Fix
to_uint(ByteOrder)
for empty byte ranges.to_uint()
andto_int()
for empty byte ranges throw when attempting to convert printable decimals to integers. Do the same for the byte order versions. The assumption is that it is really an error when the user callsto_int()
orto_uint()
on an empty byte range. -
GH-1817: Prevent null ptr dereference when looking on nodes without
Scope
. -
GH-1815: Disallow expanding limited
View
s again withlimit
.The documented semantics of
View::limit
are that it creates a new view with equal or smaller size. In contrast to that we would still have allowed to expand views with more callslimit
again as well.This patch changes the implementation of
View::limit
so it can only ever make aView
smaller.We also tweak the implementation of the check for consumed
&size
when used together with&eod
: if the&size
was already nested in a limited view a larger&size
value could previously extend the view so the&eod
effectively was ignored. Since we now do not extend theView
anymore we need to only activate the check for consumed&size
if&eod
was not specified since in this case the user communicated that they are fine with consuming less data. -
GH-1810: Fix nested look-ahead switches.
-
Remember normalized paths when checking for duplicate files in driver.
While we ignore duplicate files it was still possible to erroneously add the same file multiple times to a compilation. Catch this trivial case.
-
GH-1462: Remember files processed by the driver.
We did this previously but stopped doing it with #1462.
-
Remove a few value copies.
-
GH-1813: Fix equality implementation of module
UID
.We already computed a
unique
ID
value for each module to allow declaring the sameID
name multiple times; we however did not consistently use that value in the implementation ofmodule::UID
equality and hash operators which is addressed by this patch.