The reason for no issue on iOS 32 bit or watchOS is because the value is calculated via NSUInteger which does not overflow at the sign bits like Int. TBH I think the right way to solve this constant is to just emit the raw value directly instead of attempting to emulate c with bitwise or.
Sent from my iPhone > On Sep 18, 2016, at 2:27 PM, Michael Gottesman <[email protected]> wrote: > > >> On Sep 16, 2016, at 4:37 PM, Eric Wing via swift-dev <[email protected]> >> wrote: >> >> I'm trying to build Swift 3 for Raspberry Pi 2/armv7. >> >> I'm currently hitting a compile error at: >> >> Foundation/NSXMLNode.swift:86:351: error: integer literal '4293918720' >> overflows when stored into 'Int'. >> >> public static let nodePreserveAll = Options(rawValue: >> Options([.nodePreserveNamespaceOrder, .nodePreserveAttributeOrder, >> .nodePreserveEntities, .nodePreservePrefixes, .nodePreserveCDATA, >> .nodePreserveEmptyElements, .nodePreserveQuotes, >> .nodePreserveWhitespace, .nodePreserveDTD, >> .nodePreserveCharacterReferences]).rawValue | UInt(bitPattern: >> 0xFFF00000)) >> >> >> I'm assuming this is probably related to the fact that the Pi2 (armv7) >> is 32-bit, though I'm surprised this isn't already seen on iOS 32-bit. >> What is the appropriate fix? > > +CC Tony/Phillipe. > >> >> Thanks, >> Eric >> _______________________________________________ >> swift-dev mailing list >> [email protected] >> https://lists.swift.org/mailman/listinfo/swift-dev >
_______________________________________________ swift-dev mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-dev
