Closed
Description
Description
See reproduction and stack dump.
Reproduction
docker run --rm -it swiftlang/swift:nightly-6.2-noble@sha256:67efd3f092b810d27ad21d90b9ab32fbbcead75df80dfcfa73bb773c80f104ca bash -c '
git clone https://github.com/MahdiBM/swift-dns
cd swift-dns
git checkout swift-bug-inline-array
swift build -c release
'
Stack dump
Building for production...
error: compile command failed due to signal 6 (use -v to see invocation)
SIL verification failed: Source value should be non-trivial: !I->getOperand()->getType().isTrivial(*I->getFunction())
Verifying instruction:
%14 = alloc_stack [moveable_value_debuginfo] $InlineArray<4, UInt8> // users: %29, %28, %23, %22, %16, %15
-> end_lifetime %14 : $*InlineArray<4, UInt8> // id: %28
In function:
// specialized closure #1 in DNSBuffer.readInlineArray<let A, B>(endianness:as:)
sil private [ossa] @$s9DNSModels9DNSBufferV15readInlineArray10endianness2ass0dE0Vyxq_GSg7NIOCore10EndiannessO_AImtSiRVzs17FixedWidthIntegerR_r0_lFSi_AItSWXEfU_$3__s5UInt8VTg5 : $@convention(thin) (UnsafeRawBufferPointer, Int, Endianness, Int) -> (Int, @out InlineArray<4, UInt8>, @error any Error) {
[%0: write v**]
[%1: read v**.c*.v**, write v**.c*.v**, copy v**.c*.v**, destroy v**.c*.v**]
[global: read,write,copy,destroy,allocate,deinit_barrier]
// %0 "$return_value" // users: %24, %25
// %1 "ptr" // users: %11, %5
// %2 "bytesRequired" // users: %26, %7
// %3 "endianness" // users: %11, %8
// %4 "length" // users: %11, %9
bb0(%0 : $*InlineArray<4, UInt8>, %1 : $UnsafeRawBufferPointer, %2 : @closureCapture $Int, %3 : @closureCapture $Endianness, %4 : @closureCapture $Int):
debug_value %1, let, name "ptr", argno 1 // id: %5
debug_value undef : $any Error, var, name "$error", argno 2 // id: %6
debug_value %2, let, name "bytesRequired", argno 3 // id: %7
debug_value %3, let, name "endianness", argno 4 // id: %8
debug_value %4, let, name "length", argno 5 // id: %9
// function_ref specialized closure #1 in closure #1 in DNSBuffer.readInlineArray<let A, B>(endianness:as:)
%10 = function_ref @$s9DNSModels9DNSBufferV15readInlineArray10endianness2ass0dE0Vyxq_GSg7NIOCore10EndiannessO_AImtSiRVzs17FixedWidthIntegerR_r0_lFSi_AItSWXEfU_q_SiXEfU_$3__s5UInt8VTG5 : $@convention(thin) (Int, Endianness, UnsafeRawBufferPointer, Int) -> (@out UInt8, @error_indirect Never) // user: %11
%11 = partial_apply [callee_guaranteed] [on_stack] %10(%3, %1, %4) : $@convention(thin) (Int, Endianness, UnsafeRawBufferPointer, Int) -> (@out UInt8, @error_indirect Never) // user: %12
%12 = convert_function %11 to $@noescape @callee_guaranteed @substituted <τ_0_0, τ_0_1> (Int) -> (@out τ_0_1, @error_indirect τ_0_0) for <Never, UInt8> // users: %21, %13
%13 = begin_borrow [lexical] %12 // users: %20, %18
%14 = alloc_stack [moveable_value_debuginfo] $InlineArray<4, UInt8> // users: %29, %28, %23, %22, %16, %15
%15 = builtin "zeroInitializer"(%14) : $()
%16 = address_to_pointer [stack_protection] %14 to $Builtin.RawPointer // user: %18
// function_ref specialized closure #1 in InlineArray<>.init<A>(_:)
%17 = function_ref @$ss11InlineArrayVsRi__rlEyAByxq_Gq_Siqd__YKXEqd__YKcs5ErrorRd__lufcyBpqd__YKXEfU_$3__s5UInt8Vs5NeverOTg5 : $@convention(thin) (Builtin.RawPointer, @guaranteed @noescape @callee_guaranteed @substituted <τ_0_0, τ_0_1> (Int) -> (@out τ_0_1, @error_indirect τ_0_0) for <Never, UInt8>) -> @error Never // user: %18
try_apply %17(%16, %13) : $@convention(thin) (Builtin.RawPointer, @guaranteed @noescape @callee_guaranteed @substituted <τ_0_0, τ_0_1> (Int) -> (@out τ_0_1, @error_indirect τ_0_0) for <Never, UInt8>) -> @error Never, normal bb1, error bb2 // id: %18
bb1(%19 : $()): // Preds: bb0
end_borrow %13 // id: %20
destroy_value %12 // id: %21
%22 = load [trivial] %14 // user: %24
dealloc_stack %14 // id: %23
store %22 to [trivial] %0 // id: %24
debug_value %0, let, name "values", expr op_deref // id: %25
return %2 // id: %26
bb2(%27 : $Never): // Preds: bb0
end_lifetime %14 // id: %28
dealloc_stack %14 // id: %29
unreachable // id: %30
} // end sil function '$s9DNSModels9DNSBufferV15readInlineArray10endianness2ass0dE0Vyxq_GSg7NIOCore10EndiannessO_AImtSiRVzs17FixedWidthIntegerR_r0_lFSi_AItSWXEfU_$3__s5UInt8VTg5'
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0. Program arguments: /usr/bin/swift-frontend -frontend -c /swift-dns/Sources/DNSModels/+Optional.swift /swift-dns/Sources/DNSModels/+String.swift /swift-dns/Sources/DNSModels/+UInt8.swift /swift-dns/Sources/DNSModels/+Unicode.swift /swift-dns/Sources/DNSModels/DNSBuffer.swift /swift-dns/Sources/DNSModels/Operations/EDNS.swift /swift-dns/Sources/DNSModels/Operations/Header.swift /swift-dns/Sources/DNSModels/Operations/Message.swift /swift-dns/Sources/DNSModels/Operations/OPCode.swift /swift-dns/Sources/DNSModels/Operations/Query.swift /swift-dns/Sources/DNSModels/Operations/ResponseCode.swift /swift-dns/Sources/DNSModels/ProtocolError.swift /swift-dns/Sources/DNSModels/ResourceRecords/DNSClass.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/A.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/AAAA.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/Algorithm.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/CAA.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/CERT.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/CNAME.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/CSYNC.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/DNSSec/CDNSKEY.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/DNSSec/CDS.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/DNSSec/DNSKey.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/DNSSec/DNSSECAlgorithm.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/DNSSec/DNSSECDigestType.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/DNSSec/DNSSECRData.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/DNSSec/DS.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/DNSSec/KEY.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/DNSSec/NSEC.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/DNSSec/NSEC3.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/DNSSec/NSEC3PARAM.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/DNSSec/RRSIG.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/DNSSec/SIG.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/DNSSec/TSIG.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/EDNS-MISC.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/HINFO.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/HTTPS.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/IPAddress.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/MX.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/NAPTR.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/NS.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/NULL.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/Name.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/OPENPGPKEY.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/OPT.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/PTR.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/RData.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/SOA.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/SRV.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/SSHFP.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/SVCB.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/TLSA.swift /swift-dns/Sources/DNSModels/ResourceRecords/RData/TXT.swift /swift-dns/Sources/DNSModels/ResourceRecords/Record.swift /swift-dns/Sources/DNSModels/ResourceRecords/RecordType.swift /swift-dns/Sources/DNSModels/ResourceRecords/RecordTypeSet.swift -supplementary-output-file-map /tmp/TemporaryDirectory.gh3XfY/supplementaryOutputs-1 -target aarch64-unknown-linux-gnu -Xllvm -aarch64-use-tbi -disable-objc-interop -I /swift-dns/.build/aarch64-unknown-linux-gnu/release/Modules -color-diagnostics -Xcc -fcolor-diagnostics -g -debug-info-format=dwarf -dwarf-version=4 -module-cache-path /swift-dns/.build/aarch64-unknown-linux-gnu/release/ModuleCache -swift-version 6 -O -D SWIFT_PACKAGE -D SWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -enable-upcoming-feature MemberImportVisibility -enable-upcoming-feature InternalImportsByDefault -enable-upcoming-feature ExistentialAny -empty-abi-descriptor -file-compilation-dir /swift-dns -Xcc -fmodule-map-file=/swift-dns/.build/checkouts/swift-atomics/Sources/_AtomicsShims/include/module.modulemap -Xcc -I -Xcc /swift-dns/.build/checkouts/swift-atomics/Sources/_AtomicsShims/include -Xcc -fmodule-map-file=/swift-dns/.build/aarch64-unknown-linux-gnu/release/CNIOWASI.build/module.modulemap -Xcc -I -Xcc /swift-dns/.build/checkouts/swift-nio/Sources/CNIOWASI/include -Xcc -fmodule-map-file=/swift-dns/.build/checkouts/swift-nio/Sources/CNIOWindows/include/module.modulemap -Xcc -I -Xcc /swift-dns/.build/checkouts/swift-nio/Sources/CNIOWindows/include -Xcc -fmodule-map-file=/swift-dns/.build/aarch64-unknown-linux-gnu/release/CNIOLinux.build/module.modulemap -Xcc -I -Xcc /swift-dns/.build/checkouts/swift-nio/Sources/CNIOLinux/include -Xcc -fmodule-map-file=/swift-dns/.build/aarch64-unknown-linux-gnu/release/CNIODarwin.build/module.modulemap -Xcc -I -Xcc /swift-dns/.build/checkouts/swift-nio/Sources/CNIODarwin/include -Xcc -fmodule-map-file=/swift-dns/.build/aarch64-unknown-linux-gnu/release/CNIOAtomics.build/module.modulemap -Xcc -I -Xcc /swift-dns/.build/checkouts/swift-nio/Sources/CNIOAtomics/include -Xcc -fPIC -Xcc -g -Xcc -fno-omit-frame-pointer -no-auto-bridging-header-chaining -module-name DNSModels -package-name swift_dns -in-process-plugin-server-path /usr/lib/swift/host/libSwiftInProcPluginServer.so -plugin-path /usr/lib/swift/host/plugins -plugin-path /usr/local/lib/swift/host/plugins -enable-default-cmo -parse-as-library -num-threads 10 -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/+Optional.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/+String.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/+UInt8.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/+Unicode.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/DNSBuffer.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/EDNS.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/Header.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/Message.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/OPCode.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/Query.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/ResponseCode.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/ProtocolError.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/DNSClass.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/A.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/AAAA.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/Algorithm.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/CAA.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/CERT.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/CNAME.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/CSYNC.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/CDNSKEY.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/CDS.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/DNSKey.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/DNSSECAlgorithm.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/DNSSECDigestType.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/DNSSECRData.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/DS.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/KEY.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/NSEC.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/NSEC3.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/NSEC3PARAM.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/RRSIG.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/SIG.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/TSIG.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/EDNS-MISC.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/HINFO.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/HTTPS.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/IPAddress.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/MX.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/NAPTR.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/NS.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/NULL.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/Name.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/OPENPGPKEY.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/OPT.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/PTR.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/RData.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/SOA.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/SRV.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/SSHFP.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/SVCB.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/TLSA.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/TXT.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/Record.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/RecordType.swift.o -o /swift-dns/.build/aarch64-unknown-linux-gnu/release/DNSModels.build/RecordTypeSet.swift.o
1. Swift version 6.2-dev (LLVM 0d47fa0a0fd41fb, Swift 536aa932a9e0ea3)
2. Compiling with the current language version
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 DNSModels)
4. While running pass #196445 SILFunctionTransform "OwnershipModelEliminator" on SILFunction "@$s9DNSModels9DNSBufferV15readInlineArray10endianness2ass0dE0Vyxq_GSg7NIOCore10EndiannessO_AImtSiRVzs17FixedWidthIntegerR_r0_lFSi_AItSWXEfU_$3__s5UInt8VTg5".
for expression at [/swift-dns/Sources/DNSModels/DNSBuffer.swift:126:57 - line:148:9] RangeText="{
ptr -> (Int, InlineArray<count, IntegerType>) in
assert(ptr.count >= bytesRequired)
let values: InlineArray<count, IntegerType> = InlineArray { index in
switch endianness {
case .big:
return IntegerType(
bigEndian: ptr.load(
fromByteOffset: index &* length,
as: IntegerType.self
)
)
case .little:
return IntegerType(
littleEndian: ptr.load(
fromByteOffset: index &* length,
as: IntegerType.self
)
)
}
}
return (bytesRequired, values)
"
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 "@$s9DNSModels9DNSBufferV15readInlineArray10endianness2ass0dE0Vyxq_GSg7NIOCore10EndiannessO_AImtSiRVzs17FixedWidthIntegerR_r0_lFSi_AItSWXEfU_$3__s5UInt8VTg5".
for expression at [/swift-dns/Sources/DNSModels/DNSBuffer.swift:126:57 - line:148:9] RangeText="{
ptr -> (Int, InlineArray<count, IntegerType>) in
assert(ptr.count >= bytesRequired)
let values: InlineArray<count, IntegerType> = InlineArray { index in
switch endianness {
case .big:
return IntegerType(
bigEndian: ptr.load(
fromByteOffset: index &* length,
as: IntegerType.self
)
)
case .little:
return IntegerType(
littleEndian: ptr.load(
fromByteOffset: index &* length,
as: IntegerType.self
)
)
}
}
return (bytesRequired, values)
"
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0 swift-frontend 0x0000aaaad88433c4
1 swift-frontend 0x0000aaaad8841248
2 swift-frontend 0x0000aaaad8843ad8
3 linux-vdso.so.1 0x0000ffffb4313860 __kernel_rt_sigreturn + 0
4 libc.so.6 0x0000ffffb2487608
5 libc.so.6 0x0000ffffb243cb3c gsignal + 28
6 libc.so.6 0x0000ffffb2427e00 abort + 244
7 swift-frontend 0x0000aaaad256eb48
8 swift-frontend 0x0000aaaad257f3c4
9 swift-frontend 0x0000aaaad2577d7c
10 swift-frontend 0x0000aaaad2576108
11 swift-frontend 0x0000aaaad256f61c
12 swift-frontend 0x0000aaaad2131750
13 swift-frontend 0x0000aaaad1bea7b4
14 swift-frontend 0x0000aaaad1beb7e8
15 swift-frontend 0x0000aaaad1be86b8
16 swift-frontend 0x0000aaaad1be866c
17 swift-frontend 0x0000aaaad1c0e2c8
18 swift-frontend 0x0000aaaad1bf6f5c
19 swift-frontend 0x0000aaaad1be889c
20 swift-frontend 0x0000aaaad1bf8bdc
21 swift-frontend 0x0000aaaad163227c
22 swift-frontend 0x0000aaaad1315d00
23 swift-frontend 0x0000aaaad13151e8
24 swift-frontend 0x0000aaaad1323058
25 swift-frontend 0x0000aaaad1317564
26 swift-frontend 0x0000aaaad13169b8
27 swift-frontend 0x0000aaaad10cfe7c
28 libc.so.6 0x0000ffffb24284c4
29 libc.so.6 0x0000ffffb2428598 __libc_start_main + 152
30 swift-frontend 0x0000aaaad10cf070
[43/45] Compiling NIOCore AddressedEnvelope.swift
Expected behavior
no crash.
Environment
Latest nightly 6.2 Docker image: swiftlang/swift:nightly-6.2-noble@sha256:67efd3f092b810d27ad21d90b9ab32fbbcead75df80dfcfa73bb773c80f104ca
Additional information
No response