[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