Integer type sizes incorrectly handled on Linux
BeanCheeseBurrito opened this issue · 0 comments
BeanCheeseBurrito commented
Some platforms define 8-byte types like uint64_t
as unsigned long int
and causes CppAst to return CppPrimitiveType
objects with the wrong byte size. A possible fix would be something like:
// Old
case CXTypeKind.CXType_ULong:
return CppPrimitiveType.UnsignedInt;
// New
case CXTypeKind.CXType_ULong:
return type.SizeOf == 8 ? CppPrimitiveType.UnsignedLongLong : CppPrimitiveType.UnsignedInt;
CppAst.NET/src/CppAst/CppModelBuilder.cs
Lines 1747 to 1770 in d0d3a1f