diff --git a/cmake/CompilerOptions.cmake b/cmake/CompilerOptions.cmake index c92c14c45eea9f6969c6395bc67964fa37f16b30..3788419abfa040010fa90fc368d9a1bab23e137b 100644 --- a/cmake/CompilerOptions.cmake +++ b/cmake/CompilerOptions.cmake @@ -5,6 +5,17 @@ set(CXXOPT_PTHREAD "-pthread") set(CXXOPT_CXX11 "-std=c++11") set(CXXOPT_WALL "-Wall") +if(${CMAKE_CXX_COMPILER_ID} MATCHES "XL") + # Disable 'missing-braces' warning: this will inappropriately + # flag initializations such as + # std::array<int,3> a={1,2,3}; + + set(CXXOPT_WALL "${CXXOPT_WALL} -Wno-missing-braces") + + # CMake, bless its soul, likes to insert this unsupported flag. Hilarity ensues. + string(REPLACE "-qhalt=e" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) +endif() + if(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") # Disable 'missing-braces' warning: this will inappropriately # flag initializations such as diff --git a/modcc/lexer.cpp b/modcc/lexer.cpp index 448beb74d1a2a9e1005c7f01cc39f0c8fd72979f..f0bc0e19d127eba7ccccb0f674342c457178a70b 100644 --- a/modcc/lexer.cpp +++ b/modcc/lexer.cpp @@ -23,7 +23,7 @@ inline bool is_whitespace(char c) { return (c==' ' || c=='\t' || c=='\v' || c=='\f'); } inline bool is_eof(char c) { - return (c==0 || c==EOF); + return (c==0); } inline bool is_operator(char c) { return (c=='+' || c=='-' || c=='*' || c=='/' || c=='^' || c=='\''); @@ -47,7 +47,6 @@ Token Lexer::parse() { switch(*current_) { // end of file case 0 : // end of string - case EOF : // end of file t.spelling = "eof"; t.type = tok::eof; return t; diff --git a/src/threading/pss_common.h b/src/threading/pss_common.h index d49f6dbf41777dadad91de7be19ad41894f5374a..0cb0b557fb7b4ababfd7c21cb82f8aca71e88d2e 100644 --- a/src/threading/pss_common.h +++ b/src/threading/pss_common.h @@ -51,8 +51,8 @@ void serial_destroy( RandomAccessIterator zs, RandomAccessIterator ze ) { template<class RandomAccessIterator1, class RandomAccessIterator2, class RandomAccessIterator3, class Compare> void serial_move_merge( RandomAccessIterator1 xs, RandomAccessIterator1 xe, RandomAccessIterator2 ys, RandomAccessIterator2 ye, RandomAccessIterator3 zs, Compare comp ) { if( xs!=xe ) { - if( ys!=ye ) - for(;;) + if( ys!=ye ) { + for(;;) { if( comp(*ys,*xs) ) { *zs = std::move(*ys); ++zs; @@ -62,6 +62,8 @@ void serial_move_merge( RandomAccessIterator1 xs, RandomAccessIterator1 xe, Rand ++zs; if( ++xs==xe ) goto movey; } + } + } ys = xs; ye = xe; } diff --git a/tests/unit/test_uninitialized.cpp b/tests/unit/test_uninitialized.cpp index 182bf636413800cb06a0734bf0bb30c1ecd104fd..864f2dd5535ddc44a424c6c9d5751d0bf0a468cd 100644 --- a/tests/unit/test_uninitialized.cpp +++ b/tests/unit/test_uninitialized.cpp @@ -151,6 +151,7 @@ TEST(uninitialized,apply) { const uninitialized<int> ud(ua); r=ud.apply(A); + EXPECT_EQ(12,ua.cref()); EXPECT_EQ(12,ud.cref()); EXPECT_EQ(13,r); diff --git a/tests/validation/convergence_test.hpp b/tests/validation/convergence_test.hpp index 0561e7d76a9088b011b4bbd79f11e273f891b389..4d8ea28dffbda02566a7e147ead45eef96acd555 100644 --- a/tests/validation/convergence_test.hpp +++ b/tests/validation/convergence_test.hpp @@ -71,7 +71,7 @@ public: } template <typename Model> - void run(Model& m, Param p, float t_end, float dt, const std::vector<float>& excl={}) { + void run(Model& m, Param p, float t_end, float dt, const std::vector<float>& excl) { // reset samplers and attach to probe locations for (auto& se: cell_samplers_) { se.sampler.reset(); diff --git a/tests/validation/validate_soma.hpp b/tests/validation/validate_soma.hpp index 52bc7d5e087ed575372aa524812d9b23ad38fc33..2658ee1c9adca61e6efff6b0b9e728aa39cb0a4e 100644 --- a/tests/validation/validate_soma.hpp +++ b/tests/validation/validate_soma.hpp @@ -46,7 +46,7 @@ void validate_soma() { model.reset(); float dt = float(1./oo_dt); - runner.run(model, dt, t_end, dt); + runner.run(model, dt, t_end, dt, {}); } } end: