gcc/libstdc++-v3
Jonathan Wakely d951e75dfe Fix alignment bugs in std::codecvt_utf16
* src/c++11/codecvt.cc (range): Add non-type template parameter and
	define oerloaded operators for reading and writing code units.
	(range<Elem, false>): Define partial specialization for accessing
	wide characters in potentially unaligned byte ranges.
	(ucs2_span(const char16_t*, const char16_t*, ...))
	(ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
	to range<const char16_t, false> in order to avoid unaligned reads.
	(__codecvt_utf16_base<char16_t>::do_out)
	(__codecvt_utf16_base<char32_t>::do_out)
	(__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
	unaligned data to avoid unaligned writes.
	(__codecvt_utf16_base<char16_t>::do_in)
	(__codecvt_utf16_base<char32_t>::do_in)
	(__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
	error if there are unprocessable trailing bytes.
	(__codecvt_utf16_base<char16_t>::do_length)
	(__codecvt_utf16_base<char32_t>::do_length)
	(__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
	range<const char16_t, false> to span functions.
	* testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.

From-SVN: r246245
2017-03-17 19:28:05 +00:00
..
config x32: Update baseline_symbols.txt 2017-02-13 08:47:35 -08:00
doc Fix typo in config.h.in comment 2017-03-15 15:23:44 +00:00
include PR libstdc++/79980 fix BOM detection, maxcode checks, UCS2 handling 2017-03-16 15:27:51 +00:00
libsupc++ PR libstdc++/79789 fix non-reserved names in headers 2017-03-02 03:43:49 +00:00
po re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
python PR libstdc++/67440 make pretty printers work with GDB 7.6 again 2017-03-16 14:11:48 +00:00
scripts Update copyright years. 2017-01-01 13:07:43 +01:00
src Fix alignment bugs in std::codecvt_utf16 2017-03-17 19:28:05 +00:00
testsuite Fix alignment bugs in std::codecvt_utf16 2017-03-17 19:28:05 +00:00
ChangeLog Fix alignment bugs in std::codecvt_utf16 2017-03-17 19:28:05 +00:00
ChangeLog-1998 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-1999 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2000 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2001 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2002 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2003 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2004 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2005 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2006 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2007 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2008 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2009 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2010 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2011 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2012 ChangeLog rotation. 2013-01-03 10:47:48 +01:00
ChangeLog-2013 * ChangeLog-2013: Correct an old entry. 2014-05-26 23:49:19 +02:00
ChangeLog-2014 Rotate libstdc++-v3/ChangeLog 2015-01-02 16:50:36 +00:00
ChangeLog-2015 Update copyright years. 2016-01-04 15:30:50 +01:00
ChangeLog-2016 Update copyright years. 2017-01-01 13:07:43 +01:00
Makefile.am Update copyright years. 2017-01-01 13:07:43 +01:00
Makefile.in re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
README mainpage.html: Add in corrected links. 2008-02-12 02:10:57 +00:00
acinclude.m4 Fix typo in config.h.in comment 2017-03-15 15:23:44 +00:00
aclocal.m4 Build libgo with -Wa,-nH if possible (PR go/78978) [non-libgo parts] 2017-01-06 14:33:47 +00:00
config.h.in Fix typo in config.h.in comment 2017-03-15 15:23:44 +00:00
configure Fix typo in config.h.in comment 2017-03-15 15:23:44 +00:00
configure.ac re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
configure.host Separate Solaris/SPARC and x86 baselines 2017-02-02 16:24:03 +00:00
crossconfig.m4 crossconfig.m4: Add fuchsia OS. 2017-01-17 23:36:12 +00:00
fragment.am re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 2017-01-17 10:38:48 +01:00
linkage.m4 linkage.m4 (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE): New. 2013-02-11 12:50:13 -05:00

README

file: libstdc++-v3/README

New users may wish to point their web browsers to the file
index.html in the 'doc/html' subdirectory.  It contains brief
building instructions and notes on how to configure the library in
interesting ways.