Commit fbfae2f0 by Jonathan Wakely Committed by Jonathan Wakely

Extend valid values of iostream bitmask types

	PR libstdc++/56158
	* include/bits/ios_base.h (_Ios_Fmtflags, _Ios_Openmode, _Ios_Iostate):
	Define enumerators to ensure all values of type int are valid values
	of the enumeration type.
	* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Add new cases.
	* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
	* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.

From-SVN: r230267
parent f022ab03
2015-11-12 Jonathan Wakely <jwakely@redhat.com> 2015-11-12 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/56158
* include/bits/ios_base.h (_Ios_Fmtflags, _Ios_Openmode, _Ios_Iostate):
Define enumerators to ensure all values of type int are valid values
of the enumeration type.
* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Add new cases.
* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
* include/std/thread: Include <cerrno> for EINTR. * include/std/thread: Include <cerrno> for EINTR.
2015-11-12 Ville Voutilainen <ville.voutilainen@gmail.com> 2015-11-12 Ville Voutilainen <ville.voutilainen@gmail.com>
......
...@@ -74,7 +74,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -74,7 +74,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_S_adjustfield = _S_left | _S_right | _S_internal, _S_adjustfield = _S_left | _S_right | _S_internal,
_S_basefield = _S_dec | _S_oct | _S_hex, _S_basefield = _S_dec | _S_oct | _S_hex,
_S_floatfield = _S_scientific | _S_fixed, _S_floatfield = _S_scientific | _S_fixed,
_S_ios_fmtflags_end = 1L << 16 _S_ios_fmtflags_end = 1L << 16,
_S_ios_fmtflags_max = __INT_MAX__,
_S_ios_fmtflags_min = ~__INT_MAX__
}; };
inline _GLIBCXX_CONSTEXPR _Ios_Fmtflags inline _GLIBCXX_CONSTEXPR _Ios_Fmtflags
...@@ -114,7 +116,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -114,7 +116,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_S_in = 1L << 3, _S_in = 1L << 3,
_S_out = 1L << 4, _S_out = 1L << 4,
_S_trunc = 1L << 5, _S_trunc = 1L << 5,
_S_ios_openmode_end = 1L << 16 _S_ios_openmode_end = 1L << 16,
_S_ios_openmode_max = __INT_MAX__,
_S_ios_openmode_min = ~__INT_MAX__
}; };
inline _GLIBCXX_CONSTEXPR _Ios_Openmode inline _GLIBCXX_CONSTEXPR _Ios_Openmode
...@@ -152,7 +156,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION ...@@ -152,7 +156,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_S_badbit = 1L << 0, _S_badbit = 1L << 0,
_S_eofbit = 1L << 1, _S_eofbit = 1L << 1,
_S_failbit = 1L << 2, _S_failbit = 1L << 2,
_S_ios_iostate_end = 1L << 16 _S_ios_iostate_end = 1L << 16,
_S_ios_iostate_max = __INT_MAX__,
_S_ios_iostate_min = ~__INT_MAX__
}; };
inline _GLIBCXX_CONSTEXPR _Ios_Iostate inline _GLIBCXX_CONSTEXPR _Ios_Iostate
......
...@@ -70,5 +70,9 @@ case_labels(bitmask_type b) ...@@ -70,5 +70,9 @@ case_labels(bitmask_type b)
break; break;
case std::_S_ios_fmtflags_end: case std::_S_ios_fmtflags_end:
break; break;
case std::_S_ios_fmtflags_min:
break;
case std::_S_ios_fmtflags_max:
break;
} }
} }
...@@ -42,5 +42,9 @@ case_labels(bitmask_type b) ...@@ -42,5 +42,9 @@ case_labels(bitmask_type b)
break; break;
case std::_S_ios_iostate_end: case std::_S_ios_iostate_end:
break; break;
case std::_S_ios_iostate_min:
break;
case std::_S_ios_iostate_max:
break;
} }
} }
...@@ -46,5 +46,9 @@ case_labels(bitmask_type b) ...@@ -46,5 +46,9 @@ case_labels(bitmask_type b)
break; break;
case std::_S_ios_openmode_end: case std::_S_ios_openmode_end:
break; break;
case std::_S_ios_openmode_min:
break;
case std::_S_ios_openmode_max:
break;
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment