From c94e8767d86731238b77e10be2d8ac48fc13faeb Mon Sep 17 00:00:00 2001 From: Zhuowei Zhang Date: Sat, 20 Apr 2019 00:52:52 -0700 Subject: [PATCH] [stdlib] fix return type of getNumRuntimeFunctionCounters The return type of getNumRuntimeFunctionCounters is defined as uint64_t in RuntimeInvocationsTracking.cpp, but it has return type Int in RuntimeFunctionCounters.swift. Found when compiling the stdlib for WebAssembly, as WebAssembly validates return types. uint64_t corresponds to i64, but Int is i32, so the program fails validation. --- stdlib/public/core/RuntimeFunctionCounters.swift | 8 ++++---- test/stdlib/test_runtime_function_counters.swift | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/stdlib/public/core/RuntimeFunctionCounters.swift b/stdlib/public/core/RuntimeFunctionCounters.swift index 8e361c8643561..89cceeb2b2850 100644 --- a/stdlib/public/core/RuntimeFunctionCounters.swift +++ b/stdlib/public/core/RuntimeFunctionCounters.swift @@ -108,7 +108,7 @@ struct _RuntimeFunctionCounters { public static let runtimeFunctionCountersOffsets = _RuntimeFunctionCounters.getRuntimeFunctionCountersOffsets() public static let numRuntimeFunctionCounters = - _RuntimeFunctionCounters.getNumRuntimeFunctionCounters() + Int(_RuntimeFunctionCounters.getNumRuntimeFunctionCounters()) public static let runtimeFunctionNameToIndex: [String: Int] = getRuntimeFunctionNameToIndex() @@ -121,7 +121,7 @@ struct _RuntimeFunctionCounters { public static func getRuntimeFunctionNames() -> [String] { let names = _RuntimeFunctionCounters._getRuntimeFunctionNames() let numRuntimeFunctionCounters = - _RuntimeFunctionCounters.getNumRuntimeFunctionCounters() + Int(_RuntimeFunctionCounters.getNumRuntimeFunctionCounters()) var functionNames: [String] = [] functionNames.reserveCapacity(numRuntimeFunctionCounters) for index in 0.. Int + public static func getNumRuntimeFunctionCounters() -> UInt64 /// Dump all per-object runtime function counters. @_silgen_name("_swift_dumpObjectsRuntimeFunctionPointers") @@ -166,7 +166,7 @@ struct _RuntimeFunctionCounters { internal static func getRuntimeFunctionNameToIndex() -> [String: Int] { let runtimeFunctionNames = _RuntimeFunctionCounters.getRuntimeFunctionNames() let numRuntimeFunctionCounters = - _RuntimeFunctionCounters.getNumRuntimeFunctionCounters() + Int(_RuntimeFunctionCounters.getNumRuntimeFunctionCounters()) var runtimeFunctionNameToIndex: [String: Int] = [:] runtimeFunctionNameToIndex.reserveCapacity(numRuntimeFunctionCounters) diff --git a/test/stdlib/test_runtime_function_counters.swift b/test/stdlib/test_runtime_function_counters.swift index 547436743d7fd..882d9d7cd3200 100644 --- a/test/stdlib/test_runtime_function_counters.swift +++ b/test/stdlib/test_runtime_function_counters.swift @@ -100,7 +100,7 @@ func testCollectReferencesInsideObject() { func testRuntimeCounters() { print("TEST: APIs from _RuntimeFunctionCounters") let numRuntimeFunctionPointer = - _RuntimeFunctionCounters.getNumRuntimeFunctionCounters() + Int(_RuntimeFunctionCounters.getNumRuntimeFunctionCounters()) print("Number of runtime function pointers: \(numRuntimeFunctionPointer)")