Math develop tests fail (for me)

I was working on my bugfix but I just noticed that tests for the dev branch won’t build for me (this is unit math tests, run with ./runTests.py test/unit/math). Before I dig in, anybody seen this yet? Problem is the same if I clone develop on its own in a fresh directory and run this test.

clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -O3 -DGTEST_USE_OWN_TR1_TUPLE -DGTEST_HAS_PTHREAD=0 -Wno-c++11-long-long -isystem lib/gtest_1.7.0/include -isystem lib/gtest_1.7.0 test/unit/math/rev/scal/err/check_positive_test.cpp -o test/unit/math/rev/scal/err/check_positive_test.o
In file included from test/unit/math/rev/scal/err/check_positive_test.cpp:1:
In file included from ./stan/math/rev/scal.hpp:10:
In file included from ./stan/math/prim/scal.hpp:50:
./stan/math/prim/scal/err/check_positive.hpp:24:54: error: ordered comparison between pointer and zero
      ('double (*)(const char *)' and 'int')
          if (!boost::is_unsigned<T_y>::value && !(y > 0))
                                                   ~ ^ ~
./stan/math/prim/scal/err/check_positive.hpp:66:50: note: in instantiation of member function
      'stan::math::(anonymous namespace)::positive<double (const char *), false>::check' requested here
      positive<T_y, is_vector_like<T_y>::value>::check(function, name, y);
                                                 ^
test/unit/math/rev/scal/err/check_positive_test.cpp:10:19: note: in instantiation of function template
      specialization 'stan::math::check_positive<double (const char *)>' requested here
  EXPECT_NO_THROW(check_positive(function, "x", nan));
                  ^
1 error generated.
make/tests:24: recipe for target 'test/unit/math/rev/scal/err/check_positive_test.o' failed
make: *** [test/unit/math/rev/scal/err/check_positive_test.o] Error 1
make -j1 test/unit/math/rev/scal/err/check_positive_test failed
exit now (06/04/17 10:11:03 EDT)

Full output:

krzysztof@hagrid:~/packages/math-develop$ ./runTests.py test/unit/math/rev/scal/err/check_positive_test.cpp 
------------------------------------------------------------
make -j1 test/unit/math/rev/scal/err/check_positive_test
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -O3 -DGTEST_USE_OWN_TR1_TUPLE -DGTEST_HAS_PTHREAD=0 -Wno-c++11-long-long -isystem lib/gtest_1.7.0/include -isystem lib/gtest_1.7.0 lib/gtest_1.7.0/src/gtest-all.cc -o test/gtest.o
ar rv test/libgtest.a test/gtest.o
ar: creating test/libgtest.a
a - test/gtest.o
make: Warning: Archive 'test/libgtest.a' seems to have been created in deterministic mode. 'test/gtest.o' will always be updated. Please consider passing the U flag to ar to avoid the problem.
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/nvec_ser/nvector_serial.c -o lib/cvodes_2.9.0/src/nvec_ser/nvector_serial.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/sundials/sundials_math.c -o lib/cvodes_2.9.0/src/sundials/sundials_math.o
ar -rs lib/cvodes_2.9.0/lib/libsundials_nvecserial.a lib/cvodes_2.9.0/src/nvec_ser/nvector_serial.o lib/cvodes_2.9.0/src/sundials/sundials_math.o
ar: creating lib/cvodes_2.9.0/lib/libsundials_nvecserial.a
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/cvodes/cvodes.c -o lib/cvodes_2.9.0/src/cvodes/cvodes.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/cvodes/cvodes_io.c -o lib/cvodes_2.9.0/src/cvodes/cvodes_io.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/cvodes/cvodea.c -o lib/cvodes_2.9.0/src/cvodes/cvodea.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/cvodes/cvodea_io.c -o lib/cvodes_2.9.0/src/cvodes/cvodea_io.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/cvodes/cvodes_direct.c -o lib/cvodes_2.9.0/src/cvodes/cvodes_direct.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/cvodes/cvodes_band.c -o lib/cvodes_2.9.0/src/cvodes/cvodes_band.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/cvodes/cvodes_dense.c -o lib/cvodes_2.9.0/src/cvodes/cvodes_dense.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/cvodes/cvodes_diag.c -o lib/cvodes_2.9.0/src/cvodes/cvodes_diag.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/cvodes/cvodes_spils.c -o lib/cvodes_2.9.0/src/cvodes/cvodes_spils.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/cvodes/cvodes_spbcgs.c -o lib/cvodes_2.9.0/src/cvodes/cvodes_spbcgs.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/cvodes/cvodes_spgmr.c -o lib/cvodes_2.9.0/src/cvodes/cvodes_spgmr.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/cvodes/cvodes_sptfqmr.c -o lib/cvodes_2.9.0/src/cvodes/cvodes_sptfqmr.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/cvodes/cvodes_sparse.c -o lib/cvodes_2.9.0/src/cvodes/cvodes_sparse.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/cvodes/cvodes_bandpre.c -o lib/cvodes_2.9.0/src/cvodes/cvodes_bandpre.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/cvodes/cvodes_bbdpre.c -o lib/cvodes_2.9.0/src/cvodes/cvodes_bbdpre.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/sundials/sundials_direct.c -o lib/cvodes_2.9.0/src/sundials/sundials_direct.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/sundials/sundials_band.c -o lib/cvodes_2.9.0/src/sundials/sundials_band.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/sundials/sundials_spfgmr.c -o lib/cvodes_2.9.0/src/sundials/sundials_spfgmr.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/sundials/sundials_iterative.c -o lib/cvodes_2.9.0/src/sundials/sundials_iterative.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/sundials/sundials_spgmr.c -o lib/cvodes_2.9.0/src/sundials/sundials_spgmr.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/sundials/sundials_spbcgs.c -o lib/cvodes_2.9.0/src/sundials/sundials_spbcgs.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/sundials/sundials_sptfqmr.c -o lib/cvodes_2.9.0/src/sundials/sundials_sptfqmr.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/sundials/sundials_pcg.c -o lib/cvodes_2.9.0/src/sundials/sundials_pcg.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/sundials/sundials_nvector.c -o lib/cvodes_2.9.0/src/sundials/sundials_nvector.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/sundials/sundials_dense.c -o lib/cvodes_2.9.0/src/sundials/sundials_dense.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -x c -O3 -isystem lib/cvodes_2.9.0/include lib/cvodes_2.9.0/src/sundials/sundials_sparse.c -o lib/cvodes_2.9.0/src/sundials/sundials_sparse.o
ar -rs lib/cvodes_2.9.0/lib/libsundials_cvodes.a lib/cvodes_2.9.0/src/cvodes/cvodes.o lib/cvodes_2.9.0/src/cvodes/cvodes_io.o lib/cvodes_2.9.0/src/cvodes/cvodea.o lib/cvodes_2.9.0/src/cvodes/cvodea_io.o lib/cvodes_2.9.0/src/cvodes/cvodes_direct.o lib/cvodes_2.9.0/src/cvodes/cvodes_band.o lib/cvodes_2.9.0/src/cvodes/cvodes_dense.o lib/cvodes_2.9.0/src/cvodes/cvodes_diag.o lib/cvodes_2.9.0/src/cvodes/cvodes_spils.o lib/cvodes_2.9.0/src/cvodes/cvodes_spbcgs.o lib/cvodes_2.9.0/src/cvodes/cvodes_spgmr.o lib/cvodes_2.9.0/src/cvodes/cvodes_sptfqmr.o lib/cvodes_2.9.0/src/cvodes/cvodes_sparse.o lib/cvodes_2.9.0/src/cvodes/cvodes_bandpre.o lib/cvodes_2.9.0/src/cvodes/cvodes_bbdpre.o lib/cvodes_2.9.0/src/sundials/sundials_direct.o lib/cvodes_2.9.0/src/sundials/sundials_band.o lib/cvodes_2.9.0/src/sundials/sundials_spfgmr.o lib/cvodes_2.9.0/src/sundials/sundials_iterative.o lib/cvodes_2.9.0/src/sundials/sundials_spgmr.o lib/cvodes_2.9.0/src/sundials/sundials_spbcgs.o lib/cvodes_2.9.0/src/sundials/sundials_sptfqmr.o lib/cvodes_2.9.0/src/sundials/sundials_math.o lib/cvodes_2.9.0/src/sundials/sundials_pcg.o lib/cvodes_2.9.0/src/sundials/sundials_nvector.o lib/cvodes_2.9.0/src/sundials/sundials_dense.o lib/cvodes_2.9.0/src/sundials/sundials_sparse.o
ar: creating lib/cvodes_2.9.0/lib/libsundials_cvodes.a
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -O3 -DGTEST_USE_OWN_TR1_TUPLE -DGTEST_HAS_PTHREAD=0 -Wno-c++11-long-long -isystem lib/gtest_1.7.0/include -isystem lib/gtest_1.7.0 test/unit/math/rev/scal/err/check_positive_test.cpp -o test/unit/math/rev/scal/err/check_positive_test.o
In file included from test/unit/math/rev/scal/err/check_positive_test.cpp:1:
In file included from ./stan/math/rev/scal.hpp:10:
In file included from ./stan/math/prim/scal.hpp:50:
./stan/math/prim/scal/err/check_positive.hpp:24:54: error: ordered comparison between pointer and zero
      ('double (*)(const char *)' and 'int')
          if (!boost::is_unsigned<T_y>::value && !(y > 0))
                                                   ~ ^ ~
./stan/math/prim/scal/err/check_positive.hpp:66:50: note: in instantiation of member function
      'stan::math::(anonymous namespace)::positive<double (const char *), false>::check' requested here
      positive<T_y, is_vector_like<T_y>::value>::check(function, name, y);
                                                 ^
test/unit/math/rev/scal/err/check_positive_test.cpp:10:19: note: in instantiation of function template
      specialization 'stan::math::check_positive<double (const char *)>' requested here
  EXPECT_NO_THROW(check_positive(function, "x", nan));
                  ^
1 error generated.
make/tests:24: recipe for target 'test/unit/math/rev/scal/err/check_positive_test.o' failed
make: *** [test/unit/math/rev/scal/err/check_positive_test.o] Error 1
make -j1 test/unit/math/rev/scal/err/check_positive_test failed
exit now (06/04/17 10:11:03 EDT)

clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -O3 -DGTEST_USE_OWN_TR1_TUPLE -DGTEST_HAS_PTHREAD=0 -Wno-c++11-long-long -isystem lib/gtest_1.7.0/include -isystem lib/gtest_1.7.0 test/unit/math/rev/scal/err/check_positive_test.cpp -o test/unit/math/rev/scal/err/check_positive_test.o
In file included from test/unit/math/rev/scal/err/check_positive_test.cpp:1:
In file included from ./stan/math/rev/scal.hpp:10:
In file included from ./stan/math/prim/scal.hpp:50:
./stan/math/prim/scal/err/check_positive.hpp:24:54: error: ordered comparison between pointer and zero
      ('double (*)(const char *)' and 'int')
          if (!boost::is_unsigned<T_y>::value && !(y > 0))
                                                   ~ ^ ~
./stan/math/prim/scal/err/check_positive.hpp:66:50: note: in instantiation of member function
      'stan::math::(anonymous namespace)::positive<double (const char *), false>::check' requested here
      positive<T_y, is_vector_like<T_y>::value>::check(function, name, y);
                                                 ^
test/unit/math/rev/scal/err/check_positive_test.cpp:10:19: note: in instantiation of function template
      specialization 'stan::math::check_positive<double (const char *)>' requested here
  EXPECT_NO_THROW(check_positive(function, "x", nan));
                  ^
1 error generated.
make/tests:24: recipe for target 'test/unit/math/rev/scal/err/check_positive_test.o' failed
make: *** [test/unit/math/rev/scal/err/check_positive_test.o] Error 1
rm test/unit/math/rev/scal/err/invalid_argument_test.o test/unit/math/rev/scal/err/check_less_or_equal_test.o test/unit/math/rev/scal/err/check_finite_test.o test/unit/math/rev/scal/err/check_nonnegative_test.o
make -j1 test/unit/math/rev/scal/err/check_finite_test test/unit/math/rev/scal/err/invalid_argument_test test/unit/math/rev/scal/err/check_less_or_equal_test test/unit/math/rev/scal/err/check_nonnegative_test test/unit/math/rev/scal/err/check_positive_test test/unit/math/rev/scal/err/check_not_nan_test test/unit/math/rev/scal/err/check_greater_or_equal_test test/unit/math/rev/scal/err/check_positive_finite_test test/unit/math/rev/scal/err/check_greater_test test/unit/math/rev/scal/err/domain_error_test test/unit/math/rev/scal/err/check_bounded_test test/unit/math/rev/scal/err/check_less_test failed
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -O3 -DGTEST_USE_OWN_TR1_TUPLE -DGTEST_HAS_PTHREAD=0 -Wno-c++11-long-long -isystem lib/gtest_1.7.0/include -isystem lib/gtest_1.7.0 test/unit/math/rev/scal/err/check_positive_test.cpp -o test/unit/math/rev/scal/err/check_positive_test.o
In file included from test/unit/math/rev/scal/err/check_positive_test.cpp:1:
In file included from ./stan/math/rev/scal.hpp:10:
In file included from ./stan/math/prim/scal.hpp:50:
./stan/math/prim/scal/err/check_positive.hpp:24:54: error: ordered comparison between pointer and zero
      ('double (*)(const char *)' and 'int')
          if (!boost::is_unsigned<T_y>::value && !(y > 0))
                                                   ~ ^ ~
./stan/math/prim/scal/err/check_positive.hpp:66:50: note: in instantiation of member function
      'stan::math::(anonymous namespace)::positive<double (const char *), false>::check' requested here
      positive<T_y, is_vector_like<T_y>::value>::check(function, name, y);
                                                 ^
test/unit/math/rev/scal/err/check_positive_test.cpp:10:19: note: in instantiation of function template
      specialization 'stan::math::check_positive<double (const char *)>' requested here
  EXPECT_NO_THROW(check_positive(function, "x", nan));
                  ^
1 error generated.
make/tests:24: recipe for target 'test/unit/math/rev/scal/err/check_positive_test.o' failed
make: *** [test/unit/math/rev/scal/err/check_positive_test.o] Error 1
rm test/unit/math/rev/scal/err/invalid_argument_test.o test/unit/math/rev/scal/err/check_less_or_equal_test.o test/unit/math/rev/scal/err/check_finite_test.o test/unit/math/rev/scal/err/check_nonnegative_test.o
make -j1 test/unit/math/rev/scal/err/check_finite_test test/unit/math/rev/scal/err/invalid_argument_test test/unit/math/rev/scal/err/check_less_or_equal_test test/unit/math/rev/scal/err/check_nonnegative_test test/unit/math/rev/scal/err/check_positive_test test/unit/math/rev/scal/err/check_not_nan_test test/unit/math/rev/scal/err/check_greater_or_equal_test test/unit/math/rev/scal/err/check_positive_finite_test test/unit/math/rev/scal/err/check_greater_test test/unit/math/rev/scal/err/domain_error_test test/unit/math/rev/scal/err/check_bounded_test test/unit/math/rev/scal/err/check_less_test failed
exit now (06/03/17 09:24:52 EDT)
krzysztof@hagrid:~/packages/math-bugfix$ gcc --version
gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
krzysztof@hagrid:~/packages/math-bugfix$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="17.04 (Zesty Zapus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 17.04"
VERSION_ID="17.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=zesty
UBUNTU_CODENAME=zesty

I just checked specifically

./runTests.py test/unit/math/rev/scal/err/check_positive_test.cpp

This passes on Ubuntu 16.04, clean Math dev branch, clang 3.8.0.

Could you post the terminal output from your run? Sometimes it’s easier to
troubleshoot with a working comparison.

Sure lemme rebuild and save them this time.

It’s in a test that passes nan in as the value for y and somehow it ends up as a … ('double (*)(const char *) this is before it gets to any boost code. I’ll see if I can at figure it out.

In file included from ./stan/math/prim/scal.hpp:50:
./stan/math/prim/scal/err/check_positive.hpp:24:54: error: ordered comparison between pointer and zero
      ('double (*)(const char *)' and 'int')
          if (!boost::is_unsigned<T_y>::value && !(y > 0))
                                                   ~ ^ ~
./stan/math/prim/scal/err/check_positive.hpp:66:50: note: in instantiation of member function
      'stan::math::(anonymous namespace)::positive<double (const char *), false>::check' requested here
      positive<T_y, is_vector_like<T_y>::value>::check(function, name, y);
                                                 ^
test/unit/math/rev/scal/err/check_positive_test.cpp:10:19: note: in instantiation of function template
      specialization 'stan::math::check_positive<double (const char *)>' requested here
  EXPECT_NO_THROW(check_positive(function, "x", nan));

Oh, I think nan is a C++ function of type double (const char* tagp) (http://www.cplusplus.com/reference/cmath/nan-function/)

In the test (https://github.com/stan-dev/math/blob/develop/test/unit/math/rev/scal/err/check_positive_test.cpp) nan is never defined as a variable, so the compiler is trying to pass this function in.

I think through most of the tests nan is defined as:
double nan = std::numeric_limits<double>::quiet_NaN();

So it should be a matter of defining nan that way where it’s missing. I wonder why my compiler lets it past?

Yeah that works! Really no idea why it was working before (?)… the test even says EXPECT_NO_THROW on NaN when … it’s a check function that’s supposed to handle NaN… idk, I’ll change it to EXPECT_THROW and see what chaos I get in downstream tests.

If you do get the terminal output can you make sure that test actually ran with your compiler? And maybe dump out what that nan is defined as for you? Maybe just streaming it to std::cout would do.

This is the output:

bbales2@frog:~/math4$ make test/unit/math/rev/scal/err/check_positive_test && test/unit/math/rev/scal/err/check_positive_test
make: Warning: Archive 'test/libgtest.a' seems to have been created in deterministic mode. 'test/gtest.o' will always be updated. Please consider passing the U flag to ar to avoid the problem.
ar rv test/libgtest.a test/gtest.o
r - test/gtest.o
make: Warning: Archive 'test/libgtest.a' seems to have been created in deterministic mode. 'test/gtest.o' will always be updated. Please consider passing the U flag to ar to avoid the problem.
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long   -c -O3 -DGTEST_USE_OWN_TR1_TUPLE -DGTEST_HAS_PTHREAD=0 -Wno-c++11-long-long -isystem lib/gtest_1.7.0/include -isystem lib/gtest_1.7.0 test/unit/math/rev/scal/err/check_positive_test.cpp -o test/unit/math/rev/scal/err/check_positive_test.o
clang++ -I . -isystem lib/eigen_3.3.3 -isystem lib/boost_1.62.0 -isystemlib/cvodes_2.9.0/include -Wall -DBOOST_RESULT_OF_USE_TR1 -DBOOST_NO_DECLTYPE -DBOOST_DISABLE_ASSERTS -DNO_FPRINTF_OUTPUT -pipe -Wno-unused-function -Wno-uninitialized -Wno-c++11-long-long    -O3 lib/gtest_1.7.0/src/gtest_main.cc test/unit/math/rev/scal/err/check_positive_test.o -DGTEST_USE_OWN_TR1_TUPLE -DGTEST_HAS_PTHREAD=0 -Wno-c++11-long-long -isystem lib/gtest_1.7.0/include -isystem lib/gtest_1.7.0 -o test/unit/math/rev/scal/err/check_positive_test test/libgtest.a  lib/cvodes_2.9.0/lib/libsundials_nvecserial.a lib/cvodes_2.9.0/lib/libsundials_cvodes.a
rm test/unit/math/rev/scal/err/check_positive_test.o
Running main() from gtest_main.cc
[==========] Running 2 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 2 tests from AgradRevErrorHandlingScalar
[ RUN      ] AgradRevErrorHandlingScalar.CheckPositive
[       OK ] AgradRevErrorHandlingScalar.CheckPositive (0 ms)
[ RUN      ] AgradRevErrorHandlingScalar.CheckPositiveVarCheckUnivariate
[       OK ] AgradRevErrorHandlingScalar.CheckPositiveVarCheckUnivariate (0 ms)
[----------] 2 tests from AgradRevErrorHandlingScalar (0 ms total)

[----------] Global test environment tear-down
[==========] 2 tests from 1 test case ran. (0 ms total)
[  PASSED  ] 2 tests.

Huh I guess in older compilers it was just happily passing around a pointer.

If I step inside check_positive with a debugger and print the thing that should be a nan I get:

   63  	    inline void check_positive(const char* function,
   64  	                               const char* name,
   65  	                               const T_y& y) {
-> 66  	      positive<T_y, is_vector_like<T_y>::value>::check(function, name, y);
   67  	    }
   68  	
   69  	  }
(lldb) p y
(double (*)(const char *)) $0 = 0x00000000004045e0 (check_positive_test`??? + 128)

The test was running and passing but wasn’t quite testing the right thing I guess.

Cool, thanks for checking. If the new version passes I’ll include it in my PR.

1 Like