[cfe-dev] Unexpected check-libcxx failures on FreeBSD

Krzysztof Parzyszek via cfe-dev cfe-dev at lists.llvm.org
Fri Oct 7 18:23:58 PDT 2016


I'm running this on FreeBSD 11 (stable). It has clang-3.8.0 as the 
system compiler. LLVM/Clang/et al. compiled without problems, but I'm 
seeing failures in check-libcxx.  Example below.

Does anyone know what the problem may be?


clang version 4.0.0 (http://llvm.org/git/clang.git 
a85c03256cfc0812e268f5e0f1b804910e75e673) (http://llvm.org/git/llvm.git 
c95d4ff692323bde64fc8ef45e174b19450779af)
Target: x86_64-unknown-freebsd11.0
Thread model: posix
InstalledDir: /w/c/org/bin
  "/w/c/org/bin/clang-4.0" -cc1 -triple x86_64-unknown-freebsd11.0 
-emit-obj -mrelax-all -disable-free -main-file-name 
minmax_init_list_comp.pass.cpp -mrelocation-model static -mthread-model 
posix -mdisable-fp-elim -masm-verbose -mconstructor-aliases 
-munwind-tables -target-cpu x86-64 -v -v -dwarf-column-info 
-debugger-tuning=gdb -coverage-notes-file 
/w/bld/org/projects/libcxx/test/std/algorithms/alg.sorting/alg.min.max/Output/minmax_init_list_comp.pass.cpp.gcno 
-nostdinc++ -resource-dir /w/c/org/bin/../lib/clang/4.0.0 -include 
/w/src/llvm.org/projects/libcxx/test/support/nasty_macros.hpp -I 
/w/src/llvm.org/projects/libcxx/include -I 
/w/src/llvm.org/projects/libcxx/test/support -D 
LIBCXX_FILESYSTEM_STATIC_TEST_ROOT=/w/src/llvm.org/projects/libcxx/test/std/experimental/filesystem/Inputs/static_test_env 
-D 
LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT=/w/bld/org/projects/libcxx/test/filesystem/Output/dynamic_env 
-D LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER=/usr/local/bin/python2.7 
/w/src/llvm.org/projects/libcxx/test/support/filesystem_dynamic_test_helper.py 
-Werror=thread-safety -std=c++1z -fdeprecated-macro 
-fdebug-compilation-dir /w/src/llvm.org -ferror-limit 19 
-fmessage-length 210 -fobjc-runtime=gnustep -fcxx-exceptions 
-fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o 
/w/bld/org/projects/libcxx/test/std/algorithms/alg.sorting/alg.min.max/Output/minmax_init_list_comp.pass.cpp.o 
-x c++ 
/w/src/llvm.org/projects/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp
clang -cc1 version 4.0.0 based upon LLVM 4.0.0svn default target 
x86_64-unknown-freebsd11.0
#include "..." search starts here:
#include <...> search starts here:
  /w/src/llvm.org/projects/libcxx/include
  /w/src/llvm.org/projects/libcxx/test/support
  /w/c/org/bin/../lib/clang/4.0.0/include
  /usr/include
End of search list.
/w/src/llvm.org/projects/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp:68:19: 
error: static_assert expression is not an integral constant expression
     static_assert((std::minmax({1, 2, 3}, std::greater<int>()) == 
std::pair<int, int>(3, 1)), "");
 
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/w/src/llvm.org/projects/libcxx/include/algorithm:2823:12: note: 
non-constexpr constructor 'pair' cannot be used in a constant expression
     return __result;
            ^
/w/src/llvm.org/projects/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp:68:20: 
note: in call to 'minmax({&{1, 2, 3}[0], 3}, {{}})'
     static_assert((std::minmax({1, 2, 3}, std::greater<int>()) == 
std::pair<int, int>(3, 1)), "");
                    ^
/w/src/llvm.org/projects/libcxx/include/utility:316:5: note: declared here
     pair(pair&& __p) 
_NOEXCEPT_(is_nothrow_move_constructible<first_type>::value &&
     ^
/w/src/llvm.org/projects/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp:69:19: 
error: static_assert expression is not an integral constant expression
     static_assert((std::minmax({1, 3, 2}, std::greater<int>()) == 
std::pair<int, int>(3, 1)), "");
 
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/w/src/llvm.org/projects/libcxx/include/algorithm:2823:12: note: 
non-constexpr constructor 'pair' cannot be used in a constant expression
     return __result;
            ^
/w/src/llvm.org/projects/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp:69:20: 
note: in call to 'minmax({&{1, 3, 2}[0], 3}, {{}})'
     static_assert((std::minmax({1, 3, 2}, std::greater<int>()) == 
std::pair<int, int>(3, 1)), "");
                    ^
/w/src/llvm.org/projects/libcxx/include/utility:316:5: note: declared here
     pair(pair&& __p) 
_NOEXCEPT_(is_nothrow_move_constructible<first_type>::value &&
     ^
/w/src/llvm.org/projects/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp:70:19: 
error: static_assert expression is not an integral constant expression
     static_assert((std::minmax({2, 1, 3}, std::greater<int>()) == 
std::pair<int, int>(3, 1)), "");
 
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/w/src/llvm.org/projects/libcxx/include/algorithm:2823:12: note: 
non-constexpr constructor 'pair' cannot be used in a constant expression
     return __result;
            ^
/w/src/llvm.org/projects/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp:70:20: 
note: in call to 'minmax({&{2, 1, 3}[0], 3}, {{}})'
     static_assert((std::minmax({2, 1, 3}, std::greater<int>()) == 
std::pair<int, int>(3, 1)), "");
                    ^
/w/src/llvm.org/projects/libcxx/include/utility:316:5: note: declared here
     pair(pair&& __p) 
_NOEXCEPT_(is_nothrow_move_constructible<first_type>::value &&
     ^
/w/src/llvm.org/projects/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp:71:19: 
error: static_assert expression is not an integral constant expression
     static_assert((std::minmax({2, 3, 1}, std::greater<int>()) == 
std::pair<int, int>(3, 1)), "");
 
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/w/src/llvm.org/projects/libcxx/include/algorithm:2823:12: note: 
non-constexpr constructor 'pair' cannot be used in a constant expression
     return __result;
            ^
/w/src/llvm.org/projects/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp:71:20: 
note: in call to 'minmax({&{2, 3, 1}[0], 3}, {{}})'
     static_assert((std::minmax({2, 3, 1}, std::greater<int>()) == 
std::pair<int, int>(3, 1)), "");
                    ^
/w/src/llvm.org/projects/libcxx/include/utility:316:5: note: declared here
     pair(pair&& __p) 
_NOEXCEPT_(is_nothrow_move_constructible<first_type>::value &&
     ^
/w/src/llvm.org/projects/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp:72:19: 
error: static_assert expression is not an integral constant expression
     static_assert((std::minmax({3, 1, 2}, std::greater<int>()) == 
std::pair<int, int>(3, 1)), "");
 
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/w/src/llvm.org/projects/libcxx/include/algorithm:2823:12: note: 
non-constexpr constructor 'pair' cannot be used in a constant expression
     return __result;
            ^
/w/src/llvm.org/projects/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp:72:20: 
note: in call to 'minmax({&{3, 1, 2}[0], 3}, {{}})'
     static_assert((std::minmax({3, 1, 2}, std::greater<int>()) == 
std::pair<int, int>(3, 1)), "");
                    ^
/w/src/llvm.org/projects/libcxx/include/utility:316:5: note: declared here
     pair(pair&& __p) 
_NOEXCEPT_(is_nothrow_move_constructible<first_type>::value &&
     ^
/w/src/llvm.org/projects/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp:73:19: 
error: static_assert expression is not an integral constant expression
     static_assert((std::minmax({3, 2, 1}, std::greater<int>()) == 
std::pair<int, int>(3, 1)), "");
 
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/w/src/llvm.org/projects/libcxx/include/algorithm:2823:12: note: 
non-constexpr constructor 'pair' cannot be used in a constant expression
     return __result;
            ^
/w/src/llvm.org/projects/libcxx/test/std/algorithms/alg.sorting/alg.min.max/minmax_init_list_comp.pass.cpp:73:20: 
note: in call to 'minmax({&{3, 2, 1}[0], 3}, {{}})'
     static_assert((std::minmax({3, 2, 1}, std::greater<int>()) == 
std::pair<int, int>(3, 1)), "");
                    ^
/w/src/llvm.org/projects/libcxx/include/utility:316:5: note: declared here
     pair(pair&& __p) 
_NOEXCEPT_(is_nothrow_move_constructible<first_type>::value &&
     ^
6 errors generated.


-Krzysztof




More information about the cfe-dev mailing list