[patch][pr12684] Use the new mingw abi

Rafael EspĂ­ndola rafael.espindola at gmail.com
Fri Nov 22 08:32:38 PST 2013


Can you send me a preprocessed file?

On 21 November 2013 03:55, Yaron Keren <yaron.keren at gmail.com> wrote:
> Hi Rafael,
>
> clang can't compile libcxx/src/valarray.cpp after applying the patch (error
> message below).
> Without the patch it compiles OK. I checked and verified with and without.
>
> Yaron
>
> In file included from ../src/valarray.cpp:12:
> /my/ceemple/libcxx/include\valarray:1009:60: error: explicit instantiation
> of
>       'valarray' does not refer to a function template, variable template,
>       member function, member class, or static data member
> _LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS valarray<size_t>::valarray(size_t))
>                                                            ^
> ../src/valarray.cpp:10:54: note: expanded from macro
> '_LIBCPP_EXTERN_TEMPLATE'
>
> #define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;
>                                                      ^
> In file included from ../src/valarray.cpp:12:
> /my/ceemple/libcxx/include\valarray:1010:60: error: explicit instantiation
> of
>       '~valarray' does not refer to a function template, variable template,
>       member function, member class, or static data member
> _LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS valarray<size_t>::~valarray())
>                                                            ^
> ../src/valarray.cpp:10:54: note: expanded from macro
> '_LIBCPP_EXTERN_TEMPLATE'
>
> #define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;
>                                                      ^
> In file included from ../src/valarray.cpp:12:
> /my/ceemple/libcxx/include\valarray:1011:65: error: explicit instantiation
> of
>       'resize' does not refer to a function template, variable template,
>       member function, member class, or static data member
> _LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void valarray<size_t>::resize...
>                                                                 ^
> ../src/valarray.cpp:10:54: note: expanded from macro
> '_LIBCPP_EXTERN_TEMPLATE'
>
> #define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;
>                                                      ^
> ../src/valarray.cpp:16:28: error: explicit instantiation of 'valarray' does
>       not refer to a function template, variable template, member function,
>       member class, or static data member
> template valarray<size_t>::valarray(size_t);
>                            ^
> ../src/valarray.cpp:17:28: error: explicit instantiation of '~valarray' does
>       not refer to a function template, variable template, member function,
>       member class, or static data member
>
>
> 2013/11/20 Rafael EspĂ­ndola <rafael.espindola at gmail.com>
>>
>> On 19 November 2013 19:39, NAKAMURA Takumi <geek4civic at gmail.com> wrote:
>> > Rafael,
>> >
>> > Oh yeah, ... It seems C++ ABI diverged between Cygwin and Mingw since
>> > 4.7...
>> > (FYI, also cygwin64 is different from x86_64-mingw32 in some point...)
>>
>> Good catch. I confirmed this with a native gcc 4.8 on cywin. The
>> updated patch change the abi only for mingw and adds a cygwin test.
>>
>> Cheers,
>> Rafael
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>




More information about the cfe-commits mailing list