Skip to content

[swiftc (98 vs. 5180)] Add crasher in ? #5629

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Nov 4, 2016
Merged

[swiftc (98 vs. 5180)] Add crasher in ? #5629

merged 1 commit into from
Nov 4, 2016

Conversation

practicalswift
Copy link
Contributor

Add test case for crash triggered in ?.

Current number of unresolved compiler crashers: 98 (5180 resolved)

Stack trace:

0  swift           0x00000000031dec28
1  swift           0x00000000031df4a6
2  libpthread.so.0 0x00007f76ca7e0330
3  libc.so.6       0x00007f76c8f9ec37 gsignal + 55
4  libc.so.6       0x00007f76c8fa2028 abort + 328
5  swift           0x0000000000d8018f
6  swift           0x0000000000d838af
7  swift           0x0000000000d79e5c
8  swift           0x0000000000d8a740
9  swift           0x0000000000d8aa36
10 swift           0x0000000000d8a71c
11 swift           0x0000000000d8982d
12 swift           0x0000000000d88d72
13 swift           0x0000000000d88c74
14 swift           0x0000000000dde2ee
15 swift           0x0000000000d707bc
16 swift           0x0000000000b1d023
17 swift           0x0000000000b54610
18 swift           0x0000000000958b03
19 swift           0x00000000004a050e
20 swift           0x00000000004674de
21 libc.so.6       0x00007f76c8f89f45 __libc_start_main + 245
22 swift           0x0000000000464be6

Add test case for crash triggered in `?`.

Current number of unresolved compiler crashers: 98 (5180 resolved)

Stack trace:

```
0  swift           0x00000000031dec28
1  swift           0x00000000031df4a6
2  libpthread.so.0 0x00007f76ca7e0330
3  libc.so.6       0x00007f76c8f9ec37 gsignal + 55
4  libc.so.6       0x00007f76c8fa2028 abort + 328
5  swift           0x0000000000d8018f
6  swift           0x0000000000d838af
7  swift           0x0000000000d79e5c
8  swift           0x0000000000d8a740
9  swift           0x0000000000d8aa36
10 swift           0x0000000000d8a71c
11 swift           0x0000000000d8982d
12 swift           0x0000000000d88d72
13 swift           0x0000000000d88c74
14 swift           0x0000000000dde2ee
15 swift           0x0000000000d707bc
16 swift           0x0000000000b1d023
17 swift           0x0000000000b54610
18 swift           0x0000000000958b03
19 swift           0x00000000004a050e
20 swift           0x00000000004674de
21 libc.so.6       0x00007f76c8f89f45 __libc_start_main + 245
22 swift           0x0000000000464be6
```
@practicalswift
Copy link
Contributor Author

@swift-ci please smoke test and merge

@practicalswift
Copy link
Contributor Author

@swift-ci please test and merge

@practicalswift
Copy link
Contributor Author

@swift-ci please smoke test and merge

@slavapestov
Copy link
Contributor

Hi @practicalswift, if you run swiftc in a debugger, you can get a useful backtrace;

swiftc -frontend -parse testcase.swift

@practicalswift
Copy link
Contributor Author

@swift-ci please smoke test and merge

@practicalswift
Copy link
Contributor Author

@swift-ci please test and merge

@swift-ci swift-ci merged commit e11ad5d into swiftlang:master Nov 4, 2016
@rintaro
Copy link
Member

rintaro commented Nov 4, 2016

@practicalswift Assuming you are using Linux,
It seems llvm-symbolizer can symbolize the backtrace.
All you have to do is include llvm-symbolizer directory in your PATH environment variable.

For example:

$ PATH=$PATH:../build/Ninja-ReleaseAssert/llvm-linux-x86_64/bin \
> ../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift -frontend -parse \
> validation-test/compiler_crashers/28467-child-source-range-not-contained-within-its-parent-guard-stmt.swift

...

#0 0x000000000311bd48 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0x311bd48)
#1 0x000000000311c8e6 SignalHandler(int) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0x311c8e6)
#2 0x00007f01b0678d10 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x10d10)
#3 0x00007f01aefc01c7 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x351c7)
#4 0x00007f01aefc1e2a abort (/lib/x86_64-linux-gnu/libc.so.6+0x36e2a)
#5 0x0000000000d4dfe4 (anonymous namespace)::Verifier::checkSourceRanges(swift::SourceRange, swift::ASTWalker::ParentTy, std::function<void ()>) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0xd4dfe4)
#6 0x0000000000d51e72 (anonymous namespace)::Verifier::checkSourceRanges(swift::Stmt*) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0xd51e72)
#7 0x0000000000d48d15 (anonymous namespace)::Verifier::walkToStmtPost(swift::Stmt*) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0xd48d15)
#8 0x0000000000d5a33b swift::ASTVisitor<(anonymous namespace)::Traversal, swift::Expr*, swift::Stmt*, bool, swift::Pattern*, bool, void>::visit(swift::Stmt*) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0xd5a33b)
#9 0x0000000000d5a6d1 swift::ASTVisitor<(anonymous namespace)::Traversal, swift::Expr*, swift::Stmt*, bool, swift::Pattern*, bool, void>::visit(swift::Stmt*) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0xd5a6d1)
#10 0x0000000000d5a315 swift::ASTVisitor<(anonymous namespace)::Traversal, swift::Expr*, swift::Stmt*, bool, swift::Pattern*, bool, void>::visit(swift::Stmt*) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0xd5a315)
#11 0x0000000000d593b4 (anonymous namespace)::Traversal::visitAbstractFunctionDecl(swift::AbstractFunctionDecl*) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0xd593b4)
#12 0x0000000000d5881f (anonymous namespace)::Traversal::doIt(swift::Decl*) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0xd5881f)
#13 0x0000000000d58734 swift::Decl::walk(swift::ASTWalker&) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0xd58734)
#14 0x0000000000dae8ae swift::SourceFile::walk(swift::ASTWalker&) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0xdae8ae)
#15 0x0000000000d406f5 swift::verify(swift::SourceFile&) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0xd406f5)
#16 0x0000000000af6653 swift::Parser::parseTopLevel() (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0xaf6653)
#17 0x0000000000b2b180 swift::parseIntoSourceFile(swift::SourceFile&, unsigned int, bool*, swift::SILParserState*, swift::PersistentParserState*, swift::DelayedParsingCallbacks*) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0xb2b180)
#18 0x0000000000936f86 swift::CompilerInstance::performSema() (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0x936f86)
#19 0x00000000004740ff performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0x4740ff)
#20 0x00000000004731be swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0x4731be)
#21 0x000000000043b26c main (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0x43b26c)
#22 0x00007f01aefabac0 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20ac0)
#23 0x0000000000438cd9 _start (../build/Ninja-ReleaseAssert/swift-linux-x86_64/bin/swift+0x438cd9)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants