Skip to content

Commit c7bd259

Browse files
authored
Fix iossimulator build with XCode 26.4 (#128893)
It seems that our CI jobs are using XCode 16.4 and the latest version of XCode, 26.4, bumped clang to version 21 which adds some new warnings (`-Wimplicit-int-enum-cast` and `-Wimplicit-void-ptr-cast`). These warnings are picked locally as build errors. This fixes the local build by adding some explicit casting. Build command used locally: ``` ./build.sh -arch arm64 -os iossimulator -s clr+clr.runtime+libs+packs+libs.tests -c Release /p:UseMonoRuntime=false /p:UseNativeAOTRuntime=false /p:EnableAdditionalTimezoneChecks=true /p:EnableAggressiveTrimming=true ```
1 parent 432c2e4 commit c7bd259

3 files changed

Lines changed: 17 additions & 17 deletions

File tree

src/native/libs/System.Globalization.Native/pal_calendarData.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ int32_t GlobalizationNative_GetJapaneseEraStartDateNative(int32_t era, int32_t*
227227
startDateComponents.day = startDateComponents.day + 1;
228228
date = [japaneseCalendar dateFromComponents:startDateComponents];
229229
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
230-
NSDateComponents *components = [gregorianCalendar components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear fromDate:date];
230+
NSDateComponents *components = [gregorianCalendar components:(NSCalendarUnit)(NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear) fromDate:date];
231231
*startYear = (int32_t)[components year];
232232
*startMonth = (int32_t)[components month];
233233
*startDay = (int32_t)[components day];

src/native/libs/System.Globalization.Native/pal_collation.m

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ static NSStringCompareOptions ConvertFromCompareOptionsToNSStringCompareOptions(
5757
{
5858
// To achieve an equivalent search behavior to the default in ICU,
5959
// NSLiteralSearch is employed as the default search option.
60-
NSStringCompareOptions options = isLiteralSearchSupported ? NSLiteralSearch : 0;
60+
NSStringCompareOptions options = isLiteralSearchSupported ? NSLiteralSearch : (NSStringCompareOptions)0;
6161

6262
if (comparisonOptions & IgnoreCase)
6363
options |= NSCaseInsensitiveSearch;
@@ -87,7 +87,7 @@ int32_t GlobalizationNative_CompareStringNative(const uint16_t* localeName, int3
8787
{
8888
@autoreleasepool
8989
{
90-
if (!IsComparisonOptionSupported(comparisonOptions))
90+
if (!IsComparisonOptionSupported((CompareOptions)comparisonOptions))
9191
return ERROR_COMPARISON_OPTIONS_NOT_FOUND;
9292
NSLocale *currentLocale = GetCurrentLocale(localeName, lNameLength);
9393
NSString *sourceString = [NSString stringWithCharacters: lpSource length: (NSUInteger)cwSourceLength];
@@ -103,12 +103,12 @@ int32_t GlobalizationNative_CompareStringNative(const uint16_t* localeName, int3
103103

104104
if (comparisonOptions != 0 && comparisonOptions != StringSort)
105105
{
106-
NSStringCompareOptions options = ConvertFromCompareOptionsToNSStringCompareOptions(comparisonOptions, false);
106+
NSStringCompareOptions options = ConvertFromCompareOptionsToNSStringCompareOptions((CompareOptions)comparisonOptions, false);
107107
sourceStrPrecomposed = [sourceStrPrecomposed stringByFoldingWithOptions:options locale:currentLocale];
108108
targetStrPrecomposed = [targetStrPrecomposed stringByFoldingWithOptions:options locale:currentLocale];
109109
}
110110

111-
NSStringCompareOptions options = ConvertFromCompareOptionsToNSStringCompareOptions(comparisonOptions, true);
111+
NSStringCompareOptions options = ConvertFromCompareOptionsToNSStringCompareOptions((CompareOptions)comparisonOptions, true);
112112
NSRange comparisonRange = NSMakeRange(0, sourceStrPrecomposed.length);
113113
return (int32_t)[sourceStrPrecomposed compare:targetStrPrecomposed
114114
options:options
@@ -130,7 +130,7 @@ int32_t GlobalizationNative_CompareStringNative(const uint16_t* localeName, int3
130130
if (error != nil)
131131
return source;
132132

133-
NSString *modifiedString = [regex stringByReplacingMatchesInString:source options:0 range:NSMakeRange(0, [source length]) withTemplate:@""];
133+
NSString *modifiedString = [regex stringByReplacingMatchesInString:source options:(NSMatchingOptions)0 range:NSMakeRange(0, [source length]) withTemplate:@""];
134134

135135
return modifiedString;
136136
}
@@ -156,12 +156,12 @@ Range GlobalizationNative_IndexOfNative(const uint16_t* localeName, int32_t lNam
156156
{
157157
assert(cwTargetLength >= 0);
158158
Range result = {ERROR_INDEX_NOT_FOUND, 0};
159-
if (!IsComparisonOptionSupported(comparisonOptions))
159+
if (!IsComparisonOptionSupported((CompareOptions)comparisonOptions))
160160
{
161161
result.location = ERROR_COMPARISON_OPTIONS_NOT_FOUND;
162162
return result;
163163
}
164-
NSStringCompareOptions options = ConvertFromCompareOptionsToNSStringCompareOptions(comparisonOptions, true);
164+
NSStringCompareOptions options = ConvertFromCompareOptionsToNSStringCompareOptions((CompareOptions)comparisonOptions, true);
165165
if (!fromBeginning) // LastIndexOf
166166
options |= NSBackwardsSearch;
167167

@@ -270,9 +270,9 @@ int32_t GlobalizationNative_StartsWithNative(const uint16_t* localeName, int32_t
270270
{
271271
@autoreleasepool
272272
{
273-
if (!IsComparisonOptionSupported(comparisonOptions))
273+
if (!IsComparisonOptionSupported((CompareOptions)comparisonOptions))
274274
return ERROR_COMPARISON_OPTIONS_NOT_FOUND;
275-
NSStringCompareOptions options = ConvertFromCompareOptionsToNSStringCompareOptions(comparisonOptions, true);
275+
NSStringCompareOptions options = ConvertFromCompareOptionsToNSStringCompareOptions((CompareOptions)comparisonOptions, true);
276276
NSLocale *currentLocale = GetCurrentLocale(localeName, lNameLength);
277277
NSString *prefixString = [NSString stringWithCharacters: lpPrefix length: (NSUInteger)cwPrefixLength];
278278
NSString *prefixStrComposed = RemoveWeightlessCharacters(prefixString.precomposedStringWithCanonicalMapping);
@@ -302,9 +302,9 @@ int32_t GlobalizationNative_EndsWithNative(const uint16_t* localeName, int32_t l
302302
{
303303
@autoreleasepool
304304
{
305-
if (!IsComparisonOptionSupported(comparisonOptions))
305+
if (!IsComparisonOptionSupported((CompareOptions)comparisonOptions))
306306
return ERROR_COMPARISON_OPTIONS_NOT_FOUND;
307-
NSStringCompareOptions options = ConvertFromCompareOptionsToNSStringCompareOptions(comparisonOptions, true);
307+
NSStringCompareOptions options = ConvertFromCompareOptionsToNSStringCompareOptions((CompareOptions)comparisonOptions, true);
308308
NSLocale *currentLocale = GetCurrentLocale(localeName, lNameLength);
309309
NSString *suffixString = [NSString stringWithCharacters: lpSuffix length: (NSUInteger)cwSuffixLength];
310310
NSString *suffixStrComposed = RemoveWeightlessCharacters(suffixString.precomposedStringWithCanonicalMapping);
@@ -336,7 +336,7 @@ int32_t GlobalizationNative_GetSortKeyNative(const uint16_t* localeName, int32_t
336336
sortKey[0] = '\0';
337337
return 1;
338338
}
339-
if (!IsComparisonOptionSupported(options))
339+
if (!IsComparisonOptionSupported((CompareOptions)options))
340340
return 0;
341341
NSString *sourceString = [NSString stringWithCharacters: lpStr length: (NSUInteger)cwStrLength];
342342
if (options & IgnoreKanaType)
@@ -353,7 +353,7 @@ int32_t GlobalizationNative_GetSortKeyNative(const uint16_t* localeName, int32_t
353353
}
354354

355355
NSLocale *locale = GetCurrentLocale(localeName, lNameLength);
356-
NSStringCompareOptions comparisonOptions = options == 0 ? 0 : ConvertFromCompareOptionsToNSStringCompareOptions(options, false);
356+
NSStringCompareOptions comparisonOptions = options == 0 ? (NSStringCompareOptions)0 : ConvertFromCompareOptionsToNSStringCompareOptions((CompareOptions)options, false);
357357

358358
// Generate a sort key for the original string based on the locale
359359
NSString *transformedString = [sourceStringCleaned stringByFoldingWithOptions:comparisonOptions locale:locale];
@@ -368,7 +368,7 @@ int32_t GlobalizationNative_GetSortKeyNative(const uint16_t* localeName, int32_t
368368
return (int32_t)transformedStringBytes;
369369
NSRange range = NSMakeRange(0, [transformedString length]);
370370
NSUInteger usedLength = 0;
371-
BOOL result = [transformedString getBytes:sortKey maxLength:transformedStringBytes usedLength:&usedLength encoding:NSUTF16StringEncoding options:0 range:range remainingRange:NULL];
371+
BOOL result = [transformedString getBytes:sortKey maxLength:transformedStringBytes usedLength:&usedLength encoding:NSUTF16StringEncoding options:(NSStringEncodingConversionOptions)0 range:range remainingRange:NULL];
372372
if (result)
373373
return (int32_t)usedLength;
374374
return 0;

src/native/libs/System.Security.Cryptography.Native.Apple/pal_x509_ios.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ int32_t AppleCryptoNative_X509ImportCertificate(uint8_t* pbData,
6969
{
7070
if (CFArrayGetCount(p12Items) > 0)
7171
{
72-
CFDictionaryRef item_dict = CFArrayGetValueAtIndex(p12Items, 0);
72+
CFDictionaryRef item_dict = (CFDictionaryRef)CFArrayGetValueAtIndex(p12Items, 0);
7373
#pragma clang diagnostic push
7474
#pragma clang diagnostic ignored "-Wcast-qual"
7575
*pIdentityOut = (SecIdentityRef)CFRetain(CFDictionaryGetValue(item_dict, kSecImportItemIdentity));
@@ -169,7 +169,7 @@ int32_t AppleCryptoNative_X509ImportCollection(uint8_t* pbData,
169169

170170
for (int i = 0; i < CFArrayGetCount(p12Items); i++)
171171
{
172-
CFDictionaryRef item_dict = CFArrayGetValueAtIndex(p12Items, i);
172+
CFDictionaryRef item_dict = (CFDictionaryRef)CFArrayGetValueAtIndex(p12Items, i);
173173
#pragma clang diagnostic push
174174
#pragma clang diagnostic ignored "-Wcast-qual"
175175
SecIdentityRef identity =

0 commit comments

Comments
 (0)