> On May 2, 2017, at 10:07 AM, John McCall <rjmcc...@apple.com> wrote: > >> >> 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.
OK, I'll see if I can reproduce it and submit a Clang bug. -Joe _______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev