I don't think I can: - Hack around __gcc_atomic_t. - Unconditionally pass -fabi-version=6 to the RUN command (because LLVM won't accept it).
it seems like changing test/libcxx/test/config.py would be better. WDYT? On Mon, Aug 1, 2016 at 1:28 PM, JF Bastien via cfe-commits < cfe-commits@lists.llvm.org> wrote: > Author: jfb > Date: Mon Aug 1 15:28:13 2016 > New Revision: 277380 > > URL: http://llvm.org/viewvc/llvm-project?rev=277380&view=rev > Log: > atomics.align: XFAIL GCC > > It currently fails because GCC changed the mangling of templates, which > affects std::atomic using __attribute__((vector(X))). The bot using GCC 4.9 > generates the following message: > > In file included from > /home/llvm-builder/llvm-buildslave-root/libcxx-libcxxabi-x86_64-linux-ubuntu-gcc49-cxx11/llvm/projects/libcxx/test/libcxx/atomics/atomics.align/align.pass.sh.cpp:24:0: > /home/llvm-builder/llvm-buildslave-root/libcxx-libcxxabi-x86_64-linux-ubuntu-gcc49-cxx11/llvm/projects/libcxx/include/atomic: > In instantiation of 'atomic_test<T>::atomic_test() [with T = __vector(2) > int]': > /home/llvm-builder/llvm-buildslave-root/libcxx-libcxxabi-x86_64-linux-ubuntu-gcc49-cxx11/llvm/projects/libcxx/test/libcxx/atomics/atomics.align/align.pass.sh.cpp:66:3: > required from here > /home/llvm-builder/llvm-buildslave-root/libcxx-libcxxabi-x86_64-linux-ubuntu-gcc49-cxx11/llvm/projects/libcxx/include/atomic:583:5: > error: 'std::__1::__gcc_atomic::__gcc_atomic_t<_Tp>::__gcc_atomic_t() [with > _Tp = __vector(2) int]' conflicts with a previous declaration > __gcc_atomic_t() _NOEXCEPT = default; > ^ > /home/llvm-builder/llvm-buildslave-root/libcxx-libcxxabi-x86_64-linux-ubuntu-gcc49-cxx11/llvm/projects/libcxx/include/atomic:583:5: > note: previous declaration > 'std::__1::__gcc_atomic::__gcc_atomic_t<_Tp>::__gcc_atomic_t() [with _Tp = > __vector(1) int]' > /home/llvm-builder/llvm-buildslave-root/libcxx-libcxxabi-x86_64-linux-ubuntu-gcc49-cxx11/llvm/projects/libcxx/include/atomic:583:5: > note: -fabi-version=6 (or =0) avoids this error with a change in mangling > /home/llvm-builder/llvm-buildslave-root/libcxx-libcxxabi-x86_64-linux-ubuntu-gcc49-cxx11/llvm/projects/libcxx/include/atomic:583:5: > error: 'std::__1::__gcc_atomic::__gcc_atomic_t<_Tp>::__gcc_atomic_t() [with > _Tp = __vector(2) int]' conflicts with a previous declaration > /home/llvm-builder/llvm-buildslave-root/libcxx-libcxxabi-x86_64-linux-ubuntu-gcc49-cxx11/llvm/projects/libcxx/include/atomic:583:5: > note: previous declaration > 'std::__1::__gcc_atomic::__gcc_atomic_t<_Tp>::__gcc_atomic_t() [with _Tp = > __vector(1) int]' > /home/llvm-builder/llvm-buildslave-root/libcxx-libcxxabi-x86_64-linux-ubuntu-gcc49-cxx11/llvm/projects/libcxx/include/atomic:583:5: > note: -fabi-version=6 (or =0) avoids this error with a change in mangling > /home/llvm-builder/llvm-buildslave-root/libcxx-libcxxabi-x86_64-linux-ubuntu-gcc49-cxx11/llvm/projects/libcxx/include/atomic:939:5: > note: synthesized method > 'std::__1::__gcc_atomic::__gcc_atomic_t<_Tp>::__gcc_atomic_t() [with _Tp = > __vector(2) int]' first required here > __atomic_base() _NOEXCEPT = default; > ^ > > GCC's docs say the following about ABI version 6: > Version 6, which first appeared in G++ 4.7, corrects the promotion > behavior of C++11 scoped enums and the mangling of template argument packs, > const/static_cast, prefix ++ and –, and a class scope function used as a > template argument. > > Modified: > libcxx/trunk/test/libcxx/atomics/atomics.align/align.pass.sh.cpp > > Modified: libcxx/trunk/test/libcxx/atomics/atomics.align/align.pass.sh.cpp > URL: > http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/atomics/atomics.align/align.pass.sh.cpp?rev=277380&r1=277379&r2=277380&view=diff > > ============================================================================== > --- libcxx/trunk/test/libcxx/atomics/atomics.align/align.pass.sh.cpp > (original) > +++ libcxx/trunk/test/libcxx/atomics/atomics.align/align.pass.sh.cpp Mon > Aug 1 15:28:13 2016 > @@ -11,6 +11,10 @@ > // REQUIRES: libatomic > // RUN: %build -latomic > // RUN: %run > +// > +// GCC currently fails because it needs -fabi-version=6 to fix mangling of > +// std::atomic when used with __attribute__((vector(X))). > +// XFAIL: gcc > > // <atomic> > > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits