Re: [libcxx] r309474 - [libc++] Hoist extern template above first use

2017-08-18 Thread Hans Wennborg via cfe-commits
r311197. Thanks!

On Fri, Aug 18, 2017 at 1:43 PM, Eric Fiselier <e...@efcs.ca> wrote:
> I'm OK merging it then.
>
> On Fri, Aug 18, 2017 at 2:32 PM, Hans Wennborg <h...@chromium.org> wrote:
>>
>> Eric, sounds like there are no known issues with this, then. What do
>> you think about merging it?
>>
>> On Thu, Aug 17, 2017 at 5:30 PM, Petr Hosek <pho...@chromium.org> wrote:
>> > Confirmed, this changes is harmless. The failure we're seeing seems to
>> > have
>> > been introduced by Clang in r310983, sorry about the confusion.
>> >
>> > On Thu, Aug 17, 2017 at 4:35 PM Shoaib Meenai <smee...@fb.com> wrote:
>> >>
>> >> See Petr's follow-up. It doesn't look like this was the responsible
>> >> change.
>> >>
>> >>
>> >>
>> >> From: Eric Fiselier <e...@efcs.ca>
>> >> Date: Thursday, August 17, 2017 at 4:02 PM
>> >> To: Petr Hosek <pho...@chromium.org>
>> >> Cc: cfe-commits <cfe-commits@lists.llvm.org>, Marshall Clow
>> >> <mclow.li...@gmail.com>, Hans Wennborg <h...@chromium.org>, Shoaib
>> >> Meenai
>> >> <smee...@fb.com>
>> >> Subject: Re: [libcxx] r309474 - [libc++] Hoist extern template above
>> >> first
>> >> use
>> >>
>> >>
>> >>
>> >> probably shouldn't merge this then.
>> >>
>> >>
>> >>
>> >> On Aug 17, 2017 4:54 PM, "Petr Hosek via cfe-commits"
>> >> <cfe-commits@lists.llvm.org> wrote:
>> >>
>> >> This broke our build of WebKit with the following build failure:
>> >>
>> >>
>> >>
>> >> ../../buildtools/linux-x64/clang/bin/clang++ -MD -MF
>> >> obj/apps/web_view/web_view_test.test_webview.o.d
>> >> -DTOOLCHAIN_VERSION=4e89c701396412a50a901115ab4a2a09145f3777
>> >> -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -DCAIRO_HAS_FC_FONT=0
>> >> -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION
>> >> -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../.. -Igen
>> >> -I../../third_party/webkit/Source/WebKit/fuchsia
>> >> -I../../third_party/boringssl/include -Igen/third_party/cairo
>> >> -I../../third_party/curl/include -Iobj/third_party/curl
>> >> -Iobj/third_party/curl/curl -I../../third_party/freetype2/include
>> >> -I../../third_party/harfbuzz/src -I../../third_party/icu/source/common
>> >> -I../../third_party/icu/source/i18n -I../../third_party/libjpeg-turbo
>> >> -I../../third_party/libpng -I../../third_party/zlib
>> >> -I../../third_party/libxml2/include -I../../third_party/sqlite -g
>> >>
>> >> --sysroot=/usr/local/google/home/phosek/fuchsia/out/build-magenta/build-magenta-pc-x86-64/sysroot
>> >> --target=x86_64-fuchsia -no-canonical-prefixes
>> >> -fdebug-prefix-map=/usr/local/google/home/phosek/fuchsia=. -Wall
>> >> -Wextra
>> >> -Wno-unused-parameter -Wno-enum-compare-switch
>> >> -Wno-unused-lambda-capture
>> >> -Wno-user-defined-warnings -fvisibility=hidden -g -Og
>> >> -fsanitize=safe-stack
>> >> -fstack-protector-strong -Werror -Wno-error=deprecated-declarations
>> >> -fvisibility-inlines-hidden -std=c++14 -fno-exceptions -fno-rtti
>> >> -Wthread-safety -c ../../apps/web_view/test_webview.cpp -o
>> >> obj/apps/web_view/web_view_test.test_webview.o
>> >>
>> >> In file included from ../../apps/web_view/test_webview.cpp:1:
>> >>
>> >> In file included from
>> >> ../../third_party/webkit/Source/WebKit/fuchsia/WebView.h:28:
>> >>
>> >> In file included from
>> >>
>> >> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:484:
>> >>
>> >>
>> >>
>> >> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/type_traits:4323:23:
>> >> error: implicit instantiation of undefined template
>> >> 'std::__2::basic_string<char, std::__2::char_traits,
>> >> std::__2::allocator >'
>> >>
>> >>
>> >>
>> >> _LIBCPP_INVOKE_RETURN(_VSTD::forward<_Fp>(__f)(_VSTD::forward<_Args>(__args)...))
>> >>
>> >>   ^
>> >>
>> >>
>> >>
>> >> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/__

Re: [libcxx] r309474 - [libc++] Hoist extern template above first use

2017-08-18 Thread Eric Fiselier via cfe-commits
I'm OK merging it then.

On Fri, Aug 18, 2017 at 2:32 PM, Hans Wennborg <h...@chromium.org> wrote:

> Eric, sounds like there are no known issues with this, then. What do
> you think about merging it?
>
> On Thu, Aug 17, 2017 at 5:30 PM, Petr Hosek <pho...@chromium.org> wrote:
> > Confirmed, this changes is harmless. The failure we're seeing seems to
> have
> > been introduced by Clang in r310983, sorry about the confusion.
> >
> > On Thu, Aug 17, 2017 at 4:35 PM Shoaib Meenai <smee...@fb.com> wrote:
> >>
> >> See Petr's follow-up. It doesn't look like this was the responsible
> >> change.
> >>
> >>
> >>
> >> From: Eric Fiselier <e...@efcs.ca>
> >> Date: Thursday, August 17, 2017 at 4:02 PM
> >> To: Petr Hosek <pho...@chromium.org>
> >> Cc: cfe-commits <cfe-commits@lists.llvm.org>, Marshall Clow
> >> <mclow.li...@gmail.com>, Hans Wennborg <h...@chromium.org>, Shoaib
> Meenai
> >> <smee...@fb.com>
> >> Subject: Re: [libcxx] r309474 - [libc++] Hoist extern template above
> first
> >> use
> >>
> >>
> >>
> >> probably shouldn't merge this then.
> >>
> >>
> >>
> >> On Aug 17, 2017 4:54 PM, "Petr Hosek via cfe-commits"
> >> <cfe-commits@lists.llvm.org> wrote:
> >>
> >> This broke our build of WebKit with the following build failure:
> >>
> >>
> >>
> >> ../../buildtools/linux-x64/clang/bin/clang++ -MD -MF
> >> obj/apps/web_view/web_view_test.test_webview.o.d
> >> -DTOOLCHAIN_VERSION=4e89c701396412a50a901115ab4a2a09145f3777
> >> -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -DCAIRO_HAS_FC_FONT=0
> >> -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION
> >> -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../.. -Igen
> >> -I../../third_party/webkit/Source/WebKit/fuchsia
> >> -I../../third_party/boringssl/include -Igen/third_party/cairo
> >> -I../../third_party/curl/include -Iobj/third_party/curl
> >> -Iobj/third_party/curl/curl -I../../third_party/freetype2/include
> >> -I../../third_party/harfbuzz/src -I../../third_party/icu/source/common
> >> -I../../third_party/icu/source/i18n -I../../third_party/libjpeg-turbo
> >> -I../../third_party/libpng -I../../third_party/zlib
> >> -I../../third_party/libxml2/include -I../../third_party/sqlite -g
> >> --sysroot=/usr/local/google/home/phosek/fuchsia/out/build-
> magenta/build-magenta-pc-x86-64/sysroot
> >> --target=x86_64-fuchsia -no-canonical-prefixes
> >> -fdebug-prefix-map=/usr/local/google/home/phosek/fuchsia=. -Wall
> -Wextra
> >> -Wno-unused-parameter -Wno-enum-compare-switch
> -Wno-unused-lambda-capture
> >> -Wno-user-defined-warnings -fvisibility=hidden -g -Og
> -fsanitize=safe-stack
> >> -fstack-protector-strong -Werror -Wno-error=deprecated-declarations
> >> -fvisibility-inlines-hidden -std=c++14 -fno-exceptions -fno-rtti
> >> -Wthread-safety -c ../../apps/web_view/test_webview.cpp -o
> >> obj/apps/web_view/web_view_test.test_webview.o
> >>
> >> In file included from ../../apps/web_view/test_webview.cpp:1:
> >>
> >> In file included from
> >> ../../third_party/webkit/Source/WebKit/fuchsia/WebView.h:28:
> >>
> >> In file included from
> >> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/
> include/c++/v1/functional:484:
> >>
> >>
> >> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/
> include/c++/v1/type_traits:4323:23:
> >> error: implicit instantiation of undefined template
> >> 'std::__2::basic_string<char, std::__2::char_traits,
> >> std::__2::allocator >'
> >>
> >>
> >> _LIBCPP_INVOKE_RETURN(_VSTD::forward<_Fp>(__f)(_VSTD::
> forward<_Args>(__args)...))
> >>
> >>   ^
> >>
> >>
> >> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/
> include/c++/v1/__config:468:15:
> >> note: expanded from macro '_VSTD'
> >>
> >> #define _VSTD std::_LIBCPP_NAMESPACE
> >>
> >>   ^
> >>
> >>
> >> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/
> include/c++/v1/type_traits:4340:9:
> >> note: in instantiation of exception specification for
> >> '__invoke<std::__2::function<std::__2::basic_string<char,
> >> std::__2::char_traits, std::__2::allocator > (const
> >> std::__2::basic_string<char, std::

Re: [libcxx] r309474 - [libc++] Hoist extern template above first use

2017-08-18 Thread Hans Wennborg via cfe-commits
Eric, sounds like there are no known issues with this, then. What do
you think about merging it?

On Thu, Aug 17, 2017 at 5:30 PM, Petr Hosek <pho...@chromium.org> wrote:
> Confirmed, this changes is harmless. The failure we're seeing seems to have
> been introduced by Clang in r310983, sorry about the confusion.
>
> On Thu, Aug 17, 2017 at 4:35 PM Shoaib Meenai <smee...@fb.com> wrote:
>>
>> See Petr's follow-up. It doesn't look like this was the responsible
>> change.
>>
>>
>>
>> From: Eric Fiselier <e...@efcs.ca>
>> Date: Thursday, August 17, 2017 at 4:02 PM
>> To: Petr Hosek <pho...@chromium.org>
>> Cc: cfe-commits <cfe-commits@lists.llvm.org>, Marshall Clow
>> <mclow.li...@gmail.com>, Hans Wennborg <h...@chromium.org>, Shoaib Meenai
>> <smee...@fb.com>
>> Subject: Re: [libcxx] r309474 - [libc++] Hoist extern template above first
>> use
>>
>>
>>
>> probably shouldn't merge this then.
>>
>>
>>
>> On Aug 17, 2017 4:54 PM, "Petr Hosek via cfe-commits"
>> <cfe-commits@lists.llvm.org> wrote:
>>
>> This broke our build of WebKit with the following build failure:
>>
>>
>>
>> ../../buildtools/linux-x64/clang/bin/clang++ -MD -MF
>> obj/apps/web_view/web_view_test.test_webview.o.d
>> -DTOOLCHAIN_VERSION=4e89c701396412a50a901115ab4a2a09145f3777
>> -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -DCAIRO_HAS_FC_FONT=0
>> -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION
>> -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../.. -Igen
>> -I../../third_party/webkit/Source/WebKit/fuchsia
>> -I../../third_party/boringssl/include -Igen/third_party/cairo
>> -I../../third_party/curl/include -Iobj/third_party/curl
>> -Iobj/third_party/curl/curl -I../../third_party/freetype2/include
>> -I../../third_party/harfbuzz/src -I../../third_party/icu/source/common
>> -I../../third_party/icu/source/i18n -I../../third_party/libjpeg-turbo
>> -I../../third_party/libpng -I../../third_party/zlib
>> -I../../third_party/libxml2/include -I../../third_party/sqlite -g
>> --sysroot=/usr/local/google/home/phosek/fuchsia/out/build-magenta/build-magenta-pc-x86-64/sysroot
>> --target=x86_64-fuchsia -no-canonical-prefixes
>> -fdebug-prefix-map=/usr/local/google/home/phosek/fuchsia=. -Wall -Wextra
>> -Wno-unused-parameter -Wno-enum-compare-switch -Wno-unused-lambda-capture
>> -Wno-user-defined-warnings -fvisibility=hidden -g -Og -fsanitize=safe-stack
>> -fstack-protector-strong -Werror -Wno-error=deprecated-declarations
>> -fvisibility-inlines-hidden -std=c++14 -fno-exceptions -fno-rtti
>> -Wthread-safety -c ../../apps/web_view/test_webview.cpp -o
>> obj/apps/web_view/web_view_test.test_webview.o
>>
>> In file included from ../../apps/web_view/test_webview.cpp:1:
>>
>> In file included from
>> ../../third_party/webkit/Source/WebKit/fuchsia/WebView.h:28:
>>
>> In file included from
>> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:484:
>>
>>
>> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/type_traits:4323:23:
>> error: implicit instantiation of undefined template
>> 'std::__2::basic_string<char, std::__2::char_traits,
>> std::__2::allocator >'
>>
>>
>> _LIBCPP_INVOKE_RETURN(_VSTD::forward<_Fp>(__f)(_VSTD::forward<_Args>(__args)...))
>>
>>   ^
>>
>>
>> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/__config:468:15:
>> note: expanded from macro '_VSTD'
>>
>> #define _VSTD std::_LIBCPP_NAMESPACE
>>
>>   ^
>>
>>
>> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/type_traits:4340:9:
>> note: in instantiation of exception specification for
>> '__invoke<std::__2::function<std::__2::basic_string<char,
>> std::__2::char_traits, std::__2::allocator > (const
>> std::__2::basic_string<char, std::__2::char_traits,
>> std::__2::allocator > &)> &, const std::__2::basic_string<char,
>> std::__2::char_traits, std::__2::allocator > &>' requested here
>>
>> _VSTD::__invoke(_VSTD::declval<_Fp>(),
>> _VSTD::declval<_Args>()...));
>>
>> ^
>>
>>
>> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/__config:468:15:
>> note: expanded from macro '_VSTD'
>>
>> #define _VSTD std::_LIBCPP_NAMESPACE
>>
>>   ^
>>
>>
>> ../../buildtools/linux-x64/c

Re: [libcxx] r309474 - [libc++] Hoist extern template above first use

2017-08-17 Thread Petr Hosek via cfe-commits
Confirmed, this changes is harmless. The failure we're seeing seems to have
been introduced by Clang in r310983, sorry about the confusion.

On Thu, Aug 17, 2017 at 4:35 PM Shoaib Meenai <smee...@fb.com> wrote:

> See Petr's follow-up. It doesn't look like this was the responsible change.
>
>
>
> *From: *Eric Fiselier <e...@efcs.ca>
> *Date: *Thursday, August 17, 2017 at 4:02 PM
> *To: *Petr Hosek <pho...@chromium.org>
> *Cc: *cfe-commits <cfe-commits@lists.llvm.org>, Marshall Clow <
> mclow.li...@gmail.com>, Hans Wennborg <h...@chromium.org>, Shoaib Meenai <
> smee...@fb.com>
> *Subject: *Re: [libcxx] r309474 - [libc++] Hoist extern template above
> first use
>
>
>
> probably shouldn't merge this then.
>
>
>
> On Aug 17, 2017 4:54 PM, "Petr Hosek via cfe-commits" <
> cfe-commits@lists.llvm.org> wrote:
>
> This broke our build of WebKit with the following build failure:
>
>
>
> ../../buildtools/linux-x64/clang/bin/clang++ -MD -MF
> obj/apps/web_view/web_view_test.test_webview.o.d
> -DTOOLCHAIN_VERSION=4e89c701396412a50a901115ab4a2a09145f3777
> -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -DCAIRO_HAS_FC_FONT=0
> -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION
> -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../.. -Igen
> -I../../third_party/webkit/Source/WebKit/fuchsia
> -I../../third_party/boringssl/include -Igen/third_party/cairo
> -I../../third_party/curl/include -Iobj/third_party/curl
> -Iobj/third_party/curl/curl -I../../third_party/freetype2/include
> -I../../third_party/harfbuzz/src -I../../third_party/icu/source/common
> -I../../third_party/icu/source/i18n -I../../third_party/libjpeg-turbo
> -I../../third_party/libpng -I../../third_party/zlib
> -I../../third_party/libxml2/include -I../../third_party/sqlite -g
> --sysroot=/usr/local/google/home/phosek/fuchsia/out/build-magenta/build-magenta-pc-x86-64/sysroot
> --target=x86_64-fuchsia -no-canonical-prefixes
> -fdebug-prefix-map=/usr/local/google/home/phosek/fuchsia=. -Wall -Wextra
> -Wno-unused-parameter -Wno-enum-compare-switch -Wno-unused-lambda-capture
> -Wno-user-defined-warnings -fvisibility=hidden -g -Og -fsanitize=safe-stack
> -fstack-protector-strong -Werror -Wno-error=deprecated-declarations
> -fvisibility-inlines-hidden -std=c++14 -fno-exceptions -fno-rtti
> -Wthread-safety -c ../../apps/web_view/test_webview.cpp -o
> obj/apps/web_view/web_view_test.test_webview.o
>
> In file included from ../../apps/web_view/test_webview.cpp:1:
>
> In file included from
> ../../third_party/webkit/Source/WebKit/fuchsia/WebView.h:28:
>
> In file included from
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:484:
>
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/type_traits:4323:23:
> error: implicit instantiation of undefined template
> 'std::__2::basic_string<char, std::__2::char_traits,
> std::__2::allocator >'
>
>
> _LIBCPP_INVOKE_RETURN(_VSTD::forward<_Fp>(__f)(_VSTD::forward<_Args>(__args)...))
>
>   ^
>
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/__config:468:15:
> note: expanded from macro '_VSTD'
>
> #define _VSTD std::_LIBCPP_NAMESPACE
>
>   ^
>
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/type_traits:4340:9:
> note: in instantiation of exception specification for
> '__invoke<std::__2::function<std::__2::basic_string<char,
> std::__2::char_traits, std::__2::allocator > (const
> std::__2::basic_string<char, std::__2::char_traits,
> std::__2::allocator > &)> &, const std::__2::basic_string<char,
> std::__2::char_traits, std::__2::allocator > &>' requested here
>
> _VSTD::__invoke(_VSTD::declval<_Fp>(),
> _VSTD::declval<_Args>()...));
>
> ^
>
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/__config:468:15:
> note: expanded from macro '_VSTD'
>
> #define _VSTD std::_LIBCPP_NAMESPACE
>
>   ^
>
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:1601:33:
> note: in instantiation of template class 'std::__2::__invokable_r<void,
> std::__2::function<std::__2::basic_string<char,
> std::__2::char_traits, std::__2::allocator > (const
> std::__2::basic_string<char, std::__2::char_traits,
> std::__2::allocator > &)> &, const std::__2::basic_string<char,
> std::__2::char_traits, std::__2::allocator > &>' requested here
>
> __invokable<_Fp&, _ArgTypes...>::value>
>
> ^
>
> ../

Re: [libcxx] r309474 - [libc++] Hoist extern template above first use

2017-08-17 Thread Shoaib Meenai via cfe-commits
See Petr's follow-up. It doesn't look like this was the responsible change.

From: Eric Fiselier <e...@efcs.ca>
Date: Thursday, August 17, 2017 at 4:02 PM
To: Petr Hosek <pho...@chromium.org>
Cc: cfe-commits <cfe-commits@lists.llvm.org>, Marshall Clow 
<mclow.li...@gmail.com>, Hans Wennborg <h...@chromium.org>, Shoaib Meenai 
<smee...@fb.com>
Subject: Re: [libcxx] r309474 - [libc++] Hoist extern template above first use

probably shouldn't merge this then.

On Aug 17, 2017 4:54 PM, "Petr Hosek via cfe-commits" 
<cfe-commits@lists.llvm.org<mailto:cfe-commits@lists.llvm.org>> wrote:
This broke our build of WebKit with the following build failure:

../../buildtools/linux-x64/clang/bin/clang++ -MD -MF 
obj/apps/web_view/web_view_test.test_webview.o.d 
-DTOOLCHAIN_VERSION=4e89c701396412a50a901115ab4a2a09145f3777 
-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -DCAIRO_HAS_FC_FONT=0 
-DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION 
-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../.. -Igen 
-I../../third_party/webkit/Source/WebKit/fuchsia 
-I../../third_party/boringssl/include -Igen/third_party/cairo 
-I../../third_party/curl/include -Iobj/third_party/curl 
-Iobj/third_party/curl/curl -I../../third_party/freetype2/include 
-I../../third_party/harfbuzz/src -I../../third_party/icu/source/common 
-I../../third_party/icu/source/i18n -I../../third_party/libjpeg-turbo 
-I../../third_party/libpng -I../../third_party/zlib 
-I../../third_party/libxml2/include -I../../third_party/sqlite -g 
--sysroot=/usr/local/google/home/phosek/fuchsia/out/build-magenta/build-magenta-pc-x86-64/sysroot
 --target=x86_64-fuchsia -no-canonical-prefixes 
-fdebug-prefix-map=/usr/local/google/home/phosek/fuchsia=. -Wall -Wextra 
-Wno-unused-parameter -Wno-enum-compare-switch -Wno-unused-lambda-capture 
-Wno-user-defined-warnings -fvisibility=hidden -g -Og -fsanitize=safe-stack 
-fstack-protector-strong -Werror -Wno-error=deprecated-declarations 
-fvisibility-inlines-hidden -std=c++14 -fno-exceptions -fno-rtti 
-Wthread-safety -c ../../apps/web_view/test_webview.cpp -o 
obj/apps/web_view/web_view_test.test_webview.o
In file included from ../../apps/web_view/test_webview.cpp:1:
In file included from 
../../third_party/webkit/Source/WebKit/fuchsia/WebView.h:28:
In file included from 
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:484:
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/type_traits:4323:23:
 error: implicit instantiation of undefined template 
'std::__2::basic_string<char, std::__2::char_traits, 
std::__2::allocator >'
_LIBCPP_INVOKE_RETURN(_VSTD::forward<_Fp>(__f)(_VSTD::forward<_Args>(__args)...))
  ^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/__config:468:15:
 note: expanded from macro '_VSTD'
#define _VSTD std::_LIBCPP_NAMESPACE
  ^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/type_traits:4340:9:
 note: in instantiation of exception specification for 
'__invoke<std::__2::function<std::__2::basic_string<char, 
std::__2::char_traits, std::__2::allocator > (const 
std::__2::basic_string<char, std::__2::char_traits, 
std::__2::allocator > &)> &, const std::__2::basic_string<char, 
std::__2::char_traits, std::__2::allocator > &>' requested here
_VSTD::__invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...));
^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/__config:468:15:
 note: expanded from macro '_VSTD'
#define _VSTD std::_LIBCPP_NAMESPACE
  ^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:1601:33:
 note: in instantiation of template class 'std::__2::__invokable_r<void, 
std::__2::function<std::__2::basic_string<char, std::__2::char_traits, 
std::__2::allocator > (const std::__2::basic_string<char, 
std::__2::char_traits, std::__2::allocator > &)> &, const 
std::__2::basic_string<char, std::__2::char_traits, 
std::__2::allocator > &>' requested here
__invokable<_Fp&, _ArgTypes...>::value>
^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:1626:9:
 note: in instantiation of default argument for 
'__callable<std::__2::function<std::__2::basic_string<char, 
std::__2::char_traits, std::__2::allocator > (const 
std::__2::basic_string<char, std::__2::char_traits, 
std::__2::allocator > &)> >' required here
__callable<_Fp>::value && !is_same<_Fp, function>::value
^~~
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:1628:5:
 note: in instantiation of default argument for 
'function<std::__2::function<std::__2::basic_string<char, 
std

Re: [libcxx] r309474 - [libc++] Hoist extern template above first use

2017-08-17 Thread Eric Fiselier via cfe-commits
probably shouldn't merge this then.

On Aug 17, 2017 4:54 PM, "Petr Hosek via cfe-commits" <
cfe-commits@lists.llvm.org> wrote:

> This broke our build of WebKit with the following build failure:
>
> ../../buildtools/linux-x64/clang/bin/clang++ -MD -MF
> obj/apps/web_view/web_view_test.test_webview.o.d -DTOOLCHAIN_VERSION=
> 4e89c701396412a50a901115ab4a2a09145f3777 
> -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS
> -DCAIRO_HAS_FC_FONT=0 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0
> -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../..
> -Igen -I../../third_party/webkit/Source/WebKit/fuchsia
> -I../../third_party/boringssl/include -Igen/third_party/cairo
> -I../../third_party/curl/include -Iobj/third_party/curl
> -Iobj/third_party/curl/curl -I../../third_party/freetype2/include
> -I../../third_party/harfbuzz/src -I../../third_party/icu/source/common
> -I../../third_party/icu/source/i18n -I../../third_party/libjpeg-turbo
> -I../../third_party/libpng -I../../third_party/zlib
> -I../../third_party/libxml2/include -I../../third_party/sqlite -g
> --sysroot=/usr/local/google/home/phosek/fuchsia/out/build-
> magenta/build-magenta-pc-x86-64/sysroot --target=x86_64-fuchsia
> -no-canonical-prefixes 
> -fdebug-prefix-map=/usr/local/google/home/phosek/fuchsia=.
> -Wall -Wextra -Wno-unused-parameter -Wno-enum-compare-switch
> -Wno-unused-lambda-capture -Wno-user-defined-warnings -fvisibility=hidden
> -g -Og -fsanitize=safe-stack -fstack-protector-strong -Werror
> -Wno-error=deprecated-declarations -fvisibility-inlines-hidden -std=c++14
> -fno-exceptions -fno-rtti -Wthread-safety -c 
> ../../apps/web_view/test_webview.cpp
> -o obj/apps/web_view/web_view_test.test_webview.o
> In file included from ../../apps/web_view/test_webview.cpp:1:
> In file included from ../../third_party/webkit/
> Source/WebKit/fuchsia/WebView.h:28:
> In file included from ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/
> include/c++/v1/functional:484:
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/
> include/c++/v1/type_traits:4323:23: error: implicit instantiation of
> undefined template 'std::__2::basic_string std::__2::char_traits, std::__2::allocator >'
> _LIBCPP_INVOKE_RETURN(_VSTD::forward<_Fp>(__f)(_VSTD::
> forward<_Args>(__args)...))
>   ^
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/
> include/c++/v1/__config:468:15: note: expanded from macro '_VSTD'
> #define _VSTD std::_LIBCPP_NAMESPACE
>   ^
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/
> include/c++/v1/type_traits:4340:9: note: in instantiation of exception
> specification for '__invoke std::__2::char_traits, std::__2::allocator > (const
> std::__2::basic_string std::__2::allocator > &)> &, const std::__2::basic_string std::__2::char_traits, std::__2::allocator > &>' requested here
> _VSTD::__invoke(_VSTD::declval<_Fp>(),
> _VSTD::declval<_Args>()...));
> ^
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/
> include/c++/v1/__config:468:15: note: expanded from macro '_VSTD'
> #define _VSTD std::_LIBCPP_NAMESPACE
>   ^
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/
> include/c++/v1/functional:1601:33: note: in instantiation of template
> class 'std::__2::__invokable_r std::__2::function std::__2::char_traits, std::__2::allocator > (const
> std::__2::basic_string std::__2::allocator > &)> &, const std::__2::basic_string std::__2::char_traits, std::__2::allocator > &>' requested here
> __invokable<_Fp&, _ArgTypes...>::value>
> ^
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/
> include/c++/v1/functional:1626:9: note: in instantiation of default
> argument for '__callable std::__2::char_traits, std::__2::allocator > (const
> std::__2::basic_string std::__2::allocator > &)> >' required here
> __callable<_Fp>::value && !is_same<_Fp, function>::value
> ^~~
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/
> include/c++/v1/functional:1628:5: note: in instantiation of default
> argument for 'function std::__2::char_traits, std::__2::allocator > (const
> std::__2::basic_string std::__2::allocator > &)> >' required here
> function(_Fp);
> ^
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/
> include/c++/v1/functional:1588:28: note: while substituting deduced
> template arguments into function template 'function' [with _Fp =
> std::__2::function std::__2::char_traits, std::__2::allocator > (const
> std::__2::basic_string std::__2::allocator > &)>, $1 = (no 

Re: [libcxx] r309474 - [libc++] Hoist extern template above first use

2017-08-17 Thread Shoaib Meenai via cfe-commits
Yeah, I spent some time scratching my head about how my change would be causing 
that issue :) Let me know if it turns out to be related in any way and I'll 
look into it more.

From: Petr Hosek <pho...@chromium.org>
Date: Thursday, August 17, 2017 at 4:04 PM
To: Hans Wennborg <h...@chromium.org>, Shoaib Meenai <smee...@fb.com>
Cc: Marshall Clow <mclow.li...@gmail.com>, "cfe-commits@lists.llvm.org" 
<cfe-commits@lists.llvm.org>
Subject: Re: [libcxx] r309474 - [libc++] Hoist extern template above first use

Actually nevermind, it seems like it was a different change and this one is 
harmless (I'm still bisecting libc++ to find out which is causing the error 
below).
On Thu, Aug 17, 2017 at 3:54 PM Petr Hosek 
<pho...@chromium.org<mailto:pho...@chromium.org>> wrote:
This broke our build of WebKit with the following build failure:

../../buildtools/linux-x64/clang/bin/clang++ -MD -MF 
obj/apps/web_view/web_view_test.test_webview.o.d 
-DTOOLCHAIN_VERSION=4e89c701396412a50a901115ab4a2a09145f3777 
-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -DCAIRO_HAS_FC_FONT=0 
-DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION 
-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../.. -Igen 
-I../../third_party/webkit/Source/WebKit/fuchsia 
-I../../third_party/boringssl/include -Igen/third_party/cairo 
-I../../third_party/curl/include -Iobj/third_party/curl 
-Iobj/third_party/curl/curl -I../../third_party/freetype2/include 
-I../../third_party/harfbuzz/src -I../../third_party/icu/source/common 
-I../../third_party/icu/source/i18n -I../../third_party/libjpeg-turbo 
-I../../third_party/libpng -I../../third_party/zlib 
-I../../third_party/libxml2/include -I../../third_party/sqlite -g 
--sysroot=/usr/local/google/home/phosek/fuchsia/out/build-magenta/build-magenta-pc-x86-64/sysroot
 --target=x86_64-fuchsia -no-canonical-prefixes 
-fdebug-prefix-map=/usr/local/google/home/phosek/fuchsia=. -Wall -Wextra 
-Wno-unused-parameter -Wno-enum-compare-switch -Wno-unused-lambda-capture 
-Wno-user-defined-warnings -fvisibility=hidden -g -Og -fsanitize=safe-stack 
-fstack-protector-strong -Werror -Wno-error=deprecated-declarations 
-fvisibility-inlines-hidden -std=c++14 -fno-exceptions -fno-rtti 
-Wthread-safety -c ../../apps/web_view/test_webview.cpp -o 
obj/apps/web_view/web_view_test.test_webview.o
In file included from ../../apps/web_view/test_webview.cpp:1:
In file included from 
../../third_party/webkit/Source/WebKit/fuchsia/WebView.h:28:
In file included from 
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:484:
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/type_traits:4323:23:
 error: implicit instantiation of undefined template 
'std::__2::basic_string<char, std::__2::char_traits, 
std::__2::allocator >'
_LIBCPP_INVOKE_RETURN(_VSTD::forward<_Fp>(__f)(_VSTD::forward<_Args>(__args)...))
  ^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/__config:468:15:
 note: expanded from macro '_VSTD'
#define _VSTD std::_LIBCPP_NAMESPACE
  ^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/type_traits:4340:9:
 note: in instantiation of exception specification for 
'__invoke<std::__2::function<std::__2::basic_string<char, 
std::__2::char_traits, std::__2::allocator > (const 
std::__2::basic_string<char, std::__2::char_traits, 
std::__2::allocator > &)> &, const std::__2::basic_string<char, 
std::__2::char_traits, std::__2::allocator > &>' requested here
_VSTD::__invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...));
^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/__config:468:15:
 note: expanded from macro '_VSTD'
#define _VSTD std::_LIBCPP_NAMESPACE
  ^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:1601:33:
 note: in instantiation of template class 'std::__2::__invokable_r<void, 
std::__2::function<std::__2::basic_string<char, std::__2::char_traits, 
std::__2::allocator > (const std::__2::basic_string<char, 
std::__2::char_traits, std::__2::allocator > &)> &, const 
std::__2::basic_string<char, std::__2::char_traits, 
std::__2::allocator > &>' requested here
__invokable<_Fp&, _ArgTypes...>::value>
^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:1626:9:
 note: in instantiation of default argument for 
'__callable<std::__2::function<std::__2::basic_string<char, 
std::__2::char_traits, std::__2::allocator > (const 
std::__2::basic_string<char, std::__2::char_traits, 
std::__2::allocator > &)> >' required here
__callable<_Fp>::value && !is_same<_Fp, function>::value
^~~
../../buildtools/linux-

Re: [libcxx] r309474 - [libc++] Hoist extern template above first use

2017-08-17 Thread Petr Hosek via cfe-commits
Actually nevermind, it seems like it was a different change and this one is
harmless (I'm still bisecting libc++ to find out which is causing the error
below).

On Thu, Aug 17, 2017 at 3:54 PM Petr Hosek  wrote:

> This broke our build of WebKit with the following build failure:
>
> ../../buildtools/linux-x64/clang/bin/clang++ -MD -MF
> obj/apps/web_view/web_view_test.test_webview.o.d
> -DTOOLCHAIN_VERSION=4e89c701396412a50a901115ab4a2a09145f3777
> -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -DCAIRO_HAS_FC_FONT=0
> -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION
> -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../.. -Igen
> -I../../third_party/webkit/Source/WebKit/fuchsia
> -I../../third_party/boringssl/include -Igen/third_party/cairo
> -I../../third_party/curl/include -Iobj/third_party/curl
> -Iobj/third_party/curl/curl -I../../third_party/freetype2/include
> -I../../third_party/harfbuzz/src -I../../third_party/icu/source/common
> -I../../third_party/icu/source/i18n -I../../third_party/libjpeg-turbo
> -I../../third_party/libpng -I../../third_party/zlib
> -I../../third_party/libxml2/include -I../../third_party/sqlite -g
> --sysroot=/usr/local/google/home/phosek/fuchsia/out/build-magenta/build-magenta-pc-x86-64/sysroot
> --target=x86_64-fuchsia -no-canonical-prefixes
> -fdebug-prefix-map=/usr/local/google/home/phosek/fuchsia=. -Wall -Wextra
> -Wno-unused-parameter -Wno-enum-compare-switch -Wno-unused-lambda-capture
> -Wno-user-defined-warnings -fvisibility=hidden -g -Og -fsanitize=safe-stack
> -fstack-protector-strong -Werror -Wno-error=deprecated-declarations
> -fvisibility-inlines-hidden -std=c++14 -fno-exceptions -fno-rtti
> -Wthread-safety -c ../../apps/web_view/test_webview.cpp -o
> obj/apps/web_view/web_view_test.test_webview.o
> In file included from ../../apps/web_view/test_webview.cpp:1:
> In file included from
> ../../third_party/webkit/Source/WebKit/fuchsia/WebView.h:28:
> In file included from
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:484:
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/type_traits:4323:23:
> error: implicit instantiation of undefined template
> 'std::__2::basic_string std::__2::allocator >'
>
> _LIBCPP_INVOKE_RETURN(_VSTD::forward<_Fp>(__f)(_VSTD::forward<_Args>(__args)...))
>   ^
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/__config:468:15:
> note: expanded from macro '_VSTD'
> #define _VSTD std::_LIBCPP_NAMESPACE
>   ^
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/type_traits:4340:9:
> note: in instantiation of exception specification for
> '__invoke std::__2::char_traits, std::__2::allocator > (const
> std::__2::basic_string std::__2::allocator > &)> &, const std::__2::basic_string std::__2::char_traits, std::__2::allocator > &>' requested here
> _VSTD::__invoke(_VSTD::declval<_Fp>(),
> _VSTD::declval<_Args>()...));
> ^
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/__config:468:15:
> note: expanded from macro '_VSTD'
> #define _VSTD std::_LIBCPP_NAMESPACE
>   ^
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:1601:33:
> note: in instantiation of template class 'std::__2::__invokable_r std::__2::function std::__2::char_traits, std::__2::allocator > (const
> std::__2::basic_string std::__2::allocator > &)> &, const std::__2::basic_string std::__2::char_traits, std::__2::allocator > &>' requested here
> __invokable<_Fp&, _ArgTypes...>::value>
> ^
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:1626:9:
> note: in instantiation of default argument for
> '__callable std::__2::char_traits, std::__2::allocator > (const
> std::__2::basic_string std::__2::allocator > &)> >' required here
> __callable<_Fp>::value && !is_same<_Fp, function>::value
> ^~~
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:1628:5:
> note: in instantiation of default argument for
> 'function std::__2::char_traits, std::__2::allocator > (const
> std::__2::basic_string std::__2::allocator > &)> >' required here
> function(_Fp);
> ^
> ../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:1588:28:
> note: while substituting deduced template arguments into function template
> 'function' [with _Fp = std::__2::function std::__2::char_traits, std::__2::allocator > (const
> 

Re: [libcxx] r309474 - [libc++] Hoist extern template above first use

2017-08-17 Thread Petr Hosek via cfe-commits
This broke our build of WebKit with the following build failure:

../../buildtools/linux-x64/clang/bin/clang++ -MD -MF
obj/apps/web_view/web_view_test.test_webview.o.d
-DTOOLCHAIN_VERSION=4e89c701396412a50a901115ab4a2a09145f3777
-D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -DCAIRO_HAS_FC_FONT=0
-DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION
-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../.. -Igen
-I../../third_party/webkit/Source/WebKit/fuchsia
-I../../third_party/boringssl/include -Igen/third_party/cairo
-I../../third_party/curl/include -Iobj/third_party/curl
-Iobj/third_party/curl/curl -I../../third_party/freetype2/include
-I../../third_party/harfbuzz/src -I../../third_party/icu/source/common
-I../../third_party/icu/source/i18n -I../../third_party/libjpeg-turbo
-I../../third_party/libpng -I../../third_party/zlib
-I../../third_party/libxml2/include -I../../third_party/sqlite -g
--sysroot=/usr/local/google/home/phosek/fuchsia/out/build-magenta/build-magenta-pc-x86-64/sysroot
--target=x86_64-fuchsia -no-canonical-prefixes
-fdebug-prefix-map=/usr/local/google/home/phosek/fuchsia=. -Wall -Wextra
-Wno-unused-parameter -Wno-enum-compare-switch -Wno-unused-lambda-capture
-Wno-user-defined-warnings -fvisibility=hidden -g -Og -fsanitize=safe-stack
-fstack-protector-strong -Werror -Wno-error=deprecated-declarations
-fvisibility-inlines-hidden -std=c++14 -fno-exceptions -fno-rtti
-Wthread-safety -c ../../apps/web_view/test_webview.cpp -o
obj/apps/web_view/web_view_test.test_webview.o
In file included from ../../apps/web_view/test_webview.cpp:1:
In file included from
../../third_party/webkit/Source/WebKit/fuchsia/WebView.h:28:
In file included from
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:484:
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/type_traits:4323:23:
error: implicit instantiation of undefined template
'std::__2::basic_string'
_LIBCPP_INVOKE_RETURN(_VSTD::forward<_Fp>(__f)(_VSTD::forward<_Args>(__args)...))
  ^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/__config:468:15:
note: expanded from macro '_VSTD'
#define _VSTD std::_LIBCPP_NAMESPACE
  ^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/type_traits:4340:9:
note: in instantiation of exception specification for
'__invoke (const
std::__2::basic_string &)> &, const std::__2::basic_string &>' requested here
_VSTD::__invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...));
^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/__config:468:15:
note: expanded from macro '_VSTD'
#define _VSTD std::_LIBCPP_NAMESPACE
  ^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:1601:33:
note: in instantiation of template class 'std::__2::__invokable_r (const
std::__2::basic_string &)> &, const std::__2::basic_string &>' requested here
__invokable<_Fp&, _ArgTypes...>::value>
^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:1626:9:
note: in instantiation of default argument for
'__callable (const
std::__2::basic_string &)> >' required here
__callable<_Fp>::value && !is_same<_Fp, function>::value
^~~
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:1628:5:
note: in instantiation of default argument for
'function (const
std::__2::basic_string &)> >' required here
function(_Fp);
^
../../buildtools/linux-x64/clang/lib/x86_64-fuchsia/include/c++/v1/functional:1588:28:
note: while substituting deduced template arguments into function template
'function' [with _Fp = std::__2::function (const
std::__2::basic_string &)>, $1 = (no value)]
class _LIBCPP_TEMPLATE_VIS function<_Rp(_ArgTypes...)>
   ^
../../third_party/webkit/Source/WebKit/fuchsia/WebView.h:48:7: note: while
declaring the implicit copy constructor for 'WebView'
class WebView {
  ^

Re: [libcxx] r309474 - [libc++] Hoist extern template above first use

2017-08-09 Thread Hans Wennborg via cfe-commits
Marshall: ping?

On Thu, Aug 3, 2017 at 10:20 AM, Hans Wennborg  wrote:
> Sounds good to me, but Eric or Marshall need to sign off.
>
> On Thu, Aug 3, 2017 at 10:15 AM, Shoaib Meenai  wrote:
>> Ping.
>>
>> On 7/28/17, 7:57 PM, "Shoaib Meenai"  wrote:
>>
>> Marshall, Eric, Hans,
>>
>> Any objections to backporting this to 5.0? It fixes a potential 
>> visibility
>> issue for clients of the header.
>>
>> On 7/28/17, 7:54 PM, "cfe-commits on behalf of Shoaib Meenai via 
>> cfe-commits" > cfe-commits@lists.llvm.org> wrote:
>>
>> Author: smeenai
>> Date: Fri Jul 28 19:54:41 2017
>> New Revision: 309474
>>
>> URL: 
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D309474-26view-3Drev=DwIGaQ=5VD0RTtNlTh3ycd41b3MUw=o3kDXzdBUE3ljQXKeTWOMw=EcGbIxegCOTbSLMJelp_vOaeGiS_iQ1eciM_oeX41-E=5q7TS5mhaUsf-1jQBqX62RvjcqAiy2whh8RO7yFhPyA=
>> Log:
>> [libc++] Hoist extern template above first use
>>
>> This function template is referenced inside class basic_string as a
>> friend function. The extern template declaration needs to be above 
>> that
>> friend declaration to actually take effect.
>>
>> This is important because this function was marked as exported in
>> r307966, so without the extern template taking effect, it can leak 
>> into
>> other DSOs as a visible symbol.
>>
>> Modified:
>> libcxx/trunk/include/string
>>
>> Modified: libcxx/trunk/include/string
>> URL: 
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_libcxx_trunk_include_string-3Frev-3D309474-26r1-3D309473-26r2-3D309474-26view-3Ddiff=DwIGaQ=5VD0RTtNlTh3ycd41b3MUw=o3kDXzdBUE3ljQXKeTWOMw=EcGbIxegCOTbSLMJelp_vOaeGiS_iQ1eciM_oeX41-E=zFJXc9CA6Sgyh25kGeAh4Qo36gpNQX_zo2qRlRFJoL8=
>> 
>> ==
>> --- libcxx/trunk/include/string (original)
>> +++ libcxx/trunk/include/string Fri Jul 28 19:54:41 2017
>> @@ -556,6 +556,8 @@ template>  basic_string<_CharT, _Traits, _Allocator>
>>  operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, 
>> _CharT __y);
>>
>> +_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS string operator+> char_traits, allocator >(char const*, string const&))
>> +
>>  template 
>>  class _LIBCPP_TEMPLATE_VIS __basic_string_common
>>  {
>> @@ -3999,7 +4001,6 @@ basic_string<_CharT, _Traits, _Allocator
>>
>>  _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS 
>> basic_string)
>>  _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS 
>> basic_string)
>> -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS string operator+> char_traits, allocator >(char const*, string const&))
>>
>>  #if _LIBCPP_STD_VER > 11
>>  // Literal suffixes for basic_string [basic.string.literals]
>>
>>
>> ___
>> cfe-commits mailing list
>> cfe-commits@lists.llvm.org
>> 
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_cfe-2Dcommits=DwIGaQ=5VD0RTtNlTh3ycd41b3MUw=o3kDXzdBUE3ljQXKeTWOMw=EcGbIxegCOTbSLMJelp_vOaeGiS_iQ1eciM_oeX41-E=95GYNfQT_kBVjYvYRYnF3mje6PEyF4EDl4MCBQKCu88=
>>
>>
>>
>>
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [libcxx] r309474 - [libc++] Hoist extern template above first use

2017-08-03 Thread Hans Wennborg via cfe-commits
Sounds good to me, but Eric or Marshall need to sign off.

On Thu, Aug 3, 2017 at 10:15 AM, Shoaib Meenai  wrote:
> Ping.
>
> On 7/28/17, 7:57 PM, "Shoaib Meenai"  wrote:
>
> Marshall, Eric, Hans,
>
> Any objections to backporting this to 5.0? It fixes a potential visibility
> issue for clients of the header.
>
> On 7/28/17, 7:54 PM, "cfe-commits on behalf of Shoaib Meenai via 
> cfe-commits"  cfe-commits@lists.llvm.org> wrote:
>
> Author: smeenai
> Date: Fri Jul 28 19:54:41 2017
> New Revision: 309474
>
> URL: 
> https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D309474-26view-3Drev=DwIGaQ=5VD0RTtNlTh3ycd41b3MUw=o3kDXzdBUE3ljQXKeTWOMw=EcGbIxegCOTbSLMJelp_vOaeGiS_iQ1eciM_oeX41-E=5q7TS5mhaUsf-1jQBqX62RvjcqAiy2whh8RO7yFhPyA=
> Log:
> [libc++] Hoist extern template above first use
>
> This function template is referenced inside class basic_string as a
> friend function. The extern template declaration needs to be above 
> that
> friend declaration to actually take effect.
>
> This is important because this function was marked as exported in
> r307966, so without the extern template taking effect, it can leak 
> into
> other DSOs as a visible symbol.
>
> Modified:
> libcxx/trunk/include/string
>
> Modified: libcxx/trunk/include/string
> URL: 
> https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_libcxx_trunk_include_string-3Frev-3D309474-26r1-3D309473-26r2-3D309474-26view-3Ddiff=DwIGaQ=5VD0RTtNlTh3ycd41b3MUw=o3kDXzdBUE3ljQXKeTWOMw=EcGbIxegCOTbSLMJelp_vOaeGiS_iQ1eciM_oeX41-E=zFJXc9CA6Sgyh25kGeAh4Qo36gpNQX_zo2qRlRFJoL8=
> 
> ==
> --- libcxx/trunk/include/string (original)
> +++ libcxx/trunk/include/string Fri Jul 28 19:54:41 2017
> @@ -556,6 +556,8 @@ template  basic_string<_CharT, _Traits, _Allocator>
>  operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, 
> _CharT __y);
>
> +_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS string operator+ char_traits, allocator >(char const*, string const&))
> +
>  template 
>  class _LIBCPP_TEMPLATE_VIS __basic_string_common
>  {
> @@ -3999,7 +4001,6 @@ basic_string<_CharT, _Traits, _Allocator
>
>  _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS 
> basic_string)
>  _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS 
> basic_string)
> -_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS string operator+ char_traits, allocator >(char const*, string const&))
>
>  #if _LIBCPP_STD_VER > 11
>  // Literal suffixes for basic_string [basic.string.literals]
>
>
> ___
> cfe-commits mailing list
> cfe-commits@lists.llvm.org
> 
> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_cfe-2Dcommits=DwIGaQ=5VD0RTtNlTh3ycd41b3MUw=o3kDXzdBUE3ljQXKeTWOMw=EcGbIxegCOTbSLMJelp_vOaeGiS_iQ1eciM_oeX41-E=95GYNfQT_kBVjYvYRYnF3mje6PEyF4EDl4MCBQKCu88=
>
>
>
>
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [libcxx] r309474 - [libc++] Hoist extern template above first use

2017-08-03 Thread Shoaib Meenai via cfe-commits
Ping.

On 7/28/17, 7:57 PM, "Shoaib Meenai"  wrote:

Marshall, Eric, Hans,

Any objections to backporting this to 5.0? It fixes a potential visibility
issue for clients of the header.

On 7/28/17, 7:54 PM, "cfe-commits on behalf of Shoaib Meenai via 
cfe-commits"  wrote:

Author: smeenai
Date: Fri Jul 28 19:54:41 2017
New Revision: 309474

URL: 
https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D309474-26view-3Drev=DwIGaQ=5VD0RTtNlTh3ycd41b3MUw=o3kDXzdBUE3ljQXKeTWOMw=EcGbIxegCOTbSLMJelp_vOaeGiS_iQ1eciM_oeX41-E=5q7TS5mhaUsf-1jQBqX62RvjcqAiy2whh8RO7yFhPyA=
 
Log:
[libc++] Hoist extern template above first use

This function template is referenced inside class basic_string as a
friend function. The extern template declaration needs to be above that
friend declaration to actually take effect.

This is important because this function was marked as exported in
r307966, so without the extern template taking effect, it can leak into
other DSOs as a visible symbol.

Modified:
libcxx/trunk/include/string

Modified: libcxx/trunk/include/string
URL: 
https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_libcxx_trunk_include_string-3Frev-3D309474-26r1-3D309473-26r2-3D309474-26view-3Ddiff=DwIGaQ=5VD0RTtNlTh3ycd41b3MUw=o3kDXzdBUE3ljQXKeTWOMw=EcGbIxegCOTbSLMJelp_vOaeGiS_iQ1eciM_oeX41-E=zFJXc9CA6Sgyh25kGeAh4Qo36gpNQX_zo2qRlRFJoL8=
 

==
--- libcxx/trunk/include/string (original)
+++ libcxx/trunk/include/string Fri Jul 28 19:54:41 2017
@@ -556,6 +556,8 @@ template
 operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, _CharT 
__y);
 
+_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS string operator+(char const*, string const&))
+
 template 
 class _LIBCPP_TEMPLATE_VIS __basic_string_common
 {
@@ -3999,7 +4001,6 @@ basic_string<_CharT, _Traits, _Allocator
 
 _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS 
basic_string)
 _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS 
basic_string)
-_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS string operator+(char const*, string const&))
 
 #if _LIBCPP_STD_VER > 11 
 // Literal suffixes for basic_string [basic.string.literals]


___
cfe-commits mailing list
cfe-commits@lists.llvm.org

https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_cfe-2Dcommits=DwIGaQ=5VD0RTtNlTh3ycd41b3MUw=o3kDXzdBUE3ljQXKeTWOMw=EcGbIxegCOTbSLMJelp_vOaeGiS_iQ1eciM_oeX41-E=95GYNfQT_kBVjYvYRYnF3mje6PEyF4EDl4MCBQKCu88=
 




___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [libcxx] r309474 - [libc++] Hoist extern template above first use

2017-07-28 Thread Shoaib Meenai via cfe-commits
Marshall, Eric, Hans,

Any objections to backporting this to 5.0? It fixes a potential visibility
issue for clients of the header.

On 7/28/17, 7:54 PM, "cfe-commits on behalf of Shoaib Meenai via cfe-commits" 
 
wrote:

Author: smeenai
Date: Fri Jul 28 19:54:41 2017
New Revision: 309474

URL: 
https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D309474-26view-3Drev=DwIGaQ=5VD0RTtNlTh3ycd41b3MUw=o3kDXzdBUE3ljQXKeTWOMw=EcGbIxegCOTbSLMJelp_vOaeGiS_iQ1eciM_oeX41-E=5q7TS5mhaUsf-1jQBqX62RvjcqAiy2whh8RO7yFhPyA=
 
Log:
[libc++] Hoist extern template above first use

This function template is referenced inside class basic_string as a
friend function. The extern template declaration needs to be above that
friend declaration to actually take effect.

This is important because this function was marked as exported in
r307966, so without the extern template taking effect, it can leak into
other DSOs as a visible symbol.

Modified:
libcxx/trunk/include/string

Modified: libcxx/trunk/include/string
URL: 
https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_libcxx_trunk_include_string-3Frev-3D309474-26r1-3D309473-26r2-3D309474-26view-3Ddiff=DwIGaQ=5VD0RTtNlTh3ycd41b3MUw=o3kDXzdBUE3ljQXKeTWOMw=EcGbIxegCOTbSLMJelp_vOaeGiS_iQ1eciM_oeX41-E=zFJXc9CA6Sgyh25kGeAh4Qo36gpNQX_zo2qRlRFJoL8=
 

==
--- libcxx/trunk/include/string (original)
+++ libcxx/trunk/include/string Fri Jul 28 19:54:41 2017
@@ -556,6 +556,8 @@ template
 operator+(const basic_string<_CharT, _Traits, _Allocator>& __x, _CharT 
__y);
 
+_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS string operator+(char const*, string const&))
+
 template 
 class _LIBCPP_TEMPLATE_VIS __basic_string_common
 {
@@ -3999,7 +4001,6 @@ basic_string<_CharT, _Traits, _Allocator
 
 _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS 
basic_string)
 _LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS 
basic_string)
-_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS string operator+(char const*, string const&))
 
 #if _LIBCPP_STD_VER > 11 
 // Literal suffixes for basic_string [basic.string.literals]


___
cfe-commits mailing list
cfe-commits@lists.llvm.org

https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_cfe-2Dcommits=DwIGaQ=5VD0RTtNlTh3ycd41b3MUw=o3kDXzdBUE3ljQXKeTWOMw=EcGbIxegCOTbSLMJelp_vOaeGiS_iQ1eciM_oeX41-E=95GYNfQT_kBVjYvYRYnF3mje6PEyF4EDl4MCBQKCu88=
 


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits