[swift-dev] Clang 3.9.0
Mark Lacey
mark_lacey at apple.com
Tue Nov 29 12:33:50 CST 2016
> On Nov 29, 2016, at 8:48 AM, Ryan Lovelett via swift-dev <swift-dev at swift.org> wrote:
>
> Is it known/expected that Swift will not build with Clang 3.9.0? My
> personal build-bot recently updated its upstream dependency from Clang
> 3.8.1 to Clang 3.9.0 and since then it will not build the
> swift-3.0.1-RELEASE. It seems that others have noticed this
> (https://gist.github.com/eyeplum/94627aac7b4fa609108fd24b960a8805) but I
> don't know if it has been reported or not.
>
> The actual build error looks like this:
>
> swift: /build/swiftc/src/llvm/include/llvm/Support/Casting.h:95: static
> bool llvm::isa_impl_cl<swift::InOutExpr, const swift::Expr
> *>::doit(const From *) [To = swift::InOutExpr, From = const swift::Expr
> *]: Assertion `Val && "isa<> used on a null pointer"' failed.
> 0 swift 0x0000000003316df5
> llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 37
> 1 swift 0x00000000033152f6 llvm::sys::RunSignalHandlers() +
> 54
> 2 swift 0x00000000033174ba
> 3 libpthread.so.0 0x00007f8fd532d080
> 4 libc.so.6 0x00007f8fd3a4204f gsignal + 207
> 5 libc.so.6 0x00007f8fd3a4347a abort + 362
> 6 libc.so.6 0x00007f8fd3a3aea7
> 7 libc.so.6 0x00007f8fd3a3af52
> 8 swift 0x0000000000ffea91
> 9 swift 0x0000000001093a5b
> 10 swift 0x0000000001091d22
> 11 swift 0x0000000001093bb0
> 12 swift 0x0000000001091d4c
> 13 swift 0x0000000001093a6f
> 14 swift 0x0000000001091d22
> 15 swift 0x000000000109239e
> 16 swift 0x00000000010911de
> swift::Expr::walk(swift::ASTWalker&) + 46
> 17 swift 0x0000000000ff5588
> swift::performSyntacticExprDiagnostics(swift::TypeChecker&, swift::Expr
> const*, swift::DeclContext const*, bool) + 680
> 18 swift 0x0000000000ecac4f
> swift::TypeChecker::typeCheckExpression(swift::Expr*&,
> swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose,
> swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>,
> swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) +
> 1023
> 19 swift 0x0000000000f48e1f
> 20 swift 0x0000000000f47a84
> 21 swift 0x0000000000f46d85
> 22 swift 0x0000000000f4602a
> swift::TypeChecker::typeCheckFunctionBodyUntil(swift::FuncDecl*,
> swift::SourceLoc) + 330
> 23 swift 0x0000000000f45e89
> swift::TypeChecker::typeCheckAbstractFunctionBodyUntil(swift::AbstractFunctionDecl*,
> swift::SourceLoc) + 25
> 24 swift 0x0000000000f46a10
> swift::TypeChecker::typeCheckAbstractFunctionBody(swift::AbstractFunctionDecl*)
> + 176
> 25 swift 0x0000000000f02a97
> 26 swift 0x0000000000f035d1
> swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&,
> swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int,
> unsigned int) + 1249
> 27 swift 0x0000000000c9032b
> swift::CompilerInstance::performSema() + 3723
> 28 swift 0x00000000007df2f8
> 29 swift 0x00000000007de21c
> swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*,
> swift::FrontendObserver*) + 2572
> 30 swift 0x00000000007a67af main + 3423
> 31 libc.so.6 0x00007f8fd3a2f291 __libc_start_main + 241
> 32 swift 0x00000000007a3cba _start + 42
> Stack dump:
> 0. Program arguments:
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/bin/swift
> -frontend -c /build/swiftc/src/swift/stdlib/public/core/Algorithm.swift
> /build/swiftc/src/swift/stdlib/public/core/ArrayBody.swift
> /build/swiftc/src/swift/stdlib/public/core/ArrayBuffer.swift
> /build/swiftc/src/swift/stdlib/public/core/ArrayBufferProtocol.swift
> /build/swiftc/src/swift/stdlib/public/core/ArrayCast.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/Arrays.swift
> /build/swiftc/src/swift/stdlib/public/core/ArrayType.swift
> /build/swiftc/src/swift/stdlib/public/core/Assert.swift
> /build/swiftc/src/swift/stdlib/public/core/AssertCommon.swift
> /build/swiftc/src/swift/stdlib/public/core/BidirectionalCollection.swift
> /build/swiftc/src/swift/stdlib/public/core/Bool.swift
> /build/swiftc/src/swift/stdlib/public/core/BridgeObjectiveC.swift
> /build/swiftc/src/swift/stdlib/public/core/BridgeStorage.swift
> /build/swiftc/src/swift/stdlib/public/core/Builtin.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/BuiltinMath.swift
> /build/swiftc/src/swift/stdlib/public/core/Character.swift
> /build/swiftc/src/swift/stdlib/public/core/CocoaArray.swift
> /build/swiftc/src/swift/stdlib/public/core/Collection.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/CollectionAlgorithms.swift
> /build/swiftc/src/swift/stdlib/public/core/Comparable.swift
> /build/swiftc/src/swift/stdlib/public/core/CompilerProtocols.swift
> /build/swiftc/src/swift/stdlib/public/core/ClosedRange.swift
> /build/swiftc/src/swift/stdlib/public/core/ContiguousArrayBuffer.swift
> /build/swiftc/src/swift/stdlib/public/core/CString.swift
> /build/swiftc/src/swift/stdlib/public/core/CTypes.swift
> /build/swiftc/src/swift/stdlib/public/core/DebuggerSupport.swift
> /build/swiftc/src/swift/stdlib/public/core/EmptyCollection.swift
> /build/swiftc/src/swift/stdlib/public/core/Equatable.swift
> /build/swiftc/src/swift/stdlib/public/core/ErrorType.swift
> /build/swiftc/src/swift/stdlib/public/core/Existential.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/Filter.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/FixedPoint.swift
> /build/swiftc/src/swift/stdlib/public/core/FlatMap.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/Flatten.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/FloatingPoint.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/FloatingPointParsing.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/FloatingPointTypes.swift
> /build/swiftc/src/swift/stdlib/public/core/Hashable.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/HashedCollections.swift
> /build/swiftc/src/swift/stdlib/public/core/AnyHashable.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/HashedCollectionsAnyHashableExtensions.swift
> /build/swiftc/src/swift/stdlib/public/core/Hashing.swift
> /build/swiftc/src/swift/stdlib/public/core/HeapBuffer.swift
> /build/swiftc/src/swift/stdlib/public/core/ImplicitlyUnwrappedOptional.swift
> /build/swiftc/src/swift/stdlib/public/core/Index.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/Indices.swift
> /build/swiftc/src/swift/stdlib/public/core/InputStream.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/IntegerArithmetic.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/IntegerParsing.swift
> /build/swiftc/src/swift/stdlib/public/core/Join.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/LazyCollection.swift
> /build/swiftc/src/swift/stdlib/public/core/LazySequence.swift
> /build/swiftc/src/swift/stdlib/public/core/LifetimeManager.swift
> /build/swiftc/src/swift/stdlib/public/core/ManagedBuffer.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/Map.swift
> /build/swiftc/src/swift/stdlib/public/core/MemoryLayout.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/Mirrors.swift
> /build/swiftc/src/swift/stdlib/public/core/Misc.swift
> /build/swiftc/src/swift/stdlib/public/core/MutableCollection.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/NewtypeWrapper.swift
> /build/swiftc/src/swift/stdlib/public/core/ObjCMirrors.swift
> /build/swiftc/src/swift/stdlib/public/core/Optional.swift
> /build/swiftc/src/swift/stdlib/public/core/OptionSet.swift
> /build/swiftc/src/swift/stdlib/public/core/OutputStream.swift
> /build/swiftc/src/swift/stdlib/public/core/Pointer.swift
> /build/swiftc/src/swift/stdlib/public/core/Policy.swift
> /build/swiftc/src/swift/stdlib/public/core/Print.swift
> /build/swiftc/src/swift/stdlib/public/core/RandomAccessCollection.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/Range.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/RangeReplaceableCollection.swift
> /build/swiftc/src/swift/stdlib/public/core/Reflection.swift
> /build/swiftc/src/swift/stdlib/public/core/Repeat.swift
> /build/swiftc/src/swift/stdlib/public/core/REPL.swift
> /build/swiftc/src/swift/stdlib/public/core/Reverse.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/Runtime.swift
> /build/swiftc/src/swift/stdlib/public/core/Sequence.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/SequenceAlgorithms.swift
> /build/swiftc/src/swift/stdlib/public/core/SequenceWrapper.swift
> /build/swiftc/src/swift/stdlib/public/core/SetAlgebra.swift
> /build/swiftc/src/swift/stdlib/public/core/ShadowProtocols.swift
> /build/swiftc/src/swift/stdlib/public/core/Shims.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/Slice.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/Sort.swift
> /build/swiftc/src/swift/stdlib/public/core/StaticString.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/Stride.swift
> /build/swiftc/src/swift/stdlib/public/core/StringCharacterView.swift
> /build/swiftc/src/swift/stdlib/public/core/String.swift
> /build/swiftc/src/swift/stdlib/public/core/StringBridge.swift
> /build/swiftc/src/swift/stdlib/public/core/StringBuffer.swift
> /build/swiftc/src/swift/stdlib/public/core/StringComparable.swift
> /build/swiftc/src/swift/stdlib/public/core/StringCore.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/StringInterpolation.swift
> /build/swiftc/src/swift/stdlib/public/core/StringLegacy.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/StringRangeReplaceableCollection.swift
> /build/swiftc/src/swift/stdlib/public/core/StringIndexConversions.swift
> /build/swiftc/src/swift/stdlib/public/core/StringUnicodeScalarView.swift
> /build/swiftc/src/swift/stdlib/public/core/StringUTF16.swift
> /build/swiftc/src/swift/stdlib/public/core/StringUTF8.swift
> /build/swiftc/src/swift/stdlib/public/core/SwiftNativeNSArray.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/UnavailableStringAPIs.swift
> /build/swiftc/src/swift/stdlib/public/core/Unicode.swift
> /build/swiftc/src/swift/stdlib/public/core/UnicodeScalar.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/UnicodeTrie.swift
> /build/swiftc/src/swift/stdlib/public/core/Unmanaged.swift
> /build/swiftc/src/swift/stdlib/public/core/UnsafeBitMap.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/UnsafeBufferPointer.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/UnsafeRawBufferPointer.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/UnsafePointer.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/UnsafeRawPointer.swift
> /build/swiftc/src/swift/stdlib/public/core/WriteBackMutableSlice.swift
> /build/swiftc/src/swift/stdlib/public/core/Availability.swift
> /build/swiftc/src/swift/stdlib/public/core/CollectionOfOne.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/ExistentialCollection.swift
> /build/swiftc/src/swift/stdlib/public/core/Mirror.swift
> /build/swiftc/src/swift/stdlib/public/core/CommandLine.swift
> /build/swiftc/src/swift/stdlib/public/core/SliceBuffer.swift
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/8/Tuple.swift
> /build/swiftc/src/swift/stdlib/public/core/UnfoldSequence.swift
> /build/swiftc/src/swift/stdlib/public/core/VarArgs.swift
> /build/swiftc/src/swift/stdlib/public/core/Zip.swift
> -disable-objc-attr-requires-foundation-module -target
> x86_64-unknown-linux-gnu -disable-objc-interop -sdk / -I
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/./lib/swift/linux/x86_64
> -module-cache-path
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/./module-cache
> -module-link-name swiftCore -nostdimport -parse-stdlib -resource-dir
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/./lib/swift
> -group-info-path
> /build/swiftc/src/swift/stdlib/public/core/GroupInfo.json
> -sil-serialize-all -Xcc -D__SWIFT_CURRENT_DYLIB=swiftCore
> -emit-module-doc-path
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/./lib/swift/linux/x86_64/Swift.swiftdoc
> -O -parse-as-library -module-name Swift -emit-module-path
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/./lib/swift/linux/x86_64/Swift.swiftmodule
> -o
> /build/swiftc/src/build/buildbot_linux/swift-linux-x86_64/stdlib/public/core/linux/x86_64/Swift.o
> 1. While type-checking 'min' at
> /build/swiftc/src/swift/stdlib/public/core/Algorithm.swift:19:8
> 2. While type-checking expression at
> [/build/swiftc/src/swift/stdlib/public/core/Algorithm.swift:24:10 -
> line:24:22] RangeText="y < x ? y : x"
>
> I've tried updating the ternary operator into an if/else and that works.
> Well that is until it hits the next ternary.
You’re hitting issues in the Swift source that were exposed by the new clang and have since been fixed on master but are not fixed in the sources that are tagged swift-3.0.1-RELEASE.
Is there a reason you need to build from swift-3.0.1-RELEASE?
I think (but am not certain) these fixes are in swift-3.1-branch. Most if not all of the fixes mention problems with ArrayRef or problems building with a newer clang in the commit message. Unfortunately I don’t have a list of all the commits handy.
Mark
> _______________________________________________
> swift-dev mailing list
> swift-dev at swift.org
> https://lists.swift.org/mailman/listinfo/swift-dev
More information about the swift-dev
mailing list