Begin Error in Function: '$s5repro1fySsSgSsz_SbtF'
Found over consume?!
Value: %89 = apply %22(%88, %21) : $@convention(method) (@owned String, @thin Substring.Type) -> @owned Substring // users: %130, %92, %119, %113, %129
User: %113 = destructure_struct %89 : $Substring // user: %114
Block: bb14
Consuming Users:
store %89 to [init] %0 : $*Substring // id: %130
store %89 to [init] %0 : $*Substring // id: %92
%119 = destructure_struct %89 : $Substring // user: %120
%113 = destructure_struct %89 : $Substring // user: %114
br bb3(%89 : $Substring) // id: %129
End Error in Function: '$s5repro1fySsSgSsz_SbtF'
// f(_:_:)
// Isolation: unspecified
sil [ossa] @$s5repro1fySsSgSsz_SbtF : $@convention(thin) (@inout Substring, Bool) -> @owned Optional<Substring> {
[%0: read v**, write v**, copy v**, destroy v**]
[global: read,write,copy,destroy,allocate,deinit_barrier]
// %0 "s" // users: %130, %92, %18, %4, %2
// %1 "b" // users: %50, %3
bb0(%0 : $*Substring, %1 : $Bool):
debug_value %0, var, name "s", argno 1, expr op_deref // id: %2
debug_value %1, let, name "b", argno 2 // id: %3
%4 = struct_element_addr %0, #Substring._slice // users: %8, %5
%5 = struct_element_addr %4, #Slice._startIndex // user: %6
%6 = struct_element_addr %5, #String.Index._rawBits // user: %7
%7 = struct_element_addr %6, #UInt64._value // user: %12
%8 = struct_element_addr %4, #Slice._endIndex // user: %9
%9 = struct_element_addr %8, #String.Index._rawBits // user: %10
%10 = struct_element_addr %9, #UInt64._value // user: %13
%11 = integer_literal $Builtin.Int64, 14 // users: %15, %14, %46, %43, %102, %96, %71, %57, %126, %125
%12 = load [trivial] %7 // user: %14
%13 = load [trivial] %10 // user: %15
%14 = builtin "lshr_Int64"(%12, %11) : $Builtin.Int64 // user: %16
%15 = builtin "lshr_Int64"(%13, %11) : $Builtin.Int64 // user: %16
%16 = builtin "cmp_eq_Int64"(%14, %15) : $Builtin.Int1 // user: %17
cond_br %16, bb2, bb1 // id: %17
bb1: // Preds: bb0
%18 = load [take] %0 // user: %28
%19 = enum $Optional<String.Index>, #Optional.none!enumelt // users: %49, %58, %20
debug_value %19, var, name "x" // id: %20
%21 = metatype $@thin Substring.Type // user: %89
// function_ref Substring.init(_:)
%22 = function_ref @$sSsySsSScfC : $@convention(method) (@owned String, @thin Substring.Type) -> @owned Substring // user: %89
%23 = integer_literal $Builtin.Int64, 0 // users: %27, %24
%24 = struct $UInt64 (%23) // user: %86
%25 = integer_literal $Builtin.Int64, -2305843009213693952 // user: %26
%26 = value_to_bridge_object %25 // user: %78
%27 = value_to_bridge_object %23 // user: %81
br bb3(%18) // id: %28
bb2: // Preds: bb0
br bb17 // id: %29
// %30 // users: %112, %109, %31, %52, %32, %97, %67, %37
// Loop header
bb3(%30 : @owned $Substring): // Preds: bb1 bb15
debug_value %30, let, name "c" // id: %31
%32 = begin_borrow %30 // users: %33, %35
%33 = struct_extract %32, #Substring._slice // user: %34
%34 = struct_extract %33, #Slice._startIndex // users: %58, %41, %36
end_borrow %32 // id: %35
debug_value %34, var, name "i" // id: %36
%37 = begin_borrow %30 // users: %40, %38
%38 = struct_extract %37, #Substring._slice // user: %39
%39 = struct_extract %38, #Slice._endIndex // user: %44
end_borrow %37 // id: %40
%41 = struct_extract %34, #String.Index._rawBits // user: %42
%42 = struct_extract %41, #UInt64._value // user: %43
%43 = builtin "lshr_Int64"(%42, %11) : $Builtin.Int64 // user: %47
%44 = struct_extract %39, #String.Index._rawBits // user: %45
%45 = struct_extract %44, #UInt64._value // user: %46
%46 = builtin "lshr_Int64"(%45, %11) : $Builtin.Int64 // user: %47
%47 = builtin "cmp_ult_Int64"(%43, %46) : $Builtin.Int1 // user: %48
cond_br %47, bb5, bb4 // id: %48
bb4: // Preds: bb3
br bb12(%19) // id: %49
bb5: // Preds: bb3
%50 = struct_extract %1, #Bool._value // user: %61
// function_ref Substring.index(after:)
%51 = function_ref @$sSs5index5afterSS5IndexVAD_tF : $@convention(method) (String.Index, @guaranteed Substring) -> String.Index // user: %67
%52 = begin_borrow %30 // users: %53, %74
%53 = struct_extract %52, #Substring._slice // user: %54
%54 = struct_extract %53, #Slice._endIndex // user: %55
%55 = struct_extract %54, #String.Index._rawBits // user: %56
%56 = struct_extract %55, #UInt64._value // user: %57
%57 = builtin "lshr_Int64"(%56, %11) : $Builtin.Int64 // user: %72
br bb6(%19, %34) // id: %58
// %59 // user: %65
// %60 // users: %67, %62
// Loop header
bb6(%59 : $Optional<String.Index>, %60 : $String.Index): // Preds: bb11 bb5
cond_br %50, bb7, bb8 // id: %61
bb7: // Preds: bb6
%62 = enum $Optional<String.Index>, #Optional.some!enumelt, %60 // users: %64, %63
debug_value %62, var, name "x" // id: %63
br bb9(%62) // id: %64
bb8: // Preds: bb6
br bb9(%59) // id: %65
// %66 // users: %75, %76
bb9(%66 : $Optional<String.Index>): // Preds: bb8 bb7
%67 = apply %51(%60, %30) : $@convention(method) (String.Index, @guaranteed Substring) -> String.Index // users: %76, %69, %68
debug_value %67, var, name "i" // id: %68
%69 = struct_extract %67, #String.Index._rawBits // user: %70
%70 = struct_extract %69, #UInt64._value // user: %71
%71 = builtin "lshr_Int64"(%70, %11) : $Builtin.Int64 // user: %72
%72 = builtin "cmp_ult_Int64"(%71, %57) : $Builtin.Int1 // user: %73
cond_br %72, bb11, bb10 // id: %73
bb10: // Preds: bb9
end_borrow %52 // id: %74
br bb12(%66) // id: %75
bb11: // Preds: bb9
br bb6(%66, %67) // id: %76
// %77 // user: %90
bb12(%77 : $Optional<String.Index>): // Preds: bb10 bb4
%78 = copy_value %26 // users: %80, %79
%79 = unchecked_trivial_bit_cast %78 to $UInt64 // user: %83
destroy_value %78 // id: %80
%81 = copy_value %27 // user: %82
destroy_value %81 // id: %82
%83 = struct_extract %79, #UInt64._value // user: %84
%84 = value_to_bridge_object %83 // user: %85
%85 = copy_value %84 // user: %86
%86 = struct $_StringObject (%24, %85) // user: %87
%87 = struct $_StringGuts (%86) // user: %88
%88 = struct $String (%87) // user: %89
%89 = apply %22(%88, %21) : $@convention(method) (@owned String, @thin Substring.Type) -> @owned Substring // users: %130, %92, %119, %113, %129
switch_enum %77, case #Optional.some!enumelt: bb13, case #Optional.none!enumelt: bb14 // id: %90
// %91 // users: %105, %94, %93
bb13(%91 : $String.Index): // Preds: bb12
store %89 to [init] %0 // id: %92
debug_value %91, let, name "x" // id: %93
%94 = struct_extract %91, #String.Index._rawBits // user: %95
%95 = struct_extract %94, #UInt64._value // user: %96
%96 = builtin "lshr_Int64"(%95, %11) : $Builtin.Int64 // user: %103
%97 = begin_borrow %30 // users: %108, %98, %107
%98 = struct_extract %97, #Substring._slice // user: %99
%99 = struct_extract %98, #Slice._startIndex // users: %105, %100
%100 = struct_extract %99, #String.Index._rawBits // user: %101
%101 = struct_extract %100, #UInt64._value // user: %102
%102 = builtin "lshr_Int64"(%101, %11) : $Builtin.Int64 // user: %103
%103 = builtin "cmp_ult_Int64"(%96, %102) : $Builtin.Int1 // user: %104
cond_fail %103, "Range requires lowerBound <= upperBound" // id: %104
%105 = struct $Range<String.Index> (%99, %91) // user: %107
// function_ref Substring.subscript.getter
%106 = function_ref @$sSsySsSnySS5IndexVGcig : $@convention(method) (Range<String.Index>, @guaranteed Substring) -> @owned Substring // user: %107
%107 = apply %106(%105, %97) : $@convention(method) (Range<String.Index>, @guaranteed Substring) -> @owned Substring // user: %110
end_borrow %97 // id: %108
destroy_value %30 // id: %109
%110 = enum $Optional<Substring>, #Optional.some!enumelt, %107 // user: %111
br bb18(%110) // id: %111
bb14: // Preds: bb12
destroy_value %30 // id: %112
%113 = destructure_struct %89 // user: %114
(%114, %115, %116) = destructure_struct %113 // user: %117
%117 = struct_extract %114, #String.Index._rawBits // user: %118
%118 = struct_extract %117, #UInt64._value // user: %125
%119 = destructure_struct %89 // user: %120
(%120, %121, %122) = destructure_struct %119 // user: %123
%123 = struct_extract %121, #String.Index._rawBits // user: %124
%124 = struct_extract %123, #UInt64._value // user: %126
%125 = builtin "lshr_Int64"(%118, %11) : $Builtin.Int64 // user: %127
%126 = builtin "lshr_Int64"(%124, %11) : $Builtin.Int64 // user: %127
%127 = builtin "cmp_eq_Int64"(%125, %126) : $Builtin.Int1 // user: %128
cond_br %127, bb16, bb15 // id: %128
bb15: // Preds: bb14
br bb3(%89) // id: %129
bb16: // Preds: bb14
store %89 to [init] %0 // id: %130
br bb17 // id: %131
bb17: // Preds: bb16 bb2
%132 = enum $Optional<Substring>, #Optional.none!enumelt // user: %133; ownership: none
br bb18(%132) // id: %133
// %134 // user: %135
bb18(%134 : @owned $Optional<Substring>): // Preds: bb17 bb13
return %134 // id: %135
} // end sil function '$s5repro1fySsSgSsz_SbtF'
Found ownership error?!
<unknown>:0: error: fatal error encountered during compilation; please submit a bug report (https://swift.org/contributing/#reporting-bugs)
<unknown>:0: note: triggering standard assertion failure routine
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0. Program arguments: /Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend -frontend -c -primary-file /tmp/style-repro/repro.swift -target arm64-apple-macosx26.0 -Xllvm -aarch64-use-tbi -enable-objc-interop -sdk /Applications/Xcode-26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.5.sdk -no-color-diagnostics -Xcc -fno-color-diagnostics -O -empty-abi-descriptor -no-auto-bridging-header-chaining -module-name repro -in-process-plugin-server-path /Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -plugin-path /Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/lib/swift/host/plugins -plugin-path /Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/local/lib/swift/host/plugins -target-sdk-version 26.5 -target-sdk-name macosx26.5 -external-plugin-path /Applications/Xcode-26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins#/Applications/Xcode-26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server -external-plugin-path /Applications/Xcode-26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/local/lib/swift/host/plugins#/Applications/Xcode-26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server -enable-default-cmo -parse-as-library -o /tmp/style-repro/repro.o
1. Apple Swift version 6.5-dev (LLVM d61b42392ef8b48, Swift 233c2bc947487c0)
2. Compiling with effective version 5.10
3. While evaluating request ExecuteSILPipelineRequest(Run pipelines { PrepareOptimizationPasses, EarlyModulePasses, HighLevel,Function+EarlyLoopOpt, HighLevel,Module+StackPromote, MidLevel,Function, ClosureSpecialize, LowLevel,Function, LateLoopOpt, SIL Debug Info Generator } on SIL for repro)
4. While running pass #3088 SILModuleTransform "OwnershipModelEliminator".
5. Found verification error when verifying before lowering ownership. Please re-run with -sil-verify-all to identify the actual pass that introduced the verification error.
6. While verifying SIL function "@$s5repro1fySsSgSsz_SbtF".
for 'f(_:_:)' (at /tmp/style-repro/repro.swift:1:8)
#0 0x0000000105f47734 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x105e2f734)
#1 0x0000000105f45a50 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x105e2da50)
#2 0x0000000105f481c4 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x105e301c4)
#3 0x00000001821cf744 (/usr/lib/system/libsystem_platform.dylib+0x1804fb744)
#4 0x00000001821c58d8 (/usr/lib/system/libsystem_pthread.dylib+0x1804f18d8)
#5 0x00000001820cc644 (/usr/lib/system/libsystem_c.dylib+0x1803f8644)
#6 0x0000000100682058 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x10056a058)
#7 0x0000000105ec140c (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x105da940c)
#8 0x0000000105ec130c (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x105da930c)
#9 0x0000000100ecbf8c (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x100db3f8c)
#10 0x0000000100ec98d8 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x100db18d8)
#11 0x0000000100ecac64 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x100db2c64)
#12 0x0000000100ed35b8 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x100dbb5b8)
#13 0x0000000100ed58f0 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x100dbd8f0)
#14 0x0000000100ed57c0 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x100dbd7c0)
#15 0x0000000100ef5000 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x100ddd000)
#16 0x0000000100ef75a8 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x100ddf5a8)
#17 0x0000000100eea2ac (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x100dd22ac)
#18 0x0000000100ede570 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x100dc6570)
#19 0x0000000100eda230 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x100dc2230)
#20 0x00000001011b5744 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x10109d744)
#21 0x00000001011bddac (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x1010a5dac)
#22 0x00000001011c07dc (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x1010a87dc)
#23 0x00000001011ba658 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x1010a2658)
#24 0x00000001011ba5d8 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x1010a25d8)
#25 0x00000001011e0e54 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x1010c8e54)
#26 0x00000001011c2664 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x1010aa664)
#27 0x00000001011ba850 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x1010a2850)
#28 0x00000001011c3e0c (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x1010abe0c)
#29 0x0000000100699abc (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x100581abc)
#30 0x0000000100427078 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x10030f078)
#31 0x000000010042668c (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x10030e68c)
#32 0x00000001004380a4 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x1003200a4)
#33 0x000000010042a750 (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x100312750)
#34 0x0000000100427fac (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x10030ffac)
#35 0x000000010015117c (/Users/mdesiatov/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a.xctoolchain/usr/bin/swift-frontend+0x10003917c)
#36 0x0000000181e07e00
This code compiles fine as before.
Description
No response
Reproduction
Save this file to
repro.swiftTry to build with this command:
Stack dump
Expected behavior
This code compiles fine as before.
Environment
macOS 26, swift-DEVELOPMENT-SNAPSHOT-2026-05-17-a
Additional information
This code built fine with
swift-6.3-RELEASEandswift-6.3.1-RELEASE