You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix presence of unsigned in a parameter signature resetting the type
name being constructed. In the common case of using an unsigned
parameter this was typically harmless.
When unsigned was used as part of a template type parameter this would
overwrite the type info already built up, so:
array<unsigned int>
would become:
unsigned int>
The parameter types were being used only to generate the hash to pair
with whatever clscan generates. The side effect of which being, any
function that suffered from this problem would not have its call address
patched up.
Fix the chicken-and-egg problem where you use type hashes generated from
types in the same library:
1) clscan parses your C++ file.
2) Your C++ file includes clcppcodegen.h.
3) OOPS! That file is generated by step 5 and doesn't exist yet.
4) clmerge parses the output from clscan.
5) clmerge generates clcppcodegen.h.
clcpp::GetTypeNameHash returns the hash as a constant rather than
looking it up in the table. Two benefits:
* Faster runtime.
* Can be used immediately at startup without calling clcppInitGetType.