diff --git a/libcxx/include/__format/format_context.h b/libcxx/include/__format/format_context.h --- a/libcxx/include/__format/format_context.h +++ b/libcxx/include/__format/format_context.h @@ -98,7 +98,7 @@ basic_format_context& operator=(const basic_format_context&) = delete; _LIBCPP_HIDE_FROM_ABI basic_format_arg - arg(size_t __id) const { + arg(size_t __id) const noexcept { return __args_.get(__id); } #ifndef _LIBCPP_HAS_NO_LOCALIZATION diff --git a/libcxx/test/std/utilities/format/format.formatter/format.context/format.context/arg.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.context/format.context/arg.pass.cpp --- a/libcxx/test/std/utilities/format/format.formatter/format.context/format.context/arg.pass.cpp +++ b/libcxx/test/std/utilities/format/format.formatter/format.context/format.context/arg.pass.cpp @@ -34,6 +34,7 @@ const std::basic_format_context context = test_format_context_create(OutIt{output}, args); LIBCPP_ASSERT(args.__size() == 4); + ASSERT_NOEXCEPT(context.arg(0)); for (size_t i = 0, e = args.__size(); i != e; ++i) { assert(context.arg(i)); }