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?
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.
···
On Sep 16, 2016, at 4:37 PM, Eric Wing via swift-dev <swift-dev@swift.org> wrote:
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 <mgottesman@apple.com> wrote:
On Sep 16, 2016, at 4:37 PM, Eric Wing via swift-dev <swift-dev@swift.org> 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?
On Sep 18, 2016, at 3:46 PM, Philippe Hausler via swift-dev <swift-dev@swift.org> wrote:
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 <mgottesman@apple.com <mailto:mgottesman@apple.com>> wrote:
On Sep 16, 2016, at 4:37 PM, Eric Wing via swift-dev <swift-dev@swift.org <mailto:swift-dev@swift.org>> 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?