Skip to content

Commit 5a53aea

Browse files
committed
Use builtinTypeBacking instead of typeBacking to correctly handle typedefs and similar cases
1 parent e95c3b3 commit 5a53aea

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.VisitDecl.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2756,15 +2756,15 @@ void VisitBitfieldDecl(FieldDecl fieldDecl, BitfieldDesc[] bitfieldDescs, Record
27562756
var isSmallTypeBacking = currentSize < 4;
27572757

27582758
// Check if field/backing types match
2759-
var isTypeMismatch = type != typeBacking;
2759+
var isTypeMismatch = type != builtinTypeBacking;
27602760

27612761
// Signed types are sign extended when shifted
27622762
var isUnsignedToSigned = !isTypeBackingSigned && isTypeSigned;
27632763

27642764
// Check if type is directly shiftable/maskable
27652765
// Remapped types are not guaranteed to be shiftable or maskable
27662766
// Enums are maskable, but not shiftable
2767-
var isTypeLikelyRemapped = (type == typeBacking) && (typeName != typeNameBacking);
2767+
var isTypeLikelyRemapped = !isTypeMismatch && (typeName != typeNameBacking);
27682768
var isTypeAnEnum = IsType<EnumType>(fieldDecl);
27692769

27702770
// Main cases:

0 commit comments

Comments
 (0)