-
Notifications
You must be signed in to change notification settings - Fork 10.6k
Open
Labels
bugA deviation from expected or documented behavior. Also: expected but undesirable behavior.A deviation from expected or documented behavior. Also: expected but undesirable behavior.crashBug: A crash, i.e., an abnormal termination of softwareBug: A crash, i.e., an abnormal termination of softwaretriage neededThis issue needs more specific labelsThis issue needs more specific labels
Description
Description
The following function (which should fail to compile with an error message) crashes the compiler:
func variadicNonCopyingZip<A: ~Copyable, each R>( // escapes, serializes
_ fs: repeat @escaping (borrowing A, inout each R) -> Void
) -> (borrowing A, inout (repeat each R)) -> Void {
{ a, outputs in
let pairs = repeat (each fs, each outputs)
for var pair in repeat each pairs {
pair.0(a, &pair.1)
}
}
}
The crash is:
error: compile command failed due to signal 6 (use -v to see invocation)
Assertion failed: (init && init->canPerformPackExpansionInitialization() && "cannot emit a PackExpansionExpr without an appropriate context"), function visitPackExpansionExpr, file SILGenExpr.cpp, line 1655.
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Relevant stack dump:
1. Apple Swift version 6.2 (swift-6.2-RELEASE)
2. Compiling with the current language version
3. While evaluating request ASTLoweringRequest(Lowering AST to SIL for file "...")
4. While silgen emitFunction SIL function "@$s20Tests21variadicNonCopyingZipyyx_q_q_Qp_tztcyx_q_ztcq_QpRv_Ri_zr0_lF".
for 'variadicNonCopyingZip(_:)' (at ...:35:1)
5. While silgen closureexpr SIL function "@$s20Tests21variadicNonCopyingZipyyx_q_q_Qp_tztcyx_q_ztcq_QpRv_Ri_zr0_lFyx_q_q_Qp_tztcfU_".
for expression at [...:38:5 - line:43:5] RangeText="{ a, outputs in
let pairs = repeat (each fs, each outputs)
for var pair in repeat each pairs {
pair.0(a, &pair.1)
}
"
#0 0x0000000108628f18 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1059dcf18)
#1 0x0000000108627644 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1059db644)
#2 0x0000000108629560 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1059dd560)
#3 0x000000019f036744 (/usr/lib/system/libsystem_platform.dylib+0x1804d6744)
#4 0x000000019f02c888 (/usr/lib/system/libsystem_pthread.dylib+0x1804cc888)
#5 0x000000019ef32808 (/usr/lib/system/libsystem_c.dylib+0x1803d2808)
#6 0x000000019ef31a3c (/usr/lib/system/libsystem_c.dylib+0x1803d1a3c)
#7 0x0000000108655624 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x105a09624)
#8 0x000000010352cdb0 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008e0db0)
#9 0x0000000103519f34 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008cdf34)
#10 0x000000010350656c (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008ba56c)
#11 0x000000010350d4c0 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008c14c0)
#12 0x00000001035ae9d8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1009629d8)
#13 0x00000001035ad9b8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1009619b8)
#14 0x0000000103542924 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008f6924)
#15 0x00000001034a9410 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x10085d410)
#16 0x00000001034b17d8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008657d8)
#17 0x0000000103d0c870 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1010c0870)
#18 0x00000001034ac2c0 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008602c0)
#19 0x00000001035375e8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008eb5e8)
#20 0x0000000103537254 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008eb254)
#21 0x000000010351a080 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008ce080)
#22 0x00000001035b10b8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1009650b8)
#23 0x00000001035af32c (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x10096332c)
#24 0x00000001035aeaac (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x100962aac)
#25 0x00000001035ad9b8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1009619b8)
#26 0x00000001035426f0 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008f66f0)
#27 0x00000001034aa264 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x10085e264)
#28 0x00000001034ab304 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x10085f304)
#29 0x00000001034a8a8c (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x10085ca8c)
#30 0x00000001034adadc (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x100861adc)
#31 0x00000001034adff8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x100861ff8)
#32 0x00000001035ad394 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x100961394)
#33 0x00000001034b1fd8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x100865fd8)
#34 0x00000001034ae614 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x100862614)
#35 0x0000000102ee05d8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1002945d8)
#36 0x0000000102eecdc8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1002a0dc8)
#37 0x0000000102ee23fc (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1002963fc)
#38 0x0000000102ee1bb8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x100295bb8)
#39 0x0000000102c856b4 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1000396b4)
#40 0x000000019ec6dd54
Reproduction
func variadicNonCopyingZip<A: ~Copyable, each R>( // escapes, serializes
_ fs: repeat @escaping (borrowing A, inout each R) -> Void
) -> (borrowing A, inout (repeat each R)) -> Void {
{ a, outputs in
let pairs = repeat (each fs, each outputs)
for var pair in repeat each pairs {
pair.0(a, &pair.1)
}
}
}
Stack dump
#0 0x0000000108628f18 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1059dcf18)
#1 0x0000000108627644 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1059db644)
#2 0x0000000108629560 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1059dd560)
#3 0x000000019f036744 (/usr/lib/system/libsystem_platform.dylib+0x1804d6744)
#4 0x000000019f02c888 (/usr/lib/system/libsystem_pthread.dylib+0x1804cc888)
#5 0x000000019ef32808 (/usr/lib/system/libsystem_c.dylib+0x1803d2808)
#6 0x000000019ef31a3c (/usr/lib/system/libsystem_c.dylib+0x1803d1a3c)
#7 0x0000000108655624 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x105a09624)
#8 0x000000010352cdb0 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008e0db0)
#9 0x0000000103519f34 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008cdf34)
#10 0x000000010350656c (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008ba56c)
#11 0x000000010350d4c0 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008c14c0)
#12 0x00000001035ae9d8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1009629d8)
#13 0x00000001035ad9b8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1009619b8)
#14 0x0000000103542924 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008f6924)
#15 0x00000001034a9410 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x10085d410)
#16 0x00000001034b17d8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008657d8)
#17 0x0000000103d0c870 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1010c0870)
#18 0x00000001034ac2c0 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008602c0)
#19 0x00000001035375e8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008eb5e8)
#20 0x0000000103537254 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008eb254)
#21 0x000000010351a080 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008ce080)
#22 0x00000001035b10b8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1009650b8)
#23 0x00000001035af32c (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x10096332c)
#24 0x00000001035aeaac (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x100962aac)
#25 0x00000001035ad9b8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1009619b8)
#26 0x00000001035426f0 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1008f66f0)
#27 0x00000001034aa264 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x10085e264)
#28 0x00000001034ab304 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x10085f304)
#29 0x00000001034a8a8c (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x10085ca8c)
#30 0x00000001034adadc (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x100861adc)
#31 0x00000001034adff8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x100861ff8)
#32 0x00000001035ad394 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x100961394)
#33 0x00000001034b1fd8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x100865fd8)
#34 0x00000001034ae614 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x100862614)
#35 0x0000000102ee05d8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1002945d8)
#36 0x0000000102eecdc8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1002a0dc8)
#37 0x0000000102ee23fc (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1002963fc)
#38 0x0000000102ee1bb8 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x100295bb8)
#39 0x0000000102c856b4 (Library/Developer/Toolchains/swift-6.2-RELEASE.xctoolchain/usr/bin/swift-frontend+0x1000396b4)
#40 0x000000019ec6dd54
Expected behavior
should provide an error message and not crash
Environment
Apple Swift version 6.2 (swift-6.2-RELEASE)
Target: arm64-apple-macosx26.0
Build config: +assertions
Additional information
No response
Metadata
Metadata
Assignees
Labels
bugA deviation from expected or documented behavior. Also: expected but undesirable behavior.A deviation from expected or documented behavior. Also: expected but undesirable behavior.crashBug: A crash, i.e., an abnormal termination of softwareBug: A crash, i.e., an abnormal termination of softwaretriage neededThis issue needs more specific labelsThis issue needs more specific labels