jlebar added a comment.

> The tests should be runnable with lit. I generally just do an in-tree build 
> and run make check-libcxx. @EricWF , what's the recommended way of running 
> the tests from an out-of-tree build?

Things seem broken at the moment with clang from tip of tree.

I did a clean in-tree build and then modified the `config.cxx_under_test` line 
in projects/libcxx/test/lit.site.cfg to point to my newly-built clang.  Running 
check-cxx gets tons of failing tests [1].  However, if I change that to point 
to my clang-3.8 binary, everything works fine, with and without this patch here.

So, issues with libc++ and current clang aside (I'm happy to file a bug 
somewhere?), this patch seems to pass the tests just fine.

Would be nice to get this in -- it's the only thing blocking me from turning on 
these tests in the test suite (and announcing full support for std::complex on 
the device).

[1]  One example of a failing test:

  ********************

    FAIL: libc++ :: 
std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_move.pass.cpp
 (732 of 5634)
    ******************** TEST 'libc++ :: 
std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_move.pass.cpp'
 FAILED ********************
    Command: ['/usr/local/google/home/jlebar/llvm/release/bin/clang++', '-o', 
'/usr/local/google/home/jlebar/code/llvm/release/projects/libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/Output/ctor_move.pass.cpp.o',
 '-x', 'c++', 
'/usr/local/google/home/jlebar/code/llvm/libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_move.pass.cpp',
 '-c', '-v', '-Werror=thread-safety', '-std=c++1z', '-include', 
'/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/test/support/nasty_macros.hpp',
 '-nostdinc++', 
'-I/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include', 
'-D__STDC_FORMAT_MACROS', '-D__STDC_LIMIT_MACROS', '-D__STDC_CONSTANT_MACROS', 
'-I/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/test/support', 
'-DLIBCXX_FILESYSTEM_STATIC_TEST_ROOT="/usr/local/google/home/jlebar/code/llvm/libcxx/test/std/experimental/filesystem/Inputs/static_test_env"',
 
'-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT="/usr/local/google/home/jlebar/code/llvm/release/projects/libcxx/test/filesystem/Output/dynamic_env"',
 '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER="/usr/bin/python2.7 
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/test/support/filesystem_dynamic_test_helper.py"',
 '-c']
    Exit Code: 1
    Standard Error:
    --
    clang version 4.0.0 
    Target: x86_64-unknown-linux-gnu
    Thread model: posix
    InstalledDir: /usr/local/google/home/jlebar/llvm/release/bin
    Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.7
    Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.7.3
    Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8
    Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.4
    Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
    Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.3
    Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8
    Candidate multilib: .;@m64
    Candidate multilib: 32;@m32
    Candidate multilib: x32;@mx32
    Selected multilib: .;@m64
    Found CUDA installation: /usr/local/cuda, version 7.0
     "/usr/local/google/home/jlebar/code/llvm/release/bin/clang-4.0" -cc1 
-triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free 
-main-file-name ctor_move.pass.cpp -mrelocation-model static -mthread-model 
posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases 
-munwind-tables -fuse-init-array -target-cpu x86-64 -v -dwarf-column-info 
-debugger-tuning=gdb -coverage-notes-file 
/usr/local/google/home/jlebar/code/llvm/release/projects/libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/Output/ctor_move.pass.cpp.gcno
 -nostdinc++ -resource-dir 
/usr/local/google/home/jlebar/code/llvm/release/bin/../lib/clang/4.0.0 -include 
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/test/support/nasty_macros.hpp
 -I /usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include -D 
__STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -I 
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/test/support -D 
"LIBCXX_FILESYSTEM_STATIC_TEST_ROOT=\"/usr/local/google/home/jlebar/code/llvm/libcxx/test/std/experimental/filesystem/Inputs/static_test_env\""
 -D 
"LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT=\"/usr/local/google/home/jlebar/code/llvm/release/projects/libcxx/test/filesystem/Output/dynamic_env\""
 -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER=\"/usr/bin/python2.7 
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/test/support/filesystem_dynamic_test_helper.py\""
 -internal-isystem /usr/local/include -internal-isystem 
/usr/local/google/home/jlebar/code/llvm/release/bin/../lib/clang/4.0.0/include 
-internal-externc-isystem /usr/include/x86_64-linux-gnu 
-internal-externc-isystem /include -internal-externc-isystem /usr/include 
-Werror=thread-safety -std=c++1z -fdeprecated-macro -fdebug-compilation-dir 
/usr/local/google/home/jlebar/code/llvm/release/projects/libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons
 -ferror-limit 19 -fmessage-length 0 -fobjc-runtime=gcc -fcxx-exceptions 
-fexceptions -fdiagnostics-show-option -o 
/usr/local/google/home/jlebar/code/llvm/release/projects/libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/Output/ctor_move.pass.cpp.o
 -x c++ 
/usr/local/google/home/jlebar/code/llvm/libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_move.pass.cpp
    clang -cc1 version 4.0.0 based upon LLVM 4.0.0svn default target 
x86_64-unknown-linux-gnu
    ignoring nonexistent directory "/include"
    #include "..." search starts here:
    #include <...> search starts here:
     /usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include
     /usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/test/support
     /usr/local/include
     
/usr/local/google/home/jlebar/code/llvm/release/bin/../lib/clang/4.0.0/include
     /usr/include/x86_64-linux-gnu
     /usr/include
    End of search list.
    In file included from 
/usr/local/google/home/jlebar/code/llvm/libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_move.pass.cpp:14:
    In file included from 
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/queue:170:
    In file included from 
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/deque:158:
    In file included from 
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/__split_buffer:7:
    In file included from 
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/algorithm:639:
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/utility:260:1: 
error: conflicting types for 'swap'
    swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) 
_NOEXCEPT_(__is_nothrow_swappable<_Tp>::value)
    ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/type_traits:4381:1:
 note: previous declaration is here
    swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) 
_NOEXCEPT_(__is_nothrow_swappable<_Tp>::value);
    ^
    In file included from 
/usr/local/google/home/jlebar/code/llvm/libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_move.pass.cpp:14:
    In file included from 
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/queue:170:
    In file included from 
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/deque:158:
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/__split_buffer:318:34:
 error: conflicting types for '__split_buffer<_Tp, _Allocator>'
    __split_buffer<_Tp, _Allocator>::__split_buffer()
                                   ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/__split_buffer:60:5:
 note: previous declaration is here
        __split_buffer()
        ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/__split_buffer:349:34:
 error: conflicting types for '__split_buffer<_Tp, _Allocator>'
    __split_buffer<_Tp, _Allocator>::__split_buffer(__split_buffer&& __c)
                                   ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/__split_buffer:70:5:
 note: previous declaration is here
        __split_buffer(__split_buffer&& __c)
        ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/__split_buffer:390:34:
 error: conflicting types for 'operator='
    __split_buffer<_Tp, _Allocator>::operator=(__split_buffer&& __c)
                                   ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/__split_buffer:73:21:
 note: previous declaration is here
        __split_buffer& operator=(__split_buffer&& __c)
                      ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/__split_buffer:412:34:
 error: conflicting types for 'swap'
    __split_buffer<_Tp, _Allocator>::swap(__split_buffer& __x)
                                   ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/__split_buffer:147:10:
 note: previous declaration is here
        void swap(__split_buffer& __x)
           ^
    In file included from 
/usr/local/google/home/jlebar/code/llvm/libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_move.pass.cpp:14:
    In file included from 
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/queue:170:
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/deque:1092:32: 
error: conflicting types for '__deque_base<_Tp, _Allocator>'
    __deque_base<_Tp, _Allocator>::__deque_base()
                                 ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/deque:964:5: 
note: previous declaration is here
        __deque_base()
        ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/deque:1114:32: 
error: conflicting types for '__deque_base<_Tp, _Allocator>'
    __deque_base<_Tp, _Allocator>::__deque_base(__deque_base&& __c)
                                 ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/deque:973:5: 
note: previous declaration is here
        __deque_base(__deque_base&& __c)
        ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/deque:1556:25: 
error: conflicting types for 'deque<_Tp, _Allocator>'
    deque<_Tp, _Allocator>::deque(deque&& __c)
                          ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/deque:1246:5: 
note: previous declaration is here
        deque(deque&& __c) 
_NOEXCEPT_(is_nothrow_move_constructible<__base>::value);
        ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/deque:1577:25: 
error: conflicting types for 'operator='
    deque<_Tp, _Allocator>::operator=(deque&& __c)
                          ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/deque:1250:12: 
note: previous declaration is here
        deque& operator=(deque&& __c)
             ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/deque:1601:25: 
error: conflicting types for '__move_assign'
    deque<_Tp, _Allocator>::__move_assign(deque& __c, true_type)
                          ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/deque:1455:10: 
note: previous declaration is here
        void __move_assign(deque& __c, true_type)
           ^
    In file included from 
/usr/local/google/home/jlebar/code/llvm/libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_move.pass.cpp:14:
    In file included from 
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/queue:171:
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/vector:422:33: 
error: conflicting types for '__vector_base<_Tp, _Allocator>'
    __vector_base<_Tp, _Allocator>::__vector_base()
                                  ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/vector:355:5: 
note: previous declaration is here
        __vector_base()
        ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/vector:1300:26: 
error: conflicting types for 'operator='
    vector<_Tp, _Allocator>::operator=(vector&& __x)
                           ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/vector:557:13: 
note: previous declaration is here
        vector& operator=(vector&& __x)
              ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/vector:1324:26: 
error: conflicting types for '__move_assign'
    vector<_Tp, _Allocator>::__move_assign(vector& __c, true_type)
                           ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/vector:782:10: 
note: previous declaration is here
        void __move_assign(vector& __c, true_type)
           ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/vector:2544:27: 
error: conflicting types for 'vector<bool, type-parameter-0-0>'
    vector<bool, _Allocator>::vector()
                            ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/vector:2162:5: 
note: previous declaration is here
        vector() 
_NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);
        ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/vector:2836:27: 
error: conflicting types for 'operator='
    vector<bool, _Allocator>::operator=(vector&& __v)
                            ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/vector:2210:13: 
note: previous declaration is here
        vector& operator=(vector&& __v)
              ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/vector:2856:27: 
error: conflicting types for '__move_assign'
    vector<bool, _Allocator>::__move_assign(vector& __c, true_type)
                            ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/vector:2418:10: 
note: previous declaration is here
        void __move_assign(vector& __c, true_type)
           ^
    In file included from 
/usr/local/google/home/jlebar/code/llvm/libcxx/test/std/containers/container.adaptors/priority.queue/priqueue.cons/ctor_move.pass.cpp:14:
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/queue:711:44: 
error: conflicting types for 'swap'
    priority_queue<_Tp, _Container, _Compare>::swap(priority_queue& __q)
                                             ^
    
/usr/local/google/home/jlebar/llvm/llvm/projects/libcxx/include/queue:514:10: 
note: previous declaration is here
        void swap(priority_queue& __q)
           ^
    17 errors generated.
    --
  
    Compilation failed unexpectedly!


https://reviews.llvm.org/D25403



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

Reply via email to