Skip to content

Clang optimization breaks stdlib #331

Closed
@kateinoigakukun

Description

@kateinoigakukun
enum E {
    case x(Bool)
}
_ = "\(E.x(true))"

This swift code fails to run while destroying heap object.
This crash happens with only optimized stdlib. When using --debug-swift-stdlib version stdlib, it works well.

Here is crash message and backtrace.
(The value 18446744073709551612 means -4 as signed int)

(wasminspect) run
Function exec failure Memory(AccessOutOfBounds(Some(18446744073709551612), 28573696))
(wasminspect) bt
0: _swift_release_dealloc
1: bool swift::RefCounts<swift::RefCountBitsT<(swift::RefCountInlinedness)1> >::doDecrementSlow<(swift::PerformDeinit)1>(swift::RefCountBitsT<(swift::RefCountInlinedness)1>, unsigned int)
2: swift_release
3: $ss15LazyMapSequenceVwxx
4: $ss14_CollectionBoxCfD
5: _swift_release_dealloc
6: bool swift::RefCounts<swift::RefCountBitsT<(swift::RefCountInlinedness)1> >::doDecrementSlow<(swift::PerformDeinit)1>(swift::RefCountBitsT<(swift::RefCountInlinedness)1>, unsigned int)
7: swift_release
8: $ss20_adHocPrint_unlocked___07isDebugC0yx_s6MirrorVq_zSbts16TextOutputStreamR_r0_lF
9: $ss15_print_unlockedyyx_q_zts16TextOutputStreamR_r0_lF
10: $ss26DefaultStringInterpolationV06appendC0yyxlF
11: main
12: __original_main
13: _start
(wasminspect)

https://gist.github.com/kateinoigakukun/819302b29a5f4af79a89cb172e0db9d0

Metadata

Metadata

Labels

bugSomething isn't workingin progressThe issue is currently being worked on

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions