Max Moiseev
3cbcd716f5
Merge branch 'master' into new-integer-protocols
2017-03-31 10:03:20 -07:00
practicalswift
418c0f444a
[swiftc (27 vs. 5511)] Add crasher in swift::TypeChecker::validateDecl(...)
...
Add test case for crash triggered in `swift::TypeChecker::validateDecl(...)`.
Current number of unresolved compiler crashers: 27 (5511 resolved)
/cc Huon Wilson - just wanted to let you know that this crasher caused an assertion failure for the assertion `D->isBeingValidated() || D->hasValidSignature()` added on 2017-02-21 by you in commit 84e0a109 :-)
Assertion failure in [`lib/Sema/TypeCheckDecl.cpp (line 6983)`](6e27be1b6b/lib/Sema/TypeCheckDecl.cpp (L6983) ):
```
Assertion `D->isBeingValidated() || D->hasValidSignature()' failed.
When executing: void swift::TypeChecker::validateDecl(swift::ValueDecl *)
```
Assertion context:
```c++
// up to the caller, who must call hasValidSignature() to
// check that validateDecl() returned a fully-formed decl.
if (D->hasValidationStarted()) {
// If this isn't reentrant (i.e. D has already been validated), the
// signature better be valid.
assert(D->isBeingValidated() || D->hasValidSignature());
return;
}
PrettyStackTraceDecl StackTrace("validating", D);
```
Stack trace:
```
0 0x0000000003962c58 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x3962c58)
1 0x0000000003963396 SignalHandler(int) (/path/to/swift/bin/swift+0x3963396)
2 0x00007f90f65de390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f90f4b04428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f90f4b0602a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f90f4afcbd7 __assert_fail_base /build/glibc-9tT8Do/glibc-2.23/assert/assert.c:92:0
6 0x00007f90f4afcc82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000012add1e swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12add1e)
8 0x0000000001322cba resolveTypeDecl(swift::TypeChecker&, swift::TypeDecl*, swift::SourceLoc, swift::DeclContext*, swift::GenericIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1322cba)
9 0x000000000132281f resolveTopLevelIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, swift::ComponentIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x132281f)
10 0x000000000131cebe resolveIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, llvm::ArrayRef<swift::ComponentIdentTypeRepr*>, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x131cebe)
11 0x000000000131c8e3 swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x131c8e3)
12 0x000000000131d9f7 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x131d9f7)
13 0x000000000131d8fc swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x131d8fc)
14 0x000000000131bffa swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x131bffa)
15 0x00000000012a5d47 swift::TypeChecker::checkInheritanceClause(swift::Decl*, swift::GenericTypeResolver*) (/path/to/swift/bin/swift+0x12a5d47)
16 0x00000000012addf1 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12addf1)
17 0x0000000001391f36 swift::IterativeTypeChecker::satisfy(swift::TypeCheckRequest) (/path/to/swift/bin/swift+0x1391f36)
18 0x0000000001391ffb swift::IterativeTypeChecker::satisfy(swift::TypeCheckRequest) (/path/to/swift/bin/swift+0x1391ffb)
19 0x0000000001391ffb swift::IterativeTypeChecker::satisfy(swift::TypeCheckRequest) (/path/to/swift/bin/swift+0x1391ffb)
20 0x00000000012ae650 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12ae650)
21 0x00000000012bb8bf (anonymous namespace)::DeclChecker::visitTypeAliasDecl(swift::TypeAliasDecl*) (/path/to/swift/bin/swift+0x12bb8bf)
22 0x00000000012ac3eb (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12ac3eb)
23 0x00000000012ac313 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12ac313)
24 0x000000000132a445 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x132a445)
25 0x0000000000f9a7a6 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xf9a7a6)
26 0x00000000004a8234 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a8234)
27 0x00000000004650b7 main (/path/to/swift/bin/swift+0x4650b7)
28 0x00007f90f4aef830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
29 0x0000000000462759 _start (/path/to/swift/bin/swift+0x462759)
```
2017-03-31 11:04:52 +02:00
practicalswift
a729c9de54
[swiftc (26 vs. 5511)] Add crasher in swift::LValueType::get(...)
...
Add test case for crash triggered in `swift::LValueType::get(...)`.
Current number of unresolved compiler crashers: 26 (5511 resolved)
/cc @DougGregor - just wanted to let you know that this crasher caused an assertion failure for the assertion `!objectTy->hasError() && "cannot have ErrorType wrapped inside LValueType"` added on 2016-10-06 by you in commit 50341da32 :-)
Assertion failure in [`lib/AST/ASTContext.cpp (line 3303)`](2f0f49e028/lib/AST/ASTContext.cpp (L3303) ):
```
Assertion `!objectTy->hasError() && "cannot have ErrorType wrapped inside LValueType"' failed.
When executing: static swift::LValueType *swift::LValueType::get(swift::Type)
```
Assertion context:
```c++
ID.AddPointer(Parent.getPointer());
}
LValueType *LValueType::get(Type objectTy) {
assert(!objectTy->hasError() &&
"cannot have ErrorType wrapped inside LValueType");
assert(!objectTy->is<LValueType>() && !objectTy->is<InOutType>() &&
"cannot have 'inout' or @lvalue wrapped inside an @lvalue");
auto properties = objectTy->getRecursiveProperties()
| RecursiveTypeProperties::IsLValue;
```
Stack trace:
```
0 0x0000000003962c58 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x3962c58)
1 0x0000000003963396 SignalHandler(int) (/path/to/swift/bin/swift+0x3963396)
2 0x00007f4e8e2fd390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f4e8c823428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f4e8c82502a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f4e8c81bbd7 __assert_fail_base /build/glibc-9tT8Do/glibc-2.23/assert/assert.c:92:0
6 0x00007f4e8c81bc82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000013de964 swift::LValueType::get(swift::Type) (/path/to/swift/bin/swift+0x13de964)
8 0x00000000012d5a50 swift::TypeChecker::getUnopenedTypeOfReference(swift::ValueDecl*, swift::Type, swift::DeclContext*, swift::DeclRefExpr const*, bool) (/path/to/swift/bin/swift+0x12d5a50)
9 0x000000000127eb96 swift::constraints::ConstraintSystem::getTypeOfReference(swift::ValueDecl*, bool, bool, swift::FunctionRefKind, swift::constraints::ConstraintLocatorBuilder, swift::DeclRefExpr const*) (/path/to/swift/bin/swift+0x127eb96)
10 0x00000000012813db swift::constraints::ConstraintSystem::resolveOverload(swift::constraints::ConstraintLocator*, swift::Type, swift::constraints::OverloadChoice, swift::DeclContext*) (/path/to/swift/bin/swift+0x12813db)
11 0x000000000123849e swift::ASTVisitor<(anonymous namespace)::ConstraintGenerator, swift::Type, void, void, void, void, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0x123849e)
12 0x000000000123d9b8 (anonymous namespace)::ConstraintWalker::walkToExprPost(swift::Expr*) (/path/to/swift/bin/swift+0x123d9b8)
13 0x000000000145469b swift::ASTVisitor<(anonymous namespace)::Traversal, swift::Expr*, swift::Stmt*, bool, swift::Pattern*, bool, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0x145469b)
14 0x0000000001453be8 swift::ASTVisitor<(anonymous namespace)::Traversal, swift::Expr*, swift::Stmt*, bool, swift::Pattern*, bool, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0x1453be8)
15 0x0000000001452e1b swift::Expr::walk(swift::ASTWalker&) (/path/to/swift/bin/swift+0x1452e1b)
16 0x0000000001234b81 swift::constraints::ConstraintSystem::generateConstraints(swift::Expr*) (/path/to/swift/bin/swift+0x1234b81)
17 0x000000000125cbf6 swift::constraints::ConstraintSystem::solve(swift::Expr*&, swift::Type, swift::ExprTypeCheckListener*, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::FreeTypeVariableBinding) (/path/to/swift/bin/swift+0x125cbf6)
18 0x00000000012947a4 swift::TypeChecker::solveForExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem&, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) (/path/to/swift/bin/swift+0x12947a4)
19 0x0000000001297e16 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0x1297e16)
20 0x000000000129bb01 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, bool) (/path/to/swift/bin/swift+0x129bb01)
21 0x000000000129bcc6 swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int, bool) (/path/to/swift/bin/swift+0x129bcc6)
22 0x00000000012b2028 validatePatternBindingEntries(swift::TypeChecker&, swift::PatternBindingDecl*) (/path/to/swift/bin/swift+0x12b2028)
23 0x00000000012ac454 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12ac454)
24 0x00000000012bb80b (anonymous namespace)::DeclChecker::visitExtensionDecl(swift::ExtensionDecl*) (/path/to/swift/bin/swift+0x12bb80b)
25 0x00000000012ac3db (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12ac3db)
26 0x00000000012ac313 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12ac313)
27 0x0000000001316146 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x1316146)
28 0x00000000013157fb swift::TypeChecker::typeCheckClosureBody(swift::ClosureExpr*) (/path/to/swift/bin/swift+0x13157fb)
29 0x000000000132fefc swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::Expr*, swift::Type, bool, bool, bool) (/path/to/swift/bin/swift+0x132fefc)
30 0x0000000001297ea0 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0x1297ea0)
31 0x000000000129bb01 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, bool) (/path/to/swift/bin/swift+0x129bb01)
32 0x000000000129bcc6 swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int, bool) (/path/to/swift/bin/swift+0x129bcc6)
33 0x00000000012ac4c6 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12ac4c6)
34 0x00000000012ac313 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12ac313)
35 0x0000000001316146 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x1316146)
36 0x000000000131445d swift::TypeChecker::typeCheckFunctionBodyUntil(swift::FuncDecl*, swift::SourceLoc) (/path/to/swift/bin/swift+0x131445d)
37 0x00000000013142cd swift::TypeChecker::typeCheckAbstractFunctionBodyUntil(swift::AbstractFunctionDecl*, swift::SourceLoc) (/path/to/swift/bin/swift+0x13142cd)
38 0x0000000001314ff1 swift::TypeChecker::typeCheckAbstractFunctionBody(swift::AbstractFunctionDecl*) (/path/to/swift/bin/swift+0x1314ff1)
39 0x0000000001329768 typeCheckFunctionsAndExternalDecls(swift::TypeChecker&) (/path/to/swift/bin/swift+0x1329768)
40 0x000000000132a548 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x132a548)
41 0x0000000000f9a7a6 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xf9a7a6)
42 0x00000000004a8234 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a8234)
43 0x00000000004650b7 main (/path/to/swift/bin/swift+0x4650b7)
44 0x00007f4e8c80e830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
45 0x0000000000462759 _start (/path/to/swift/bin/swift+0x462759)
```
2017-03-31 09:51:54 +02:00
Slava Pestov
8201eaaa60
SIL: Change rule regarding shared_external linkage
...
The existence of a shared_external function in itself is not
an error; it just means we deserialized a witness table or
vtable but did not need to deserialize a thunk.
However, a direct reference to such a function is an error,
because we should have deserialized the body in that case.
This fixes a crasher, but the SIL crashers are kind of silly
because the SIL parser does not try at all not to crash on
invalid input.
2017-03-30 00:45:20 -07:00
Slava Pestov
8fe8b89b0f
SIL: Terminology change: [fragile] => [serialized]
...
Also, add a third [serializable] state for functions whose bodies we
*can* serialize, but only do so if they're referenced from another
serialized function.
This will be used for bodies synthesized for imported definitions,
such as init(rawValue:), etc, and various thunks, but for now this
change is NFC.
2017-03-29 16:47:28 -07:00
practicalswift
949bfbc73f
[swiftc (25 vs. 5511)] Add crasher in swift::TypeBase::getContextSubstitutions
...
Add test case for crash triggered in `swift::TypeBase::getContextSubstitutions`.
Current number of unresolved compiler crashers: 25 (5511 resolved)
Stack trace:
```
0 0x000000000395df08 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x395df08)
1 0x000000000395e646 SignalHandler(int) (/path/to/swift/bin/swift+0x395e646)
2 0x00007f43e1b53390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f43e0079428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f43e007b02a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00000000038fa2dd llvm::llvm_unreachable_internal(char const*, char const*, unsigned int) (/path/to/swift/bin/swift+0x38fa2dd)
6 0x00000000014f5458 swift::TypeBase::getContextSubstitutions(swift::DeclContext const*, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x14f5458)
7 0x00000000014f0f00 swift::TypeBase::getContextSubstitutionMap(swift::ModuleDecl*, swift::DeclContext const*, swift::GenericEnvironment*) (/path/to/swift/bin/swift+0x14f0f00)
8 0x00000000013158eb swift::TypeChecker::substMemberTypeWithBase(swift::ModuleDecl*, swift::TypeDecl*, swift::Type) (/path/to/swift/bin/swift+0x13158eb)
9 0x00000000012d961d swift::TypeChecker::lookupMemberType(swift::DeclContext*, swift::Type, swift::Identifier, swift::OptionSet<swift::NameLookupFlags, unsigned int>) (/path/to/swift/bin/swift+0x12d961d)
10 0x00000000013174bc resolveIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, llvm::ArrayRef<swift::ComponentIdentTypeRepr*>, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x13174bc)
11 0x0000000001316cb3 swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1316cb3)
12 0x0000000001317dc7 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x1317dc7)
13 0x0000000001317ccc swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x1317ccc)
14 0x00000000013163ca swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x13163ca)
15 0x00000000012dc85a swift::TypeChecker::typeCheckPattern(swift::Pattern*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x12dc85a)
16 0x00000000012ac2fc validatePatternBindingEntries(swift::TypeChecker&, swift::PatternBindingDecl*) (/path/to/swift/bin/swift+0x12ac2fc)
17 0x00000000012a6824 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12a6824)
18 0x00000000012a66e3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12a66e3)
19 0x0000000001310516 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x1310516)
20 0x000000000130fd86 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) (/path/to/swift/bin/swift+0x130fd86)
21 0x0000000001324890 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1324890)
22 0x0000000000f950f6 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xf950f6)
23 0x00000000004a7d6b swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a7d6b)
24 0x00000000004650b7 main (/path/to/swift/bin/swift+0x4650b7)
25 0x00007f43e0064830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
26 0x0000000000462759 _start (/path/to/swift/bin/swift+0x462759)
```
2017-03-29 17:30:13 +02:00
Arnold Schwaighofer
67e3d27fd9
Copy-on-write existential performance work ( #8369 )
...
* IRGen: Change c-o-w existential implementation functions
* initialzeBufferWith(Copy|Take)OfBuffer value witness implementation for cow existentials
Implement and use initialzeBufferWith(Copy|Take)OfBuffer value witnesses for
copy-on-write existentials.
Before we used a free standing function but the overhead of doing so was
noticable (~20-30%) on micro benchmarks.
* IRGen: Use common getCopyOutOfLineBoxPointerFunction
* Add a runtime function to conditionally make a box unique
* Fix compilation of HeapObject.cpp on i386
* Fix IRGen test case
* Fix test case for i386
2017-03-27 20:51:02 -07:00
Max Moiseev
969b4814e2
Merge branch 'master' into new-integer-protocols
2017-03-27 20:40:15 -07:00
Hugh Bellamy
abfca72357
Run python linting on the file if running doctests
2017-03-27 12:31:56 +07:00
Slava Pestov
19b12aa3b1
Sema: Fix convenience init delegation to a convenience init in a generic base class
...
While in the constraint system, the delegation is modeled as
returning an instance of the derived class, in the AST we type
the reference as returning an instance of the base class, and
insert a downcast, because in SILGen we're calling the base
class initializer which is typed as returning the base class.
This bit of fixup logic wasn't happening if the base class was
generic, and so we were not inserting the cast, which would
crash in SILGen with an assert.
Fixes <rdar://problem/31000248>.
2017-03-26 00:00:53 -07:00
Max Moiseev
ec8e286b5c
Merge branch 'master' into new-integer-protocols
2017-03-24 14:14:00 -07:00
Doug Gregor
c4735314d1
Add test for SR-4016 / rdar://problem/30677848, which is now fixed.
2017-03-24 11:36:45 -07:00
practicalswift
297bf9a469
[swiftc (24 vs. 5511)] Add crasher in swift::TypeBase::getCanonicalType(...)
...
Add test case for crash triggered in `swift::TypeBase::getCanonicalType(...)`.
Current number of unresolved compiler crashers: 24 (5511 resolved)
/cc @slavapestov - just wanted to let you know that this crasher caused an assertion failure for the assertion `gpDecl->getDepth() != GenericTypeParamDecl::InvalidDepth && "parameter hasn't been validated"` added on 2017-02-22 by you in commit fdb0a186 :-)
Assertion failure in [`lib/AST/Type.cpp (line 1045)`](fba882ff21/lib/AST/Type.cpp (L1045) ):
```
Assertion `gpDecl->getDepth() != GenericTypeParamDecl::InvalidDepth && "parameter hasn't been validated"' failed.
When executing: swift::CanType swift::TypeBase::getCanonicalType()
```
Assertion context:
```c++
case TypeKind::GenericTypeParam: {
GenericTypeParamType *gp = cast<GenericTypeParamType>(this);
auto gpDecl = gp->getDecl();
assert(gpDecl->getDepth() != GenericTypeParamDecl::InvalidDepth &&
"parameter hasn't been validated");
Result = GenericTypeParamType::get(gpDecl->getDepth(), gpDecl->getIndex(),
gpDecl->getASTContext());
break;
}
```
Stack trace:
```
0 0x000000000394ec88 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x394ec88)
1 0x000000000394f3c6 SignalHandler(int) (/path/to/swift/bin/swift+0x394f3c6)
2 0x00007f435f948390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
3 0x00007f435de6e428 gsignal /build/glibc-9tT8Do/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f435de7002a abort /build/glibc-9tT8Do/glibc-2.23/stdlib/abort.c:91:0
5 0x00007f435de66bd7 __assert_fail_base /build/glibc-9tT8Do/glibc-2.23/assert/assert.c:92:0
6 0x00007f435de66c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
7 0x00000000014de90c swift::TypeBase::getCanonicalType() (/path/to/swift/bin/swift+0x14de90c)
8 0x00000000013c8713 swift::ErrorType::get(swift::Type) (/path/to/swift/bin/swift+0x13c8713)
9 0x00000000014eb982 llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::OptionSet<swift::SubstFlags, unsigned int>)::$_17>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x14eb982)
10 0x00000000014e81e9 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x14e81e9)
11 0x00000000014e73fe swift::Type::substDependentTypesWithErrorTypes() const (/path/to/swift/bin/swift+0x14e73fe)
12 0x0000000001485982 swift::GenericEnvironment::mapTypeIntoContext(swift::GenericEnvironment*, swift::Type) (/path/to/swift/bin/swift+0x1485982)
13 0x00000000014c3bf0 swift::UnqualifiedLookup::UnqualifiedLookup(swift::DeclName, swift::DeclContext*, swift::LazyResolver*, bool, swift::SourceLoc, bool, bool, bool) (/path/to/swift/bin/swift+0x14c3bf0)
14 0x00000000012cd847 swift::TypeChecker::lookupUnqualifiedType(swift::DeclContext*, swift::DeclName, swift::SourceLoc, swift::OptionSet<swift::NameLookupFlags, unsigned int>) (/path/to/swift/bin/swift+0x12cd847)
15 0x000000000131130e resolveTopLevelIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, swift::ComponentIdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x131130e)
16 0x000000000130ba7e resolveIdentTypeComponent(swift::TypeChecker&, swift::DeclContext*, llvm::ArrayRef<swift::ComponentIdentTypeRepr*>, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x130ba7e)
17 0x000000000130b4a3 swift::TypeChecker::resolveIdentifierType(swift::DeclContext*, swift::IdentTypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, bool, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x130b4a3)
18 0x000000000130c5b7 (anonymous namespace)::TypeResolver::resolveType(swift::TypeRepr*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>) (/path/to/swift/bin/swift+0x130c5b7)
19 0x000000000130c4bc swift::TypeChecker::resolveType(swift::TypeRepr*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x130c4bc)
20 0x000000000130abba swift::TypeChecker::validateType(swift::TypeLoc&, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver*, llvm::function_ref<bool (swift::TypeCheckRequest)>*) (/path/to/swift/bin/swift+0x130abba)
21 0x00000000012d0389 validateParameterType(swift::ParamDecl*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver&, swift::TypeChecker&) (/path/to/swift/bin/swift+0x12d0389)
22 0x00000000012d0239 swift::TypeChecker::typeCheckParameterList(swift::ParameterList*, swift::DeclContext*, swift::OptionSet<swift::TypeResolutionFlags, unsigned int>, swift::GenericTypeResolver&) (/path/to/swift/bin/swift+0x12d0239)
23 0x00000000012ba9e3 (anonymous namespace)::DeclChecker::semaFuncParamPatterns(swift::AbstractFunctionDecl*, swift::GenericTypeResolver&) (/path/to/swift/bin/swift+0x12ba9e3)
24 0x00000000012ae314 (anonymous namespace)::DeclChecker::visitFuncDecl(swift::FuncDecl*) (/path/to/swift/bin/swift+0x12ae314)
25 0x000000000129b417 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x129b417)
26 0x000000000129d272 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x129d272)
27 0x00000000014c0e45 swift::namelookup::ResolutionKind recordImportDecls<llvm::DenseMap<swift::Identifier, std::pair<swift::namelookup::ResolutionKind, llvm::SmallSet<swift::CanType, 4u, (anonymous namespace)::SortCanType> >, llvm::DenseMapInfo<swift::Identifier>, llvm::detail::DenseMapPair<swift::Identifier, std::pair<swift::namelookup::ResolutionKind, llvm::SmallSet<swift::CanType, 4u, (anonymous namespace)::SortCanType> > > > >(swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&, llvm::ArrayRef<swift::ValueDecl*>, llvm::DenseMap<swift::Identifier, std::pair<swift::namelookup::ResolutionKind, llvm::SmallSet<swift::CanType, 4u, (anonymous namespace)::SortCanType> >, llvm::DenseMapInfo<swift::Identifier>, llvm::detail::DenseMapPair<swift::Identifier, std::pair<swift::namelookup::ResolutionKind, llvm::SmallSet<swift::CanType, 4u, (anonymous namespace)::SortCanType> > > >&, swift::namelookup::ResolutionKind) (/path/to/swift/bin/swift+0x14c0e45)
28 0x00000000014bf05a void lookupInModule<llvm::DenseMap<swift::Identifier, std::pair<swift::namelookup::ResolutionKind, llvm::SmallSet<swift::CanType, 4u, (anonymous namespace)::SortCanType> >, llvm::DenseMapInfo<swift::Identifier>, llvm::detail::DenseMapPair<swift::Identifier, std::pair<swift::namelookup::ResolutionKind, llvm::SmallSet<swift::CanType, 4u, (anonymous namespace)::SortCanType> > > >, swift::namelookup::lookupVisibleDeclsInModule(swift::ModuleDecl*, llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, llvm::SmallVectorImpl<swift::ValueDecl*>&, swift::NLKind, swift::namelookup::ResolutionKind, swift::LazyResolver*, swift::DeclContext const*, llvm::ArrayRef<std::pair<llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::ModuleDecl*> >)::$_1>(swift::ModuleDecl*, llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, llvm::SmallVectorImpl<swift::ValueDecl*>&, swift::namelookup::ResolutionKind, bool, swift::LazyResolver*, llvm::SmallDenseMap<std::pair<llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::ModuleDecl*>, llvm::TinyPtrVector<swift::ValueDecl*>, 32u, llvm::DenseMapInfo<std::pair<llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::ModuleDecl*> >, llvm::detail::DenseMapPair<std::pair<llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::ModuleDecl*>, llvm::TinyPtrVector<swift::ValueDecl*> > >&, swift::DeclContext const*, bool, llvm::ArrayRef<std::pair<llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::ModuleDecl*> >, swift::namelookup::lookupVisibleDeclsInModule(swift::ModuleDecl*, llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, llvm::SmallVectorImpl<swift::ValueDecl*>&, swift::NLKind, swift::namelookup::ResolutionKind, swift::LazyResolver*, swift::DeclContext const*, llvm::ArrayRef<std::pair<llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::ModuleDecl*> >)::$_1) (/path/to/swift/bin/swift+0x14bf05a)
29 0x00000000014be8a3 swift::namelookup::lookupVisibleDeclsInModule(swift::ModuleDecl*, llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, llvm::SmallVectorImpl<swift::ValueDecl*>&, swift::NLKind, swift::namelookup::ResolutionKind, swift::LazyResolver*, swift::DeclContext const*, llvm::ArrayRef<std::pair<llvm::ArrayRef<std::pair<swift::Identifier, swift::SourceLoc> >, swift::ModuleDecl*> >) (/path/to/swift/bin/swift+0x14be8a3)
30 0x00000000014acf4d swift::lookupVisibleDecls(swift::VisibleDeclConsumer&, swift::DeclContext const*, swift::LazyResolver*, bool, swift::SourceLoc) (/path/to/swift/bin/swift+0x14acf4d)
31 0x00000000012ce638 swift::TypeChecker::performTypoCorrection(swift::DeclContext*, swift::DeclRefKind, swift::Type, swift::DeclName, swift::SourceLoc, swift::OptionSet<swift::NameLookupFlags, unsigned int>, swift::LookupResult&, unsigned int) (/path/to/swift/bin/swift+0x12ce638)
32 0x00000000012823e4 swift::TypeChecker::resolveDeclRefExpr(swift::UnresolvedDeclRefExpr*, swift::DeclContext*) (/path/to/swift/bin/swift+0x12823e4)
33 0x000000000128e8d2 (anonymous namespace)::PreCheckExpression::walkToExprPre(swift::Expr*) (/path/to/swift/bin/swift+0x128e8d2)
34 0x000000000144121b swift::Expr::walk(swift::ASTWalker&) (/path/to/swift/bin/swift+0x144121b)
35 0x0000000001283665 swift::TypeChecker::solveForExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem&, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) (/path/to/swift/bin/swift+0x1283665)
36 0x0000000001286d96 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0x1286d96)
37 0x000000000128aa81 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, bool) (/path/to/swift/bin/swift+0x128aa81)
38 0x000000000128ac46 swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int, bool) (/path/to/swift/bin/swift+0x128ac46)
39 0x00000000012a0e28 validatePatternBindingEntries(swift::TypeChecker&, swift::PatternBindingDecl*) (/path/to/swift/bin/swift+0x12a0e28)
40 0x000000000129b334 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x129b334)
41 0x00000000012aac7b (anonymous namespace)::DeclChecker::visitStructDecl(swift::StructDecl*) (/path/to/swift/bin/swift+0x12aac7b)
42 0x000000000129b3e7 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x129b3e7)
43 0x000000000129b1f3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x129b1f3)
44 0x0000000001319005 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1319005)
45 0x0000000000f8f5b6 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xf8f5b6)
46 0x00000000004a76bb swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a76bb)
47 0x00000000004650b7 main (/path/to/swift/bin/swift+0x4650b7)
48 0x00007f435de59830 __libc_start_main /build/glibc-9tT8Do/glibc-2.23/csu/../csu/libc-start.c:325:0
49 0x0000000000462759 _start (/path/to/swift/bin/swift+0x462759)
```
2017-03-24 15:43:39 +01:00
Max Moiseev
2c9be47551
Merge branch 'master' into new-integer-protocols
2017-03-23 16:46:01 -07:00
Hugh Bellamy
fbad5fdfa6
Integrate python linting into validation tests
2017-03-23 14:05:15 +07:00
Max Moiseev
6f6c2aee8c
Fixing the rest of the tests
2017-03-22 16:06:10 -07:00
Max Moiseev
b9fb3badc8
Merge remote-tracking branch 'origin/master' into new-integer-protocols
2017-03-22 12:30:24 -07:00
Robert Widmann
2c19ceb1c4
Update prefix-drop regression test ( #8194 )
2017-03-22 11:25:55 -04:00
Mishal Shah
dd9c81c965
Revert "Integrate python-lint into validation tests"
2017-03-21 12:24:46 -07:00
Hugh Bellamy
7007c34dfd
Integrate python linting into validation tests
2017-03-21 19:28:31 +07:00
Slava Pestov
3ef5ef0ac9
Merge pull request #8232 from slavapestov/two-more-crashers
...
Last two crashers for the evening
2017-03-21 02:25:57 -07:00
Slava Pestov
e8413ba134
Merge pull request #8229 from slavapestov/another-protocol-typealias-crasher-yay
...
Add another crasher with protocol typealiases
2017-03-21 02:02:16 -07:00
Slava Pestov
6019754b54
Last two crashers for the evening
2017-03-21 01:45:53 -07:00
Slava Pestov
47a0cb1861
Add another crasher with protocol typealiases
2017-03-21 00:21:21 -07:00
Slava Pestov
a3a290eb60
Mangling: Fix bug in the logic for dropping same-type constraints
...
It's not correct to drop a constraint if one of the two types
structurally contains generic parameters at the method depth.
2017-03-21 00:15:18 -07:00
Slava Pestov
a3067a19bd
Add a couple of crashers
2017-03-20 23:15:23 -07:00
swift-ci
3e085fca4b
Merge pull request #7946 from DougGregor/all-conformance-constraint-sources
2017-03-18 01:30:27 -07:00
David Hart
ecdcac5aa2
Resolve crasher 28704 ( #8158 )
...
This crash happens because shouldAddSelfFixit (a check for the expected_self_before_reference diagnotic) performs name lookup inside the parser, which causes a search for extensions, which triggers the mangler, which can get confused if we are in an unfinished declaration (a PatternBindingInitilizer in this case).
A cleaner fix would be to move that logic inside Sema, but it would require much more refactoring that I don’t feel comfortable doing. Instead, this band-aid checks if the innermost type is inside a local context. If that’s the case, we can ignore the search for extensions.
2017-03-17 18:43:23 -07:00
swift-ci
242a177e73
Merge pull request #8093 from hartbit/fix-crasher
2017-03-17 13:19:12 -07:00
Doug Gregor
87dab47d5d
[HACK] XFAIL a crasher that was passing due to bogus canonicalization
...
This test was passing for the wrong reasons before. We need to
correctly model cases where a nested type of an abstract conformance is
in fact concrete and, therefore, has concrete conformances. XFAIL for now.
2017-03-16 23:16:32 -10:00
practicalswift
b3a1f3f6d4
[gardening] Remove "// REQUIRES: asserts" from fixed crasher
2017-03-17 08:08:12 +01:00
David Hart
732ae1b2c2
Removed requires assert
2017-03-17 07:37:52 +01:00
Michael Gottesman
96a087ecdc
Update requires line in bug-reducer.test-sh to work around master-next not liking rdar:// in requires lines.
2017-03-16 14:55:23 -07:00
eeckstein
e78445b437
Merge pull request #8126 from eeckstein/newmangling
...
Mangling: enable new mangling for symbols
2017-03-16 14:19:00 -07:00
swift-ci
b7db464041
Merge pull request #8148 from practicalswift/swiftc-28723-unreachable-executed-at-swift-lib-sema-csdiag-cpp-4012
2017-03-16 12:29:59 -07:00
Erik Eckstein
2a55b26e46
Mangling: enable new mangling for symbols
2017-03-16 12:04:08 -07:00
Rintaro Ishizaki
f4f5d1d063
Mark a crasher fixed ( #8150 )
...
28722-swift-genericsignaturebuilder-resolvearchetype-swift-type.swift
has been fixed by c2224f3 #8112
2017-03-17 00:50:54 +09:00
Rintaro Ishizaki
d50c88767b
Disable non-deterministic crasher ( #8149 )
2017-03-16 22:56:51 +09:00
practicalswift
71845c060b
[swiftc (27 vs. 5507)] Add crasher in swift::constraints::ConstraintSystem::diagnoseFailureForExpr(...)
...
Add test case for crash triggered in `swift::constraints::ConstraintSystem::diagnoseFailureForExpr(...)`.
Current number of unresolved compiler crashers: 27 (5507 resolved)
Stack trace:
```
0 0x000000000394f3c8 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x394f3c8)
1 0x000000000394fb06 SignalHandler(int) (/path/to/swift/bin/swift+0x394fb06)
2 0x00007f1eb6c813e0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x113e0)
3 0x00007f1eb51a7428 gsignal /build/glibc-Qz8a69/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007f1eb51a902a abort /build/glibc-Qz8a69/glibc-2.23/stdlib/abort.c:91:0
5 0x00000000038eb86d llvm::llvm_unreachable_internal(char const*, char const*, unsigned int) (/path/to/swift/bin/swift+0x38eb86d)
6 0x000000000133bf29 (anonymous namespace)::FailureDiagnosis::diagnoseContextualConversionError() (/path/to/swift/bin/swift+0x133bf29)
7 0x00000000013395a8 swift::constraints::ConstraintSystem::diagnoseFailureForExpr(swift::Expr*) (/path/to/swift/bin/swift+0x13395a8)
8 0x00000000013402f2 swift::constraints::ConstraintSystem::salvage(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::Expr*) (/path/to/swift/bin/swift+0x13402f2)
9 0x000000000127b718 swift::TypeChecker::solveForExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem&, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) (/path/to/swift/bin/swift+0x127b718)
10 0x000000000127ed46 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0x127ed46)
11 0x000000000132430c getCallerDefaultArg(swift::constraints::ConstraintSystem&, swift::DeclContext*, swift::SourceLoc, swift::ConcreteDeclRef&, unsigned int) (/path/to/swift/bin/swift+0x132430c)
12 0x000000000133269f (anonymous namespace)::ExprRewriter::coerceCallArguments(swift::Expr*, swift::Type, llvm::PointerUnion<swift::ApplyExpr*, llvm::PointerEmbeddedInt<unsigned int, 2> >, llvm::ArrayRef<swift::Identifier>, bool, swift::constraints::ConstraintLocatorBuilder) (/path/to/swift/bin/swift+0x133269f)
13 0x000000000131e5a8 (anonymous namespace)::ExprRewriter::finishApply(swift::ApplyExpr*, swift::Type, swift::constraints::ConstraintLocatorBuilder) (/path/to/swift/bin/swift+0x131e5a8)
14 0x0000000001334053 (anonymous namespace)::ExprRewriter::visitApplyExpr(swift::ApplyExpr*) (/path/to/swift/bin/swift+0x1334053)
15 0x000000000131b074 (anonymous namespace)::ExprRewriter::walkToExprPost(swift::Expr*) (/path/to/swift/bin/swift+0x131b074)
16 0x0000000001320671 (anonymous namespace)::ExprWalker::walkToExprPost(swift::Expr*) (/path/to/swift/bin/swift+0x1320671)
17 0x000000000143989c swift::Expr::walk(swift::ASTWalker&) (/path/to/swift/bin/swift+0x143989c)
18 0x0000000001317ecf swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::Expr*, swift::Type, bool, bool, bool) (/path/to/swift/bin/swift+0x1317ecf)
19 0x000000000127edd0 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0x127edd0)
20 0x00000000012fe305 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x12fe305)
21 0x00000000012fd156 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) (/path/to/swift/bin/swift+0x12fd156)
22 0x0000000001312630 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1312630)
23 0x0000000000f86726 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xf86726)
24 0x00000000004a7016 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a7016)
25 0x0000000000465137 main (/path/to/swift/bin/swift+0x465137)
26 0x00007f1eb5192830 __libc_start_main /build/glibc-Qz8a69/glibc-2.23/csu/../csu/libc-start.c:325:0
27 0x00000000004627d9 _start (/path/to/swift/bin/swift+0x4627d9)
```
2017-03-16 10:48:51 +01:00
practicalswift
2ba6e8eab8
[swiftc (26 vs. 5507)] Add crasher in swift::GenericParamKey::findIndexIn
...
Add test case for crash triggered in `swift::GenericParamKey::findIndexIn`.
Current number of unresolved compiler crashers: 26 (5507 resolved)
Stack trace:
```
0 0x000000000394f3c8 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x394f3c8)
1 0x000000000394fb06 SignalHandler(int) (/path/to/swift/bin/swift+0x394fb06)
2 0x00007f2a3dba23e0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x113e0)
3 0x000000000148104d swift::GenericParamKey::findIndexIn(llvm::ArrayRef<swift::GenericTypeParamType*>) const (/path/to/swift/bin/swift+0x148104d)
4 0x000000000148b72e swift::GenericSignatureBuilder::resolveArchetype(swift::Type) (/path/to/swift/bin/swift+0x148b72e)
5 0x000000000147e31a swift::GenericEnvironment::QueryInterfaceTypeSubstitutions::operator()(swift::SubstitutableType*) const (/path/to/swift/bin/swift+0x147e31a)
6 0x00000000014e541d llvm::Optional<swift::Type> llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>::callback_fn<substType(swift::Type, llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::OptionSet<swift::SubstFlags, unsigned int>)::$_16>(long, swift::TypeBase*) (/path/to/swift/bin/swift+0x14e541d)
7 0x00000000014e1e79 swift::Type::transformRec(llvm::function_ref<llvm::Optional<swift::Type> (swift::TypeBase*)>) const (/path/to/swift/bin/swift+0x14e1e79)
8 0x00000000014e0693 swift::Type::subst(llvm::function_ref<swift::Type (swift::SubstitutableType*)>, llvm::function_ref<llvm::Optional<swift::ProtocolConformanceRef> (swift::CanType, swift::Type, swift::ProtocolType*)>, swift::OptionSet<swift::SubstFlags, unsigned int>) const (/path/to/swift/bin/swift+0x14e0693)
9 0x000000000147dfe4 swift::GenericEnvironment::mapTypeIntoContext(swift::GenericEnvironment*, swift::Type) (/path/to/swift/bin/swift+0x147dfe4)
10 0x000000000146459f swift::ParamDecl::createSelf(swift::SourceLoc, swift::DeclContext*, bool, bool) (/path/to/swift/bin/swift+0x146459f)
11 0x00000000014c5443 swift::ParameterList::createSelf(swift::SourceLoc, swift::DeclContext*, bool, bool) (/path/to/swift/bin/swift+0x14c5443)
12 0x00000000013709e0 createGetterPrototype(swift::AbstractStorageDecl*, swift::TypeChecker&) (/path/to/swift/bin/swift+0x13709e0)
13 0x000000000136a33c addTrivialAccessorsToStorage(swift::AbstractStorageDecl*, swift::TypeChecker&) (/path/to/swift/bin/swift+0x136a33c)
14 0x000000000137048b swift::maybeAddAccessorsToVariable(swift::VarDecl*, swift::TypeChecker&) (/path/to/swift/bin/swift+0x137048b)
15 0x0000000001295d9f swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x1295d9f)
16 0x00000000012a95a3 std::_Function_handler<void (swift::VarDecl*), (anonymous namespace)::DeclChecker::visitBoundVars(swift::Pattern*)::{lambda(swift::VarDecl*)#1}>::_M_invoke(std::_Any_data const&, swift::VarDecl*&&) (/path/to/swift/bin/swift+0x12a95a3)
17 0x00000000014c66bf swift::Pattern::forEachVariable(std::function<void (swift::VarDecl*)> const&) const (/path/to/swift/bin/swift+0x14c66bf)
18 0x0000000001293462 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x1293462)
19 0x00000000012a263b (anonymous namespace)::DeclChecker::visitExtensionDecl(swift::ExtensionDecl*) (/path/to/swift/bin/swift+0x12a263b)
20 0x000000000129326b (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x129326b)
21 0x00000000012931a3 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x12931a3)
22 0x00000000013125b5 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x13125b5)
23 0x0000000000f86726 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xf86726)
24 0x00000000004a7016 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a7016)
25 0x0000000000465137 main (/path/to/swift/bin/swift+0x465137)
26 0x00007f2a3c0b3830 __libc_start_main /build/glibc-Qz8a69/glibc-2.23/csu/../csu/libc-start.c:325:0
27 0x00000000004627d9 _start (/path/to/swift/bin/swift+0x4627d9)
```
2017-03-16 08:35:18 +01:00
practicalswift
bdc72aabb4
Merge pull request #8133 from practicalswift/swiftc-28721-unreachable-executed-at-swift-lib-ast-astmangler-cpp-451
...
[swiftc (25 vs. 5507)] Add crasher in swift::NewMangling::ASTMangler::appendType(...)
2017-03-16 08:35:02 +01:00
Robert Widmann
703f129bdc
Merge pull request #8087 from CodaFi/electoral-college
...
[SR-4240] Remove erroneous drop(while:) optimization
2017-03-15 22:18:58 -04:00
practicalswift
2144bac834
[swiftc (25 vs. 5507)] Add crasher in swift::NewMangling::ASTMangler::appendType(...)
...
Add test case for crash triggered in `swift::NewMangling::ASTMangler::appendType(...)`.
Current number of unresolved compiler crashers: 25 (5507 resolved)
Stack trace:
```
0 0x000000000394bcd8 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/path/to/swift/bin/swift+0x394bcd8)
1 0x000000000394c416 SignalHandler(int) (/path/to/swift/bin/swift+0x394c416)
2 0x00007fe2009d83e0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x113e0)
3 0x00007fe1feefe428 gsignal /build/glibc-Qz8a69/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0
4 0x00007fe1fef0002a abort /build/glibc-Qz8a69/glibc-2.23/stdlib/abort.c:91:0
5 0x00000000038e83fd llvm::llvm_unreachable_internal(char const*, char const*, unsigned int) (/path/to/swift/bin/swift+0x38e83fd)
6 0x00000000013fa59f swift::NewMangling::ASTMangler::appendType(swift::Type) (/path/to/swift/bin/swift+0x13fa59f)
7 0x00000000013fd444 swift::NewMangling::ASTMangler::appendFunctionSignature(swift::AnyFunctionType*) (/path/to/swift/bin/swift+0x13fd444)
8 0x00000000013fc949 swift::NewMangling::ASTMangler::appendFunctionType(swift::AnyFunctionType*) (/path/to/swift/bin/swift+0x13fc949)
9 0x00000000013fe1d8 swift::NewMangling::ASTMangler::appendClosureComponents(swift::Type, unsigned int, bool, swift::DeclContext const*, swift::DeclContext const*) (/path/to/swift/bin/swift+0x13fe1d8)
10 0x00000000013fe1a2 swift::NewMangling::ASTMangler::appendClosureComponents(swift::Type, unsigned int, bool, swift::DeclContext const*, swift::DeclContext const*) (/path/to/swift/bin/swift+0x13fe1a2)
11 0x00000000013f7d4f swift::NewMangling::ASTMangler::appendNominalType(swift::NominalTypeDecl const*) (/path/to/swift/bin/swift+0x13f7d4f)
12 0x00000000013f7cf1 swift::NewMangling::ASTMangler::mangleNominalType[abi:cxx11](swift::NominalTypeDecl const*) (/path/to/swift/bin/swift+0x13f7cf1)
13 0x000000000106f72e swift::ModuleFile::loadExtensions(swift::NominalTypeDecl*) (/path/to/swift/bin/swift+0x106f72e)
14 0x00000000010cd671 swift::SerializedModuleLoader::loadExtensions(swift::NominalTypeDecl*, unsigned int) (/path/to/swift/bin/swift+0x10cd671)
15 0x00000000013ba7a0 swift::ASTContext::loadExtensions(swift::NominalTypeDecl*, unsigned int) (/path/to/swift/bin/swift+0x13ba7a0)
16 0x000000000145bec5 swift::NominalTypeDecl::getExtensions() (/path/to/swift/bin/swift+0x145bec5)
17 0x00000000014c08f4 swift::NominalTypeDecl::lookupDirect(swift::DeclName, bool) (/path/to/swift/bin/swift+0x14c08f4)
18 0x0000000001292f9d (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x1292f9d)
19 0x0000000001292803 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x1292803)
20 0x00000000013714c8 swift::createImplicitConstructor(swift::TypeChecker&, swift::NominalTypeDecl*, swift::ImplicitConstructorKind) (/path/to/swift/bin/swift+0x13714c8)
21 0x000000000129a8bf swift::TypeChecker::defineDefaultConstructor(swift::NominalTypeDecl*) (/path/to/swift/bin/swift+0x129a8bf)
22 0x000000000129978e swift::TypeChecker::addImplicitConstructors(swift::NominalTypeDecl*) (/path/to/swift/bin/swift+0x129978e)
23 0x00000000012a223e (anonymous namespace)::DeclChecker::visitStructDecl(swift::StructDecl*) (/path/to/swift/bin/swift+0x12a223e)
24 0x00000000012929f7 (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12929f7)
25 0x00000000012a1c9b (anonymous namespace)::DeclChecker::visitExtensionDecl(swift::ExtensionDecl*) (/path/to/swift/bin/swift+0x12a1c9b)
26 0x00000000012928cb (anonymous namespace)::DeclChecker::visit(swift::Decl*) (/path/to/swift/bin/swift+0x12928cb)
27 0x0000000001292803 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) (/path/to/swift/bin/swift+0x1292803)
28 0x00000000012fd9f6 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x12fd9f6)
29 0x00000000012fc6eb swift::TypeChecker::typeCheckClosureBody(swift::ClosureExpr*) (/path/to/swift/bin/swift+0x12fc6eb)
30 0x00000000013177bc swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::Expr*, swift::Type, bool, bool, bool) (/path/to/swift/bin/swift+0x13177bc)
31 0x000000000127e430 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0x127e430)
32 0x0000000001282091 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*, bool) (/path/to/swift/bin/swift+0x1282091)
33 0x0000000001282256 swift::TypeChecker::typeCheckPatternBinding(swift::PatternBindingDecl*, unsigned int, bool) (/path/to/swift/bin/swift+0x1282256)
34 0x0000000001298438 validatePatternBindingEntries(swift::TypeChecker&, swift::PatternBindingDecl*) (/path/to/swift/bin/swift+0x1298438)
35 0x00000000012948b9 swift::TypeChecker::validateDecl(swift::ValueDecl*) (/path/to/swift/bin/swift+0x12948b9)
36 0x000000000127935c swift::TypeChecker::resolveDeclRefExpr(swift::UnresolvedDeclRefExpr*, swift::DeclContext*) (/path/to/swift/bin/swift+0x127935c)
37 0x0000000001285ee2 (anonymous namespace)::PreCheckExpression::walkToExprPre(swift::Expr*) (/path/to/swift/bin/swift+0x1285ee2)
38 0x000000000143b830 (anonymous namespace)::Traversal::visitApplyExpr(swift::ApplyExpr*) (/path/to/swift/bin/swift+0x143b830)
39 0x0000000001439822 swift::ASTVisitor<(anonymous namespace)::Traversal, swift::Expr*, swift::Stmt*, bool, swift::Pattern*, bool, void>::visit(swift::Expr*) (/path/to/swift/bin/swift+0x1439822)
40 0x00000000014383ab swift::Expr::walk(swift::ASTWalker&) (/path/to/swift/bin/swift+0x14383ab)
41 0x000000000127ac75 swift::TypeChecker::solveForExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem&, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) (/path/to/swift/bin/swift+0x127ac75)
42 0x000000000127e8c6 swift::TypeChecker::getTypeOfExpressionWithoutApplying(swift::Expr*&, swift::DeclContext*, swift::ConcreteDeclRef&, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*) (/path/to/swift/bin/swift+0x127e8c6)
43 0x000000000135cb33 (anonymous namespace)::FailureDiagnosis::diagnoseAmbiguousMultiStatementClosure(swift::ClosureExpr*) (/path/to/swift/bin/swift+0x135cb33)
44 0x000000000133e2c5 (anonymous namespace)::FailureDiagnosis::diagnoseAmbiguity(swift::Expr*) (/path/to/swift/bin/swift+0x133e2c5)
45 0x0000000001338d17 swift::constraints::ConstraintSystem::diagnoseFailureForExpr(swift::Expr*) (/path/to/swift/bin/swift+0x1338d17)
46 0x000000000133fa42 swift::constraints::ConstraintSystem::salvage(llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::Expr*) (/path/to/swift/bin/swift+0x133fa42)
47 0x000000000127ad78 swift::TypeChecker::solveForExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem&, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) (/path/to/swift/bin/swift+0x127ad78)
48 0x000000000127e3a6 swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) (/path/to/swift/bin/swift+0x127e3a6)
49 0x00000000012fda55 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) (/path/to/swift/bin/swift+0x12fda55)
50 0x00000000012fc8a6 swift::TypeChecker::typeCheckTopLevelCodeDecl(swift::TopLevelCodeDecl*) (/path/to/swift/bin/swift+0x12fc8a6)
51 0x0000000001311d80 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) (/path/to/swift/bin/swift+0x1311d80)
52 0x0000000000f84ee6 swift::CompilerInstance::performSema() (/path/to/swift/bin/swift+0xf84ee6)
53 0x00000000004a7136 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/path/to/swift/bin/swift+0x4a7136)
54 0x0000000000465257 main (/path/to/swift/bin/swift+0x465257)
55 0x00007fe1feee9830 __libc_start_main /build/glibc-Qz8a69/glibc-2.23/csu/../csu/libc-start.c:325:0
56 0x00000000004628f9 _start (/path/to/swift/bin/swift+0x4628f9)
```
2017-03-16 00:39:54 +01:00
swift-ci
34ed6b0347
Merge pull request #8067 from practicalswift/swiftc-28720-swift-typebase-getcanonicaltype
2017-03-15 16:38:57 -07:00
Robert Widmann
81968e21ff
Remove erroneous drop(while:) optimization
...
Calling drop(while: ) after prefix() on a pure Sequence loses the
prefix, because in the internal drop(while: ) override grabs the
underlying base iterator from _PrefixSequence and wraps it in a
_DropWhileSequence.
2017-03-15 17:01:13 -04:00
practicalswift
0a187da3c9
Mark as fixed.
2017-03-15 14:39:44 +01:00
David Hart
ba13a894c0
Fixed crasher 28707
...
The @_versioned accessibility check is done against the formal access. But the diagnostics is printed with getAccessForDiagnostics. In cases where the effective access is internal, the diagnostics will crash. Example:
```
class A { // implicitly internal
@_versioned public var a: Int = 0 // explicity public
}
```
2017-03-15 07:38:53 +01:00
John McCall
f3bfc777be
Merge pull request #8072 from rjmccall/irgen-conformance-access-paths
...
Use conformance access paths in IRGen
2017-03-14 11:01:42 -04:00
John McCall
22382f7e15
Reimplement associated conformance IRGen using Doug's conformance
...
access path work.
Having done so, simplify archetype TypeInfos by removing a now-
unnecessary layer of abstraction.
2017-03-14 03:48:10 -04:00
Slava Pestov
1248f8054e
Sema: Fix another compiler_crasher regression from associated type where clause work
...
If a protocol's signature is not valid yet, don't attempt a
conformance check.
2017-03-14 00:10:44 -07:00