> On May 2, 2017, at 12:57 PM, Joe Groff <jgr...@apple.com> wrote: > > >> On May 2, 2017, at 9:36 AM, John McCall <rjmcc...@apple.com> wrote: >> >>> On May 2, 2017, at 12:02 PM, Joe Groff via swift-dev <swift-dev@swift.org> >>> wrote: >>> After updating clang recently, I'm seeing these warnings: >>> >>> /Users/jgroff/src/s/swift/stdlib/public/stubs/GlobalObjects.cpp:40:39: >>> warning: declaration requires a global constructor [-Wglobal-constructors] >>> swift::_SwiftEmptyArrayStorage swift::_swiftEmptyArrayStorage = { >>> ^ ~ >>> /Users/jgroff/src/s/swift/stdlib/public/stubs/GlobalObjects.cpp:55:44: >>> warning: declaration requires a global constructor [-Wglobal-constructors] >>> swift::_SwiftEmptyDictionaryStorage swift::_swiftEmptyDictionaryStorage = { >>> ^ ~ >>> /Users/jgroff/src/s/swift/stdlib/public/stubs/GlobalObjects.cpp:83:37: >>> warning: declaration requires a global constructor [-Wglobal-constructors] >>> swift::_SwiftEmptySetStorage swift::_swiftEmptySetStorage = { >>> ^ ~ >>> >>> Looking at the definitions of those objects, it isn't clear to me why they >>> would require global constructors. The types are POD, and their >>> initializers only contain pointers to other globals, which ought to be >>> resolvable by the linker. I also didn't see any recent change to the >>> runtime that seems like it would trigger a change here. Is this a clang bug? >> >> Can you tell from the object file whether a global constructor is needed? > > There is a global constructor, but it appears to be for another definition in > the same file (and which legitimately needs the global ctor).
Okay. If -Wglobal-constructors has regressed, that's a pretty serious bug that we should fix. John. _______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev