Skip to content

[SR-4429] Linux: segfault when storing @convention(block) functions #47006

@swift-ci

Description

@swift-ci
Previous ID SR-4429
Radar None
Original Reporter jberkel (JIRA User)
Type Bug
Environment

Ubuntu 16.04, Swift 3.1

$ swiftc -version
Swift version 3.1 (swift-3.1-RELEASE)
Target: x86_64-unknown-linux-gnu
$ uname -a
Linux tbuntu 4.4.0-59-generic #​80-Ubuntu SMP Fri Jan 6 17:47:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Additional Detail from JIRA
Votes 0
Component/s Compiler
Labels Bug, Linux, RunTimeCrash, Runtime
Assignee None
Priority Medium

md5: 3f0022818fa972b721701158b4dc15f0

Issue Description:

test.swift:

let f: @convention(block) () -> () = {}
let functions = [ f ]

compile & run:

$ swiftc test.swift -ldispatch && lldb test -o run
(lldb) target create "test"
Current executable set to 'test' (x86_64).
(lldb) run
Process 3024 stopped
* thread #​1, name = 'test', stop reason = signal SIGSEGV: invalid address (fault address: 0x18b598b)
    frame #&#8203;0: 0x00007ffff7af9012 libswiftCore.so`Swift._allocateUninitializedArray <A> (Builtin.Word) -> (Swift.Array<A>, Builtin.RawPointer) + 50
libswiftCore.so`Swift._allocateUninitializedArray <A> (Builtin.Word) -> (Swift.Array<A>, Builtin.RawPointer):
->  0x7ffff7af9012 <+50>: movq   0x90(%rcx), %rdx
    0x7ffff7af9019 <+57>: movzwl %dx, %esi
    0x7ffff7af901c <+60>: addq   $0x20, %rsi
    0x7ffff7af9020 <+64>: orq    $-0x10000, %rdx
$

Metadata

Metadata

Assignees

No one assigned

    Labels

    LinuxPlatform: LinuxbugA deviation from expected or documented behavior. Also: expected but undesirable behavior.compilerThe Swift compiler itselfcrashBug: A crash, i.e., an abnormal termination of softwarerun-time crashBug → crash: Swift code crashed during executionruntimeThe Swift Runtime

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions