swiftlang / swift

The Swift Programming Language
https://swift.org
Apache License 2.0
67.3k stars 10.34k forks source link

Compiling Citadel #61663

Open Joannis opened 1 year ago

Joannis commented 1 year ago

Describe the bug Compiling this Citadel commit crashes the Swift compiler.

Steps To Reproduce Steps to reproduce the behavior:

  1. Install Swift 5.6.3 or 5.7.0 on Linux, or use Docker
  2. Create a package based on This Citadel commit
  3. Compile your code (including this dependency)

Expected behavior Either the code compiles, or emits a compile-time error.

Screenshots

#0 37.90 error: compile command failed due to signal 6 (use -v to see invocation)Stored value type does not match pointer operand type!
#0 37.90   store %T7Citadel11SFTPMessageO8ReadFileV* %1023, %T7Citadel11SFTPMessageO9WriteFileV** %83, align 8, !dbg !769
#0 37.90  %T7Citadel11SFTPMessageO8ReadFileV*in function $s7Citadel24SFTPServerInboundHandlerC11channelRead7context4datay7NIOCore07ChannelD7ContextC_AG6NIOAnyVtF
#0 37.90 <unknown>:0: error: fatal error encountered during compilation; please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the project
#0 37.90 <unknown>:0: note: Broken function found, compilation aborted!
#0 37.90 Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the project and the crash backtrace.
#0 37.90 Stack dump:
#0 37.90 0. Program arguments: /usr/bin/swift-frontend -frontend -c /build/.build/checkouts/Citadel/Sources/Citadel/Algorithms/AES.swift /build/.build/checkouts/Citadel/Sources/Citadel/Algorithms/DiffieHellman.swift /build/.build/checkouts/Citadel/Sources/Citadel/Algorithms/RSA.swift /build/.build/checkouts/Citadel/Sources/Citadel/BCrypt.swift /build/.build/checkouts/Citadel/Sources/Citadel/ByteBufferHelpers.swift /build/.build/checkouts/Citadel/Sources/Citadel/ChannelUnwrapper.swift /build/.build/checkouts/Citadel/Sources/Citadel/Client.swift /build/.build/checkouts/Citadel/Sources/Citadel/ClientSession.swift /build/.build/checkouts/Citadel/Sources/Citadel/DirectTCPIP.swift /build/.build/checkouts/Citadel/Sources/Citadel/Errors.swift /build/.build/checkouts/Citadel/Sources/Citadel/Exec/ExecDelegate.swift /build/.build/checkouts/Citadel/Sources/Citadel/Exec/ExecHandler.swift /build/.build/checkouts/Citadel/Sources/Citadel/NIOGlueHandler.swift /build/.build/checkouts/Citadel/Sources/Citadel/OpenSSHKey.swift /build/.build/checkouts/Citadel/Sources/Citadel/SFTP/Client/SFTPClient.swift /build/.build/checkouts/Citadel/Sources/Citadel/SFTP/Client/SFTPClientInboundHandler.swift /build/.build/checkouts/Citadel/Sources/Citadel/SFTP/Client/SFTPFile.swift /build/.build/checkouts/Citadel/Sources/Citadel/SFTP/SFTPBasicEnums.swift -primary-file /build/.build/checkouts/Citadel/Sources/Citadel/SFTP/SFTPFileFlags.swift -primary-file /build/.build/checkouts/Citadel/Sources/Citadel/SFTP/SFTPMessage.swift -primary-file /build/.build/checkouts/Citadel/Sources/Citadel/SFTP/SFTPMessageParser.swift -primary-file /build/.build/checkouts/Citadel/Sources/Citadel/SFTP/SFTPSerializer.swift -primary-file /build/.build/checkouts/Citadel/Sources/Citadel/SFTP/Server/SFTPServer.swift -primary-file /build/.build/checkouts/Citadel/Sources/Citadel/SFTP/Server/SFTPServerInboundHandler.swift /build/.build/checkouts/Citadel/Sources/Citadel/SSHAuthenticationMethod.swift /build/.build/checkouts/Citadel/Sources/Citadel/SSHCert.swift /build/.build/checkouts/Citadel/Sources/Citadel/SSHConnectionSettings.swift /build/.build/checkouts/Citadel/Sources/Citadel/Server.swift /build/.build/checkouts/Citadel/Sources/Citadel/TTY/Client/TTY.swift -supplementary-output-file-map /tmp/TemporaryDirectory.Iwro4j/supplementaryOutputs-4 -target aarch64-unknown-linux-gnu -Xllvm -aarch64-use-tbi -disable-objc-interop -I /build/.build/aarch64-unknown-linux-gnu/debug -enable-testing -g -module-cache-path /build/.build/aarch64-unknown-linux-gnu/debug/ModuleCache -suppress-warnings -swift-version 5 -Onone -D SWIFT_PACKAGE -D DEBUG -new-driver-path /usr/bin/swift-driver -empty-abi-descriptor -resource-dir /usr/lib/swift_static -use-static-resource-dir -enable-anonymous-context-mangled-names -Xcc -fmodule-map-file=/build/.build/checkouts/swift-crypto/Sources/CCryptoBoringSSLShims/include/module.modulemap -Xcc -I -Xcc /build/.build/checkouts/swift-crypto/Sources/CCryptoBoringSSLShims/include -Xcc -fmodule-map-file=/build/.build/checkouts/swift-crypto/Sources/CCryptoBoringSSL/include/module.modulemap -Xcc -I -Xcc /build/.build/checkouts/swift-crypto/Sources/CCryptoBoringSSL/include -Xcc -fmodule-map-file=/build/.build/aarch64-unknown-linux-gnu/debug/CNIODarwin.build/module.modulemap -Xcc -I -Xcc /build/.build/checkouts/swift-nio/Sources/CNIODarwin/include -Xcc -fmodule-map-file=/build/.build/checkouts/swift-atomics/Sources/_AtomicsShims/include/module.modulemap -Xcc -I -Xcc /build/.build/checkouts/swift-atomics/Sources/_AtomicsShims/include -Xcc -fmodule-map-file=/build/.build/checkouts/swift-nio/Sources/CNIOWindows/include/module.modulemap -Xcc -I -Xcc /build/.build/checkouts/swift-nio/Sources/CNIOWindows/include -Xcc -fmodule-map-file=/build/.build/aarch64-unknown-linux-gnu/debug/CNIOLinux.build/module.modulemap -Xcc -I -Xcc /build/.build/checkouts/swift-nio/Sources/CNIOLinux/include -Xcc -fmodule-map-file=/build/.build/aarch64-unknown-linux-gnu/debug/CNIOAtomics.build/module.modulemap -Xcc -I -Xcc /build/.build/checkouts/swift-nio/Sources/CNIOAtomics/include -Xcc -fmodule-map-file=/build/.build/checkouts/Citadel/Sources/CCitadelBcrypt/include/module.modulemap -Xcc -I -Xcc /build/.build/checkouts/Citadel/Sources/CCitadelBcrypt/include -module-name Citadel -parse-as-library -o /build/.build/aarch64-unknown-linux-gnu/debug/Citadel.build/SFTP/SFTPFileFlags.swift.o -o /build/.build/aarch64-unknown-linux-gnu/debug/Citadel.build/SFTP/SFTPMessage.swift.o -o /build/.build/aarch64-unknown-linux-gnu/debug/Citadel.build/SFTP/SFTPMessageParser.swift.o -o /build/.build/aarch64-unknown-linux-gnu/debug/Citadel.build/SFTP/SFTPSerializer.swift.o -o /build/.build/aarch64-unknown-linux-gnu/debug/Citadel.build/SFTP/Server/SFTPServer.swift.o -o /build/.build/aarch64-unknown-linux-gnu/debug/Citadel.build/SFTP/Server/SFTPServerInboundHandler.swift.o -index-store-path /build/.build/aarch64-unknown-linux-gnu/debug/index/store -index-system-modules
#0 37.90 1. Swift version 5.7 (swift-5.7-RELEASE)
#0 37.90 2. Compiling with the current language version
#0 37.90 3. Running pass 'Module Verifier' on function '@"$s7Citadel24SFTPServerInboundHandlerC11channelRead7context4datay7NIOCore07ChannelD7ContextC_AG6NIOAnyVtF"'
#0 37.90 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 37.90 /usr/bin/swift-frontend[0x4a839f8]

Environment (please fill out the following information)

Additional context None

Joannis commented 1 year ago

Seems related to #45792