summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenObjC/NSFastEnumeration.m
Commit message (Collapse)AuthorAgeFilesLines
* CodeGen: correct arguments for NSFastEnumerationSaleem Abdulrasool2017-09-081-0/+16
When performing a NSFastEnumeration, the compiler synthesizes a call to `countByEnumeratingWithState:objects:count:` where the `count` parameter is of type `NSUInteger` and the return type is a `NSUInteger`. We would previously always use a `UnsignedLongTy` for the `NSUInteger` type. On 32-bit targets, `long` is 32-bits which is the same as `unsigned int`. Most 64-bit targets are LP64, where `long` is 64-bits. However, on LLP64 targets, such as Windows, `long` is 32-bits. Introduce new `getNSUIntegerType` and `getNSIntegerType` helpers to allow us to determine the correct type for the `NSUInteger` type. Wire those through into the generation of the message dispatch to the selector. llvm-svn: 312835
OpenPOWER on IntegriCloud