--- boost/format/parsing.hpp +++ boost/format/parsing.hpp @@ -19,6 +19,7 @@ #include #include #include +#include namespace boost { @@ -267,6 +268,7 @@ switch ( wrap_narrow(fac, *start, 0) ) { case 'X': fpar->fmtstate_.flags_ |= std::ios_base::uppercase; + BOOST_FALLTHROUGH; case 'p': // pointer => set hex. case 'x': fpar->fmtstate_.flags_ &= ~std::ios_base::basefield; @@ -280,6 +282,7 @@ case 'E': fpar->fmtstate_.flags_ |= std::ios_base::uppercase; + BOOST_FALLTHROUGH; case 'e': fpar->fmtstate_.flags_ &= ~std::ios_base::floatfield; fpar->fmtstate_.flags_ |= std::ios_base::scientific; @@ -291,6 +294,7 @@ case 'f': fpar->fmtstate_.flags_ &= ~std::ios_base::floatfield; fpar->fmtstate_.flags_ |= std::ios_base::fixed; + BOOST_FALLTHROUGH; case 'u': case 'd': case 'i': --- ./boost/property_tree/detail/json_parser/standard_callbacks.hpp +++ ./boost/property_tree/detail/json_parser/standard_callbacks.hpp @@ -116,8 +116,8 @@ return *stack.back().t; } case object: - assert(false); // must start with string, i.e. call new_value case key: { + assert(l.k != object); // must start with string, i.e. call new_value l.t->push_back(std::make_pair(key_buffer, Ptree())); l.k = object; layer nl = {leaf, &l.t->back().second};