-
-
Notifications
You must be signed in to change notification settings - Fork 75
Open
Labels
PR WelcomeExtra attention is neededExtra attention is neededbugSomething isn't workingSomething isn't working
Description
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
| private CppType GetCppTypeInternal(CXCursor cursor, CXType type, CXCursor parent, void* data) | |
| { | |
| switch (type.kind) | |
| { | |
| case CXTypeKind.CXType_Void: | |
| return CppPrimitiveType.Void; | |
| case CXTypeKind.CXType_Bool: | |
| return CppPrimitiveType.Bool; | |
| case CXTypeKind.CXType_UChar: | |
| return CppPrimitiveType.UnsignedChar; | |
| case CXTypeKind.CXType_UShort: | |
| return CppPrimitiveType.UnsignedShort; | |
| case CXTypeKind.CXType_UInt: | |
| return CppPrimitiveType.UnsignedInt; | |
| case CXTypeKind.CXType_ULong: | |
| return CppPrimitiveType.UnsignedInt; | |
| case CXTypeKind.CXType_ULongLong: | |
| return CppPrimitiveType.UnsignedLongLong; |
Metadata
Metadata
Assignees
Labels
PR WelcomeExtra attention is neededExtra attention is neededbugSomething isn't workingSomething isn't working