1
# DP: updates from the 4.8 branch upto 20131129 (r205535).
5
cat > ${dir}LAST_UPDATED <<EOF
6
Fri Nov 29 17:58:54 CET 2013
7
Fri Nov 29 16:58:54 UTC 2013 (revision 205535)
11
LANG=C svn diff svn://gcc.gnu.org/svn/gcc/tags/gcc_4_8_2_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_8-branch \
12
| sed -r 's,^--- (\S+)\t(\S+)(.*)$,--- a/src/\1\t\2,;s,^\+\+\+ (\S+)\t(\S+)(.*)$,+++ b/src/\1\t\2,' \
13
| awk '/^Index:.*\.(class|texi)/ {skip=1; next} /^Index:/ { skip=0 } skip==0'
15
Index: libstdc++-v3/configure
16
===================================================================
17
--- a/src/libstdc++-v3/configure (.../tags/gcc_4_8_2_release)
18
+++ b/src/libstdc++-v3/configure (.../branches/gcc-4_8-branch)
19
@@ -71573,7 +71573,7 @@
22
# For libtool versioning info, format is CURRENT:REVISION:AGE
23
-libtool_VERSION=6:18:0
24
+libtool_VERSION=6:19:0
26
# Everything parsed; figure out what files and settings to use.
27
case $enable_symvers in
28
Index: libstdc++-v3/doc/xml/manual/abi.xml
29
===================================================================
30
--- a/src/libstdc++-v3/doc/xml/manual/abi.xml (.../tags/gcc_4_8_2_release)
31
+++ b/src/libstdc++-v3/doc/xml/manual/abi.xml (.../branches/gcc-4_8-branch)
33
<listitem><para>GCC 4.5.0: GCC_4.5.0</para></listitem>
34
<listitem><para>GCC 4.6.0: GCC_4.6.0</para></listitem>
35
<listitem><para>GCC 4.7.0: GCC_4.7.0</para></listitem>
36
+ <listitem><para>GCC 4.8.0: GCC_4.8.0</para></listitem>
41
<listitem><para>GCC 4.6.1: libstdc++.so.6.0.16</para></listitem>
42
<listitem><para>GCC 4.7.0: libstdc++.so.6.0.17</para></listitem>
43
<listitem><para>GCC 4.8.0: libstdc++.so.6.0.18</para></listitem>
44
+ <listitem><para>GCC 4.8.3: libstdc++.so.6.0.19</para></listitem>
47
Note 1: Error should be libstdc++.so.3.0.3.
49
<listitem><para>GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5</para></listitem>
50
<listitem><para>GCC 4.7.0: GLIBCXX_3.4.17, CXXABI_1.3.6</para></listitem>
51
<listitem><para>GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7</para></listitem>
52
+ <listitem><para>GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7</para></listitem>
56
Index: libstdc++-v3/doc/xml/manual/status_cxx2011.xml
57
===================================================================
58
--- a/src/libstdc++-v3/doc/xml/manual/status_cxx2011.xml (.../tags/gcc_4_8_2_release)
59
+++ b/src/libstdc++-v3/doc/xml/manual/status_cxx2011.xml (.../branches/gcc-4_8-branch)
64
+ <?dbhtml bgcolor="#B0B0B0" ?>
65
<entry>20.9.7.6</entry>
66
<entry>Other transformations</entry>
69
+ <entry>Partial</entry>
70
+ <entry>Missing <code>aligned_union</code>.</entry>
74
Index: libstdc++-v3/doc/xml/manual/spine.xml
75
===================================================================
76
--- a/src/libstdc++-v3/doc/xml/manual/spine.xml (.../tags/gcc_4_8_2_release)
77
+++ b/src/libstdc++-v3/doc/xml/manual/spine.xml (.../branches/gcc-4_8-branch)
84
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.fsf.org">FSF</link>
86
Index: libstdc++-v3/doc/html/bk02.html
87
===================================================================
88
--- a/src/libstdc++-v3/doc/html/bk02.html (.../tags/gcc_4_8_2_release)
89
+++ b/src/libstdc++-v3/doc/html/bk02.html (.../branches/gcc-4_8-branch)
91
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
92
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library" /><link rel="prev" href="manual/backwards.html" title="Backwards Compatibility" /><link rel="next" href="api.html" title="The GNU C++ Library API Reference" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="manual/backwards.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr></table><hr /></div><div class="book"><div class="titlepage"><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="article"><a href="api.html">The GNU C++ Library API Reference</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="manual/backwards.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Backwards Compatibility </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> The GNU C++ Library API Reference</td></tr></table></div></body></html>
93
\ No newline at end of file
94
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library" /><link rel="prev" href="manual/backwards.html" title="Backwards Compatibility" /><link rel="next" href="api.html" title="The GNU C++ Library API Reference" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="manual/backwards.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr></table><hr /></div><div class="book"><div class="titlepage"><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="article"><a href="api.html">The GNU C++ Library API Reference</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="manual/backwards.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Backwards Compatibility </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> The GNU C++ Library API Reference</td></tr></table></div></body></html>
95
\ No newline at end of file
96
Index: libstdc++-v3/doc/html/bk03.html
97
===================================================================
98
--- a/src/libstdc++-v3/doc/html/bk03.html (.../tags/gcc_4_8_2_release)
99
+++ b/src/libstdc++-v3/doc/html/bk03.html (.../branches/gcc-4_8-branch)
101
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
102
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library" /><link rel="prev" href="api.html" title="The GNU C++ Library API Reference" /><link rel="next" href="faq.html" title="Frequently Asked Questions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr></table><hr /></div><div class="book"><div class="titlepage"><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="article"><a href="faq.html">Frequently Asked Questions</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The GNU C++ Library API Reference </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Frequently Asked Questions</td></tr></table></div></body></html>
103
\ No newline at end of file
104
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library" /><link rel="prev" href="api.html" title="The GNU C++ Library API Reference" /><link rel="next" href="faq.html" title="Frequently Asked Questions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr></table><hr /></div><div class="book"><div class="titlepage"><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="article"><a href="faq.html">Frequently Asked Questions</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The GNU C++ Library API Reference </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Frequently Asked Questions</td></tr></table></div></body></html>
105
\ No newline at end of file
106
Index: libstdc++-v3/doc/html/faq.html
107
===================================================================
108
--- a/src/libstdc++-v3/doc/html/faq.html (.../tags/gcc_4_8_2_release)
109
+++ b/src/libstdc++-v3/doc/html/faq.html (.../branches/gcc-4_8-branch)
111
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
112
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Frequently Asked Questions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="up" href="bk03.html" title="" /><link rel="prev" href="bk03.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Frequently Asked Questions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk03.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> </td></tr></table><hr /></div><div class="article"><div class="titlepage"><div><div><h1 class="title"><a id="faq"></a>Frequently Asked Questions</h1></div><div><p class="copyright">Copyright ©
113
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Frequently Asked Questions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="up" href="bk03.html" title="" /><link rel="prev" href="bk03.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Frequently Asked Questions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk03.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> </td></tr></table><hr /></div><div class="article"><div class="titlepage"><div><div><h1 class="title"><a id="faq"></a>Frequently Asked Questions</h1></div><div><p class="copyright">Copyright ©
116
<a class="link" href="http://www.fsf.org" target="_top">FSF</a>
117
- </p></div></div><hr /></div><div class="qandaset"><a id="idp1581728"></a><dl><dt></dt><dd><dl><dt>1.1. <a href="faq.html#faq.what">
118
+ </p></div></div><hr /></div><div class="qandaset"><a id="idm270011560848"></a><dl><dt></dt><dd><dl><dt>1.1. <a href="faq.html#faq.what">
120
</a></dt><dt>1.2. <a href="faq.html#faq.why">
121
Why should I use libstdc++?
122
Index: libstdc++-v3/doc/html/index.html
123
===================================================================
124
--- a/src/libstdc++-v3/doc/html/index.html (.../tags/gcc_4_8_2_release)
125
+++ b/src/libstdc++-v3/doc/html/index.html (.../branches/gcc-4_8-branch)
127
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
128
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="description" content="Short Contents Copyright (C) 2008-2013 FSF Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. This is the top level of the libstdc++ documentation set. The documentation is divided into the following three sections. Manual Frequently Asked Questions API and Source Documentation" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="next" href="manual/index.html" title="The GNU C++ Library Manual" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="manual/index.html">Next</a></td></tr></table><hr /></div><div class="set" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="set-index"></a>The GNU C++ Library</h1></div><div><div class="abstract"><a id="contents"></a><p class="title"><strong>Short Contents</strong></p><p>
129
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="description" content="Short Contents Copyright (C) 2008-2013 FSF Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. This is the top level of the libstdc++ documentation set. The documentation is divided into the following three sections. Manual Frequently Asked Questions API and Source Documentation" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="next" href="manual/index.html" title="The GNU C++ Library Manual" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="manual/index.html">Next</a></td></tr></table><hr /></div><div class="set" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="set-index"></a>The GNU C++ Library</h1></div><div><div class="abstract"><a id="contents"></a><p class="title"><strong>Short Contents</strong></p><p>
130
Copyright (C) 2008-2013
131
<a class="link" href="http://www.fsf.org/" target="_top">FSF
134
</p></li><li class="listitem"><p>
135
<a class="link" href="api.html" title="The GNU C++ Library API Reference">API and Source Documentation</a>
136
</p></li></ul></div><p>
137
- </p></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="book"><a href="manual/index.html">The GNU C++ Library Manual</a></span></dt><dd><dl><dt><span class="part"><a href="manual/intro.html">I.
138
+ </p></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="book"><a href="manual/index.html">The GNU C++ Library Manual</a></span></dt><dd><dl><dt><span class="part"><a href="manual/intro.html">I.
141
</a></span></dt><dd><dl><dt><span class="chapter"><a href="manual/status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="manual/status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="manual/status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="manual/status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="manual/license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="manual/license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="manual/license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="manual/bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="manual/bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="manual/bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="manual/setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/configure.html">Configure</a></span></dt><dt><span class="section"><a href="manual/make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="manual/using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="manual/using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="manual/using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="manual/using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="manual/using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="manual/using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="manual/using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="manual/debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="manual/debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="manual/std_contents.html">II.
143
</a></span></dt><dd><dl><dt><span class="section"><a href="manual/diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="manual/diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="manual/diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="manual/concept_checking.html">Concept Checking</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/utilities.html">6.
146
-</a></span></dt><dd><dl><dt><span class="section"><a href="manual/utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="manual/pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="manual/memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#idp13920976">Interface Design</a></span></dt><dt><span class="section"><a href="manual/memory.html#idp13924528">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="manual/memory.html#idp13937824">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="manual/memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="manual/memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#idp15512272">Class Hierarchy</a></span></dt><dt><span class="section"><a href="manual/memory.html#idp15534784">Thread Safety</a></span></dt><dt><span class="section"><a href="manual/memory.html#idp15542080">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="manual/memory.html#idp15556704">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#idp15573056">Examples</a></span></dt><dt><span class="section"><a href="manual/memory.html#idp15576640">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/strings.html">7.
147
+</a></span></dt><dd><dl><dt><span class="section"><a href="manual/utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="manual/pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="manual/memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#idm270001611968">Interface Design</a></span></dt><dt><span class="section"><a href="manual/memory.html#idm270001608416">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="manual/memory.html#idm270001595120">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="manual/memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="manual/memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="manual/memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#idm270000019344">Class Hierarchy</a></span></dt><dt><span class="section"><a href="manual/memory.html#idm269999996832">Thread Safety</a></span></dt><dt><span class="section"><a href="manual/memory.html#idm269999989536">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="manual/memory.html#idm269999974912">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="manual/memory.html#idm269999958496">Examples</a></span></dt><dt><span class="section"><a href="manual/memory.html#idm269999954912">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="manual/strings.html">7.
150
</a></span></dt><dd><dl><dt><span class="section"><a href="manual/strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="manual/strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="manual/strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/localization.html">8.
153
-</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="manual/localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="manual/localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#idp15778336">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="manual/facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="manual/facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="manual/facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/containers.html">9.
154
+</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="manual/localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="manual/localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#idm269999753024">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="manual/facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="manual/facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="manual/facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="manual/facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="manual/facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="manual/facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/containers.html">9.
157
</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="manual/containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="manual/associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="manual/associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="manual/associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="manual/associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/unordered_associative.html">Unordered Associative</a></span></dt><dd><dl><dt><span class="section"><a href="manual/unordered_associative.html#containers.unordered.hash">Hash Code</a></span></dt><dd><dl><dt><span class="section"><a href="manual/unordered_associative.html#containers.unordered.cache">Hash Code Caching Policy</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="manual/containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="manual/containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="manual/iterators.html">10.
158
Index: libstdc++-v3/doc/html/api.html
159
===================================================================
160
--- a/src/libstdc++-v3/doc/html/api.html (.../tags/gcc_4_8_2_release)
161
+++ b/src/libstdc++-v3/doc/html/api.html (.../branches/gcc-4_8-branch)
163
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
164
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library API Reference</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="up" href="bk02.html" title="" /><link rel="prev" href="bk02.html" title="" /><link rel="next" href="bk03.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library API Reference</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk02.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="bk03.html">Next</a></td></tr></table><hr /></div><div class="article"><div class="titlepage"><div><div><h1 class="title"><a id="api"></a>The GNU C++ Library API Reference</h1></div><div><p class="copyright">Copyright ©
165
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library API Reference</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="index.html" title="The GNU C++ Library" /><link rel="up" href="bk02.html" title="" /><link rel="prev" href="bk02.html" title="" /><link rel="next" href="bk03.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library API Reference</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bk02.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="bk03.html">Next</a></td></tr></table><hr /></div><div class="article"><div class="titlepage"><div><div><h1 class="title"><a id="api"></a>The GNU C++ Library API Reference</h1></div><div><p class="copyright">Copyright ©
170
<a class="link" href="http://www.fsf.org/" target="_top">FSF
172
- </p></div><div><div class="legalnotice"><a id="idp3706336"></a><p>
173
+ </p></div><div><div class="legalnotice"><a id="idm270006235696"></a><p>
174
<a class="link" href="manual/license.html" title="License">License
176
</p></div></div></div><hr /></div><p>
177
Index: libstdc++-v3/doc/html/manual/dynamic_memory.html
178
===================================================================
179
--- a/src/libstdc++-v3/doc/html/manual/dynamic_memory.html (.../tags/gcc_4_8_2_release)
180
+++ b/src/libstdc++-v3/doc/html/manual/dynamic_memory.html (.../branches/gcc-4_8-branch)
182
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
183
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Dynamic Memory</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="support.html" title="Chapter 4. Support" /><link rel="prev" href="support.html" title="Chapter 4. Support" /><link rel="next" href="termination.html" title="Termination" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Dynamic Memory</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="support.html">Prev</a> </td><th width="60%" align="center">Chapter 4.
184
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Dynamic Memory</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="support.html" title="Chapter 4. Support" /><link rel="prev" href="support.html" title="Chapter 4. Support" /><link rel="next" href="termination.html" title="Termination" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Dynamic Memory</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="support.html">Prev</a> </td><th width="60%" align="center">Chapter 4.
187
</th><td width="20%" align="right"> <a accesskey="n" href="termination.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.support.memory"></a>Dynamic Memory</h2></div></div></div><p>
188
Index: libstdc++-v3/doc/html/manual/iterators.html
189
===================================================================
190
--- a/src/libstdc++-v3/doc/html/manual/iterators.html (.../tags/gcc_4_8_2_release)
191
+++ b/src/libstdc++-v3/doc/html/manual/iterators.html (.../branches/gcc-4_8-branch)
193
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
194
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 10. Iterators</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="containers_and_c.html" title="Interacting with C" /><link rel="next" href="algorithms.html" title="Chapter 11. Algorithms" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 10.
195
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 10. Iterators</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="containers_and_c.html" title="Interacting with C" /><link rel="next" href="algorithms.html" title="Chapter 11. Algorithms" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 10.
198
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="containers_and_c.html">Prev</a> </td><th width="60%" align="center">Part II.
200
</th><td width="20%" align="right"> <a accesskey="n" href="algorithms.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="std.iterators"></a>Chapter 10.
202
- <a id="idp16156992" class="indexterm"></a>
203
-</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="iterators.html#std.iterators.predefined">Predefined</a></span></dt><dd><dl><dt><span class="section"><a href="iterators.html#iterators.predefined.vs_pointers">Iterators vs. Pointers</a></span></dt><dt><span class="section"><a href="iterators.html#iterators.predefined.end">One Past the End</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.iterators.predefined"></a>Predefined</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="iterators.predefined.vs_pointers"></a>Iterators vs. Pointers</h3></div></div></div><p>
204
+ <a id="idm269999374096" class="indexterm"></a>
205
+</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="iterators.html#std.iterators.predefined">Predefined</a></span></dt><dd><dl><dt><span class="section"><a href="iterators.html#iterators.predefined.vs_pointers">Iterators vs. Pointers</a></span></dt><dt><span class="section"><a href="iterators.html#iterators.predefined.end">One Past the End</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.iterators.predefined"></a>Predefined</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="iterators.predefined.vs_pointers"></a>Iterators vs. Pointers</h3></div></div></div><p>
207
FAQ <a class="link" href="../faq.html#faq.iterator_as_pod" title="7.1.">entry</a> points out that
208
iterators are not implemented as pointers. They are a generalization
209
Index: libstdc++-v3/doc/html/manual/mt_allocator_ex_single.html
210
===================================================================
211
--- a/src/libstdc++-v3/doc/html/manual/mt_allocator_ex_single.html (.../tags/gcc_4_8_2_release)
212
+++ b/src/libstdc++-v3/doc/html/manual/mt_allocator_ex_single.html (.../branches/gcc-4_8-branch)
214
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
215
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Single Thread Example</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, allocator" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /><link rel="prev" href="mt_allocator_impl.html" title="Implementation" /><link rel="next" href="mt_allocator_ex_multi.html" title="Multiple Thread Example" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Single Thread Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="mt_allocator_impl.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td width="20%" align="right"> <a accesskey="n" href="mt_allocator_ex_multi.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.mt.example_single"></a>Single Thread Example</h2></div></div></div><p>
216
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Single Thread Example</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, allocator" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /><link rel="prev" href="mt_allocator_impl.html" title="Implementation" /><link rel="next" href="mt_allocator_ex_multi.html" title="Multiple Thread Example" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Single Thread Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="mt_allocator_impl.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td width="20%" align="right"> <a accesskey="n" href="mt_allocator_ex_multi.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.mt.example_single"></a>Single Thread Example</h2></div></div></div><p>
217
Let's start by describing how the data on a freelist is laid out in memory.
218
This is the first two blocks in freelist for thread id 3 in bin 3 (8 bytes):
219
</p><pre class="programlisting">
220
Index: libstdc++-v3/doc/html/manual/generalized_numeric_operations.html
221
===================================================================
222
--- a/src/libstdc++-v3/doc/html/manual/generalized_numeric_operations.html (.../tags/gcc_4_8_2_release)
223
+++ b/src/libstdc++-v3/doc/html/manual/generalized_numeric_operations.html (.../branches/gcc-4_8-branch)
225
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
226
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Generalized Operations</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="numerics.html" title="Chapter 12. Numerics" /><link rel="prev" href="numerics.html" title="Chapter 12. Numerics" /><link rel="next" href="numerics_and_c.html" title="Interacting with C" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Generalized Operations</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="numerics.html">Prev</a> </td><th width="60%" align="center">Chapter 12.
227
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Generalized Operations</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="numerics.html" title="Chapter 12. Numerics" /><link rel="prev" href="numerics.html" title="Chapter 12. Numerics" /><link rel="next" href="numerics_and_c.html" title="Interacting with C" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Generalized Operations</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="numerics.html">Prev</a> </td><th width="60%" align="center">Chapter 12.
230
</th><td width="20%" align="right"> <a accesskey="n" href="numerics_and_c.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.numerics.generalized_ops"></a>Generalized Operations</h2></div></div></div><p>
231
Index: libstdc++-v3/doc/html/manual/mt_allocator.html
232
===================================================================
233
--- a/src/libstdc++-v3/doc/html/manual/mt_allocator.html (.../tags/gcc_4_8_2_release)
234
+++ b/src/libstdc++-v3/doc/html/manual/mt_allocator.html (.../branches/gcc-4_8-branch)
236
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
237
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 20. The mt_allocator</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, allocator" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="profile_mode_diagnostics.html" title="Diagnostics" /><link rel="next" href="mt_allocator_design.html" title="Design Issues" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 20. The mt_allocator</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode_diagnostics.html">Prev</a> </td><th width="60%" align="center">Part III.
238
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 20. The mt_allocator</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, allocator" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="profile_mode_diagnostics.html" title="Diagnostics" /><link rel="next" href="mt_allocator_design.html" title="Design Issues" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 20. The mt_allocator</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode_diagnostics.html">Prev</a> </td><th width="60%" align="center">Part III.
241
-</th><td width="20%" align="right"> <a accesskey="n" href="mt_allocator_design.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.allocator.mt"></a>Chapter 20. The mt_allocator</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="mt_allocator.html#allocator.mt.intro">Intro</a></span></dt><dt><span class="section"><a href="mt_allocator_design.html">Design Issues</a></span></dt><dd><dl><dt><span class="section"><a href="mt_allocator_design.html#allocator.mt.overview">Overview</a></span></dt></dl></dd><dt><span class="section"><a href="mt_allocator_impl.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="mt_allocator_impl.html#allocator.mt.tune">Tunable Parameters</a></span></dt><dt><span class="section"><a href="mt_allocator_impl.html#allocator.mt.init">Initialization</a></span></dt><dt><span class="section"><a href="mt_allocator_impl.html#allocator.mt.deallocation">Deallocation Notes</a></span></dt></dl></dd><dt><span class="section"><a href="mt_allocator_ex_single.html">Single Thread Example</a></span></dt><dt><span class="section"><a href="mt_allocator_ex_multi.html">Multiple Thread Example</a></span></dt></dl></div><p>
242
+</th><td width="20%" align="right"> <a accesskey="n" href="mt_allocator_design.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.allocator.mt"></a>Chapter 20. The mt_allocator</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="mt_allocator.html#allocator.mt.intro">Intro</a></span></dt><dt><span class="section"><a href="mt_allocator_design.html">Design Issues</a></span></dt><dd><dl><dt><span class="section"><a href="mt_allocator_design.html#allocator.mt.overview">Overview</a></span></dt></dl></dd><dt><span class="section"><a href="mt_allocator_impl.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="mt_allocator_impl.html#allocator.mt.tune">Tunable Parameters</a></span></dt><dt><span class="section"><a href="mt_allocator_impl.html#allocator.mt.init">Initialization</a></span></dt><dt><span class="section"><a href="mt_allocator_impl.html#allocator.mt.deallocation">Deallocation Notes</a></span></dt></dl></dd><dt><span class="section"><a href="mt_allocator_ex_single.html">Single Thread Example</a></span></dt><dt><span class="section"><a href="mt_allocator_ex_multi.html">Multiple Thread Example</a></span></dt></dl></div><p>
243
</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.mt.intro"></a>Intro</h2></div></div></div><p>
244
The mt allocator [hereinafter referred to simply as "the allocator"]
245
is a fixed size (power of two) allocator that was initially
246
Index: libstdc++-v3/doc/html/manual/unordered_associative.html
247
===================================================================
248
--- a/src/libstdc++-v3/doc/html/manual/unordered_associative.html (.../tags/gcc_4_8_2_release)
249
+++ b/src/libstdc++-v3/doc/html/manual/unordered_associative.html (.../branches/gcc-4_8-branch)
251
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
252
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Unordered Associative</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="containers.html" title="Chapter 9. Containers" /><link rel="prev" href="associative.html" title="Associative" /><link rel="next" href="containers_and_c.html" title="Interacting with C" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Unordered Associative</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="associative.html">Prev</a> </td><th width="60%" align="center">Chapter 9.
253
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Unordered Associative</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="containers.html" title="Chapter 9. Containers" /><link rel="prev" href="associative.html" title="Associative" /><link rel="next" href="containers_and_c.html" title="Interacting with C" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Unordered Associative</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="associative.html">Prev</a> </td><th width="60%" align="center">Chapter 9.
256
</th><td width="20%" align="right"> <a accesskey="n" href="containers_and_c.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.containers.unordered"></a>Unordered Associative</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="containers.unordered.hash"></a>Hash Code</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="containers.unordered.cache"></a>Hash Code Caching Policy</h4></div></div></div><p>
257
Index: libstdc++-v3/doc/html/manual/configure.html
258
===================================================================
259
--- a/src/libstdc++-v3/doc/html/manual/configure.html (.../tags/gcc_4_8_2_release)
260
+++ b/src/libstdc++-v3/doc/html/manual/configure.html (.../branches/gcc-4_8-branch)
262
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
263
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Configure</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, configure, options" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="setup.html" title="Chapter 2. Setup" /><link rel="prev" href="setup.html" title="Chapter 2. Setup" /><link rel="next" href="make.html" title="Make" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Configure</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="setup.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Setup</th><td width="20%" align="right"> <a accesskey="n" href="make.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.setup.configure"></a>Configure</h2></div></div></div><p>
264
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Configure</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, configure, options" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="setup.html" title="Chapter 2. Setup" /><link rel="prev" href="setup.html" title="Chapter 2. Setup" /><link rel="next" href="make.html" title="Make" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Configure</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="setup.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Setup</th><td width="20%" align="right"> <a accesskey="n" href="make.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.setup.configure"></a>Configure</h2></div></div></div><p>
265
When configuring libstdc++, you'll have to configure the entire
266
<span class="emphasis"><em>gccsrcdir</em></span> directory. Consider using the
267
toplevel gcc configuration option
268
Index: libstdc++-v3/doc/html/manual/status.html
269
===================================================================
270
--- a/src/libstdc++-v3/doc/html/manual/status.html (.../tags/gcc_4_8_2_release)
271
+++ b/src/libstdc++-v3/doc/html/manual/status.html (.../branches/gcc-4_8-branch)
273
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
274
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 1. Status</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="intro.html" title="Part I. Introduction" /><link rel="prev" href="intro.html" title="Part I. Introduction" /><link rel="next" href="license.html" title="License" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Status</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="intro.html">Prev</a> </td><th width="60%" align="center">Part I.
275
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 1. Status</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="intro.html" title="Part I. Introduction" /><link rel="prev" href="intro.html" title="Part I. Introduction" /><link rel="next" href="license.html" title="License" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Status</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="intro.html">Prev</a> </td><th width="60%" align="center">Part I.
278
-</th><td width="20%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status"></a>Chapter 1. Status</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.iso"></a>Implementation Status</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.1998"></a>C++ 1998/2003</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.status"></a>Implementation Status</h4></div></div></div><p>
279
+</th><td width="20%" align="right"> <a accesskey="n" href="license.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.status"></a>Chapter 1. Status</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.iso"></a>Implementation Status</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.1998"></a>C++ 1998/2003</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="iso.1998.status"></a>Implementation Status</h4></div></div></div><p>
280
This status table is based on the table of contents of ISO/IEC 14882:2003.
282
This page describes the C++ support in mainline GCC SVN, not in any
284
-</p><div class="table"><a id="idp452240"></a><p class="title"><strong>Table 1.1. C++ 1998/2003 Implementation Status</strong></p><div class="table-contents"><table summary="C++ 1998/2003 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
285
+</p><div class="table"><a id="idm270008034928"></a><p class="title"><strong>Table 1.1. C++ 1998/2003 Implementation Status</strong></p><div class="table-contents"><table summary="C++ 1998/2003 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
286
<span class="emphasis"><em>18</em></span>
287
</td><td colspan="3" align="left">
288
<span class="emphasis"><em>Language support</em></span>
291
This page describes the C++11 support in mainline GCC SVN, not in any
293
-</p><div class="table"><a id="idp8670848"></a><p class="title"><strong>Table 1.2. C++ 2011 Implementation Status</strong></p><div class="table-contents"><table summary="C++ 2011 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
294
+</p><div class="table"><a id="idm270007982624"></a><p class="title"><strong>Table 1.2. C++ 2011 Implementation Status</strong></p><div class="table-contents"><table summary="C++ 2011 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
295
<span class="emphasis"><em>18</em></span>
296
</td><td colspan="3" align="left">
297
<span class="emphasis"><em>Language support</em></span>
299
is_trivially_copy_constructible, is_trivially_move_constructible,
300
is_trivially_assignable, is_trivially_default_assignable,
301
is_trivially_copy_assignable, is_trivially_move_assignable
302
- </td></tr><tr><td align="left">20.9.5</td><td align="left">Type property queries</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.6</td><td align="left">Relationships between types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7</td><td align="left">Transformations between types</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.9.7.1</td><td align="left">Const-volatile modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.2</td><td align="left">Reference modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.3</td><td align="left">Sign modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.4</td><td align="left">Array modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.5</td><td align="left">Pointer modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.6</td><td align="left">Other transformations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10</td><td align="left">Compile-time rational arithmetic</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.10.1</td><td align="left">In general</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.10.2</td><td align="left">Header <code class="code"><ratio></code> synopsis</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.10.3</td><td align="left">Class template <code class="code">ratio</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10.4</td><td align="left">Arithmetic on <code class="code">ratio</code>s</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10.5</td><td align="left">Comparison of <code class="code">ratio</code>s</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10.6</td><td align="left">SI types for <code class="code">ratio</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11</td><td align="left">Time utilities</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.3</td><td align="left">Clock requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.4</td><td align="left">Time-related traits</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.4.1</td><td align="left"><code class="code">treat_as_floating_point</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.4.2</td><td align="left"><code class="code">duration_values</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.4.3</td><td align="left">Specializations of <code class="code">common_type</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.11.5</td><td align="left">Class template <code class="code">duration</code></td><td align="left">Partial</td><td align="left">Missing constexpr for non-member arithmetic operations</td></tr><tr><td align="left">20.11.6</td><td align="left">Class template <code class="code">time_point</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7</td><td align="left">Clocks</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.7.1</td><td align="left">Class <code class="code">system_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7.2</td><td align="left">Class <code class="code">steady_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7.3</td><td align="left">Class <code class="code">high_resolution_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.8</td><td align="left">Date and time functions</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.12</td><td align="left">Scoped allocator adaptor</td><td align="left">Partial</td><td align="left"> </td></tr><tr><td align="left">20.12.1</td><td align="left">Header <code class="code"><scoped_allocator></code> synopsis</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.12.2</td><td align="left">Scoped allocator adaptor member types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.12.3</td><td align="left">Scoped allocator adaptor constructors</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.12.4</td><td align="left">Scoped allocator adaptor members</td><td align="left">Partial</td><td align="left">OUTERMOST is not recursive.</td></tr><tr><td align="left">20.12.5</td><td align="left">Scoped allocator operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.13</td><td align="left">Class <code class="code">type_index</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
303
+ </td></tr><tr><td align="left">20.9.5</td><td align="left">Type property queries</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.6</td><td align="left">Relationships between types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7</td><td align="left">Transformations between types</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.9.7.1</td><td align="left">Const-volatile modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.2</td><td align="left">Reference modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.3</td><td align="left">Sign modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.4</td><td align="left">Array modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.5</td><td align="left">Pointer modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.9.7.6</td><td align="left">Other transformations</td><td align="left">Partial</td><td align="left">Missing <code class="code">aligned_union</code>.</td></tr><tr><td align="left">20.10</td><td align="left">Compile-time rational arithmetic</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.10.1</td><td align="left">In general</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.10.2</td><td align="left">Header <code class="code"><ratio></code> synopsis</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.10.3</td><td align="left">Class template <code class="code">ratio</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10.4</td><td align="left">Arithmetic on <code class="code">ratio</code>s</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10.5</td><td align="left">Comparison of <code class="code">ratio</code>s</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10.6</td><td align="left">SI types for <code class="code">ratio</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11</td><td align="left">Time utilities</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.3</td><td align="left">Clock requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.4</td><td align="left">Time-related traits</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.4.1</td><td align="left"><code class="code">treat_as_floating_point</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.4.2</td><td align="left"><code class="code">duration_values</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.4.3</td><td align="left">Specializations of <code class="code">common_type</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.11.5</td><td align="left">Class template <code class="code">duration</code></td><td align="left">Partial</td><td align="left">Missing constexpr for non-member arithmetic operations</td></tr><tr><td align="left">20.11.6</td><td align="left">Class template <code class="code">time_point</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7</td><td align="left">Clocks</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.7.1</td><td align="left">Class <code class="code">system_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7.2</td><td align="left">Class <code class="code">steady_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7.3</td><td align="left">Class <code class="code">high_resolution_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.8</td><td align="left">Date and time functions</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.12</td><td align="left">Scoped allocator adaptor</td><td align="left">Partial</td><td align="left"> </td></tr><tr><td align="left">20.12.1</td><td align="left">Header <code class="code"><scoped_allocator></code> synopsis</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.12.2</td><td align="left">Scoped allocator adaptor member types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.12.3</td><td align="left">Scoped allocator adaptor constructors</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.12.4</td><td align="left">Scoped allocator adaptor members</td><td align="left">Partial</td><td align="left">OUTERMOST is not recursive.</td></tr><tr><td align="left">20.12.5</td><td align="left">Scoped allocator operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.13</td><td align="left">Class <code class="code">type_index</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
304
<span class="emphasis"><em>21</em></span>
305
</td><td colspan="3" align="left">
306
<span class="emphasis"><em>Strings</em></span>
309
This page describes the TR1 support in mainline GCC SVN, not in any particular
311
-</p><div class="table"><a id="idp7483200"></a><p class="title"><strong>Table 1.3. C++ TR1 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR1 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left"><span class="emphasis"><em>2</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td align="left">2.1</td><td align="left">Reference wrappers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.1</td><td align="left">Additions to header <code class="code"><functional></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2</td><td align="left">Class template <code class="code">reference_wrapper</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.2.1</td><td align="left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.2</td><td align="left"><code class="code">reference_wrapper</code> assignment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.3</td><td align="left"><code class="code">reference_wrapper</code> access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.4</td><td align="left"><code class="code">reference_wrapper</code> invocation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.5</td><td align="left"><code class="code">reference_wrapper</code> helper functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2</td><td align="left">Smart pointers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.2.1</td><td align="left">Additions to header <code class="code"><memory></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.2</td><td align="left">Class <code class="code">bad_weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3</td><td align="left">Class template <code class="code">shared_ptr</code></td><td align="left"> </td><td align="left">
312
+</p><div class="table"><a id="idm270006687472"></a><p class="title"><strong>Table 1.3. C++ TR1 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR1 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left"><span class="emphasis"><em>2</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td align="left">2.1</td><td align="left">Reference wrappers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.1</td><td align="left">Additions to header <code class="code"><functional></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2</td><td align="left">Class template <code class="code">reference_wrapper</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.2.1</td><td align="left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.2</td><td align="left"><code class="code">reference_wrapper</code> assignment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.3</td><td align="left"><code class="code">reference_wrapper</code> access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.4</td><td align="left"><code class="code">reference_wrapper</code> invocation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.5</td><td align="left"><code class="code">reference_wrapper</code> helper functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2</td><td align="left">Smart pointers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.2.1</td><td align="left">Additions to header <code class="code"><memory></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.2</td><td align="left">Class <code class="code">bad_weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3</td><td align="left">Class template <code class="code">shared_ptr</code></td><td align="left"> </td><td align="left">
315
<a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">boost::shared_ptr</a>.
318
This page describes the TR 24733 support in mainline GCC SVN, not in any
320
-</p><div class="table"><a id="idp12559072"></a><p class="title"><strong>Table 1.4. C++ TR 24733 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR 24733 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
321
+</p><div class="table"><a id="idm270002960368"></a><p class="title"><strong>Table 1.4. C++ TR 24733 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR 24733 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
322
<span class="emphasis"><em>0</em></span>
323
</td><td colspan="3" align="left">
324
<span class="emphasis"><em>Introduction</em></span>
325
Index: libstdc++-v3/doc/html/manual/profile_mode_devel.html
326
===================================================================
327
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_devel.html (.../tags/gcc_4_8_2_release)
328
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_devel.html (.../branches/gcc-4_8-branch)
330
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
331
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Developer Information</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, profile" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="profile_mode_impl.html" title="Implementation Issues" /><link rel="next" href="profile_mode_diagnostics.html" title="Diagnostics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Developer Information</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode_impl.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode_diagnostics.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.developer"></a>Developer Information</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.developer.bigpic"></a>Big Picture</h3></div></div></div><p>The profile mode headers are included with
332
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Developer Information</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, profile" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="profile_mode_impl.html" title="Implementation Issues" /><link rel="next" href="profile_mode_diagnostics.html" title="Diagnostics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Developer Information</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode_impl.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode_diagnostics.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.developer"></a>Developer Information</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.developer.bigpic"></a>Big Picture</h3></div></div></div><p>The profile mode headers are included with
333
<code class="code">-D_GLIBCXX_PROFILE</code> through preprocessor directives in
334
<code class="code">include/std/*</code>.
335
</p><p>Instrumented implementations are provided in
336
Index: libstdc++-v3/doc/html/manual/debug_mode_design.html
337
===================================================================
338
--- a/src/libstdc++-v3/doc/html/manual/debug_mode_design.html (.../tags/gcc_4_8_2_release)
339
+++ b/src/libstdc++-v3/doc/html/manual/debug_mode_design.html (.../branches/gcc-4_8-branch)
341
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
342
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, debug" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="debug_mode.html" title="Chapter 17. Debug Mode" /><link rel="prev" href="debug_mode_using.html" title="Using" /><link rel="next" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="debug_mode_using.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Debug Mode</th><td width="20%" align="right"> <a accesskey="n" href="parallel_mode.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.debug_mode.design"></a>Design</h2></div></div></div><p>
343
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, debug" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="debug_mode.html" title="Chapter 17. Debug Mode" /><link rel="prev" href="debug_mode_using.html" title="Using" /><link rel="next" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="debug_mode_using.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Debug Mode</th><td width="20%" align="right"> <a accesskey="n" href="parallel_mode.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.debug_mode.design"></a>Design</h2></div></div></div><p>
344
</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="debug_mode.design.goals"></a>Goals</h3></div></div></div><p>
345
</p><p> The libstdc++ debug mode replaces unsafe (but efficient) standard
346
containers and iterators with semantically equivalent safe standard
348
</p><p> There are several existing implementations of debug modes for C++
349
standard library implementations, although none of them directly
350
supports debugging for programs using libstdc++. The existing
351
- implementations include:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><a class="link" href="http://www.mathcs.sjsu.edu/faculty/horstman/safestl.html" target="_top">SafeSTL</a>:
352
+ implementations include:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><a class="link" href="http://www.cs.sjsu.edu/faculty/horstman/safestl.html" target="_top">SafeSTL</a>:
353
SafeSTL was the original debugging version of the Standard Template
354
Library (STL), implemented by Cay S. Horstmann on top of the
355
Hewlett-Packard STL. Though it inspired much work in this area, it
356
Index: libstdc++-v3/doc/html/manual/policy_data_structures_design.html
357
===================================================================
358
--- a/src/libstdc++-v3/doc/html/manual/policy_data_structures_design.html (.../tags/gcc_4_8_2_release)
359
+++ b/src/libstdc++-v3/doc/html/manual/policy_data_structures_design.html (.../branches/gcc-4_8-branch)
361
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
362
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, policy, container, data, structure, associated, tree, trie, hash, metaprogramming" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /><link rel="prev" href="policy_data_structures_using.html" title="Using" /><link rel="next" href="policy_based_data_structures_test.html" title="Testing" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_data_structures_using.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td width="20%" align="right"> <a accesskey="n" href="policy_based_data_structures_test.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="containers.pbds.design"></a>Design</h2></div></div></div><p></p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.design.concepts"></a>Concepts</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.concepts.null_type"></a>Null Policy Classes</h4></div></div></div><p>
363
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, policy, container, data, structure, associated, tree, trie, hash, metaprogramming" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /><link rel="prev" href="policy_data_structures_using.html" title="Using" /><link rel="next" href="policy_based_data_structures_test.html" title="Testing" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_data_structures_using.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td width="20%" align="right"> <a accesskey="n" href="policy_based_data_structures_test.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="containers.pbds.design"></a>Design</h2></div></div></div><p></p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.design.concepts"></a>Concepts</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.design.concepts.null_type"></a>Null Policy Classes</h4></div></div></div><p>
364
Associative containers are typically parametrized by various
365
policies. For example, a hash-based associative container is
366
parametrized by a hash-functor, transforming each key into an
368
naturally; collision-chaining hash tables (label B) store
369
equivalent-key values in the same bucket, the bucket can be
370
arranged so that equivalent-key values are consecutive.
371
- </p><div class="figure"><a id="idp18000448"></a><p class="title"><strong>Figure 22.8. Non-unique Mapping Standard Containers</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_embedded_lists_1.png" align="middle" alt="Non-unique Mapping Standard Containers" /></div></div></div><br class="figure-break" /><p>
372
+ </p><div class="figure"><a id="idm269997530416"></a><p class="title"><strong>Figure 22.8. Non-unique Mapping Standard Containers</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_embedded_lists_1.png" align="middle" alt="Non-unique Mapping Standard Containers" /></div></div></div><br class="figure-break" /><p>
373
Put differently, the standards' non-unique mapping
374
associative-containers are associative containers that map
375
primary keys to linked lists that are embedded into the
377
first graphic above. Labels A and B, respectively. Each shaded
378
box represents some size-type or secondary
379
associative-container.
380
- </p><div class="figure"><a id="idp18023952"></a><p class="title"><strong>Figure 22.10. Non-unique Mapping Containers</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_embedded_lists_3.png" align="middle" alt="Non-unique Mapping Containers" /></div></div></div><br class="figure-break" /><p>
381
+ </p><div class="figure"><a id="idm269997506912"></a><p class="title"><strong>Figure 22.10. Non-unique Mapping Containers</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_embedded_lists_3.png" align="middle" alt="Non-unique Mapping Containers" /></div></div></div><br class="figure-break" /><p>
382
In the first example above, then, one would use an associative
383
container mapping each user to an associative container which
384
maps each application id to a start time (see
386
shows invariants for order-preserving containers: point-type
387
iterators are synonymous with range-type iterators.
388
Orthogonally, <span class="emphasis"><em>C</em></span>shows invariants for "set"
389
- containers: iterators are synonymous with const iterators.</p><div class="figure"><a id="idp18043824"></a><p class="title"><strong>Figure 22.11. Point Iterator Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_point_iterator_hierarchy.png" align="middle" alt="Point Iterator Hierarchy" /></div></div></div><br class="figure-break" /><p>Note that point-type iterators in self-organizing containers
390
+ containers: iterators are synonymous with const iterators.</p><div class="figure"><a id="idm269997487104"></a><p class="title"><strong>Figure 22.11. Point Iterator Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_point_iterator_hierarchy.png" align="middle" alt="Point Iterator Hierarchy" /></div></div></div><br class="figure-break" /><p>Note that point-type iterators in self-organizing containers
391
(hash-based associative containers) lack movement
392
operators, such as <code class="literal">operator++</code> - in fact, this
393
is the reason why this library differentiates from the standard C++ librarys
395
to the question of whether point-type iterators and range-type
396
iterators are valid. The graphic below shows tags corresponding to
397
different types of invalidation guarantees.
398
- </p><div class="figure"><a id="idp18057168"></a><p class="title"><strong>Figure 22.12. Invalidation Guarantee Tags Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_invalidation_tag_hierarchy.png" align="middle" alt="Invalidation Guarantee Tags Hierarchy" /></div></div></div><br class="figure-break" /><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
399
+ </p><div class="figure"><a id="idm269997473760"></a><p class="title"><strong>Figure 22.12. Invalidation Guarantee Tags Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_invalidation_tag_hierarchy.png" align="middle" alt="Invalidation Guarantee Tags Hierarchy" /></div></div></div><br class="figure-break" /><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
400
<code class="classname">basic_invalidation_guarantee</code>
401
corresponds to a basic guarantee that a point-type iterator,
402
a found pointer, or a found reference, remains valid as long
405
This library contains a container tag hierarchy corresponding to the
407
- </p><div class="figure"><a id="idp18087392"></a><p class="title"><strong>Figure 22.13. Container Tag Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_container_tag_hierarchy.png" align="middle" alt="Container Tag Hierarchy" /></div></div></div><br class="figure-break" /><p>
408
+ </p><div class="figure"><a id="idm269997443664"></a><p class="title"><strong>Figure 22.13. Container Tag Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_container_tag_hierarchy.png" align="middle" alt="Container Tag Hierarchy" /></div></div></div><br class="figure-break" /><p>
409
Given any container <span class="type">Cntnr</span>, the tag of
410
the underlying data structure can be found via <code class="literal">typename
411
Cntnr::container_category</code>.
413
collision-chaining container, except for the following.</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p><code class="classname">Comb_Probe_Fn</code> describes how to transform a probe
414
sequence into a sequence of positions within the table.</p></li><li class="listitem"><p><code class="classname">Probe_Fn</code> describes a probe sequence policy.</p></li></ol></div><p>Some of the default template values depend on the values of
415
other parameters, and are explained below.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="container.hash.details"></a>Details</h5></div></div></div><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="container.hash.details.hash_policies"></a>Hash Policies</h6></div></div></div><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="details.hash_policies.general"></a>General</h6></div></div></div><p>Following is an explanation of some functions which hashing
416
- involves. The graphic below illustrates the discussion.</p><div class="figure"><a id="idp18127536"></a><p class="title"><strong>Figure 22.14. Hash functions, ranged-hash functions, and
417
+ involves. The graphic below illustrates the discussion.</p><div class="figure"><a id="idm269997403584"></a><p class="title"><strong>Figure 22.14. Hash functions, ranged-hash functions, and
418
range-hashing functions</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_hash_ranged_hash_range_hashing_fns.png" align="middle" alt="Hash functions, ranged-hash functions, and range-hashing functions" /></div></div></div><br class="figure-break" /><p>Let U be a domain (e.g., the integers, or the
419
strings of 3 characters). A hash-table algorithm needs to map
420
elements of U "uniformly" into the range [0,..., m -
422
Z<sub>+</sub>,</p><p>which maps a non-negative hash value, and a non-negative
423
range upper-bound into a non-negative integral in the range
424
between 0 (inclusive) and the range upper bound (exclusive),
425
- i.e., for any r in Z<sub>+</sub>,</p><p>0 ≤ g(r, m) ≤ m - 1</p><p>The resulting ranged-hash function, is</p><div class="equation"><a id="idp18141344"></a><p class="title"><strong>Equation 22.1. Ranged Hash Function</strong></p><div class="equation-contents"><span class="mathphrase">
426
+ i.e., for any r in Z<sub>+</sub>,</p><p>0 ≤ g(r, m) ≤ m - 1</p><p>The resulting ranged-hash function, is</p><div class="equation"><a id="idm269997389776"></a><p class="title"><strong>Equation 22.1. Ranged Hash Function</strong></p><div class="equation-contents"><span class="mathphrase">
427
f(u , m) = g(h(u), m)
428
</span></div></div><br class="equation-break" /><p>From the above, it is obvious that given g and
429
h, f can always be composed (however the converse
431
transforming the sequence of hash values into a sequence of
432
positions.</p></div><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="details.hash_policies.range"></a>Range Hashing</h6></div></div></div><p>Some common choices for range-hashing functions are the
433
division, multiplication, and middle-square methods (<a class="xref" href="policy_data_structures.html#biblio.knuth98sorting" title="The Art of Computer Programming - Sorting and Searching">[biblio.knuth98sorting]</a>), defined
434
- as</p><div class="equation"><a id="idp18147232"></a><p class="title"><strong>Equation 22.2. Range-Hashing, Division Method</strong></p><div class="equation-contents"><span class="mathphrase">
435
+ as</p><div class="equation"><a id="idm269997383888"></a><p class="title"><strong>Equation 22.2. Range-Hashing, Division Method</strong></p><div class="equation-contents"><span class="mathphrase">
437
</span></div></div><br class="equation-break" /><p>g(r, m) = ⌈ u/v ( a r mod v ) ⌉</p><p>and</p><p>g(r, m) = ⌈ u/v ( r<sup>2</sup> mod v ) ⌉</p><p>respectively, for some positive integrals u and
438
v (typically powers of 2), and some a. Each of
440
implement using the low
441
level % (modulo) operation (for any m), or the
442
low level & (bit-mask) operation (for the case where
443
- m is a power of 2), i.e.,</p><div class="equation"><a id="idp18151744"></a><p class="title"><strong>Equation 22.3. Division via Prime Modulo</strong></p><div class="equation-contents"><span class="mathphrase">
444
+ m is a power of 2), i.e.,</p><div class="equation"><a id="idm269997379376"></a><p class="title"><strong>Equation 22.3. Division via Prime Modulo</strong></p><div class="equation-contents"><span class="mathphrase">
446
- </span></div></div><br class="equation-break" /><p>and</p><div class="equation"><a id="idp18153568"></a><p class="title"><strong>Equation 22.4. Division via Bit Mask</strong></p><div class="equation-contents"><span class="mathphrase">
447
+ </span></div></div><br class="equation-break" /><p>and</p><div class="equation"><a id="idm269997377552"></a><p class="title"><strong>Equation 22.4. Division via Bit Mask</strong></p><div class="equation-contents"><span class="mathphrase">
448
g(r, m) = r & m - 1, (with m =
449
2<sup>k</sup> for some k)
450
</span></div></div><br class="equation-break" /><p>respectively.</p><p>The % (modulo) implementation has the advantage that for
452
s = [ s<sub>0</sub>,..., s<sub>t - 1</sub>]
453
</p><p>be a string of t characters, each of which is from
454
domain S. Consider the following ranged-hash
455
- function:</p><div class="equation"><a id="idp18163200"></a><p class="title"><strong>Equation 22.5.
456
+ function:</p><div class="equation"><a id="idm269997367984"></a><p class="title"><strong>Equation 22.5.
457
A Standard String Hash Function
458
</strong></p><div class="equation-contents"><span class="mathphrase">
459
f<sub>1</sub>(s, m) = ∑ <sub>i =
461
of a long DNA sequence (and so S = {'A', 'C', 'G',
462
'T'}). In this case, scanning the entire string might be
463
prohibitively expensive. A possible alternative might be to use
464
- only the first k characters of the string, where</p><p>|S|<sup>k</sup> ≥ m ,</p><p>i.e., using the hash function</p><div class="equation"><a id="idp18169344"></a><p class="title"><strong>Equation 22.6.
465
+ only the first k characters of the string, where</p><p>|S|<sup>k</sup> ≥ m ,</p><p>i.e., using the hash function</p><div class="equation"><a id="idm269997361840"></a><p class="title"><strong>Equation 22.6.
466
Only k String DNA Hash
467
</strong></p><div class="equation-contents"><span class="mathphrase">
468
f<sub>2</sub>(s, m) = ∑ <sub>i
469
@@ -606,12 +606,12 @@
470
the container transforms the key into a non-negative integral
471
using the hash functor (points B and C), and transforms the
472
result into a position using the combining functor (points D
473
- and E).</p><div class="figure"><a id="idp18191968"></a><p class="title"><strong>Figure 22.15. Insert hash sequence diagram</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_hash_range_hashing_seq_diagram.png" align="middle" alt="Insert hash sequence diagram" /></div></div></div><br class="figure-break" /><p>If <code class="classname">cc_hash_table</code>'s
474
+ and E).</p><div class="figure"><a id="idm269997339216"></a><p class="title"><strong>Figure 22.15. Insert hash sequence diagram</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_hash_range_hashing_seq_diagram.png" align="middle" alt="Insert hash sequence diagram" /></div></div></div><br class="figure-break" /><p>If <code class="classname">cc_hash_table</code>'s
475
hash-functor, <code class="classname">Hash_Fn</code> is instantiated by <code class="classname">null_type</code> , then <code class="classname">Comb_Hash_Fn</code> is taken to be
476
a ranged-hash function. The graphic below shows an <code class="function">insert</code> sequence
477
diagram. The user inserts an element (point A), the container
478
transforms the key into a position using the combining functor
479
- (points B and C).</p><div class="figure"><a id="idp18199024"></a><p class="title"><strong>Figure 22.16. Insert hash sequence diagram with a null policy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_hash_range_hashing_seq_diagram2.png" align="middle" alt="Insert hash sequence diagram with a null policy" /></div></div></div><br class="figure-break" /></div><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="hash_policies.implementation.probe"></a>
480
+ (points B and C).</p><div class="figure"><a id="idm269997332160"></a><p class="title"><strong>Figure 22.16. Insert hash sequence diagram with a null policy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_hash_range_hashing_seq_diagram2.png" align="middle" alt="Insert hash sequence diagram with a null policy" /></div></div></div><br class="figure-break" /></div><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="hash_policies.implementation.probe"></a>
482
</h6></div></div></div><p><code class="classname">gp_hash_table</code> is parametrized by
483
<code class="classname">Hash_Fn</code>, <code class="classname">Probe_Fn</code>,
485
a linear probe and a quadratic probe function,
486
respectively.</p></li></ol></div><p>
487
The graphic below shows the relationships.
488
- </p><div class="figure"><a id="idp18215840"></a><p class="title"><strong>Figure 22.17. Hash policy class diagram</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_hash_policy_cd.png" align="middle" alt="Hash policy class diagram" /></div></div></div><br class="figure-break" /></div></div></div><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="container.hash.details.resize_policies"></a>Resize Policies</h6></div></div></div><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.general"></a>General</h6></div></div></div><p>Hash-tables, as opposed to trees, do not naturally grow or
489
+ </p><div class="figure"><a id="idm269997315408"></a><p class="title"><strong>Figure 22.17. Hash policy class diagram</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_hash_policy_cd.png" align="middle" alt="Hash policy class diagram" /></div></div></div><br class="figure-break" /></div></div></div><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="container.hash.details.resize_policies"></a>Resize Policies</h6></div></div></div><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.general"></a>General</h6></div></div></div><p>Hash-tables, as opposed to trees, do not naturally grow or
490
shrink. It is necessary to specify policies to determine how
491
and when a hash table should change its size. Usually, resize
492
policies can be decomposed into orthogonal policies:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A size policy indicating how a hash table
493
@@ -667,10 +667,10 @@
494
and some load factor be denoted by Α. We would like to
495
calculate the minimal length of k, such that if there were Α
496
m elements in the hash table, a probe sequence of length k would
497
- be found with probability at most 1/m.</p><div class="figure"><a id="idp18234944"></a><p class="title"><strong>Figure 22.18. Balls and bins</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_balls_and_bins.png" align="middle" alt="Balls and bins" /></div></div></div><br class="figure-break" /><p>Denote the probability that a probe sequence of length
498
+ be found with probability at most 1/m.</p><div class="figure"><a id="idm269997296368"></a><p class="title"><strong>Figure 22.18. Balls and bins</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_balls_and_bins.png" align="middle" alt="Balls and bins" /></div></div></div><br class="figure-break" /><p>Denote the probability that a probe sequence of length
499
k appears in bin i by p<sub>i</sub>, the
500
length of the probe sequence of bin i by
501
- l<sub>i</sub>, and assume uniform distribution. Then</p><div class="equation"><a id="idp18240448"></a><p class="title"><strong>Equation 22.7.
502
+ l<sub>i</sub>, and assume uniform distribution. Then</p><div class="equation"><a id="idm269997290864"></a><p class="title"><strong>Equation 22.7.
503
Probability of Probe Sequence of Length k
504
</strong></p><div class="equation-contents"><span class="mathphrase">
507
l<sub>i</sub> are negatively-dependent
508
(<a class="xref" href="policy_data_structures.html#biblio.dubhashi98neg" title="Balls and bins: A study in negative dependence">[biblio.dubhashi98neg]</a>)
510
- I(.) denote the indicator function. Then</p><div class="equation"><a id="idp18247216"></a><p class="title"><strong>Equation 22.8.
511
+ I(.) denote the indicator function. Then</p><div class="equation"><a id="idm269997284096"></a><p class="title"><strong>Equation 22.8.
512
Probability Probe Sequence in Some Bin
513
</strong></p><div class="equation-contents"><span class="mathphrase">
514
P( exists<sub>i</sub> l<sub>i</sub> ≥ k ) =
516
a resize is needed, and if so, what is the new size (points D
517
to G); following the resize, it notifies the policy that a
518
resize has completed (point H); finally, the element is
519
- inserted, and the policy notified (point I).</p><div class="figure"><a id="idp18265728"></a><p class="title"><strong>Figure 22.19. Insert resize sequence diagram</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_insert_resize_sequence_diagram1.png" align="middle" alt="Insert resize sequence diagram" /></div></div></div><br class="figure-break" /><p>In practice, a resize policy can be usually orthogonally
520
+ inserted, and the policy notified (point I).</p><div class="figure"><a id="idm269997265648"></a><p class="title"><strong>Figure 22.19. Insert resize sequence diagram</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_insert_resize_sequence_diagram1.png" align="middle" alt="Insert resize sequence diagram" /></div></div></div><br class="figure-break" /><p>In practice, a resize policy can be usually orthogonally
521
decomposed to a size policy and a trigger policy. Consequently,
522
the library contains a single class for instantiating a resize
523
policy: <code class="classname">hash_standard_resize_policy</code>
525
both, and acts as a standard delegate (<a class="xref" href="policy_data_structures.html#biblio.gof" title="Design Patterns - Elements of Reusable Object-Oriented Software">[biblio.gof]</a>)
526
to these policies.</p><p>The two graphics immediately below show sequence diagrams
527
illustrating the interaction between the standard resize policy
528
- and its trigger and size policies, respectively.</p><div class="figure"><a id="idp18273504"></a><p class="title"><strong>Figure 22.20. Standard resize policy trigger sequence
529
- diagram</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_insert_resize_sequence_diagram2.png" align="middle" alt="Standard resize policy trigger sequence diagram" /></div></div></div><br class="figure-break" /><div class="figure"><a id="idp18277664"></a><p class="title"><strong>Figure 22.21. Standard resize policy size sequence
530
+ and its trigger and size policies, respectively.</p><div class="figure"><a id="idm269997257872"></a><p class="title"><strong>Figure 22.20. Standard resize policy trigger sequence
531
+ diagram</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_insert_resize_sequence_diagram2.png" align="middle" alt="Standard resize policy trigger sequence diagram" /></div></div></div><br class="figure-break" /><div class="figure"><a id="idm269997253712"></a><p class="title"><strong>Figure 22.21. Standard resize policy size sequence
532
diagram</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_insert_resize_sequence_diagram3.png" align="middle" alt="Standard resize policy size sequence diagram" /></div></div></div><br class="figure-break" /></div><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="resize_policies.impl.predefined"></a>Predefined Policies</h6></div></div></div><p>The library includes the following
533
instantiations of size and trigger policies:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p><code class="classname">hash_load_check_resize_trigger</code>
534
implements a load check trigger policy.</p></li><li class="listitem"><p><code class="classname">cc_hash_max_collision_check_resize_trigger</code>
536
each node, and maintains node invariants (see <a class="xref" href="policy_data_structures.html#biblio.clrs2001" title="Introduction to Algorithms, 2nd edition">[biblio.clrs2001]</a>.) The first stores in
537
each node the size of the sub-tree rooted at the node; the
538
second stores at each node the maximal endpoint of the
539
- intervals at the sub-tree rooted at the node.</p><div class="figure"><a id="idp18355696"></a><p class="title"><strong>Figure 22.22. Tree node invariants</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_tree_node_invariants.png" align="middle" alt="Tree node invariants" /></div></div></div><br class="figure-break" /><p>Supporting such trees is difficult for a number of
540
+ intervals at the sub-tree rooted at the node.</p><div class="figure"><a id="idm269997175616"></a><p class="title"><strong>Figure 22.22. Tree node invariants</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_tree_node_invariants.png" align="middle" alt="Tree node invariants" /></div></div></div><br class="figure-break" /><p>Supporting such trees is difficult for a number of
541
reasons:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>There must be a way to specify what a node's metadata
542
should be (if any).</p></li><li class="listitem"><p>Various operations can invalidate node
543
invariants. The graphic below shows how a right rotation,
545
metadata.</p></li><li class="listitem"><p>It is not feasible to know in advance which methods trees
546
can support. Besides the usual <code class="classname">find</code> method, the
547
first tree can support a <code class="classname">find_by_order</code> method, while
548
- the second can support an <code class="classname">overlaps</code> method.</p></li></ol></div><div class="figure"><a id="idp18365136"></a><p class="title"><strong>Figure 22.23. Tree node invalidation</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_tree_node_invalidations.png" align="middle" alt="Tree node invalidation" /></div></div></div><br class="figure-break" /><p>These problems are solved by a combination of two means:
549
+ the second can support an <code class="classname">overlaps</code> method.</p></li></ol></div><div class="figure"><a id="idm269997166176"></a><p class="title"><strong>Figure 22.23. Tree node invalidation</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_tree_node_invalidations.png" align="middle" alt="Tree node invalidation" /></div></div></div><br class="figure-break" /><p>These problems are solved by a combination of two means:
550
node iterators, and template-template node updater
551
parameters.</p><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="container.tree.node.iterators"></a>Node Iterators</h6></div></div></div><p>Each tree-based container defines two additional iterator
552
types, <code class="classname">const_node_iterator</code>
554
<code class="classname">node_update</code> class, and publicly subclasses
555
<code class="classname">node_update</code>. The graphic below shows this
556
scheme, as well as some predefined policies (which are explained
557
- below).</p><div class="figure"><a id="idp18378304"></a><p class="title"><strong>Figure 22.24. A tree and its update policy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_tree_node_updator_policy_cd.png" align="middle" alt="A tree and its update policy" /></div></div></div><br class="figure-break" /><p><code class="classname">node_update</code> (an instantiation of
558
+ below).</p><div class="figure"><a id="idm269997153072"></a><p class="title"><strong>Figure 22.24. A tree and its update policy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_tree_node_updator_policy_cd.png" align="middle" alt="A tree and its update policy" /></div></div></div><br class="figure-break" /><p><code class="classname">node_update</code> (an instantiation of
559
<code class="classname">Node_Update</code>) must define <code class="classname">metadata_type</code> as
560
the type of metadata it requires. For order statistics,
561
e.g., <code class="classname">metadata_type</code> might be <code class="classname">size_t</code>.
563
<code class="classname">nd_it</code>. For example, say node x in the
564
graphic below label A has an invalid invariant, but its' children,
565
y and z have valid invariants. After the invocation, all three
566
- nodes should have valid invariants, as in label B.</p><div class="figure"><a id="idp18389968"></a><p class="title"><strong>Figure 22.25. Restoring node invariants</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_restoring_node_invariants.png" align="middle" alt="Restoring node invariants" /></div></div></div><br class="figure-break" /><p>When a tree operation might invalidate some node invariant,
567
+ nodes should have valid invariants, as in label B.</p><div class="figure"><a id="idm269997141408"></a><p class="title"><strong>Figure 22.25. Restoring node invariants</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_restoring_node_invariants.png" align="middle" alt="Restoring node invariants" /></div></div></div><br class="figure-break" /><p>When a tree operation might invalidate some node invariant,
568
it invokes this method in its <code class="classname">node_update</code> base to
569
restore the invariant. For example, the graphic below shows
570
an <code class="function">insert</code> operation (point A); the tree performs some
572
C, and D). (It is well known that any <code class="function">insert</code>,
573
<code class="function">erase</code>, <code class="function">split</code> or <code class="function">join</code>, can restore
574
all node invariants by a small number of node invariant updates (<a class="xref" href="policy_data_structures.html#biblio.clrs2001" title="Introduction to Algorithms, 2nd edition">[biblio.clrs2001]</a>)
575
- .</p><div class="figure"><a id="idp18398144"></a><p class="title"><strong>Figure 22.26. Insert update sequence</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_update_seq_diagram.png" align="middle" alt="Insert update sequence" /></div></div></div><br class="figure-break" /><p>To complete the description of the scheme, three questions
576
+ .</p><div class="figure"><a id="idm269997133232"></a><p class="title"><strong>Figure 22.26. Insert update sequence</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_update_seq_diagram.png" align="middle" alt="Insert update sequence" /></div></div></div><br class="figure-break" /><p>To complete the description of the scheme, three questions
577
need to be answered:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>How can a tree which supports order statistics define a
578
method such as <code class="classname">find_by_order</code>?</p></li><li class="listitem"><p>How can the node updater base access methods of the
579
tree?</p></li><li class="listitem"><p>How can the following cyclic dependency be resolved?
581
node's metadata (this is halting reducible). In the graphic
582
below, assume the shaded node is inserted. The tree would have
583
to traverse the useless path shown to the root, applying
584
- redundant updates all the way.</p></li></ol></div><div class="figure"><a id="idp18420400"></a><p class="title"><strong>Figure 22.27. Useless update path</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_rationale_null_node_updator.png" align="middle" alt="Useless update path" /></div></div></div><br class="figure-break" /><p>A null policy class, <code class="classname">null_node_update</code>
585
+ redundant updates all the way.</p></li></ol></div><div class="figure"><a id="idm269997110976"></a><p class="title"><strong>Figure 22.27. Useless update path</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_rationale_null_node_updator.png" align="middle" alt="Useless update path" /></div></div></div><br class="figure-break" /><p>A null policy class, <code class="classname">null_node_update</code>
586
solves both these problems. The tree detects that node
587
invariants are irrelevant, and defines all accordingly.</p></div></div><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="container.tree.details.split"></a>Split and Join</h6></div></div></div><p>Tree-based containers support split and join methods.
588
It is possible to split a tree so that it passes
589
@@ -1071,7 +1071,7 @@
590
sub-tree with leafs "a" and "as". The maximal common prefix is
591
"a". The internal node contains, consequently, to const
592
iterators, one pointing to <code class="varname">'a'</code>, and the other to
593
- <code class="varname">'s'</code>.</p><div class="figure"><a id="idp18465088"></a><p class="title"><strong>Figure 22.28. A PATRICIA trie</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_pat_trie.png" align="middle" alt="A PATRICIA trie" /></div></div></div><br class="figure-break" /></div><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="container.trie.details.node"></a>Node Invariants</h6></div></div></div><p>Trie-based containers support node invariants, as do
594
+ <code class="varname">'s'</code>.</p><div class="figure"><a id="idm269997066288"></a><p class="title"><strong>Figure 22.28. A PATRICIA trie</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_pat_trie.png" align="middle" alt="A PATRICIA trie" /></div></div></div><br class="figure-break" /></div><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="container.trie.details.node"></a>Node Invariants</h6></div></div></div><p>Trie-based containers support node invariants, as do
595
tree-based containers. There are two minor
596
differences, though, which, unfortunately, thwart sharing them
597
sharing the same node-updating policies:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A trie's <code class="classname">Node_Update</code> template-template
598
@@ -1080,7 +1080,7 @@
599
parametrized by <code class="classname">Cmp_Fn</code>.</p></li><li class="listitem"><p>Tree-based containers store values in all nodes, while
600
trie-based containers (at least in this implementation) store
601
values in leafs.</p></li></ol></div><p>The graphic below shows the scheme, as well as some predefined
602
- policies (which are explained below).</p><div class="figure"><a id="idp18475584"></a><p class="title"><strong>Figure 22.29. A trie and its update policy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_trie_node_updator_policy_cd.png" align="middle" alt="A trie and its update policy" /></div></div></div><br class="figure-break" /><p>This library offers the following pre-defined trie node
603
+ policies (which are explained below).</p><div class="figure"><a id="idm269997055856"></a><p class="title"><strong>Figure 22.29. A trie and its update policy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_trie_node_updator_policy_cd.png" align="middle" alt="A trie and its update policy" /></div></div></div><br class="figure-break" /><p>This library offers the following pre-defined trie node
604
updating policies:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
605
<code class="classname">trie_order_statistics_node_update</code>
606
supports order statistics.
607
@@ -1128,7 +1128,7 @@
608
simple list of integer keys. If we search for the integer 6, we
609
are paying an overhead: the link with key 6 is only the fifth
610
link; if it were the first link, it could be accessed
611
- faster.</p><div class="figure"><a id="idp18506160"></a><p class="title"><strong>Figure 22.30. A simple list</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_simple_list.png" align="middle" alt="A simple list" /></div></div></div><br class="figure-break" /><p>List-update algorithms reorder lists as elements are
612
+ faster.</p><div class="figure"><a id="idm269997025344"></a><p class="title"><strong>Figure 22.30. A simple list</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_simple_list.png" align="middle" alt="A simple list" /></div></div></div><br class="figure-break" /><p>List-update algorithms reorder lists as elements are
613
accessed. They try to determine, by the access history, which
614
keys to move to the front of the list. Some of these algorithms
615
require adding some metadata alongside each entry.</p><p>For example, in the graphic below label A shows the counter
616
@@ -1138,7 +1138,7 @@
617
predetermined value, say 10, as shown in label C, the count is set
618
to 0 and the node is moved to the front of the list, as in label
620
- </p><div class="figure"><a id="idp18511744"></a><p class="title"><strong>Figure 22.31. The counter algorithm</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_list_update.png" align="middle" alt="The counter algorithm" /></div></div></div><br class="figure-break" /></div><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="container.list.details.policies"></a>Policies</h6></div></div></div><p>this library allows instantiating lists with policies
621
+ </p><div class="figure"><a id="idm269997019760"></a><p class="title"><strong>Figure 22.31. The counter algorithm</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_list_update.png" align="middle" alt="The counter algorithm" /></div></div></div><br class="figure-break" /></div><div class="section"><div class="titlepage"><div><div><h6 class="title"><a id="container.list.details.policies"></a>Policies</h6></div></div></div><p>this library allows instantiating lists with policies
622
implementing any algorithm moving nodes to the front of the
623
list (policies implementing algorithms interchanging nodes are
624
unsupported).</p><p>Associative containers based on lists are parametrized by a
625
@@ -1310,7 +1310,7 @@
626
sequence; the second uses a tree (or forest of trees), which is
627
typically less structured than an associative container's tree;
628
the third simply uses an associative container. These are
629
- shown in the graphic below, in labels A1 and A2, label B, and label C.</p><div class="figure"><a id="idp18575568"></a><p class="title"><strong>Figure 22.32. Underlying Priority-Queue Data-Structures.</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_priority_queue_different_underlying_dss.png" align="middle" alt="Underlying Priority-Queue Data-Structures." /></div></div></div><br class="figure-break" /><p>Roughly speaking, any value that is both pushed and popped
630
+ shown in the graphic below, in labels A1 and A2, label B, and label C.</p><div class="figure"><a id="idm269996955920"></a><p class="title"><strong>Figure 22.32. Underlying Priority-Queue Data-Structures.</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_priority_queue_different_underlying_dss.png" align="middle" alt="Underlying Priority-Queue Data-Structures." /></div></div></div><br class="figure-break" /><p>Roughly speaking, any value that is both pushed and popped
631
from a priority queue must incur a logarithmic expense (in the
632
amortized sense). Any priority queue implementation that would
633
avoid this, would violate known bounds on comparison-based
634
@@ -1390,7 +1390,7 @@
635
container <code class="classname">Cntnr</code>, the tag of the underlying
636
data structure can be found via <code class="classname">typename
637
Cntnr::container_category</code>; this is one of the possible tags shown in the graphic below.
638
- </p><div class="figure"><a id="idp18610544"></a><p class="title"><strong>Figure 22.33. Priority-Queue Data-Structure Tags.</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_priority_queue_tag_hierarchy.png" align="middle" alt="Priority-Queue Data-Structure Tags." /></div></div></div><br class="figure-break" /><p>Additionally, a traits mechanism can be used to query a
639
+ </p><div class="figure"><a id="idm269996920880"></a><p class="title"><strong>Figure 22.33. Priority-Queue Data-Structure Tags.</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_priority_queue_tag_hierarchy.png" align="middle" alt="Priority-Queue Data-Structure Tags." /></div></div></div><br class="figure-break" /><p>Additionally, a traits mechanism can be used to query a
640
container type for its attributes. Given any container
641
<code class="classname">Cntnr</code>, then </p><pre class="programlisting">__gnu_pbds::container_traits<Cntnr></pre><p>
642
is a traits class identifying the properties of the
643
Index: libstdc++-v3/doc/html/manual/using.html
644
===================================================================
645
--- a/src/libstdc++-v3/doc/html/manual/using.html (.../tags/gcc_4_8_2_release)
646
+++ b/src/libstdc++-v3/doc/html/manual/using.html (.../branches/gcc-4_8-branch)
648
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
649
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 3. Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="intro.html" title="Part I. Introduction" /><link rel="prev" href="make.html" title="Make" /><link rel="next" href="using_headers.html" title="Headers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Using</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="make.html">Prev</a> </td><th width="60%" align="center">Part I.
650
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 3. Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="intro.html" title="Part I. Introduction" /><link rel="prev" href="make.html" title="Make" /><link rel="next" href="using_headers.html" title="Headers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Using</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="make.html">Prev</a> </td><th width="60%" align="center">Part I.
653
-</th><td width="20%" align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using"></a>Chapter 3. Using</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.flags"></a>Command Options</h2></div></div></div><p>
654
+</th><td width="20%" align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.using"></a>Chapter 3. Using</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.flags"></a>Command Options</h2></div></div></div><p>
655
The set of features available in the GNU C++ library is shaped
657
several <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Invoking-GCC.html" target="_top">GCC
659
enumerated and detailed in the table below.
661
By default, <span class="command"><strong>g++</strong></span> is equivalent to <span class="command"><strong>g++ -std=gnu++98</strong></span>. The standard library also defaults to this dialect.
662
- </p><div class="table"><a id="idp13051936"></a><p class="title"><strong>Table 3.1. C++ Command Options</strong></p><div class="table-contents"><table summary="C++ Command Options" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">Option Flags</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><code class="literal">-std=c++98</code></td><td align="left">Use the 1998 ISO C++ standard plus amendments.</td></tr><tr><td align="left"><code class="literal">-std=gnu++98</code></td><td align="left">As directly above, with GNU extensions.</td></tr><tr><td align="left"><code class="literal">-std=c++11</code></td><td align="left">Use the 2011 ISO C++ standard.</td></tr><tr><td align="left"><code class="literal">-std=gnu++11</code></td><td align="left">As directly above, with GNU extensions.</td></tr><tr><td align="left"><code class="literal">-fexceptions</code></td><td align="left">See <a class="link" href="using_exceptions.html#intro.using.exception.no" title="Doing without">exception-free dialect</a></td></tr><tr><td align="left"><code class="literal">-frtti</code></td><td align="left">As above, but RTTI-free dialect.</td></tr><tr><td align="left"><code class="literal">-pthread</code> or <code class="literal">-pthreads</code></td><td align="left">For ISO C++11 <thread>, <future>,
663
+ </p><div class="table"><a id="idm270002481088"></a><p class="title"><strong>Table 3.1. C++ Command Options</strong></p><div class="table-contents"><table summary="C++ Command Options" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">Option Flags</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><code class="literal">-std=c++98</code></td><td align="left">Use the 1998 ISO C++ standard plus amendments.</td></tr><tr><td align="left"><code class="literal">-std=gnu++98</code></td><td align="left">As directly above, with GNU extensions.</td></tr><tr><td align="left"><code class="literal">-std=c++11</code></td><td align="left">Use the 2011 ISO C++ standard.</td></tr><tr><td align="left"><code class="literal">-std=gnu++11</code></td><td align="left">As directly above, with GNU extensions.</td></tr><tr><td align="left"><code class="literal">-fexceptions</code></td><td align="left">See <a class="link" href="using_exceptions.html#intro.using.exception.no" title="Doing without">exception-free dialect</a></td></tr><tr><td align="left"><code class="literal">-frtti</code></td><td align="left">As above, but RTTI-free dialect.</td></tr><tr><td align="left"><code class="literal">-pthread</code> or <code class="literal">-pthreads</code></td><td align="left">For ISO C++11 <thread>, <future>,
664
<mutex>, or <condition_variable>.</td></tr><tr><td align="left"><code class="literal">-fopenmp</code></td><td align="left">For <a class="link" href="parallel_mode.html" title="Chapter 18. Parallel Mode">parallel</a> mode.</td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="make.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="intro.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Make </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Headers</td></tr></table></div></body></html>
665
\ No newline at end of file
666
Index: libstdc++-v3/doc/html/manual/profile_mode_impl.html
667
===================================================================
668
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_impl.html (.../tags/gcc_4_8_2_release)
669
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_impl.html (.../branches/gcc-4_8-branch)
671
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
672
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Implementation Issues</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, profile" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="profile_mode_cost_model.html" title="Empirical Cost Model" /><link rel="next" href="profile_mode_devel.html" title="Developer Information" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation Issues</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode_cost_model.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode_devel.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.implementation"></a>Implementation Issues</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.stack"></a>Stack Traces</h3></div></div></div><p>
673
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Implementation Issues</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, profile" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="profile_mode_cost_model.html" title="Empirical Cost Model" /><link rel="next" href="profile_mode_devel.html" title="Developer Information" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation Issues</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode_cost_model.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode_devel.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.implementation"></a>Implementation Issues</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.implementation.stack"></a>Stack Traces</h3></div></div></div><p>
674
Accurate stack traces are needed during profiling since we group events by
675
call context and dynamic instance. Without accurate traces, diagnostics
676
may be hard to interpret. For instance, when giving advice to the user
677
Index: libstdc++-v3/doc/html/manual/ext_containers.html
678
===================================================================
679
--- a/src/libstdc++-v3/doc/html/manual/ext_containers.html (.../tags/gcc_4_8_2_release)
680
+++ b/src/libstdc++-v3/doc/html/manual/ext_containers.html (.../branches/gcc-4_8-branch)
682
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
683
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 23. HP/SGI Extensions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="policy_data_structures_ack.html" title="Acknowledgments" /><link rel="next" href="ext_sgi.html" title="Deprecated" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 23. HP/SGI Extensions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_data_structures_ack.html">Prev</a> </td><th width="60%" align="center">Part III.
684
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 23. HP/SGI Extensions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="policy_data_structures_ack.html" title="Acknowledgments" /><link rel="next" href="ext_sgi.html" title="Deprecated" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 23. HP/SGI Extensions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_data_structures_ack.html">Prev</a> </td><th width="60%" align="center">Part III.
687
-</th><td width="20%" align="right"> <a accesskey="n" href="ext_sgi.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers"></a>Chapter 23. HP/SGI Extensions</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ext_containers.html#manual.ext.containers.sgi">Backwards Compatibility</a></span></dt><dt><span class="section"><a href="ext_sgi.html">Deprecated</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.containers.sgi"></a>Backwards Compatibility</h2></div></div></div><p>A few extensions and nods to backwards-compatibility have
688
+</th><td width="20%" align="right"> <a accesskey="n" href="ext_sgi.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers"></a>Chapter 23. HP/SGI Extensions</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="ext_containers.html#manual.ext.containers.sgi">Backwards Compatibility</a></span></dt><dt><span class="section"><a href="ext_sgi.html">Deprecated</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.containers.sgi"></a>Backwards Compatibility</h2></div></div></div><p>A few extensions and nods to backwards-compatibility have
689
been made with containers. Those dealing with older SGI-style
690
allocators are dealt with elsewhere. The remaining ones all deal
692
Index: libstdc++-v3/doc/html/manual/ext_concurrency_use.html
693
===================================================================
694
--- a/src/libstdc++-v3/doc/html/manual/ext_concurrency_use.html (.../tags/gcc_4_8_2_release)
695
+++ b/src/libstdc++-v3/doc/html/manual/ext_concurrency_use.html (.../branches/gcc-4_8-branch)
697
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
698
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Use</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="ext_concurrency.html" title="Chapter 30. Concurrency" /><link rel="prev" href="ext_concurrency_impl.html" title="Implementation" /><link rel="next" href="appendix.html" title="Part IV. Appendices" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Use</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_concurrency_impl.html">Prev</a> </td><th width="60%" align="center">Chapter 30. Concurrency</th><td width="20%" align="right"> <a accesskey="n" href="appendix.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.use"></a>Use</h2></div></div></div><p>Typical usage of the last two constructs is demonstrated as follows:
699
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Use</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="ext_concurrency.html" title="Chapter 30. Concurrency" /><link rel="prev" href="ext_concurrency_impl.html" title="Implementation" /><link rel="next" href="appendix.html" title="Part IV. Appendices" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Use</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_concurrency_impl.html">Prev</a> </td><th width="60%" align="center">Chapter 30. Concurrency</th><td width="20%" align="right"> <a accesskey="n" href="appendix.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.use"></a>Use</h2></div></div></div><p>Typical usage of the last two constructs is demonstrated as follows:
700
</p><pre class="programlisting">
701
#include <ext/concurrence.h>
703
Index: libstdc++-v3/doc/html/manual/ext_io.html
704
===================================================================
705
--- a/src/libstdc++-v3/doc/html/manual/ext_io.html (.../tags/gcc_4_8_2_release)
706
+++ b/src/libstdc++-v3/doc/html/manual/ext_io.html (.../branches/gcc-4_8-branch)
708
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
709
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 28. Input and Output</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_iterators.html" title="Chapter 27. Iterators" /><link rel="next" href="ext_demangling.html" title="Chapter 29. Demangling" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 28. Input and Output</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_iterators.html">Prev</a> </td><th width="60%" align="center">Part III.
710
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 28. Input and Output</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_iterators.html" title="Chapter 27. Iterators" /><link rel="next" href="ext_demangling.html" title="Chapter 29. Demangling" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 28. Input and Output</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_iterators.html">Prev</a> </td><th width="60%" align="center">Part III.
713
-</th><td width="20%" align="right"> <a accesskey="n" href="ext_demangling.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.io"></a>Chapter 28. Input and Output</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></div><p>
714
+</th><td width="20%" align="right"> <a accesskey="n" href="ext_demangling.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.io"></a>Chapter 28. Input and Output</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="ext_io.html#manual.ext.io.filebuf_derived">Derived filebufs</a></span></dt></dl></div><p>
715
Extensions allowing <code class="code">filebuf</code>s to be constructed from
716
"C" types like FILE*s and file descriptors.
717
</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.io.filebuf_derived"></a>Derived filebufs</h2></div></div></div><p>The v2 library included non-standard extensions to construct
718
Index: libstdc++-v3/doc/html/manual/termination.html
719
===================================================================
720
--- a/src/libstdc++-v3/doc/html/manual/termination.html (.../tags/gcc_4_8_2_release)
721
+++ b/src/libstdc++-v3/doc/html/manual/termination.html (.../branches/gcc-4_8-branch)
723
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
724
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Termination</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="support.html" title="Chapter 4. Support" /><link rel="prev" href="dynamic_memory.html" title="Dynamic Memory" /><link rel="next" href="diagnostics.html" title="Chapter 5. Diagnostics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Termination</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dynamic_memory.html">Prev</a> </td><th width="60%" align="center">Chapter 4.
725
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Termination</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="support.html" title="Chapter 4. Support" /><link rel="prev" href="dynamic_memory.html" title="Dynamic Memory" /><link rel="next" href="diagnostics.html" title="Chapter 5. Diagnostics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Termination</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="dynamic_memory.html">Prev</a> </td><th width="60%" align="center">Chapter 4.
728
</th><td width="20%" align="right"> <a accesskey="n" href="diagnostics.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.support.termination"></a>Termination</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="support.termination.handlers"></a>Termination Handlers</h3></div></div></div><p>
729
Index: libstdc++-v3/doc/html/manual/using_macros.html
730
===================================================================
731
--- a/src/libstdc++-v3/doc/html/manual/using_macros.html (.../tags/gcc_4_8_2_release)
732
+++ b/src/libstdc++-v3/doc/html/manual/using_macros.html (.../branches/gcc-4_8-branch)
734
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
735
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Macros</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_headers.html" title="Headers" /><link rel="next" href="using_namespaces.html" title="Namespaces" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Macros</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_namespaces.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.macros"></a>Macros</h2></div></div></div><p>
736
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Macros</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_headers.html" title="Headers" /><link rel="next" href="using_namespaces.html" title="Namespaces" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Macros</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_headers.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_namespaces.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.macros"></a>Macros</h2></div></div></div><p>
737
All library macros begin with <code class="code">_GLIBCXX_</code>.
739
Furthermore, all pre-processor macros, switches, and
740
Index: libstdc++-v3/doc/html/manual/concurrency.html
741
===================================================================
742
--- a/src/libstdc++-v3/doc/html/manual/concurrency.html (.../tags/gcc_4_8_2_release)
743
+++ b/src/libstdc++-v3/doc/html/manual/concurrency.html (.../branches/gcc-4_8-branch)
745
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
746
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 15. Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library, mutex, thread, future, condition_variable" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="atomics.html" title="Chapter 14. Atomics" /><link rel="next" href="extensions.html" title="Part III. Extensions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 15.
747
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 15. Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library, mutex, thread, future, condition_variable" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="atomics.html" title="Chapter 14. Atomics" /><link rel="next" href="extensions.html" title="Part III. Extensions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 15.
750
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="atomics.html">Prev</a> </td><th width="60%" align="center">Part II.
752
</th><td width="20%" align="right"> <a accesskey="n" href="extensions.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="std.concurrency"></a>Chapter 15.
754
- <a id="idp16404464" class="indexterm"></a>
755
-</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="concurrency.html#std.concurrency.api">API Reference</a></span></dt></dl></div><p>
756
+ <a id="idm269999126816" class="indexterm"></a>
757
+</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="concurrency.html#std.concurrency.api">API Reference</a></span></dt></dl></div><p>
758
Facilities for concurrent operation, and control thereof.
759
</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.concurrency.api"></a>API Reference</h2></div></div></div><p>
760
All items are declared in one of four standard header files.
761
Index: libstdc++-v3/doc/html/manual/ext_utilities.html
762
===================================================================
763
--- a/src/libstdc++-v3/doc/html/manual/ext_utilities.html (.../tags/gcc_4_8_2_release)
764
+++ b/src/libstdc++-v3/doc/html/manual/ext_utilities.html (.../branches/gcc-4_8-branch)
766
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
767
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 24. Utilities</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_sgi.html" title="Deprecated" /><link rel="next" href="ext_algorithms.html" title="Chapter 25. Algorithms" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 24. Utilities</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_sgi.html">Prev</a> </td><th width="60%" align="center">Part III.
768
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 24. Utilities</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_sgi.html" title="Deprecated" /><link rel="next" href="ext_algorithms.html" title="Chapter 25. Algorithms" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 24. Utilities</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_sgi.html">Prev</a> </td><th width="60%" align="center">Part III.
771
</th><td width="20%" align="right"> <a accesskey="n" href="ext_algorithms.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.util"></a>Chapter 24. Utilities</h2></div></div></div><p>
772
Index: libstdc++-v3/doc/html/manual/policy_data_structures.html
773
===================================================================
774
--- a/src/libstdc++-v3/doc/html/manual/policy_data_structures.html (.../tags/gcc_4_8_2_release)
775
+++ b/src/libstdc++-v3/doc/html/manual/policy_data_structures.html (.../branches/gcc-4_8-branch)
777
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
778
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 22. Policy-Based Data Structures</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, policy, container, data, structure, associated, tree, trie, hash, metaprogramming" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="bitmap_allocator_impl.html" title="Implementation" /><link rel="next" href="policy_data_structures_using.html" title="Using" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 22. Policy-Based Data Structures</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bitmap_allocator_impl.html">Prev</a> </td><th width="60%" align="center">Part III.
779
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 22. Policy-Based Data Structures</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, policy, container, data, structure, associated, tree, trie, hash, metaprogramming" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="bitmap_allocator_impl.html" title="Implementation" /><link rel="next" href="policy_data_structures_using.html" title="Using" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 22. Policy-Based Data Structures</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bitmap_allocator_impl.html">Prev</a> </td><th width="60%" align="center">Part III.
782
-</th><td width="20%" align="right"> <a accesskey="n" href="policy_data_structures_using.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers.pbds"></a>Chapter 22. Policy-Based Data Structures</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues">Performance Issues</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues.associative">Associative</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues.priority_queue">Priority Que</a></span></dt></dl></dd><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation">Goals</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation.associative">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.iterators">Iterators</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.functions">Functional</a></span></dt></dl></dd><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation.priority_queue">Priority Queues</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.binary_heap">Binary Heaps</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="policy_data_structures_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.organization">Organization</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial">Tutorial</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.basic">Basic Use</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.configuring">
783
+</th><td width="20%" align="right"> <a accesskey="n" href="policy_data_structures_using.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.containers.pbds"></a>Chapter 22. Policy-Based Data Structures</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="policy_data_structures.html#pbds.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues">Performance Issues</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues.associative">Associative</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues.priority_queue">Priority Que</a></span></dt></dl></dd><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation">Goals</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation.associative">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.iterators">Iterators</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.functions">Functional</a></span></dt></dl></dd><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation.priority_queue">Priority Queues</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.binary_heap">Binary Heaps</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="policy_data_structures_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.organization">Organization</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial">Tutorial</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.basic">Basic Use</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.configuring">
784
Configuring via Template Parameters
785
</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.traits">
786
Querying Container Attributes
788
these invariants, one must supply some policy that is aware
789
of these changes. Without this, it would be better to use a
790
linked list (in itself very efficient for these purposes).
791
- </p></li></ol></div><div class="figure"><a id="idp17613296"></a><p class="title"><strong>Figure 22.1. Node Invariants</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_node_invariants.png" align="middle" alt="Node Invariants" /></div></div></div><br class="figure-break" /></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.associative.underlying"></a>Underlying Data Structures</h5></div></div></div><p>
792
+ </p></li></ol></div><div class="figure"><a id="idm269997917584"></a><p class="title"><strong>Figure 22.1. Node Invariants</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_node_invariants.png" align="middle" alt="Node Invariants" /></div></div></div><br class="figure-break" /></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="motivation.associative.underlying"></a>Underlying Data Structures</h5></div></div></div><p>
793
The standard C++ library contains associative containers based on
794
red-black trees and collision-chaining hash tables. These are
795
very useful, but they are not ideal for all types of
798
The figure below shows the different underlying data structures
799
currently supported in this library.
800
- </p><div class="figure"><a id="idp17619952"></a><p class="title"><strong>Figure 22.2. Underlying Associative Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_different_underlying_dss_1.png" align="middle" alt="Underlying Associative Data Structures" /></div></div></div><br class="figure-break" /><p>
801
+ </p><div class="figure"><a id="idm269997910864"></a><p class="title"><strong>Figure 22.2. Underlying Associative Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_different_underlying_dss_1.png" align="middle" alt="Underlying Associative Data Structures" /></div></div></div><br class="figure-break" /><p>
802
A shows a collision-chaining hash-table, B shows a probing
803
hash-table, C shows a red-black tree, D shows a splay tree, E shows
804
a tree based on an ordered vector(implicit in the order of the
806
no guarantee that the elements traversed will coincide with the
807
<span class="emphasis"><em>logical</em></span> elements between 1 and 5, as in
809
- </p><div class="figure"><a id="idp17651648"></a><p class="title"><strong>Figure 22.3. Range Iteration in Different Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_point_iterators_range_ops_1.png" align="middle" alt="Node Invariants" /></div></div></div><br class="figure-break" /><p>
810
+ </p><div class="figure"><a id="idm269997879168"></a><p class="title"><strong>Figure 22.3. Range Iteration in Different Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_point_iterators_range_ops_1.png" align="middle" alt="Node Invariants" /></div></div></div><br class="figure-break" /><p>
811
In our opinion, this problem is not caused just because
812
red-black trees are order preserving while
813
collision-chaining hash tables are (generally) not - it
815
list, as in the graphic below, label B. Here the iterators are as
816
light as can be, but the hash-table's operations are more
818
- </p><div class="figure"><a id="idp17666528"></a><p class="title"><strong>Figure 22.4. Point Iteration in Hash Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_point_iterators_range_ops_2.png" align="middle" alt="Point Iteration in Hash Data Structures" /></div></div></div><br class="figure-break" /><p>
819
+ </p><div class="figure"><a id="idm269997864256"></a><p class="title"><strong>Figure 22.4. Point Iteration in Hash Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_point_iterators_range_ops_2.png" align="middle" alt="Point Iteration in Hash Data Structures" /></div></div></div><br class="figure-break" /><p>
820
It should be noted that containers based on collision-chaining
821
hash-tables are not the only ones with this type of behavior;
822
many other self-organizing data structures display it as well.
824
container. The graphic below shows three cases: A1 and A2 show
825
a red-black tree; B1 and B2 show a probing hash-table; C1 and C2
826
show a collision-chaining hash table.
827
- </p><div class="figure"><a id="idp17675840"></a><p class="title"><strong>Figure 22.5. Effect of erase in different underlying data structures</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_invalidation_guarantee_erase.png" align="middle" alt="Effect of erase in different underlying data structures" /></div></div></div><br class="figure-break" /><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
828
+ </p><div class="figure"><a id="idm269997855056"></a><p class="title"><strong>Figure 22.5. Effect of erase in different underlying data structures</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_invalidation_guarantee_erase.png" align="middle" alt="Effect of erase in different underlying data structures" /></div></div></div><br class="figure-break" /><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
829
Erasing 5 from A1 yields A2. Clearly, an iterator to 3 can
830
be de-referenced and incremented. The sequence of iterators
831
changed, but in a way that is well-defined by the interface.
833
typically less structured than an associative container's tree;
834
the third simply uses an associative container. These are
835
shown in the figure below with labels A1 and A2, B, and C.
836
- </p><div class="figure"><a id="idp17743424"></a><p class="title"><strong>Figure 22.6. Underlying Priority Queue Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_different_underlying_dss_2.png" align="middle" alt="Underlying Priority Queue Data Structures" /></div></div></div><br class="figure-break" /><p>
837
+ </p><div class="figure"><a id="idm269997787392"></a><p class="title"><strong>Figure 22.6. Underlying Priority Queue Data Structures</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_different_underlying_dss_2.png" align="middle" alt="Underlying Priority Queue Data Structures" /></div></div></div><br class="figure-break" /><p>
838
No single implementation can completely replace any of the
839
others. Some have better <code class="function">push</code>
840
and <code class="function">pop</code> amortized performance, some have
841
@@ -1098,7 +1098,7 @@
842
</span>. </span><span class="publisher"><span class="publishername">
843
Proceedings of International Conference on Very Large Data Bases
844
. </span></span></p></div><div class="biblioentry"><a id="biblio.maverik_lowerbounds"></a><p>[biblio.maverik_lowerbounds] <span class="title"><em>
845
- <a class="link" href="http://magic.aladdin.cs.cmu.edu/2005/08/01/deamortization-part-2-binomial-heaps" target="_top">
846
+ <a class="link" href="http://magic.aladdin.cs.cmu.edu/2005/08/01/deamortization-part-2-binomial-heaps/" target="_top">
847
Deamortization - Part 2: Binomial Heaps
849
</em>. </span><span class="date">
850
@@ -1190,7 +1190,7 @@
851
</span>. </span><span class="publisher"><span class="publishername">
852
Addison-Wesley Publishing Company
853
. </span></span></p></div><div class="biblioentry"><a id="biblio.nelson96stlpq"></a><p>[biblio.nelson96stlpq] <span class="title"><em>
854
- <a class="link" href="http://www.dogma.net/markn/articles/pq_stl/priority.htm" target="_top">Priority Queues and the STL
855
+ <a class="link" href="http://marknelson.us/1996/01/01/priority-queues/" target="_top">Priority Queues and the STL
857
</em>. </span><span class="date">
859
Index: libstdc++-v3/doc/html/manual/ext_iterators.html
860
===================================================================
861
--- a/src/libstdc++-v3/doc/html/manual/ext_iterators.html (.../tags/gcc_4_8_2_release)
862
+++ b/src/libstdc++-v3/doc/html/manual/ext_iterators.html (.../branches/gcc-4_8-branch)
864
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
865
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 27. Iterators</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_numerics.html" title="Chapter 26. Numerics" /><link rel="next" href="ext_io.html" title="Chapter 28. Input and Output" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 27. Iterators</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_numerics.html">Prev</a> </td><th width="60%" align="center">Part III.
866
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 27. Iterators</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_numerics.html" title="Chapter 26. Numerics" /><link rel="next" href="ext_io.html" title="Chapter 28. Input and Output" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 27. Iterators</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_numerics.html">Prev</a> </td><th width="60%" align="center">Part III.
869
</th><td width="20%" align="right"> <a accesskey="n" href="ext_io.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.iterators"></a>Chapter 27. Iterators</h2></div></div></div><p>24.3.2 describes <code class="code">struct iterator</code>, which didn't exist in the
870
Index: libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html
871
===================================================================
872
--- a/src/libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html (.../tags/gcc_4_8_2_release)
873
+++ b/src/libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html (.../branches/gcc-4_8-branch)
875
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
876
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Implementation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, allocator" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator" /><link rel="prev" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator" /><link rel="next" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bitmap_allocator.html">Prev</a> </td><th width="60%" align="center">Chapter 21. The bitmap_allocator</th><td width="20%" align="right"> <a accesskey="n" href="policy_data_structures.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.bitmap.impl"></a>Implementation</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.free_list_store"></a>Free List Store</h3></div></div></div><p>
877
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Implementation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, allocator" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator" /><link rel="prev" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator" /><link rel="next" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bitmap_allocator.html">Prev</a> </td><th width="60%" align="center">Chapter 21. The bitmap_allocator</th><td width="20%" align="right"> <a accesskey="n" href="policy_data_structures.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.bitmap.impl"></a>Implementation</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="bitmap.impl.free_list_store"></a>Free List Store</h3></div></div></div><p>
878
The Free List Store (referred to as FLS for the remaining part of this
879
document) is the Global memory pool that is shared by all instances of
880
the bitmapped allocator instantiated for any type. This maintains a
883
Consider a block of size 64 ints. In memory, it would look like this:
884
(assume a 32-bit system where, size_t is a 32-bit entity).
885
- </p><div class="table"><a id="idp17500848"></a><p class="title"><strong>Table 21.1. Bitmap Allocator Memory Map</strong></p><div class="table-contents"><table summary="Bitmap Allocator Memory Map" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left">268</td><td align="left">0</td><td align="left">4294967295</td><td align="left">4294967295</td><td align="left">Data -> Space for 64 ints</td></tr></tbody></table></div></div><br class="table-break" /><p>
886
+ </p><div class="table"><a id="idm269998030352"></a><p class="title"><strong>Table 21.1. Bitmap Allocator Memory Map</strong></p><div class="table-contents"><table summary="Bitmap Allocator Memory Map" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left">268</td><td align="left">0</td><td align="left">4294967295</td><td align="left">4294967295</td><td align="left">Data -> Space for 64 ints</td></tr></tbody></table></div></div><br class="table-break" /><p>
887
The first Column(268) represents the size of the Block in bytes as
888
seen by the Bitmap Allocator. Internally, a global free list is
889
used to keep track of the free blocks used and given back by the
890
Index: libstdc++-v3/doc/html/manual/appendix_contributing.html
891
===================================================================
892
--- a/src/libstdc++-v3/doc/html/manual/appendix_contributing.html (.../tags/gcc_4_8_2_release)
893
+++ b/src/libstdc++-v3/doc/html/manual/appendix_contributing.html (.../branches/gcc-4_8-branch)
895
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
896
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix A. Contributing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix.html" title="Part IV. Appendices" /><link rel="prev" href="appendix.html" title="Part IV. Appendices" /><link rel="next" href="source_organization.html" title="Directory Layout and Source Conventions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix A.
897
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix A. Contributing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix.html" title="Part IV. Appendices" /><link rel="prev" href="appendix.html" title="Part IV. Appendices" /><link rel="next" href="source_organization.html" title="Directory Layout and Source Conventions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix A.
900
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix.html">Prev</a> </td><th width="60%" align="center">Part IV.
902
</th><td width="20%" align="right"> <a accesskey="n" href="source_organization.html">Next</a></td></tr></table><hr /></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.contrib"></a>
904
- <a id="idp21875168" class="indexterm"></a>
905
-</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="appendix_contributing.html#contrib.list">Contributor Checklist</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_contributing.html#list.reading">Reading</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.copyright">Assignment</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.getting">Getting Sources</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.patches">Submitting Patches</a></span></dt></dl></dd><dt><span class="section"><a href="source_organization.html">Directory Layout and Source Conventions</a></span></dt><dt><span class="section"><a href="source_code_style.html">Coding Style</a></span></dt><dd><dl><dt><span class="section"><a href="source_code_style.html#coding_style.bad_identifiers">Bad Identifiers</a></span></dt><dt><span class="section"><a href="source_code_style.html#coding_style.example">By Example</a></span></dt></dl></dd><dt><span class="section"><a href="source_design_notes.html">Design Notes</a></span></dt></dl></div><p>
906
+ <a id="idm269993657472" class="indexterm"></a>
907
+</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="appendix_contributing.html#contrib.list">Contributor Checklist</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_contributing.html#list.reading">Reading</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.copyright">Assignment</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.getting">Getting Sources</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.patches">Submitting Patches</a></span></dt></dl></dd><dt><span class="section"><a href="source_organization.html">Directory Layout and Source Conventions</a></span></dt><dt><span class="section"><a href="source_code_style.html">Coding Style</a></span></dt><dd><dl><dt><span class="section"><a href="source_code_style.html#coding_style.bad_identifiers">Bad Identifiers</a></span></dt><dt><span class="section"><a href="source_code_style.html#coding_style.example">By Example</a></span></dt></dl></dd><dt><span class="section"><a href="source_design_notes.html">Design Notes</a></span></dt></dl></div><p>
908
The GNU C++ Library follows an open development model. Active
909
contributors are assigned maintainer-ship responsibility, and given
910
write access to the source repository. First time contributors
912
for this group is quite useful.
913
</p></li><li class="listitem"><p>
915
- the <a class="link" href="http://www.gnu.org/prep/standards" target="_top">GNU
916
+ the <a class="link" href="http://www.gnu.org/prep/standards/" target="_top">GNU
917
Coding Standards</a>, and chuckle when you hit the part
918
about <span class="quote">“<span class="quote">Using Languages Other Than C</span>”</span>.
919
</p></li><li class="listitem"><p>
920
Index: libstdc++-v3/doc/html/manual/parallel_mode_test.html
921
===================================================================
922
--- a/src/libstdc++-v3/doc/html/manual/parallel_mode_test.html (.../tags/gcc_4_8_2_release)
923
+++ b/src/libstdc++-v3/doc/html/manual/parallel_mode_test.html (.../branches/gcc-4_8-branch)
925
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
926
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Testing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, parallel" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /><link rel="prev" href="parallel_mode_design.html" title="Design" /><link rel="next" href="profile_mode.html" title="Chapter 19. Profile Mode" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Testing</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parallel_mode_design.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.test"></a>Testing</h2></div></div></div><p>
927
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Testing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, parallel" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /><link rel="prev" href="parallel_mode_design.html" title="Design" /><link rel="next" href="profile_mode.html" title="Chapter 19. Profile Mode" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Testing</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parallel_mode_design.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.test"></a>Testing</h2></div></div></div><p>
928
Both the normal conformance and regression tests and the
929
supplemental performance tests work.
931
Index: libstdc++-v3/doc/html/manual/profile_mode.html
932
===================================================================
933
--- a/src/libstdc++-v3/doc/html/manual/profile_mode.html (.../tags/gcc_4_8_2_release)
934
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode.html (.../branches/gcc-4_8-branch)
936
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
937
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 19. Profile Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, profile" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="parallel_mode_test.html" title="Testing" /><link rel="next" href="profile_mode_design.html" title="Design" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 19. Profile Mode</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parallel_mode_test.html">Prev</a> </td><th width="60%" align="center">Part III.
938
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 19. Profile Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, profile" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="parallel_mode_test.html" title="Testing" /><link rel="next" href="profile_mode_design.html" title="Design" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 19. Profile Mode</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parallel_mode_test.html">Prev</a> </td><th width="60%" align="center">Part III.
941
-</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode_design.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode"></a>Chapter 19. Profile Mode</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.using">Using the Profile Mode</a></span></dt><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.tuning">Tuning the Profile Mode</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_design.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.wrapper">Wrapper Model</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.instrumentation">Instrumentation</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.rtlib">Run Time Behavior</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.analysis">Analysis and Diagnostics</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.cost-model">Cost Model</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.reports">Reports</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.testing">Testing</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_api.html">Extensions for Custom Containers</a></span></dt><dt><span class="section"><a href="profile_mode_cost_model.html">Empirical Cost Model</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html">Implementation Issues</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.stack">Stack Traces</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.symbols">Symbolization of Instruction Addresses</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.concurrency">Concurrency</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.stdlib-in-proflib">Using the Standard Library in the Instrumentation Implementation</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.malloc-hooks">Malloc Hooks</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.construction-destruction">Construction and Destruction of Global Objects</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_devel.html">Developer Information</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_devel.html#manual.ext.profile_mode.developer.bigpic">Big Picture</a></span></dt><dt><span class="section"><a href="profile_mode_devel.html#manual.ext.profile_mode.developer.howto">How To Add A Diagnostic</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_diagnostics.html">Diagnostics</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.template">Diagnostic Template</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.containers">Containers</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.hashtable_too_small">Hashtable Too Small</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.hashtable_too_large">Hashtable Too Large</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.inefficient_hash">Inefficient Hash</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.vector_too_small">Vector Too Small</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.vector_too_large">Vector Too Large</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.vector_to_hashtable">Vector to Hashtable</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.hashtable_to_vector">Hashtable to Vector</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.vector_to_list">Vector to List</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.list_to_vector">List to Vector</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.list_to_slist">List to Forward List (Slist)</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.assoc_ord_to_unord">Ordered to Unordered Associative Container</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.algorithms">Algorithms</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.algorithms.sort">Sort Algorithm Performance</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.locality">Data Locality</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.locality.sw_prefetch">Need Software Prefetch</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.locality.linked">Linked Structure Locality</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.mthread">Multithreaded Data Access</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.mthread.ddtest">Data Dependence Violations at Container Level</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.mthread.false_share">False Sharing</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.statistics">Statistics</a></span></dt></dl></dd><dt><span class="bibliography"><a href="profile_mode.html#profile_mode.biblio">Bibliography</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.intro"></a>Intro</h2></div></div></div><p>
942
+</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode_design.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.profile_mode"></a>Chapter 19. Profile Mode</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.using">Using the Profile Mode</a></span></dt><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.tuning">Tuning the Profile Mode</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_design.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.wrapper">Wrapper Model</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.instrumentation">Instrumentation</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.rtlib">Run Time Behavior</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.analysis">Analysis and Diagnostics</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.cost-model">Cost Model</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.reports">Reports</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.testing">Testing</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_api.html">Extensions for Custom Containers</a></span></dt><dt><span class="section"><a href="profile_mode_cost_model.html">Empirical Cost Model</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html">Implementation Issues</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.stack">Stack Traces</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.symbols">Symbolization of Instruction Addresses</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.concurrency">Concurrency</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.stdlib-in-proflib">Using the Standard Library in the Instrumentation Implementation</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.malloc-hooks">Malloc Hooks</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.construction-destruction">Construction and Destruction of Global Objects</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_devel.html">Developer Information</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_devel.html#manual.ext.profile_mode.developer.bigpic">Big Picture</a></span></dt><dt><span class="section"><a href="profile_mode_devel.html#manual.ext.profile_mode.developer.howto">How To Add A Diagnostic</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_diagnostics.html">Diagnostics</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.template">Diagnostic Template</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.containers">Containers</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.hashtable_too_small">Hashtable Too Small</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.hashtable_too_large">Hashtable Too Large</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.inefficient_hash">Inefficient Hash</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.vector_too_small">Vector Too Small</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.vector_too_large">Vector Too Large</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.vector_to_hashtable">Vector to Hashtable</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.hashtable_to_vector">Hashtable to Vector</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.vector_to_list">Vector to List</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.list_to_vector">List to Vector</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.list_to_slist">List to Forward List (Slist)</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.assoc_ord_to_unord">Ordered to Unordered Associative Container</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.algorithms">Algorithms</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.algorithms.sort">Sort Algorithm Performance</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.locality">Data Locality</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.locality.sw_prefetch">Need Software Prefetch</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.locality.linked">Linked Structure Locality</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.mthread">Multithreaded Data Access</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.mthread.ddtest">Data Dependence Violations at Container Level</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.mthread.false_share">False Sharing</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.statistics">Statistics</a></span></dt></dl></dd><dt><span class="bibliography"><a href="profile_mode.html#profile_mode.biblio">Bibliography</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.intro"></a>Intro</h2></div></div></div><p>
943
<span class="emphasis"><em>Goal: </em></span>Give performance improvement advice based on
944
recognition of suboptimal usage patterns of the standard library.
948
(Environment variable not supported.)
949
</p></li></ul></div><p>
950
- </p></div></div><div class="bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="profile_mode.biblio"></a>Bibliography</h2></div></div></div><div class="biblioentry"><a id="idp17395456"></a><p><span class="citetitle"><em class="citetitle">
951
+ </p></div></div><div class="bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="profile_mode.biblio"></a>Bibliography</h2></div></div></div><div class="biblioentry"><a id="idm269998135936"></a><p><span class="citetitle"><em class="citetitle">
952
Perflint: A Context Sensitive Performance Advisor for C++ Programs
953
</em>. </span><span class="author"><span class="firstname">Lixia</span> <span class="surname">Liu</span>. </span><span class="author"><span class="firstname">Silvius</span> <span class="surname">Rus</span>. </span><span class="copyright">Copyright © 2009 . </span><span class="publisher"><span class="publishername">
954
Proceedings of the 2009 International Symposium on Code Generation
955
Index: libstdc++-v3/doc/html/manual/stringstreams.html
956
===================================================================
957
--- a/src/libstdc++-v3/doc/html/manual/stringstreams.html (.../tags/gcc_4_8_2_release)
958
+++ b/src/libstdc++-v3/doc/html/manual/stringstreams.html (.../branches/gcc-4_8-branch)
960
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
961
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Memory Based Streams</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="io.html" title="Chapter 13. Input and Output" /><link rel="prev" href="streambufs.html" title="Stream Buffers" /><link rel="next" href="fstreams.html" title="File Based Streams" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Memory Based Streams</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="streambufs.html">Prev</a> </td><th width="60%" align="center">Chapter 13.
962
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Memory Based Streams</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="io.html" title="Chapter 13. Input and Output" /><link rel="prev" href="streambufs.html" title="Stream Buffers" /><link rel="next" href="fstreams.html" title="File Based Streams" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Memory Based Streams</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="streambufs.html">Prev</a> </td><th width="60%" align="center">Chapter 13.
965
</th><td width="20%" align="right"> <a accesskey="n" href="fstreams.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.io.memstreams"></a>Memory Based Streams</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.memstreams.compat"></a>Compatibility With strstream</h3></div></div></div><p>
966
Index: libstdc++-v3/doc/html/manual/traits.html
967
===================================================================
968
--- a/src/libstdc++-v3/doc/html/manual/traits.html (.../tags/gcc_4_8_2_release)
969
+++ b/src/libstdc++-v3/doc/html/manual/traits.html (.../branches/gcc-4_8-branch)
971
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
972
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Traits</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="utilities.html" title="Chapter 6. Utilities" /><link rel="prev" href="memory.html" title="Memory" /><link rel="next" href="strings.html" title="Chapter 7. Strings" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Traits</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="memory.html">Prev</a> </td><th width="60%" align="center">Chapter 6.
973
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Traits</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="utilities.html" title="Chapter 6. Utilities" /><link rel="prev" href="memory.html" title="Memory" /><link rel="next" href="strings.html" title="Chapter 7. Strings" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Traits</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="memory.html">Prev</a> </td><th width="60%" align="center">Chapter 6.
976
</th><td width="20%" align="right"> <a accesskey="n" href="strings.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.util.traits"></a>Traits</h2></div></div></div><p>
977
Index: libstdc++-v3/doc/html/manual/policy_data_structures_ack.html
978
===================================================================
979
--- a/src/libstdc++-v3/doc/html/manual/policy_data_structures_ack.html (.../tags/gcc_4_8_2_release)
980
+++ b/src/libstdc++-v3/doc/html/manual/policy_data_structures_ack.html (.../branches/gcc-4_8-branch)
982
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
983
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Acknowledgments</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, policy, container, data, structure, associated, tree, trie, hash, metaprogramming" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /><link rel="prev" href="policy_based_data_structures_test.html" title="Testing" /><link rel="next" href="ext_containers.html" title="Chapter 23. HP/SGI Extensions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Acknowledgments</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_based_data_structures_test.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td width="20%" align="right"> <a accesskey="n" href="ext_containers.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="pbds.ack"></a>Acknowledgments</h2></div></div></div><p>
984
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Acknowledgments</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, policy, container, data, structure, associated, tree, trie, hash, metaprogramming" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /><link rel="prev" href="policy_based_data_structures_test.html" title="Testing" /><link rel="next" href="ext_containers.html" title="Chapter 23. HP/SGI Extensions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Acknowledgments</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_based_data_structures_test.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td width="20%" align="right"> <a accesskey="n" href="ext_containers.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="pbds.ack"></a>Acknowledgments</h2></div></div></div><p>
985
Written by Ami Tavory and Vladimir Dreizin (IBM Haifa Research
986
Laboratories), and Benjamin Kosnik (Red Hat).
988
- This library was partially written at
989
- <a class="link" href="http://www.haifa.il.ibm.com/" target="_top">IBM's Haifa Research Labs</a>.
990
+ This library was partially written at IBM's Haifa Research Labs.
991
It is based heavily on policy-based design and uses many useful
992
techniques from Modern C++ Design: Generic Programming and Design
993
Patterns Applied by Andrei Alexandrescu.
994
Index: libstdc++-v3/doc/html/manual/associative.html
995
===================================================================
996
--- a/src/libstdc++-v3/doc/html/manual/associative.html (.../tags/gcc_4_8_2_release)
997
+++ b/src/libstdc++-v3/doc/html/manual/associative.html (.../branches/gcc-4_8-branch)
999
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1000
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Associative</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="containers.html" title="Chapter 9. Containers" /><link rel="prev" href="containers.html" title="Chapter 9. Containers" /><link rel="next" href="unordered_associative.html" title="Unordered Associative" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Associative</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="containers.html">Prev</a> </td><th width="60%" align="center">Chapter 9.
1001
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Associative</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="containers.html" title="Chapter 9. Containers" /><link rel="prev" href="containers.html" title="Chapter 9. Containers" /><link rel="next" href="unordered_associative.html" title="Unordered Associative" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Associative</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="containers.html">Prev</a> </td><th width="60%" align="center">Chapter 9.
1004
</th><td width="20%" align="right"> <a accesskey="n" href="unordered_associative.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.containers.associative"></a>Associative</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="containers.associative.insert_hints"></a>Insertion Hints</h3></div></div></div><p>
1005
Index: libstdc++-v3/doc/html/manual/ext_concurrency.html
1006
===================================================================
1007
--- a/src/libstdc++-v3/doc/html/manual/ext_concurrency.html (.../tags/gcc_4_8_2_release)
1008
+++ b/src/libstdc++-v3/doc/html/manual/ext_concurrency.html (.../branches/gcc-4_8-branch)
1010
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1011
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 30. Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_demangling.html" title="Chapter 29. Demangling" /><link rel="next" href="ext_concurrency_impl.html" title="Implementation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 30. Concurrency</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_demangling.html">Prev</a> </td><th width="60%" align="center">Part III.
1012
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 30. Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_demangling.html" title="Chapter 29. Demangling" /><link rel="next" href="ext_concurrency_impl.html" title="Implementation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 30. Concurrency</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_demangling.html">Prev</a> </td><th width="60%" align="center">Part III.
1015
-</th><td width="20%" align="right"> <a accesskey="n" href="ext_concurrency_impl.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency"></a>Chapter 30. Concurrency</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="ext_concurrency_impl.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency_impl.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions</a></span></dt><dt><span class="section"><a href="ext_concurrency_impl.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="ext_concurrency_use.html">Use</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.design"></a>Design</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.design.threads"></a>Interface to Locks and Mutexes</h3></div></div></div><p>The file <code class="filename"><ext/concurrence.h></code>
1016
+</th><td width="20%" align="right"> <a accesskey="n" href="ext_concurrency_impl.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency"></a>Chapter 30. Concurrency</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="ext_concurrency_impl.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency_impl.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions</a></span></dt><dt><span class="section"><a href="ext_concurrency_impl.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="ext_concurrency_use.html">Use</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.design"></a>Design</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.design.threads"></a>Interface to Locks and Mutexes</h3></div></div></div><p>The file <code class="filename"><ext/concurrence.h></code>
1017
contains all the higher-level
1018
constructs for playing with threads. In contrast to the atomics layer,
1019
the concurrence layer consists largely of types. All types are defined within <code class="code">namespace __gnu_cxx</code>.
1020
Index: libstdc++-v3/doc/html/manual/support.html
1021
===================================================================
1022
--- a/src/libstdc++-v3/doc/html/manual/support.html (.../tags/gcc_4_8_2_release)
1023
+++ b/src/libstdc++-v3/doc/html/manual/support.html (.../branches/gcc-4_8-branch)
1025
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1026
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 4. Support</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="std_contents.html" title="Part II. Standard Contents" /><link rel="next" href="dynamic_memory.html" title="Dynamic Memory" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4.
1027
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 4. Support</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="std_contents.html" title="Part II. Standard Contents" /><link rel="next" href="dynamic_memory.html" title="Dynamic Memory" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4.
1030
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="std_contents.html">Prev</a> </td><th width="60%" align="center">Part II.
1032
</th><td width="20%" align="right"> <a accesskey="n" href="dynamic_memory.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="std.support"></a>Chapter 4.
1034
- <a id="idp13745936" class="indexterm"></a>
1035
-</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="support.html#std.support.types">Types</a></span></dt><dd><dl><dt><span class="section"><a href="support.html#std.support.types.fundamental">Fundamental Types</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.numeric_limits">Numeric Properties</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.null">NULL</a></span></dt></dl></dd><dt><span class="section"><a href="dynamic_memory.html">Dynamic Memory</a></span></dt><dt><span class="section"><a href="termination.html">Termination</a></span></dt><dd><dl><dt><span class="section"><a href="termination.html#support.termination.handlers">Termination Handlers</a></span></dt><dt><span class="section"><a href="termination.html#support.termination.verbose">Verbose Terminate Handler</a></span></dt></dl></dd></dl></div><p>
1036
+ <a id="idm270001786944" class="indexterm"></a>
1037
+</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="support.html#std.support.types">Types</a></span></dt><dd><dl><dt><span class="section"><a href="support.html#std.support.types.fundamental">Fundamental Types</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.numeric_limits">Numeric Properties</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.null">NULL</a></span></dt></dl></dd><dt><span class="section"><a href="dynamic_memory.html">Dynamic Memory</a></span></dt><dt><span class="section"><a href="termination.html">Termination</a></span></dt><dd><dl><dt><span class="section"><a href="termination.html#support.termination.handlers">Termination Handlers</a></span></dt><dt><span class="section"><a href="termination.html#support.termination.verbose">Verbose Terminate Handler</a></span></dt></dl></dd></dl></div><p>
1038
This part deals with the functions called and objects created
1039
automatically during the course of a program's existence.
1041
Index: libstdc++-v3/doc/html/manual/bitmap_allocator.html
1042
===================================================================
1043
--- a/src/libstdc++-v3/doc/html/manual/bitmap_allocator.html (.../tags/gcc_4_8_2_release)
1044
+++ b/src/libstdc++-v3/doc/html/manual/bitmap_allocator.html (.../branches/gcc-4_8-branch)
1046
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1047
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 21. The bitmap_allocator</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, allocator" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="mt_allocator_ex_multi.html" title="Multiple Thread Example" /><link rel="next" href="bitmap_allocator_impl.html" title="Implementation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 21. The bitmap_allocator</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="mt_allocator_ex_multi.html">Prev</a> </td><th width="60%" align="center">Part III.
1048
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 21. The bitmap_allocator</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, allocator" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="mt_allocator_ex_multi.html" title="Multiple Thread Example" /><link rel="next" href="bitmap_allocator_impl.html" title="Implementation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 21. The bitmap_allocator</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="mt_allocator_ex_multi.html">Prev</a> </td><th width="60%" align="center">Part III.
1051
-</th><td width="20%" align="right"> <a accesskey="n" href="bitmap_allocator_impl.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.allocator.bitmap"></a>Chapter 21. The bitmap_allocator</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="bitmap_allocator.html#allocator.bitmap.design">Design</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.free_list_store">Free List Store</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.super_block">Super Block</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.super_block_data">Super Block Data Layout</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.max_wasted">Maximum Wasted Percentage</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.allocate"><code class="function">allocate</code></a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.deallocate"><code class="function">deallocate</code></a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.questions">Questions</a></span></dt><dd><dl><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.question.1">1</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.question.2">2</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.question.3">3</a></span></dt></dl></dd><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.locality">Locality</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.grow_policy">Overhead and Grow Policy</a></span></dt></dl></dd></dl></div><p>
1052
+</th><td width="20%" align="right"> <a accesskey="n" href="bitmap_allocator_impl.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.allocator.bitmap"></a>Chapter 21. The bitmap_allocator</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="bitmap_allocator.html#allocator.bitmap.design">Design</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.free_list_store">Free List Store</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.super_block">Super Block</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.super_block_data">Super Block Data Layout</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.max_wasted">Maximum Wasted Percentage</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.allocate"><code class="function">allocate</code></a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.deallocate"><code class="function">deallocate</code></a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.questions">Questions</a></span></dt><dd><dl><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.question.1">1</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.question.2">2</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.question.3">3</a></span></dt></dl></dd><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.locality">Locality</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.grow_policy">Overhead and Grow Policy</a></span></dt></dl></dd></dl></div><p>
1053
</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.bitmap.design"></a>Design</h2></div></div></div><p>
1054
As this name suggests, this allocator uses a bit-map to keep track
1055
of the used and unused memory locations for its book-keeping
1056
Index: libstdc++-v3/doc/html/manual/license.html
1057
===================================================================
1058
--- a/src/libstdc++-v3/doc/html/manual/license.html (.../tags/gcc_4_8_2_release)
1059
+++ b/src/libstdc++-v3/doc/html/manual/license.html (.../branches/gcc-4_8-branch)
1061
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1062
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>License</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="status.html" title="Chapter 1. Status" /><link rel="prev" href="status.html" title="Chapter 1. Status" /><link rel="next" href="bugs.html" title="Bugs" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">License</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="status.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Status</th><td width="20%" align="right"> <a accesskey="n" href="bugs.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.license"></a>License</h2></div></div></div><p>
1063
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>License</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="status.html" title="Chapter 1. Status" /><link rel="prev" href="status.html" title="Chapter 1. Status" /><link rel="next" href="bugs.html" title="Bugs" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">License</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="status.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Status</th><td width="20%" align="right"> <a accesskey="n" href="bugs.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.license"></a>License</h2></div></div></div><p>
1064
There are two licenses affecting GNU libstdc++: one for the code,
1065
and one for the documentation.
1067
Index: libstdc++-v3/doc/html/manual/numerics.html
1068
===================================================================
1069
--- a/src/libstdc++-v3/doc/html/manual/numerics.html (.../tags/gcc_4_8_2_release)
1070
+++ b/src/libstdc++-v3/doc/html/manual/numerics.html (.../branches/gcc-4_8-branch)
1072
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1073
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 12. Numerics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="algorithms.html" title="Chapter 11. Algorithms" /><link rel="next" href="generalized_numeric_operations.html" title="Generalized Operations" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 12.
1074
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 12. Numerics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="algorithms.html" title="Chapter 11. Algorithms" /><link rel="next" href="generalized_numeric_operations.html" title="Generalized Operations" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 12.
1077
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="algorithms.html">Prev</a> </td><th width="60%" align="center">Part II.
1079
</th><td width="20%" align="right"> <a accesskey="n" href="generalized_numeric_operations.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="std.numerics"></a>Chapter 12.
1081
- <a id="idp16214640" class="indexterm"></a>
1082
-</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="numerics.html#std.numerics.complex">Complex</a></span></dt><dd><dl><dt><span class="section"><a href="numerics.html#numerics.complex.processing">complex Processing</a></span></dt></dl></dd><dt><span class="section"><a href="generalized_numeric_operations.html">Generalized Operations</a></span></dt><dt><span class="section"><a href="numerics_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="numerics_and_c.html#numerics.c.array">Numerics vs. Arrays</a></span></dt><dt><span class="section"><a href="numerics_and_c.html#numerics.c.c99">C99</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.numerics.complex"></a>Complex</h2></div></div></div><p>
1083
+ <a id="idm269999316576" class="indexterm"></a>
1084
+</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="numerics.html#std.numerics.complex">Complex</a></span></dt><dd><dl><dt><span class="section"><a href="numerics.html#numerics.complex.processing">complex Processing</a></span></dt></dl></dd><dt><span class="section"><a href="generalized_numeric_operations.html">Generalized Operations</a></span></dt><dt><span class="section"><a href="numerics_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="numerics_and_c.html#numerics.c.array">Numerics vs. Arrays</a></span></dt><dt><span class="section"><a href="numerics_and_c.html#numerics.c.c99">C99</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.numerics.complex"></a>Complex</h2></div></div></div><p>
1085
</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="numerics.complex.processing"></a>complex Processing</h3></div></div></div><p>
1086
</p><p>Using <code class="code">complex<></code> becomes even more comple- er, sorry,
1087
<span class="emphasis"><em>complicated</em></span>, with the not-quite-gratuitously-incompatible
1088
Index: libstdc++-v3/doc/html/manual/using_exceptions.html
1089
===================================================================
1090
--- a/src/libstdc++-v3/doc/html/manual/using_exceptions.html (.../tags/gcc_4_8_2_release)
1091
+++ b/src/libstdc++-v3/doc/html/manual/using_exceptions.html (.../branches/gcc-4_8-branch)
1093
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1094
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Exceptions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, exception, error, exception neutrality, exception safety, exception propagation, -fno-exceptions" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_concurrency.html" title="Concurrency" /><link rel="next" href="debug.html" title="Debugging Support" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Exceptions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_concurrency.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="debug.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.exceptions"></a>Exceptions</h2></div></div></div><p>
1095
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Exceptions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, exception, error, exception neutrality, exception safety, exception propagation, -fno-exceptions" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_concurrency.html" title="Concurrency" /><link rel="next" href="debug.html" title="Debugging Support" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Exceptions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_concurrency.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="debug.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.exceptions"></a>Exceptions</h2></div></div></div><p>
1096
The C++ language provides language support for stack unwinding
1097
with <code class="literal">try</code> and <code class="literal">catch</code> blocks and
1098
the <code class="literal">throw</code> keyword.
1102
{ this->_M_setstate(ios_base::badbit); }
1103
-</pre></div></div><div class="bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="using.exceptions.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="idp13644000"></a><p><span class="title"><em>
1104
+</pre></div></div><div class="bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="using.exceptions.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="idm270001889024"></a><p><span class="title"><em>
1105
<a class="link" href="http://www.opengroup.org/austin/" target="_top">
1106
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
1108
@@ -274,39 +274,39 @@
1109
. </span><span class="copyright">Copyright © 2008
1110
The Open Group/The Institute of Electrical and Electronics
1112
- . </span></p></div><div class="biblioentry"><a id="idp13647696"></a><p><span class="title"><em>
1113
+ . </span></p></div><div class="biblioentry"><a id="idm270001885328"></a><p><span class="title"><em>
1114
<a class="link" href="http://www.boost.org/community/error_handling.html" target="_top">
1115
Error and Exception Handling
1117
</em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams </span>. </span><span class="publisher"><span class="publishername">
1119
- . </span></span></p></div><div class="biblioentry"><a id="idp13651392"></a><p><span class="title"><em>
1120
+ . </span></span></p></div><div class="biblioentry"><a id="idm270001881632"></a><p><span class="title"><em>
1121
<a class="link" href="http://www.boost.org/community/exception_safety.html" target="_top">
1122
Exception-Safety in Generic Components
1124
</em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams</span>. </span><span class="publisher"><span class="publishername">
1126
- . </span></span></p></div><div class="biblioentry"><a id="idp13655104"></a><p><span class="title"><em>
1127
+ . </span></span></p></div><div class="biblioentry"><a id="idm270001877920"></a><p><span class="title"><em>
1128
<a class="link" href="www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1077.pdf" target="_top">
1129
Standard Library Exception Policy
1131
</em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
1133
- . </span></span></p></div><div class="biblioentry"><a id="idp13658816"></a><p><span class="title"><em>
1134
+ . </span></span></p></div><div class="biblioentry"><a id="idm270001874208"></a><p><span class="title"><em>
1135
<a class="link" href="http://gcc.gnu.org/ml/gcc-patches/2001-03/msg00661.html" target="_top">
1136
ia64 c++ abi exception handling
1138
</em>. </span><span class="author"><span class="firstname">Richard</span> <span class="surname">Henderson</span>. </span><span class="publisher"><span class="publishername">
1140
- . </span></span></p></div><div class="biblioentry"><a id="idp13662512"></a><p><span class="title"><em>
1141
+ . </span></span></p></div><div class="biblioentry"><a id="idm270001870512"></a><p><span class="title"><em>
1142
<a class="link" href="http://www.research.att.com/~bs/3rd_safe.pdf" target="_top">
1143
Appendix E: Standard-Library Exception Safety
1145
- </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span></p></div><div class="biblioentry"><a id="idp13665328"></a><p><span class="citetitle"><em class="citetitle">
1146
+ </em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span></p></div><div class="biblioentry"><a id="idm270001867696"></a><p><span class="citetitle"><em class="citetitle">
1148
</em>. </span><span class="pagenums">
1149
Exception-Safety Issues and Techniques
1150
- . </span><span class="author"><span class="firstname">Herb</span> <span class="surname">Sutter</span>. </span></p></div><div class="biblioentry"><a id="idp13667712"></a><p><span class="title"><em>
1151
+ . </span><span class="author"><span class="firstname">Herb</span> <span class="surname">Sutter</span>. </span></p></div><div class="biblioentry"><a id="idm270001865312"></a><p><span class="title"><em>
1152
<a class="link" href="http://gcc.gnu.org/PR25191" target="_top">
1153
GCC Bug 25191: exception_defines.h #defines try/catch
1155
Index: libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html
1156
===================================================================
1157
--- a/src/libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html (.../tags/gcc_4_8_2_release)
1158
+++ b/src/libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html (.../branches/gcc-4_8-branch)
1160
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1161
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Testing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, policy, container, data, structure, associated, tree, trie, hash, metaprogramming" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /><link rel="prev" href="policy_data_structures_design.html" title="Design" /><link rel="next" href="policy_data_structures_ack.html" title="Acknowledgments" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Testing</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_data_structures_design.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td width="20%" align="right"> <a accesskey="n" href="policy_data_structures_ack.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="pbds.test"></a>Testing</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.test.regression"></a>Regression</h3></div></div></div><p>The library contains a single comprehensive regression test.
1162
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Testing</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, policy, container, data, structure, associated, tree, trie, hash, metaprogramming" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /><link rel="prev" href="policy_data_structures_design.html" title="Design" /><link rel="next" href="policy_data_structures_ack.html" title="Acknowledgments" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Testing</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_data_structures_design.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td width="20%" align="right"> <a accesskey="n" href="policy_data_structures_ack.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="pbds.test"></a>Testing</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.test.regression"></a>Regression</h3></div></div></div><p>The library contains a single comprehensive regression test.
1163
For a given container type in this library, the test creates
1164
an object of the container type and an object of the
1165
corresponding standard type (e.g., <code class="classname">std::set</code>). It
1166
Index: libstdc++-v3/doc/html/manual/parallel_mode_design.html
1167
===================================================================
1168
--- a/src/libstdc++-v3/doc/html/manual/parallel_mode_design.html (.../tags/gcc_4_8_2_release)
1169
+++ b/src/libstdc++-v3/doc/html/manual/parallel_mode_design.html (.../branches/gcc-4_8-branch)
1171
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1172
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, parallel" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /><link rel="prev" href="parallel_mode_using.html" title="Using" /><link rel="next" href="parallel_mode_test.html" title="Testing" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parallel_mode_using.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td width="20%" align="right"> <a accesskey="n" href="parallel_mode_test.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.design"></a>Design</h2></div></div></div><p>
1173
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, parallel" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /><link rel="prev" href="parallel_mode_using.html" title="Using" /><link rel="next" href="parallel_mode_test.html" title="Testing" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parallel_mode_using.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td width="20%" align="right"> <a accesskey="n" href="parallel_mode_test.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.design"></a>Design</h2></div></div></div><p>
1174
</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.design.intro"></a>Interface Basics</h3></div></div></div><p>
1175
All parallel algorithms are intended to have signatures that are
1176
equivalent to the ISO C++ algorithms replaced. For instance, the
1177
Index: libstdc++-v3/doc/html/manual/abi.html
1178
===================================================================
1179
--- a/src/libstdc++-v3/doc/html/manual/abi.html (.../tags/gcc_4_8_2_release)
1180
+++ b/src/libstdc++-v3/doc/html/manual/abi.html (.../branches/gcc-4_8-branch)
1182
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1183
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ABI Policy and Guidelines</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, ABI, version, dynamic, shared, compatibility" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="test.html" title="Test" /><link rel="next" href="api.html" title="API Evolution and Deprecation History" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ABI Policy and Guidelines</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="test.html">Prev</a> </td><th width="60%" align="center">Appendix B.
1184
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ABI Policy and Guidelines</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, ABI, version, dynamic, shared, compatibility" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="test.html" title="Test" /><link rel="next" href="api.html" title="API Evolution and Deprecation History" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">ABI Policy and Guidelines</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="test.html">Prev</a> </td><th width="60%" align="center">Appendix B.
1185
Porting and Maintenance
1187
</th><td width="20%" align="right"> <a accesskey="n" href="api.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendix.porting.abi"></a>ABI Policy and Guidelines</h2></div></div></div><p>
1188
@@ -493,39 +493,39 @@
1189
<a class="link" href="http://www.codesourcery.com/cxx-abi/" target="_top">
1192
- </em>. </span></p></div><div class="biblioentry"><a id="idp22945936"></a><p><span class="title"><em>
1193
+ </em>. </span></p></div><div class="biblioentry"><a id="idm269992586624"></a><p><span class="title"><em>
1194
<a class="link" href="http://www.intel.com/cd/software/products/asmo-na/eng/284736.htm" target="_top">
1195
Intel Compilers for Linux Compatibility with the GNU Compilers
1197
- </em>. </span></p></div><div class="biblioentry"><a id="idp22947792"></a><p><span class="title"><em>
1198
+ </em>. </span></p></div><div class="biblioentry"><a id="idm269992584768"></a><p><span class="title"><em>
1199
<a class="link" href="http://download.oracle.com/docs/cd/E19963-01/html/819-0690/index.html" target="_top">
1200
Linker and Libraries Guide (document 819-0690)
1202
- </em>. </span></p></div><div class="biblioentry"><a id="idp22949632"></a><p><span class="title"><em>
1203
+ </em>. </span></p></div><div class="biblioentry"><a id="idm269992582928"></a><p><span class="title"><em>
1204
<a class="link" href="http://download.oracle.com/docs/cd/E19422-01/819-3689/index.html" target="_top">
1205
Sun Studio 11: C++ Migration Guide (document 819-3689)
1207
- </em>. </span></p></div><div class="biblioentry"><a id="idp22951488"></a><p><span class="title"><em>
1208
+ </em>. </span></p></div><div class="biblioentry"><a id="idm269992581072"></a><p><span class="title"><em>
1209
<a class="link" href="http://www.akkadia.org/drepper/dsohowto.pdf" target="_top">
1210
How to Write Shared Libraries
1212
- </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span></p></div><div class="biblioentry"><a id="idp22954928"></a><p><span class="title"><em>
1213
+ </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span></p></div><div class="biblioentry"><a id="idm269992577632"></a><p><span class="title"><em>
1214
<a class="link" href="http://www.arm.com/miscPDFs/8033.pdf" target="_top">
1215
C++ ABI for the ARM Architecture
1217
- </em>. </span></p></div><div class="biblioentry"><a id="idp22956736"></a><p><span class="title"><em>
1218
+ </em>. </span></p></div><div class="biblioentry"><a id="idm269992575824"></a><p><span class="title"><em>
1219
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1976.html" target="_top">
1220
Dynamic Shared Objects: Survey and Issues
1222
</em>. </span><span class="subtitle">
1224
- . </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry"><a id="idp22960032"></a><p><span class="title"><em>
1225
+ . </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry"><a id="idm269992572528"></a><p><span class="title"><em>
1226
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2013.html" target="_top">
1227
Versioning With Namespaces
1229
</em>. </span><span class="subtitle">
1231
- . </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry"><a id="idp22963312"></a><p><span class="title"><em>
1232
+ . </span><span class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span>. </span></p></div><div class="biblioentry"><a id="idm269992569248"></a><p><span class="title"><em>
1233
<a class="link" href="http://syrcose.ispras.ru/2009/files/SYRCoSE2009-CfP.pdf" target="_top">
1234
Binary Compatibility of Shared Libraries Implemented in C++
1235
on GNU/Linux Systems
1236
Index: libstdc++-v3/doc/html/manual/intro.html
1237
===================================================================
1238
--- a/src/libstdc++-v3/doc/html/manual/intro.html (.../tags/gcc_4_8_2_release)
1239
+++ b/src/libstdc++-v3/doc/html/manual/intro.html (.../branches/gcc-4_8-branch)
1241
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1242
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part I. Introduction</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library Manual" /><link rel="prev" href="index.html" title="The GNU C++ Library Manual" /><link rel="next" href="status.html" title="Chapter 1. Status" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part I.
1243
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part I. Introduction</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library Manual" /><link rel="prev" href="index.html" title="The GNU C++ Library Manual" /><link rel="next" href="status.html" title="Chapter 1. Status" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part I.
1246
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td width="20%" align="right"> <a accesskey="n" href="status.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="manual.intro"></a>Part I.
1248
- <a id="idp9040416" class="indexterm"></a>
1249
-</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="status.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The GNU C++ Library Manual </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Status</td></tr></table></div></body></html>
1250
\ No newline at end of file
1251
+ <a id="idm270013458800" class="indexterm"></a>
1252
+</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="status.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The GNU C++ Library Manual </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Status</td></tr></table></div></body></html>
1253
\ No newline at end of file
1254
Index: libstdc++-v3/doc/html/manual/profile_mode_api.html
1255
===================================================================
1256
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_api.html (.../tags/gcc_4_8_2_release)
1257
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_api.html (.../branches/gcc-4_8-branch)
1259
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1260
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Extensions for Custom Containers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, profile" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="profile_mode_design.html" title="Design" /><link rel="next" href="profile_mode_cost_model.html" title="Empirical Cost Model" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Extensions for Custom Containers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode_design.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode_cost_model.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.api"></a>Extensions for Custom Containers</h2></div></div></div><p>
1261
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Extensions for Custom Containers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, profile" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="profile_mode_design.html" title="Design" /><link rel="next" href="profile_mode_cost_model.html" title="Empirical Cost Model" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Extensions for Custom Containers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode_design.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode_cost_model.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.api"></a>Extensions for Custom Containers</h2></div></div></div><p>
1262
Many large projects use their own data structures instead of the ones in the
1263
standard library. If these data structures are similar in functionality
1264
to the standard library, they can be instrumented with the same hooks
1265
Index: libstdc++-v3/doc/html/manual/atomics.html
1266
===================================================================
1267
--- a/src/libstdc++-v3/doc/html/manual/atomics.html (.../tags/gcc_4_8_2_release)
1268
+++ b/src/libstdc++-v3/doc/html/manual/atomics.html (.../branches/gcc-4_8-branch)
1270
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1271
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 14. Atomics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library, atomic" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="io_and_c.html" title="Interacting with C" /><link rel="next" href="concurrency.html" title="Chapter 15. Concurrency" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 14.
1272
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 14. Atomics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library, atomic" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="io_and_c.html" title="Interacting with C" /><link rel="next" href="concurrency.html" title="Chapter 15. Concurrency" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 14.
1275
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="io_and_c.html">Prev</a> </td><th width="60%" align="center">Part II.
1277
</th><td width="20%" align="right"> <a accesskey="n" href="concurrency.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="std.atomics"></a>Chapter 14.
1279
- <a id="idp16390640" class="indexterm"></a>
1280
-</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="atomics.html#std.atomics.api">API Reference</a></span></dt></dl></div><p>
1281
+ <a id="idm269999140704" class="indexterm"></a>
1282
+</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="atomics.html#std.atomics.api">API Reference</a></span></dt></dl></div><p>
1283
Facilities for atomic operations.
1284
</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.atomics.api"></a>API Reference</h2></div></div></div><p>
1285
All items are declared in the standard header
1286
Index: libstdc++-v3/doc/html/manual/internals.html
1287
===================================================================
1288
--- a/src/libstdc++-v3/doc/html/manual/internals.html (.../tags/gcc_4_8_2_release)
1289
+++ b/src/libstdc++-v3/doc/html/manual/internals.html (.../branches/gcc-4_8-branch)
1291
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1292
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Porting to New Hardware or Operating Systems</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, internals" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="documentation_hacking.html" title="Writing and Generating Documentation" /><link rel="next" href="test.html" title="Test" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Porting to New Hardware or Operating Systems</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="documentation_hacking.html">Prev</a> </td><th width="60%" align="center">Appendix B.
1293
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Porting to New Hardware or Operating Systems</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, internals" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="documentation_hacking.html" title="Writing and Generating Documentation" /><link rel="next" href="test.html" title="Test" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Porting to New Hardware or Operating Systems</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="documentation_hacking.html">Prev</a> </td><th width="60%" align="center">Appendix B.
1294
Porting and Maintenance
1296
</th><td width="20%" align="right"> <a accesskey="n" href="test.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendix.porting.internals"></a>Porting to New Hardware or Operating Systems</h2></div></div></div><p>
1297
Index: libstdc++-v3/doc/html/manual/policy_data_structures_using.html
1298
===================================================================
1299
--- a/src/libstdc++-v3/doc/html/manual/policy_data_structures_using.html (.../tags/gcc_4_8_2_release)
1300
+++ b/src/libstdc++-v3/doc/html/manual/policy_data_structures_using.html (.../branches/gcc-4_8-branch)
1302
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1303
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, policy, container, data, structure, associated, tree, trie, hash, metaprogramming" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /><link rel="prev" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /><link rel="next" href="policy_data_structures_design.html" title="Design" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_data_structures.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td width="20%" align="right"> <a accesskey="n" href="policy_data_structures_design.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="containers.pbds.using"></a>Using</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.using.prereq"></a>Prerequisites</h3></div></div></div><p>The library contains only header files, and does not require any
1304
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, policy, container, data, structure, associated, tree, trie, hash, metaprogramming" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /><link rel="prev" href="policy_data_structures.html" title="Chapter 22. Policy-Based Data Structures" /><link rel="next" href="policy_data_structures_design.html" title="Design" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="policy_data_structures.html">Prev</a> </td><th width="60%" align="center">Chapter 22. Policy-Based Data Structures</th><td width="20%" align="right"> <a accesskey="n" href="policy_data_structures_design.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="containers.pbds.using"></a>Using</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.using.prereq"></a>Prerequisites</h3></div></div></div><p>The library contains only header files, and does not require any
1305
other libraries except the standard C++ library . All classes are
1306
defined in namespace <code class="code">__gnu_pbds</code>. The library internally
1307
uses macros beginning with <code class="code">PB_DS</code>, but
1309
In addition, there are the following diagnostics classes,
1310
used to report errors specific to this library's data
1312
- </p><div class="figure"><a id="idp17806128"></a><p class="title"><strong>Figure 22.7. Exception Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_exception_hierarchy.png" align="middle" alt="Exception Hierarchy" /></div></div></div><br class="figure-break" /></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.using.tutorial"></a>Tutorial</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.tutorial.basic"></a>Basic Use</h4></div></div></div><p>
1313
+ </p><div class="figure"><a id="idm269997724688"></a><p class="title"><strong>Figure 22.7. Exception Hierarchy</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/pbds_exception_hierarchy.png" align="middle" alt="Exception Hierarchy" /></div></div></div><br class="figure-break" /></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="pbds.using.tutorial"></a>Tutorial</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="pbds.using.tutorial.basic"></a>Basic Use</h4></div></div></div><p>
1314
For the most part, the policy-based containers containers in
1315
namespace <code class="literal">__gnu_pbds</code> have the same interface as
1316
the equivalent containers in the standard C++ library, except for
1317
Index: libstdc++-v3/doc/html/manual/bugs.html
1318
===================================================================
1319
--- a/src/libstdc++-v3/doc/html/manual/bugs.html (.../tags/gcc_4_8_2_release)
1320
+++ b/src/libstdc++-v3/doc/html/manual/bugs.html (.../branches/gcc-4_8-branch)
1322
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1323
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Bugs</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="status.html" title="Chapter 1. Status" /><link rel="prev" href="license.html" title="License" /><link rel="next" href="setup.html" title="Chapter 2. Setup" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Bugs</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="license.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Status</th><td width="20%" align="right"> <a accesskey="n" href="setup.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.bugs"></a>Bugs</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.bugs.impl"></a>Implementation Bugs</h3></div></div></div><p>
1324
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Bugs</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="status.html" title="Chapter 1. Status" /><link rel="prev" href="license.html" title="License" /><link rel="next" href="setup.html" title="Chapter 2. Setup" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Bugs</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="license.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Status</th><td width="20%" align="right"> <a accesskey="n" href="setup.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.status.bugs"></a>Bugs</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.status.bugs.impl"></a>Implementation Bugs</h3></div></div></div><p>
1325
Information on known bugs, details on efforts to fix them, and
1326
fixed bugs are all available as part of the <a class="link" href="http://gcc.gnu.org/bugs/" target="_top">GCC bug tracking system</a>,
1327
with the category set to <code class="literal">libstdc++</code>.
1328
Index: libstdc++-v3/doc/html/manual/parallel_mode_using.html
1329
===================================================================
1330
--- a/src/libstdc++-v3/doc/html/manual/parallel_mode_using.html (.../tags/gcc_4_8_2_release)
1331
+++ b/src/libstdc++-v3/doc/html/manual/parallel_mode_using.html (.../branches/gcc-4_8-branch)
1333
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1334
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, parallel" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /><link rel="prev" href="parallel_mode_semantics.html" title="Semantics" /><link rel="next" href="parallel_mode_design.html" title="Design" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parallel_mode_semantics.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td width="20%" align="right"> <a accesskey="n" href="parallel_mode_design.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.using"></a>Using</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.using.prereq_flags"></a>Prerequisite Compiler Flags</h3></div></div></div><p>
1335
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, parallel" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /><link rel="prev" href="parallel_mode_semantics.html" title="Semantics" /><link rel="next" href="parallel_mode_design.html" title="Design" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parallel_mode_semantics.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td width="20%" align="right"> <a accesskey="n" href="parallel_mode_design.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.using"></a>Using</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="parallel_mode.using.prereq_flags"></a>Prerequisite Compiler Flags</h3></div></div></div><p>
1336
Any use of parallel functionality requires additional compiler
1337
and runtime support, in particular support for OpenMP. Adding this support is
1338
not difficult: just compile your application with the compiler
1340
flags for atomic operations.)
1341
</p><p> The following table provides the names and headers of all the
1342
parallel algorithms that can be used in a similar manner:
1343
-</p><div class="table"><a id="idp16725920"></a><p class="title"><strong>Table 18.1. Parallel Algorithms</strong></p><div class="table-contents"><table summary="Parallel Algorithms" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Algorithm</th><th align="left">Header</th><th align="left">Parallel algorithm</th><th align="left">Parallel header</th></tr></thead><tbody><tr><td align="left"><code class="function">std::accumulate</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="function">__gnu_parallel::accumulate</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr><tr><td align="left"><code class="function">std::adjacent_difference</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="function">__gnu_parallel::adjacent_difference</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr><tr><td align="left"><code class="function">std::inner_product</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="function">__gnu_parallel::inner_product</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr><tr><td align="left"><code class="function">std::partial_sum</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="function">__gnu_parallel::partial_sum</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr><tr><td align="left"><code class="function">std::adjacent_find</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::adjacent_find</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::count</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::count</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::count_if</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::count_if</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::equal</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::equal</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::find</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::find</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::find_if</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::find_if</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::find_first_of</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::find_first_of</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::for_each</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::for_each</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::generate</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::generate</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::generate_n</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::generate_n</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::lexicographical_compare</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::lexicographical_compare</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::mismatch</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::mismatch</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::search</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::search</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::search_n</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::search_n</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::transform</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::transform</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::replace</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::replace</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::replace_if</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::replace_if</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::max_element</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::max_element</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::merge</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::merge</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::min_element</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::min_element</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::nth_element</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::nth_element</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::partial_sort</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::partial_sort</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::partition</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::partition</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::random_shuffle</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::random_shuffle</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::set_union</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::set_union</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::set_intersection</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::set_intersection</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::set_symmetric_difference</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::set_symmetric_difference</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::set_difference</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::set_difference</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::sort</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::sort</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::stable_sort</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::stable_sort</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::unique_copy</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::unique_copy</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="parallel_mode_semantics.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="parallel_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="parallel_mode_design.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Semantics </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Design</td></tr></table></div></body></html>
1344
\ No newline at end of file
1345
+</p><div class="table"><a id="idm269998805216"></a><p class="title"><strong>Table 18.1. Parallel Algorithms</strong></p><div class="table-contents"><table summary="Parallel Algorithms" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Algorithm</th><th align="left">Header</th><th align="left">Parallel algorithm</th><th align="left">Parallel header</th></tr></thead><tbody><tr><td align="left"><code class="function">std::accumulate</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="function">__gnu_parallel::accumulate</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr><tr><td align="left"><code class="function">std::adjacent_difference</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="function">__gnu_parallel::adjacent_difference</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr><tr><td align="left"><code class="function">std::inner_product</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="function">__gnu_parallel::inner_product</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr><tr><td align="left"><code class="function">std::partial_sum</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="function">__gnu_parallel::partial_sum</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr><tr><td align="left"><code class="function">std::adjacent_find</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::adjacent_find</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::count</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::count</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::count_if</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::count_if</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::equal</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::equal</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::find</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::find</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::find_if</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::find_if</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::find_first_of</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::find_first_of</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::for_each</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::for_each</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::generate</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::generate</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::generate_n</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::generate_n</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::lexicographical_compare</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::lexicographical_compare</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::mismatch</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::mismatch</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::search</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::search</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::search_n</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::search_n</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::transform</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::transform</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::replace</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::replace</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::replace_if</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::replace_if</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::max_element</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::max_element</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::merge</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::merge</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::min_element</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::min_element</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::nth_element</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::nth_element</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::partial_sort</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::partial_sort</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::partition</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::partition</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::random_shuffle</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::random_shuffle</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::set_union</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::set_union</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::set_intersection</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::set_intersection</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::set_symmetric_difference</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::set_symmetric_difference</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::set_difference</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::set_difference</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::sort</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::sort</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::stable_sort</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::stable_sort</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr><tr><td align="left"><code class="function">std::unique_copy</code></td><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="function">__gnu_parallel::unique_copy</code></td><td align="left"><code class="filename">parallel/algorithm</code></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="parallel_mode_semantics.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="parallel_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="parallel_mode_design.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Semantics </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Design</td></tr></table></div></body></html>
1346
\ No newline at end of file
1347
Index: libstdc++-v3/doc/html/manual/ext_numerics.html
1348
===================================================================
1349
--- a/src/libstdc++-v3/doc/html/manual/ext_numerics.html (.../tags/gcc_4_8_2_release)
1350
+++ b/src/libstdc++-v3/doc/html/manual/ext_numerics.html (.../branches/gcc-4_8-branch)
1352
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1353
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 26. Numerics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_algorithms.html" title="Chapter 25. Algorithms" /><link rel="next" href="ext_iterators.html" title="Chapter 27. Iterators" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 26. Numerics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_algorithms.html">Prev</a> </td><th width="60%" align="center">Part III.
1354
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 26. Numerics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_algorithms.html" title="Chapter 25. Algorithms" /><link rel="next" href="ext_iterators.html" title="Chapter 27. Iterators" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 26. Numerics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_algorithms.html">Prev</a> </td><th width="60%" align="center">Part III.
1357
</th><td width="20%" align="right"> <a accesskey="n" href="ext_iterators.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.numerics"></a>Chapter 26. Numerics</h2></div></div></div><p>26.4, the generalized numeric operations such as <code class="code">accumulate</code>,
1358
Index: libstdc++-v3/doc/html/manual/parallel_mode_semantics.html
1359
===================================================================
1360
--- a/src/libstdc++-v3/doc/html/manual/parallel_mode_semantics.html (.../tags/gcc_4_8_2_release)
1361
+++ b/src/libstdc++-v3/doc/html/manual/parallel_mode_semantics.html (.../branches/gcc-4_8-branch)
1363
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1364
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Semantics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, parallel" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /><link rel="prev" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /><link rel="next" href="parallel_mode_using.html" title="Using" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Semantics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parallel_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td width="20%" align="right"> <a accesskey="n" href="parallel_mode_using.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.semantics"></a>Semantics</h2></div></div></div><p> The parallel mode STL algorithms are currently not exception-safe,
1365
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Semantics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, parallel" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /><link rel="prev" href="parallel_mode.html" title="Chapter 18. Parallel Mode" /><link rel="next" href="parallel_mode_using.html" title="Using" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Semantics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="parallel_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 18. Parallel Mode</th><td width="20%" align="right"> <a accesskey="n" href="parallel_mode_using.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.semantics"></a>Semantics</h2></div></div></div><p> The parallel mode STL algorithms are currently not exception-safe,
1366
i.e. user-defined functors must not throw exceptions.
1367
Also, the order of execution is not guaranteed for some functions, of course.
1368
Therefore, user-defined functors should not have any concurrent side effects.
1369
Index: libstdc++-v3/doc/html/manual/std_contents.html
1370
===================================================================
1371
--- a/src/libstdc++-v3/doc/html/manual/std_contents.html (.../tags/gcc_4_8_2_release)
1372
+++ b/src/libstdc++-v3/doc/html/manual/std_contents.html (.../branches/gcc-4_8-branch)
1374
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1375
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part II. Standard Contents</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library Manual" /><link rel="prev" href="debug.html" title="Debugging Support" /><link rel="next" href="support.html" title="Chapter 4. Support" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part II.
1376
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part II. Standard Contents</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library Manual" /><link rel="prev" href="debug.html" title="Debugging Support" /><link rel="next" href="support.html" title="Chapter 4. Support" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part II.
1378
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="debug.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td width="20%" align="right"> <a accesskey="n" href="support.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="manual.std"></a>Part II.
1380
- </h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="support.html">4.
1381
+ </h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="support.html">4.
1384
</a></span></dt><dd><dl><dt><span class="section"><a href="support.html#std.support.types">Types</a></span></dt><dd><dl><dt><span class="section"><a href="support.html#std.support.types.fundamental">Fundamental Types</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.numeric_limits">Numeric Properties</a></span></dt><dt><span class="section"><a href="support.html#std.support.types.null">NULL</a></span></dt></dl></dd><dt><span class="section"><a href="dynamic_memory.html">Dynamic Memory</a></span></dt><dt><span class="section"><a href="termination.html">Termination</a></span></dt><dd><dl><dt><span class="section"><a href="termination.html#support.termination.handlers">Termination Handlers</a></span></dt><dt><span class="section"><a href="termination.html#support.termination.verbose">Verbose Terminate Handler</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="diagnostics.html">5.
1386
</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="concept_checking.html">Concept Checking</a></span></dt></dl></dd><dt><span class="chapter"><a href="utilities.html">6.
1389
-</a></span></dt><dd><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idp13920976">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#idp13924528">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#idp13937824">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idp15512272">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#idp15534784">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#idp15542080">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#idp15556704">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idp15573056">Examples</a></span></dt><dt><span class="section"><a href="memory.html#idp15576640">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="strings.html">7.
1390
+</a></span></dt><dd><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idm270001611968">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#idm270001608416">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#idm270001595120">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idm270000019344">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#idm269999996832">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#idm269999989536">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#idm269999974912">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idm269999958496">Examples</a></span></dt><dt><span class="section"><a href="memory.html#idm269999954912">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="strings.html">7.
1393
</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="localization.html">8.
1396
-</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#idp15778336">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="containers.html">9.
1397
+</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#idm269999753024">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="containers.html">9.
1400
</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="unordered_associative.html">Unordered Associative</a></span></dt><dd><dl><dt><span class="section"><a href="unordered_associative.html#containers.unordered.hash">Hash Code</a></span></dt><dd><dl><dt><span class="section"><a href="unordered_associative.html#containers.unordered.cache">Hash Code Caching Policy</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="iterators.html">10.
1401
Index: libstdc++-v3/doc/html/manual/appendix.html
1402
===================================================================
1403
--- a/src/libstdc++-v3/doc/html/manual/appendix.html (.../tags/gcc_4_8_2_release)
1404
+++ b/src/libstdc++-v3/doc/html/manual/appendix.html (.../branches/gcc-4_8-branch)
1406
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1407
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part IV. Appendices</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library Manual" /><link rel="prev" href="ext_concurrency_use.html" title="Use" /><link rel="next" href="appendix_contributing.html" title="Appendix A. Contributing" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part IV.
1408
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part IV. Appendices</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library Manual" /><link rel="prev" href="ext_concurrency_use.html" title="Use" /><link rel="next" href="appendix_contributing.html" title="Appendix A. Contributing" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part IV.
1410
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_concurrency_use.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td width="20%" align="right"> <a accesskey="n" href="appendix_contributing.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="appendix"></a>Part IV.
1412
-</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="appendix"><a href="appendix_contributing.html">A.
1413
+</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="appendix"><a href="appendix_contributing.html">A.
1416
</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_contributing.html#contrib.list">Contributor Checklist</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_contributing.html#list.reading">Reading</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.copyright">Assignment</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.getting">Getting Sources</a></span></dt><dt><span class="section"><a href="appendix_contributing.html#list.patches">Submitting Patches</a></span></dt></dl></dd><dt><span class="section"><a href="source_organization.html">Directory Layout and Source Conventions</a></span></dt><dt><span class="section"><a href="source_code_style.html">Coding Style</a></span></dt><dd><dl><dt><span class="section"><a href="source_code_style.html#coding_style.bad_identifiers">Bad Identifiers</a></span></dt><dt><span class="section"><a href="source_code_style.html#coding_style.example">By Example</a></span></dt></dl></dd><dt><span class="section"><a href="source_design_notes.html">Design Notes</a></span></dt></dl></dd><dt><span class="appendix"><a href="appendix_porting.html">B.
1417
Index: libstdc++-v3/doc/html/manual/memory.html
1418
===================================================================
1419
--- a/src/libstdc++-v3/doc/html/manual/memory.html (.../tags/gcc_4_8_2_release)
1420
+++ b/src/libstdc++-v3/doc/html/manual/memory.html (.../branches/gcc-4_8-branch)
1422
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1423
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Memory</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="utilities.html" title="Chapter 6. Utilities" /><link rel="prev" href="pairs.html" title="Pairs" /><link rel="next" href="traits.html" title="Traits" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Memory</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="pairs.html">Prev</a> </td><th width="60%" align="center">Chapter 6.
1424
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Memory</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="utilities.html" title="Chapter 6. Utilities" /><link rel="prev" href="pairs.html" title="Pairs" /><link rel="next" href="traits.html" title="Traits" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Memory</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="pairs.html">Prev</a> </td><th width="60%" align="center">Chapter 6.
1427
</th><td width="20%" align="right"> <a accesskey="n" href="traits.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.util.memory"></a>Memory</h2></div></div></div><p>
1429
or loading and unloading shared objects in memory. As such, using
1430
caching allocators on systems that do not support
1431
<code class="function">abi::__cxa_atexit</code> is not recommended.
1432
- </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.impl"></a>Implementation</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp13920976"></a>Interface Design</h5></div></div></div><p>
1433
+ </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.impl"></a>Implementation</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm270001611968"></a>Interface Design</h5></div></div></div><p>
1434
The only allocator interface that
1435
is supported is the standard C++ interface. As such, all STL
1436
containers have been adjusted, and all external allocators have
1439
The base class that <code class="classname">allocator</code> is derived from
1440
may not be user-configurable.
1441
-</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp13924528"></a>Selecting Default Allocation Policy</h5></div></div></div><p>
1442
+</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm270001608416"></a>Selecting Default Allocation Policy</h5></div></div></div><p>
1443
It's difficult to pick an allocation strategy that will provide
1444
maximum utility, without excessively penalizing some behavior. In
1445
fact, it's difficult just deciding which typical actions to measure
1447
The current default choice for
1448
<code class="classname">allocator</code> is
1449
<code class="classname">__gnu_cxx::new_allocator</code>.
1450
- </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp13937824"></a>Disabling Memory Caching</h5></div></div></div><p>
1451
+ </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm270001595120"></a>Disabling Memory Caching</h5></div></div></div><p>
1452
In use, <code class="classname">allocator</code> may allocate and
1453
deallocate using implementation-specific strategies and
1454
heuristics. Because of this, a given call to an allocator object's
1455
@@ -309,33 +309,33 @@
1456
of the used and unused memory locations. It has its own
1457
<a class="link" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator">chapter</a>
1458
in the documentation.
1459
- </p></li></ol></div></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idp13992848"></a><p><span class="citetitle"><em class="citetitle">
1460
+ </p></li></ol></div></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="allocator.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idm270000084224"></a><p><span class="citetitle"><em class="citetitle">
1461
ISO/IEC 14882:1998 Programming languages - C++
1464
- <span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry"><a id="idp13994688"></a><p><span class="title"><em>
1465
- <a class="link" href="http://www.drdobbs.com/cpp/184403759" target="_top">
1466
+ <span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry"><a id="idm270000082384"></a><p><span class="title"><em>
1467
+ <a class="link" href="http://www.drdobbs.com/the-standard-librarian-what-are-allocato/184403759" target="_top">
1468
The Standard Librarian: What Are Allocators Good For?
1470
</em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
1472
- . </span></span></p></div><div class="biblioentry"><a id="idp13998416"></a><p><span class="title"><em>
1473
+ . </span></span></p></div><div class="biblioentry"><a id="idm270000078608"></a><p><span class="title"><em>
1474
<a class="link" href="http://www.hoard.org/" target="_top">
1475
The Hoard Memory Allocator
1477
- </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span></p></div><div class="biblioentry"><a id="idp14001184"></a><p><span class="title"><em>
1478
+ </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span></p></div><div class="biblioentry"><a id="idm270000075840"></a><p><span class="title"><em>
1479
<a class="link" href="http://people.cs.umass.edu/~emery/pubs/berger-oopsla2002.pdf" target="_top">
1480
Reconsidering Custom Memory Allocation
1482
- </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span><span class="author"><span class="firstname">Ben</span> <span class="surname">Zorn</span>. </span><span class="author"><span class="firstname">Kathryn</span> <span class="surname">McKinley</span>. </span><span class="copyright">Copyright © 2002 OOPSLA. </span></p></div><div class="biblioentry"><a id="idp14007344"></a><p><span class="title"><em>
1483
+ </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span><span class="author"><span class="firstname">Ben</span> <span class="surname">Zorn</span>. </span><span class="author"><span class="firstname">Kathryn</span> <span class="surname">McKinley</span>. </span><span class="copyright">Copyright © 2002 OOPSLA. </span></p></div><div class="biblioentry"><a id="idm270000069680"></a><p><span class="title"><em>
1484
<a class="link" href="http://www.angelikalanger.com/Articles/C++Report/Allocators/Allocators.html" target="_top">
1487
</em>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="publisher"><span class="publishername">
1489
- . </span></span></p></div><div class="biblioentry"><a id="idp14012080"></a><p><span class="citetitle"><em class="citetitle">The C++ Programming Language</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 . </span><span class="pagenums">19.4 Allocators. </span><span class="publisher"><span class="publishername">
1490
+ . </span></span></p></div><div class="biblioentry"><a id="idm270000064944"></a><p><span class="citetitle"><em class="citetitle">The C++ Programming Language</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 . </span><span class="pagenums">19.4 Allocators. </span><span class="publisher"><span class="publishername">
1492
- . </span></span></p></div><div class="biblioentry"><a id="idp14016512"></a><p><span class="citetitle"><em class="citetitle">Yalloc: A Recycling C++ Allocator</em>. </span><span class="author"><span class="firstname">Felix</span> <span class="surname">Yen</span>. </span></p></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.auto_ptr"></a>auto_ptr</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="auto_ptr.limitations"></a>Limitations</h4></div></div></div><p>Explaining all of the fun and delicious things that can
1493
+ . </span></span></p></div><div class="biblioentry"><a id="idm270000060512"></a><p><span class="citetitle"><em class="citetitle">Yalloc: A Recycling C++ Allocator</em>. </span><span class="author"><span class="firstname">Felix</span> <span class="surname">Yen</span>. </span></p></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.util.memory.auto_ptr"></a>auto_ptr</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="auto_ptr.limitations"></a>Limitations</h4></div></div></div><p>Explaining all of the fun and delicious things that can
1494
happen with misuse of the <code class="classname">auto_ptr</code> class
1495
template (called <acronym class="acronym">AP</acronym> here) would take some
1496
time. Suffice it to say that the use of <acronym class="acronym">AP</acronym>
1498
Derived classes override those functions to destroy resources in a context
1499
where the correct dynamic type is known. This is an application of the
1500
technique known as type erasure.
1501
- </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.impl"></a>Implementation</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15512272"></a>Class Hierarchy</h5></div></div></div><p>
1502
+ </p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.impl"></a>Implementation</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm270000019344"></a>Class Hierarchy</h5></div></div></div><p>
1503
A <code class="classname">shared_ptr<T></code> contains a pointer of
1504
type <span class="type">T*</span> and an object of type
1505
<code class="classname">__shared_count</code>. The shared_count contains a
1507
aliasing constructor, make_shared & allocate_shared. Additionally,
1508
the constructors taking <code class="classname">auto_ptr</code> parameters are
1509
deprecated in C++11 mode.
1510
- </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15534784"></a>Thread Safety</h5></div></div></div><p>
1511
+ </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm269999996832"></a>Thread Safety</h5></div></div></div><p>
1513
-<a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm#ThreadSafety" target="_top">Thread
1514
+<a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm#ThreadSafety" target="_top">Thread
1515
Safety</a> section of the Boost shared_ptr documentation says "shared_ptr
1516
objects offer the same level of thread safety as built-in types."
1517
The implementation must ensure that concurrent updates to separate shared_ptr
1519
shared_ptr in libstdc++ the compiler and library are fixed, which
1520
makes things much simpler: we have an atomic CAS or we don't, see Lock
1521
Policy below for details.
1522
-</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15542080"></a>Selecting Lock Policy</h5></div></div></div><p>
1523
+</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm269999989536"></a>Selecting Lock Policy</h5></div></div></div><p>
1525
There is a single <code class="classname">_Sp_counted_base</code> class,
1526
which is a template parameterized on the enum
1528
<code class="filename">ext/atomicity.h</code>, which detect if the program
1529
is multi-threaded. If only one thread of execution exists in
1530
the program then less expensive non-atomic operations are used.
1531
- </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15556704"></a>Related functions and classes</h5></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="code">dynamic_pointer_cast</code>, <code class="code">static_pointer_cast</code>,
1532
+ </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm269999974912"></a>Related functions and classes</h5></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="code">dynamic_pointer_cast</code>, <code class="code">static_pointer_cast</code>,
1533
<code class="code">const_pointer_cast</code></span></dt><dd><p>
1534
As noted in N2351, these functions can be implemented non-intrusively using
1535
the alias constructor. However the aliasing constructor is only available
1536
@@ -611,13 +611,13 @@
1537
As well as the extra constructors, this implementation also needs some
1538
members of _Sp_counted_deleter to be protected where they could otherwise
1540
- </p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.using"></a>Use</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15573056"></a>Examples</h5></div></div></div><p>
1541
+ </p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.using"></a>Use</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm269999958496"></a>Examples</h5></div></div></div><p>
1542
Examples of use can be found in the testsuite, under
1543
<code class="filename">testsuite/tr1/2_general_utilities/shared_ptr</code>,
1544
<code class="filename">testsuite/20_util/shared_ptr</code>
1546
<code class="filename">testsuite/20_util/weak_ptr</code>.
1547
- </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15576640"></a>Unresolved Issues</h5></div></div></div><p>
1548
+ </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm269999954912"></a>Unresolved Issues</h5></div></div></div><p>
1549
The <span class="emphasis"><em><code class="classname">shared_ptr</code> atomic access</em></span>
1550
clause in the C++11 standard is not implemented in GCC.
1552
@@ -658,25 +658,25 @@
1553
code to work with, Peter Dimov in particular for his help and
1554
invaluable advice on thread safety. Phillip Jordan and Paolo
1555
Carlini for the lock policy implementation.
1556
- </p></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idp15587936"></a><p><span class="title"><em>
1557
+ </p></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="shared_ptr.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idm269999943680"></a><p><span class="title"><em>
1558
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2351.htm" target="_top">
1559
Improving shared_ptr for C++0x, Revision 2
1561
</em>. </span><span class="subtitle">
1563
- . </span></p></div><div class="biblioentry"><a id="idp15590224"></a><p><span class="title"><em>
1564
+ . </span></p></div><div class="biblioentry"><a id="idm269999941392"></a><p><span class="title"><em>
1565
<a class="link" href="http://open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2456.html" target="_top">
1566
C++ Standard Library Active Issues List
1568
</em>. </span><span class="subtitle">
1570
- . </span></p></div><div class="biblioentry"><a id="idp15592512"></a><p><span class="title"><em>
1571
+ . </span></p></div><div class="biblioentry"><a id="idm269999939104"></a><p><span class="title"><em>
1572
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2461.pdf" target="_top">
1573
Working Draft, Standard for Programming Language C++
1575
</em>. </span><span class="subtitle">
1577
- . </span></p></div><div class="biblioentry"><a id="idp15594816"></a><p><span class="title"><em>
1578
+ . </span></p></div><div class="biblioentry"><a id="idm269999936800"></a><p><span class="title"><em>
1579
<a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">
1580
Boost C++ Libraries documentation, shared_ptr
1582
Index: libstdc++-v3/doc/html/manual/api.html
1583
===================================================================
1584
--- a/src/libstdc++-v3/doc/html/manual/api.html (.../tags/gcc_4_8_2_release)
1585
+++ b/src/libstdc++-v3/doc/html/manual/api.html (.../branches/gcc-4_8-branch)
1587
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1588
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>API Evolution and Deprecation History</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, api, evolution, deprecation, history" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="abi.html" title="ABI Policy and Guidelines" /><link rel="next" href="backwards.html" title="Backwards Compatibility" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">API Evolution and Deprecation History</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="abi.html">Prev</a> </td><th width="60%" align="center">Appendix B.
1589
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>API Evolution and Deprecation History</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, api, evolution, deprecation, history" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="abi.html" title="ABI Policy and Guidelines" /><link rel="next" href="backwards.html" title="Backwards Compatibility" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">API Evolution and Deprecation History</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="abi.html">Prev</a> </td><th width="60%" align="center">Appendix B.
1590
Porting and Maintenance
1592
</th><td width="20%" align="right"> <a accesskey="n" href="backwards.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendix.porting.api"></a>API Evolution and Deprecation History</h2></div></div></div><p>
1594
<span class="type">__alloc</span> to select an underlying allocator that
1595
satisfied memory allocation requests. The selection of this
1596
underlying allocator was not user-configurable.
1597
- </p><div class="table"><a id="idp23030528"></a><p class="title"><strong>Table B.6. Extension Allocators</strong></p><div class="table-contents"><table summary="Extension Allocators" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Allocator (3.4)</th><th align="left">Header (3.4)</th><th align="left">Allocator (3.[0-3])</th><th align="left">Header (3.[0-3])</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::new_allocator<T></code></td><td align="left"><code class="filename">ext/new_allocator.h</code></td><td align="left"><code class="classname">std::__new_alloc</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::malloc_allocator<T></code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="classname">std::__malloc_alloc_template<int></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::debug_allocator<T></code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="classname">std::debug_alloc<T></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__pool_alloc<T></code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="classname">std::__default_alloc_template<bool,int></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__mt_alloc<T></code></td><td align="left"><code class="filename">ext/mt_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left"><code class="classname">__gnu_cxx::bitmap_allocator<T></code></td><td align="left"><code class="filename">ext/bitmap_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p> Releases after gcc-3.4 have continued to add to the collection
1598
+ </p><div class="table"><a id="idm269992502096"></a><p class="title"><strong>Table B.6. Extension Allocators</strong></p><div class="table-contents"><table summary="Extension Allocators" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Allocator (3.4)</th><th align="left">Header (3.4)</th><th align="left">Allocator (3.[0-3])</th><th align="left">Header (3.[0-3])</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::new_allocator<T></code></td><td align="left"><code class="filename">ext/new_allocator.h</code></td><td align="left"><code class="classname">std::__new_alloc</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::malloc_allocator<T></code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="classname">std::__malloc_alloc_template<int></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::debug_allocator<T></code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="classname">std::debug_alloc<T></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__pool_alloc<T></code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="classname">std::__default_alloc_template<bool,int></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__mt_alloc<T></code></td><td align="left"><code class="filename">ext/mt_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left"><code class="classname">__gnu_cxx::bitmap_allocator<T></code></td><td align="left"><code class="filename">ext/bitmap_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p> Releases after gcc-3.4 have continued to add to the collection
1599
of available allocators. All of these new allocators are
1600
standard-style. The following table includes details, along with
1601
the first released version of GCC that included the extension allocator.
1602
- </p><div class="table"><a id="idp23058160"></a><p class="title"><strong>Table B.7. Extension Allocators Continued</strong></p><div class="table-contents"><table summary="Extension Allocators Continued" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left">Allocator</th><th align="left">Include</th><th align="left">Version</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::array_allocator<T></code></td><td align="left"><code class="filename">ext/array_allocator.h</code></td><td align="left">4.0.0</td></tr><tr><td align="left"><code class="classname">__gnu_cxx::throw_allocator<T></code></td><td align="left"><code class="filename">ext/throw_allocator.h</code></td><td align="left">4.2.0</td></tr></tbody></table></div></div><br class="table-break" /><p>
1603
+ </p><div class="table"><a id="idm269992474464"></a><p class="title"><strong>Table B.7. Extension Allocators Continued</strong></p><div class="table-contents"><table summary="Extension Allocators Continued" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left">Allocator</th><th align="left">Include</th><th align="left">Version</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::array_allocator<T></code></td><td align="left"><code class="filename">ext/array_allocator.h</code></td><td align="left">4.0.0</td></tr><tr><td align="left"><code class="classname">__gnu_cxx::throw_allocator<T></code></td><td align="left"><code class="filename">ext/throw_allocator.h</code></td><td align="left">4.2.0</td></tr></tbody></table></div></div><br class="table-break" /><p>
1604
Debug mode first appears.
1606
Precompiled header support <acronym class="acronym">PCH</acronym> support.
1607
Index: libstdc++-v3/doc/html/manual/source_organization.html
1608
===================================================================
1609
--- a/src/libstdc++-v3/doc/html/manual/source_organization.html (.../tags/gcc_4_8_2_release)
1610
+++ b/src/libstdc++-v3/doc/html/manual/source_organization.html (.../branches/gcc-4_8-branch)
1612
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1613
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Directory Layout and Source Conventions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing" /><link rel="prev" href="appendix_contributing.html" title="Appendix A. Contributing" /><link rel="next" href="source_code_style.html" title="Coding Style" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Directory Layout and Source Conventions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix_contributing.html">Prev</a> </td><th width="60%" align="center">Appendix A.
1614
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Directory Layout and Source Conventions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing" /><link rel="prev" href="appendix_contributing.html" title="Appendix A. Contributing" /><link rel="next" href="source_code_style.html" title="Coding Style" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Directory Layout and Source Conventions</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix_contributing.html">Prev</a> </td><th width="60%" align="center">Appendix A.
1617
</th><td width="20%" align="right"> <a accesskey="n" href="source_code_style.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="contrib.organization"></a>Directory Layout and Source Conventions</h2></div></div></div><p>
1618
Index: libstdc++-v3/doc/html/manual/fstreams.html
1619
===================================================================
1620
--- a/src/libstdc++-v3/doc/html/manual/fstreams.html (.../tags/gcc_4_8_2_release)
1621
+++ b/src/libstdc++-v3/doc/html/manual/fstreams.html (.../branches/gcc-4_8-branch)
1623
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1624
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>File Based Streams</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="io.html" title="Chapter 13. Input and Output" /><link rel="prev" href="stringstreams.html" title="Memory Based Streams" /><link rel="next" href="io_and_c.html" title="Interacting with C" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">File Based Streams</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="stringstreams.html">Prev</a> </td><th width="60%" align="center">Chapter 13.
1625
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>File Based Streams</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="io.html" title="Chapter 13. Input and Output" /><link rel="prev" href="stringstreams.html" title="Memory Based Streams" /><link rel="next" href="io_and_c.html" title="Interacting with C" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">File Based Streams</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="stringstreams.html">Prev</a> </td><th width="60%" align="center">Chapter 13.
1628
</th><td width="20%" align="right"> <a accesskey="n" href="io_and_c.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.io.filestreams"></a>File Based Streams</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.filestreams.copying_a_file"></a>Copying a File</h3></div></div></div><p>
1629
Index: libstdc++-v3/doc/html/manual/ext_demangling.html
1630
===================================================================
1631
--- a/src/libstdc++-v3/doc/html/manual/ext_demangling.html (.../tags/gcc_4_8_2_release)
1632
+++ b/src/libstdc++-v3/doc/html/manual/ext_demangling.html (.../branches/gcc-4_8-branch)
1634
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1635
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 29. Demangling</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_io.html" title="Chapter 28. Input and Output" /><link rel="next" href="ext_concurrency.html" title="Chapter 30. Concurrency" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 29. Demangling</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_io.html">Prev</a> </td><th width="60%" align="center">Part III.
1636
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 29. Demangling</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_io.html" title="Chapter 28. Input and Output" /><link rel="next" href="ext_concurrency.html" title="Chapter 30. Concurrency" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 29. Demangling</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_io.html">Prev</a> </td><th width="60%" align="center">Part III.
1639
</th><td width="20%" align="right"> <a accesskey="n" href="ext_concurrency.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.demangle"></a>Chapter 29. Demangling</h2></div></div></div><p>
1640
Index: libstdc++-v3/doc/html/manual/ext_preface.html
1641
===================================================================
1642
--- a/src/libstdc++-v3/doc/html/manual/ext_preface.html (.../tags/gcc_4_8_2_release)
1643
+++ b/src/libstdc++-v3/doc/html/manual/ext_preface.html (.../branches/gcc-4_8-branch)
1645
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1646
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="extensions.html" title="Part III. Extensions" /><link rel="next" href="ext_compile_checks.html" title="Chapter 16. Compile Time Checks" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="extensions.html">Prev</a> </td><th width="60%" align="center">Part III.
1647
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title></title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="extensions.html" title="Part III. Extensions" /><link rel="next" href="ext_compile_checks.html" title="Chapter 16. Compile Time Checks" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="extensions.html">Prev</a> </td><th width="60%" align="center">Part III.
1650
-</th><td width="20%" align="right"> <a accesskey="n" href="ext_compile_checks.html">Next</a></td></tr></table><hr /></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="idp16425920"></a></h1></div></div></div><p>
1651
+</th><td width="20%" align="right"> <a accesskey="n" href="ext_compile_checks.html">Next</a></td></tr></table><hr /></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="idm269999105296"></a></h1></div></div></div><p>
1652
Here we will make an attempt at describing the non-Standard
1653
extensions to the library. Some of these are from older versions of
1654
standard library components, namely SGI's STL, and some of these are
1655
Index: libstdc++-v3/doc/html/manual/concept_checking.html
1656
===================================================================
1657
--- a/src/libstdc++-v3/doc/html/manual/concept_checking.html (.../tags/gcc_4_8_2_release)
1658
+++ b/src/libstdc++-v3/doc/html/manual/concept_checking.html (.../branches/gcc-4_8-branch)
1660
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1661
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Concept Checking</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="diagnostics.html" title="Chapter 5. Diagnostics" /><link rel="prev" href="diagnostics.html" title="Chapter 5. Diagnostics" /><link rel="next" href="utilities.html" title="Chapter 6. Utilities" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Concept Checking</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="diagnostics.html">Prev</a> </td><th width="60%" align="center">Chapter 5.
1662
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Concept Checking</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="diagnostics.html" title="Chapter 5. Diagnostics" /><link rel="prev" href="diagnostics.html" title="Chapter 5. Diagnostics" /><link rel="next" href="utilities.html" title="Chapter 6. Utilities" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Concept Checking</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="diagnostics.html">Prev</a> </td><th width="60%" align="center">Chapter 5.
1665
</th><td width="20%" align="right"> <a accesskey="n" href="utilities.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.diagnostics.concept_checking"></a>Concept Checking</h2></div></div></div><p>
1666
Index: libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html
1667
===================================================================
1668
--- a/src/libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html (.../tags/gcc_4_8_2_release)
1669
+++ b/src/libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html (.../branches/gcc-4_8-branch)
1671
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1672
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Multiple Thread Example</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, allocator" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /><link rel="prev" href="mt_allocator_ex_single.html" title="Single Thread Example" /><link rel="next" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Multiple Thread Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="mt_allocator_ex_single.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td width="20%" align="right"> <a accesskey="n" href="bitmap_allocator.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.mt.example_multi"></a>Multiple Thread Example</h2></div></div></div><p>
1673
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Multiple Thread Example</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, allocator" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /><link rel="prev" href="mt_allocator_ex_single.html" title="Single Thread Example" /><link rel="next" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Multiple Thread Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="mt_allocator_ex_single.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td width="20%" align="right"> <a accesskey="n" href="bitmap_allocator.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.mt.example_multi"></a>Multiple Thread Example</h2></div></div></div><p>
1674
In the ST example we never used the thread_id variable present in each block.
1675
Let's start by explaining the purpose of this in a MT application.
1677
Index: libstdc++-v3/doc/html/manual/ext_compile_checks.html
1678
===================================================================
1679
--- a/src/libstdc++-v3/doc/html/manual/ext_compile_checks.html (.../tags/gcc_4_8_2_release)
1680
+++ b/src/libstdc++-v3/doc/html/manual/ext_compile_checks.html (.../branches/gcc-4_8-branch)
1682
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1683
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 16. Compile Time Checks</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_preface.html" title="" /><link rel="next" href="debug_mode.html" title="Chapter 17. Debug Mode" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 16. Compile Time Checks</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_preface.html">Prev</a> </td><th width="60%" align="center">Part III.
1684
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 16. Compile Time Checks</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_preface.html" title="" /><link rel="next" href="debug_mode.html" title="Chapter 17. Debug Mode" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 16. Compile Time Checks</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_preface.html">Prev</a> </td><th width="60%" align="center">Part III.
1687
</th><td width="20%" align="right"> <a accesskey="n" href="debug_mode.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.compile_checks"></a>Chapter 16. Compile Time Checks</h2></div></div></div><p>
1688
Index: libstdc++-v3/doc/html/manual/strings.html
1689
===================================================================
1690
--- a/src/libstdc++-v3/doc/html/manual/strings.html (.../tags/gcc_4_8_2_release)
1691
+++ b/src/libstdc++-v3/doc/html/manual/strings.html (.../branches/gcc-4_8-branch)
1693
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1694
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 7. Strings</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="traits.html" title="Traits" /><link rel="next" href="localization.html" title="Chapter 8. Localization" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 7.
1695
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 7. Strings</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="traits.html" title="Traits" /><link rel="next" href="localization.html" title="Chapter 8. Localization" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 7.
1698
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="traits.html">Prev</a> </td><th width="60%" align="center">Part II.
1700
</th><td width="20%" align="right"> <a accesskey="n" href="localization.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="std.strings"></a>Chapter 7.
1702
- <a id="idp15603440" class="indexterm"></a>
1703
-</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.strings.string"></a>String Classes</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.simple"></a>Simple Transformations</h3></div></div></div><p>
1704
+ <a id="idm269999928112" class="indexterm"></a>
1705
+</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.strings.string"></a>String Classes</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="strings.string.simple"></a>Simple Transformations</h3></div></div></div><p>
1706
Here are Standard, simple, and portable ways to perform common
1707
transformations on a <code class="code">string</code> instance, such as
1708
"convert to all upper case." The word transformations
1709
Index: libstdc++-v3/doc/html/manual/containers_and_c.html
1710
===================================================================
1711
--- a/src/libstdc++-v3/doc/html/manual/containers_and_c.html (.../tags/gcc_4_8_2_release)
1712
+++ b/src/libstdc++-v3/doc/html/manual/containers_and_c.html (.../branches/gcc-4_8-branch)
1714
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1715
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="containers.html" title="Chapter 9. Containers" /><link rel="prev" href="unordered_associative.html" title="Unordered Associative" /><link rel="next" href="iterators.html" title="Chapter 10. Iterators" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="unordered_associative.html">Prev</a> </td><th width="60%" align="center">Chapter 9.
1716
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="containers.html" title="Chapter 9. Containers" /><link rel="prev" href="unordered_associative.html" title="Unordered Associative" /><link rel="next" href="iterators.html" title="Chapter 10. Iterators" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="unordered_associative.html">Prev</a> </td><th width="60%" align="center">Chapter 9.
1719
</th><td width="20%" align="right"> <a accesskey="n" href="iterators.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.containers.c"></a>Interacting with C</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="containers.c.vs_array"></a>Containers vs. Arrays</h3></div></div></div><p>
1720
Index: libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html
1721
===================================================================
1722
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html (.../tags/gcc_4_8_2_release)
1723
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html (.../branches/gcc-4_8-branch)
1725
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1726
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Diagnostics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, profile" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="profile_mode_devel.html" title="Developer Information" /><link rel="next" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Diagnostics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode_devel.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="mt_allocator.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.diagnostics"></a>Diagnostics</h2></div></div></div><p>
1727
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Diagnostics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, profile" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="profile_mode_devel.html" title="Developer Information" /><link rel="next" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Diagnostics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode_devel.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="mt_allocator.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.diagnostics"></a>Diagnostics</h2></div></div></div><p>
1728
The table below presents all the diagnostics we intend to implement.
1729
Each diagnostic has a corresponding compile time switch
1730
<code class="code">-D_GLIBCXX_PROFILE_<diagnostic></code>.
1732
A high accuracy means that the diagnostic is unlikely to be wrong.
1733
These grades are not perfect. They are just meant to guide users with
1734
specific needs or time budgets.
1735
- </p><div class="table"><a id="idp17088912"></a><p class="title"><strong>Table 19.2. Profile Diagnostics</strong></p><div class="table-contents"><table summary="Profile Diagnostics" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /><col align="left" class="c7" /></colgroup><thead><tr><th align="left">Group</th><th align="left">Flag</th><th align="left">Benefit</th><th align="left">Cost</th><th align="left">Freq.</th><th align="left">Implemented</th><td class="auto-generated"> </td></tr></thead><tbody><tr><td align="left"><a class="link" href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.containers" title="Containers">
1736
+ </p><div class="table"><a id="idm269998442544"></a><p class="title"><strong>Table 19.2. Profile Diagnostics</strong></p><div class="table-contents"><table summary="Profile Diagnostics" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /><col align="left" class="c6" /><col align="left" class="c7" /></colgroup><thead><tr><th align="left">Group</th><th align="left">Flag</th><th align="left">Benefit</th><th align="left">Cost</th><th align="left">Freq.</th><th align="left">Implemented</th><td class="auto-generated"> </td></tr></thead><tbody><tr><td align="left"><a class="link" href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.containers" title="Containers">
1737
CONTAINERS</a></td><td align="left"><a class="link" href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.hashtable_too_small" title="Hashtable Too Small">
1738
HASHTABLE_TOO_SMALL</a></td><td align="left">10</td><td align="left">1</td><td align="left"> </td><td align="left">10</td><td align="left">yes</td></tr><tr><td align="left"> </td><td align="left"><a class="link" href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.hashtable_too_large" title="Hashtable Too Large">
1739
HASHTABLE_TOO_LARGE</a></td><td align="left">5</td><td align="left">1</td><td align="left"> </td><td align="left">10</td><td align="left">yes</td></tr><tr><td align="left"> </td><td align="left"><a class="link" href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.inefficient_hash" title="Inefficient Hash">
1741
Quick Sort for a particular call context.
1742
</p></li><li class="listitem"><p><span class="emphasis"><em>Fundamentals:</em></span>
1744
- <a class="link" href="http://portal.acm.org/citation.cfm?doid=1065944.1065981" target="_top">
1745
+ <a class="link" href="https://dl.acm.org/citation.cfm?doid=1065944.1065981" target="_top">
1746
A framework for adaptive algorithm selection in STAPL</a> and
1747
<a class="link" href="http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=4228227" target="_top">
1748
Optimizing Sorting with Machine Learning Algorithms</a>.
1750
Keep a shadow for each container. Record iterator dereferences and
1751
container member accesses. Issue advice for elements referenced by
1753
- See paper: <a class="link" href="http://portal.acm.org/citation.cfm?id=207110.207148" target="_top">
1754
+ See paper: <a class="link" href="https://dl.acm.org/citation.cfm?id=207110.207148" target="_top">
1755
The LRPD test: speculative run-time parallelization of loops with
1756
privatization and reduction parallelization</a>.
1757
</p></li><li class="listitem"><p><span class="emphasis"><em>Cost model:</em></span>
1758
Index: libstdc++-v3/doc/html/manual/ext_concurrency_impl.html
1759
===================================================================
1760
--- a/src/libstdc++-v3/doc/html/manual/ext_concurrency_impl.html (.../tags/gcc_4_8_2_release)
1761
+++ b/src/libstdc++-v3/doc/html/manual/ext_concurrency_impl.html (.../branches/gcc-4_8-branch)
1763
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1764
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Implementation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="ext_concurrency.html" title="Chapter 30. Concurrency" /><link rel="prev" href="ext_concurrency.html" title="Chapter 30. Concurrency" /><link rel="next" href="ext_concurrency_use.html" title="Use" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_concurrency.html">Prev</a> </td><th width="60%" align="center">Chapter 30. Concurrency</th><td width="20%" align="right"> <a accesskey="n" href="ext_concurrency_use.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.impl"></a>Implementation</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.atomic_fallbacks"></a>Using Builtin Atomic Functions</h3></div></div></div><p>The functions for atomic operations described above are either
1765
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Implementation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="ext_concurrency.html" title="Chapter 30. Concurrency" /><link rel="prev" href="ext_concurrency.html" title="Chapter 30. Concurrency" /><link rel="next" href="ext_concurrency_use.html" title="Use" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_concurrency.html">Prev</a> </td><th width="60%" align="center">Chapter 30. Concurrency</th><td width="20%" align="right"> <a accesskey="n" href="ext_concurrency_use.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.impl"></a>Implementation</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.impl.atomic_fallbacks"></a>Using Builtin Atomic Functions</h3></div></div></div><p>The functions for atomic operations described above are either
1766
implemented via compiler intrinsics (if the underlying host is
1767
capable) or by library fallbacks.</p><p>Compiler intrinsics (builtins) are always preferred. However, as
1768
the compiler builtins for atomics are not universally implemented,
1769
Index: libstdc++-v3/doc/html/manual/io_and_c.html
1770
===================================================================
1771
--- a/src/libstdc++-v3/doc/html/manual/io_and_c.html (.../tags/gcc_4_8_2_release)
1772
+++ b/src/libstdc++-v3/doc/html/manual/io_and_c.html (.../branches/gcc-4_8-branch)
1774
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1775
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="io.html" title="Chapter 13. Input and Output" /><link rel="prev" href="fstreams.html" title="File Based Streams" /><link rel="next" href="atomics.html" title="Chapter 14. Atomics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="fstreams.html">Prev</a> </td><th width="60%" align="center">Chapter 13.
1776
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="io.html" title="Chapter 13. Input and Output" /><link rel="prev" href="fstreams.html" title="File Based Streams" /><link rel="next" href="atomics.html" title="Chapter 14. Atomics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="fstreams.html">Prev</a> </td><th width="60%" align="center">Chapter 13.
1779
</th><td width="20%" align="right"> <a accesskey="n" href="atomics.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.io.c"></a>Interacting with C</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.io.c.FILE"></a>Using FILE* and file descriptors</h3></div></div></div><p>
1780
Index: libstdc++-v3/doc/html/manual/documentation_hacking.html
1781
===================================================================
1782
--- a/src/libstdc++-v3/doc/html/manual/documentation_hacking.html (.../tags/gcc_4_8_2_release)
1783
+++ b/src/libstdc++-v3/doc/html/manual/documentation_hacking.html (.../branches/gcc-4_8-branch)
1785
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1786
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Writing and Generating Documentation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, documentation, style, docbook, doxygen" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="next" href="internals.html" title="Porting to New Hardware or Operating Systems" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Writing and Generating Documentation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix_porting.html">Prev</a> </td><th width="60%" align="center">Appendix B.
1787
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Writing and Generating Documentation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, documentation, style, docbook, doxygen" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="next" href="internals.html" title="Porting to New Hardware or Operating Systems" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Writing and Generating Documentation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix_porting.html">Prev</a> </td><th width="60%" align="center">Appendix B.
1788
Porting and Maintenance
1790
</th><td width="20%" align="right"> <a accesskey="n" href="internals.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="appendix.porting.doc"></a>Writing and Generating Documentation</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="doc.intro"></a>Introduction</h3></div></div></div><p>
1792
supported, and are always aliased to dummy rules. These
1793
unsupported formats are: <span class="emphasis"><em>info</em></span>,
1794
<span class="emphasis"><em>ps</em></span>, and <span class="emphasis"><em>dvi</em></span>.
1795
- </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="doc.doxygen"></a>Doxygen</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="doxygen.prereq"></a>Prerequisites</h4></div></div></div><div class="table"><a id="idp22162432"></a><p class="title"><strong>Table B.1. Doxygen Prerequisites</strong></p><div class="table-contents"><table summary="Doxygen Prerequisites" border="1"><colgroup><col align="center" class="c1" /><col align="center" class="c2" /><col align="center" class="c3" /></colgroup><thead><tr><th align="center">Tool</th><th align="center">Version</th><th align="center">Required By</th></tr></thead><tbody><tr><td align="center">coreutils</td><td align="center">8.5</td><td align="center">all</td></tr><tr><td align="center">bash</td><td align="center">4.1</td><td align="center">all</td></tr><tr><td align="center">doxygen</td><td align="center">1.7.6.1</td><td align="center">all</td></tr><tr><td align="center">graphviz</td><td align="center">2.26</td><td align="center">graphical hierarchies</td></tr><tr><td align="center">pdflatex</td><td align="center">2007-59</td><td align="center">pdf output</td></tr></tbody></table></div></div><br class="table-break" /><p>
1796
+ </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="doc.doxygen"></a>Doxygen</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="doxygen.prereq"></a>Prerequisites</h4></div></div></div><div class="table"><a id="idm269993370272"></a><p class="title"><strong>Table B.1. Doxygen Prerequisites</strong></p><div class="table-contents"><table summary="Doxygen Prerequisites" border="1"><colgroup><col align="center" class="c1" /><col align="center" class="c2" /><col align="center" class="c3" /></colgroup><thead><tr><th align="center">Tool</th><th align="center">Version</th><th align="center">Required By</th></tr></thead><tbody><tr><td align="center">coreutils</td><td align="center">8.5</td><td align="center">all</td></tr><tr><td align="center">bash</td><td align="center">4.1</td><td align="center">all</td></tr><tr><td align="center">doxygen</td><td align="center">1.7.6.1</td><td align="center">all</td></tr><tr><td align="center">graphviz</td><td align="center">2.26</td><td align="center">graphical hierarchies</td></tr><tr><td align="center">pdflatex</td><td align="center">2007-59</td><td align="center">pdf output</td></tr></tbody></table></div></div><br class="table-break" /><p>
1797
Prerequisite tools are Bash 2.0 or later,
1798
<a class="link" href="http://www.doxygen.org/" target="_top">Doxygen</a>, and
1799
the <a class="link" href="http://www.gnu.org/software/coreutils/" target="_top">GNU
1803
Some commentary to accompany
1804
- the first list in the <a class="link" href="http://www.stack.nl/~dimitri/doxygen/docblocks.html" target="_top">Special
1805
- Documentation Blocks</a> section of
1806
- the Doxygen manual:
1807
+ the first list in the <a class="link" href="http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html" target="_top">Special
1808
+ Documentation Blocks</a> section of the Doxygen manual:
1809
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>For longer comments, use the Javadoc style...</p></li><li class="listitem"><p>
1810
...not the Qt style. The intermediate *'s are preferred.
1811
</p></li><li class="listitem"><p>
1813
writing Doxygen comments. Single and double quotes, and
1814
separators in filenames are two common trouble spots. When in
1815
doubt, consult the following table.
1816
- </p><div class="table"><a id="idp22238096"></a><p class="title"><strong>Table B.2. HTML to Doxygen Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Doxygen Markup Comparison" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">HTML</th><th align="left">Doxygen</th></tr></thead><tbody><tr><td align="left">\</td><td align="left">\\</td></tr><tr><td align="left">"</td><td align="left">\"</td></tr><tr><td align="left">'</td><td align="left">\'</td></tr><tr><td align="left"><i></td><td align="left">@a word</td></tr><tr><td align="left"><b></td><td align="left">@b word</td></tr><tr><td align="left"><code></td><td align="left">@c word</td></tr><tr><td align="left"><em></td><td align="left">@a word</td></tr><tr><td align="left"><em></td><td align="left"><em>two words or more</em></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="doc.docbook"></a>Docbook</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.prereq"></a>Prerequisites</h4></div></div></div><div class="table"><a id="idp22257536"></a><p class="title"><strong>Table B.3. Docbook Prerequisites</strong></p><div class="table-contents"><table summary="Docbook Prerequisites" border="1"><colgroup><col align="center" class="c1" /><col align="center" class="c2" /><col align="center" class="c3" /></colgroup><thead><tr><th align="center">Tool</th><th align="center">Version</th><th align="center">Required By</th></tr></thead><tbody><tr><td align="center">docbook5-style-xsl</td><td align="center">1.76.1</td><td align="center">all</td></tr><tr><td align="center">xsltproc</td><td align="center">1.1.26</td><td align="center">all</td></tr><tr><td align="center">xmllint</td><td align="center">2.7.7</td><td align="center">validation</td></tr><tr><td align="center">dblatex</td><td align="center">0.3</td><td align="center">pdf output</td></tr><tr><td align="center">pdflatex</td><td align="center">2007-59</td><td align="center">pdf output</td></tr><tr><td align="center">docbook2X</td><td align="center">0.8.8</td><td align="center">info output</td></tr><tr><td align="center">epub3 stylesheets</td><td align="center">b3</td><td align="center">epub output</td></tr></tbody></table></div></div><br class="table-break" /><p>
1817
+ </p><div class="table"><a id="idm269993294592"></a><p class="title"><strong>Table B.2. HTML to Doxygen Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Doxygen Markup Comparison" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">HTML</th><th align="left">Doxygen</th></tr></thead><tbody><tr><td align="left">\</td><td align="left">\\</td></tr><tr><td align="left">"</td><td align="left">\"</td></tr><tr><td align="left">'</td><td align="left">\'</td></tr><tr><td align="left"><i></td><td align="left">@a word</td></tr><tr><td align="left"><b></td><td align="left">@b word</td></tr><tr><td align="left"><code></td><td align="left">@c word</td></tr><tr><td align="left"><em></td><td align="left">@a word</td></tr><tr><td align="left"><em></td><td align="left"><em>two words or more</em></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="doc.docbook"></a>Docbook</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.prereq"></a>Prerequisites</h4></div></div></div><div class="table"><a id="idm269993275152"></a><p class="title"><strong>Table B.3. Docbook Prerequisites</strong></p><div class="table-contents"><table summary="Docbook Prerequisites" border="1"><colgroup><col align="center" class="c1" /><col align="center" class="c2" /><col align="center" class="c3" /></colgroup><thead><tr><th align="center">Tool</th><th align="center">Version</th><th align="center">Required By</th></tr></thead><tbody><tr><td align="center">docbook5-style-xsl</td><td align="center">1.76.1</td><td align="center">all</td></tr><tr><td align="center">xsltproc</td><td align="center">1.1.26</td><td align="center">all</td></tr><tr><td align="center">xmllint</td><td align="center">2.7.7</td><td align="center">validation</td></tr><tr><td align="center">dblatex</td><td align="center">0.3</td><td align="center">pdf output</td></tr><tr><td align="center">pdflatex</td><td align="center">2007-59</td><td align="center">pdf output</td></tr><tr><td align="center">docbook2X</td><td align="center">0.8.8</td><td align="center">info output</td></tr><tr><td align="center">epub3 stylesheets</td><td align="center">b3</td><td align="center">epub output</td></tr></tbody></table></div></div><br class="table-break" /><p>
1818
Editing the DocBook sources requires an XML editor. Many
1819
exist: some notable options
1820
include <span class="command"><strong>emacs</strong></span>, <span class="application">Kate</span>,
1821
@@ -520,11 +519,11 @@
1822
<a class="link" href="http://www.docbook.org/tdg/en/html/part2.html" target="_top">online</a>.
1823
An incomplete reference for HTML to Docbook conversion is
1824
detailed in the table below.
1825
- </p><div class="table"><a id="idp22335040"></a><p class="title"><strong>Table B.4. HTML to Docbook XML Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Docbook XML Markup Comparison" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">HTML</th><th align="left">Docbook</th></tr></thead><tbody><tr><td align="left"><p></td><td align="left"><para></td></tr><tr><td align="left"><pre></td><td align="left"><computeroutput>, <programlisting>,
1826
+ </p><div class="table"><a id="idm269993197520"></a><p class="title"><strong>Table B.4. HTML to Docbook XML Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Docbook XML Markup Comparison" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">HTML</th><th align="left">Docbook</th></tr></thead><tbody><tr><td align="left"><p></td><td align="left"><para></td></tr><tr><td align="left"><pre></td><td align="left"><computeroutput>, <programlisting>,
1827
<literallayout></td></tr><tr><td align="left"><ul></td><td align="left"><itemizedlist></td></tr><tr><td align="left"><ol></td><td align="left"><orderedlist></td></tr><tr><td align="left"><il></td><td align="left"><listitem></td></tr><tr><td align="left"><dl></td><td align="left"><variablelist></td></tr><tr><td align="left"><dt></td><td align="left"><term></td></tr><tr><td align="left"><dd></td><td align="left"><listitem></td></tr><tr><td align="left"><a href=""></td><td align="left"><ulink url=""></td></tr><tr><td align="left"><code></td><td align="left"><literal>, <programlisting></td></tr><tr><td align="left"><strong></td><td align="left"><emphasis></td></tr><tr><td align="left"><em></td><td align="left"><emphasis></td></tr><tr><td align="left">"</td><td align="left"><quote></td></tr></tbody></table></div></div><br class="table-break" /><p>
1828
And examples of detailed markup for which there are no real HTML
1829
equivalents are listed in the table below.
1830
-</p><div class="table"><a id="idp22359184"></a><p class="title"><strong>Table B.5. Docbook XML Element Use</strong></p><div class="table-contents"><table summary="Docbook XML Element Use" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">Element</th><th align="left">Use</th></tr></thead><tbody><tr><td align="left"><structname></td><td align="left"><structname>char_traits</structname></td></tr><tr><td align="left"><classname></td><td align="left"><classname>string</classname></td></tr><tr><td align="left"><function></td><td align="left">
1831
+</p><div class="table"><a id="idm269993173376"></a><p class="title"><strong>Table B.5. Docbook XML Element Use</strong></p><div class="table-contents"><table summary="Docbook XML Element Use" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">Element</th><th align="left">Use</th></tr></thead><tbody><tr><td align="left"><structname></td><td align="left"><structname>char_traits</structname></td></tr><tr><td align="left"><classname></td><td align="left"><classname>string</classname></td></tr><tr><td align="left"><function></td><td align="left">
1832
<p><function>clear()</function></p>
1833
<p><function>fs.clear()</function></p>
1834
</td></tr><tr><td align="left"><type></td><td align="left"><type>long long</type></td></tr><tr><td align="left"><varname></td><td align="left"><varname>fs</varname></td></tr><tr><td align="left"><literal></td><td align="left">
1835
Index: libstdc++-v3/doc/html/manual/extensions.html
1836
===================================================================
1837
--- a/src/libstdc++-v3/doc/html/manual/extensions.html (.../tags/gcc_4_8_2_release)
1838
+++ b/src/libstdc++-v3/doc/html/manual/extensions.html (.../branches/gcc-4_8-branch)
1840
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1841
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part III. Extensions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library Manual" /><link rel="prev" href="io_and_c.html" title="Interacting with C" /><link rel="next" href="ext_preface.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part III.
1842
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part III. Extensions</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="index.html" title="The GNU C++ Library Manual" /><link rel="prev" href="io_and_c.html" title="Interacting with C" /><link rel="next" href="ext_preface.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part III.
1845
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="io_and_c.html">Prev</a> </td><th width="60%" align="center">The GNU C++ Library Manual</th><td width="20%" align="right"> <a accesskey="n" href="ext_preface.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="manual.ext"></a>Part III.
1847
- <a id="idp16423680" class="indexterm"></a>
1848
-</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="preface"><a href="ext_preface.html"></a></span></dt><dt><span class="chapter"><a href="ext_compile_checks.html">16. Compile Time Checks</a></span></dt><dt><span class="chapter"><a href="debug_mode.html">17. Debug Mode</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="debug_mode_semantics.html">Semantics</a></span></dt><dt><span class="section"><a href="debug_mode_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_using.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="debug_mode_using.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="debug_mode_design.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods">Methods</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.wrappers">The Wrapper Model</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.safe_iter">Safe Iterators</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.safe_seq">Safe Sequences (Containers)</a></span></dt></dl></dd><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.precond">Precondition Checking</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.coexistence">Release- and debug-mode coexistence</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#methods.coexistence.compile">Compile-time coexistence of release- and debug-mode components</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#methods.coexistence.link">Link- and run-time coexistence of release- and
1849
+ <a id="idm269999107536" class="indexterm"></a>
1850
+</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="preface"><a href="ext_preface.html"></a></span></dt><dt><span class="chapter"><a href="ext_compile_checks.html">16. Compile Time Checks</a></span></dt><dt><span class="chapter"><a href="debug_mode.html">17. Debug Mode</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="debug_mode_semantics.html">Semantics</a></span></dt><dt><span class="section"><a href="debug_mode_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_using.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="debug_mode_using.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="debug_mode_design.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods">Methods</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.wrappers">The Wrapper Model</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.safe_iter">Safe Iterators</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.safe_seq">Safe Sequences (Containers)</a></span></dt></dl></dd><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.precond">Precondition Checking</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.coexistence">Release- and debug-mode coexistence</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#methods.coexistence.compile">Compile-time coexistence of release- and debug-mode components</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#methods.coexistence.link">Link- and run-time coexistence of release- and
1851
debug-mode components</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#methods.coexistence.alt">Alternatives for Coexistence</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.other">Other Implementations</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="parallel_mode.html">18. Parallel Mode</a></span></dt><dd><dl><dt><span class="section"><a href="parallel_mode.html#manual.ext.parallel_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="parallel_mode_semantics.html">Semantics</a></span></dt><dt><span class="section"><a href="parallel_mode_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="parallel_mode_using.html#parallel_mode.using.prereq_flags">Prerequisite Compiler Flags</a></span></dt><dt><span class="section"><a href="parallel_mode_using.html#parallel_mode.using.parallel_mode">Using Parallel Mode</a></span></dt><dt><span class="section"><a href="parallel_mode_using.html#parallel_mode.using.specific">Using Specific Parallel Components</a></span></dt></dl></dd><dt><span class="section"><a href="parallel_mode_design.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.intro">Interface Basics</a></span></dt><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.tuning">Configuration and Tuning</a></span></dt><dd><dl><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.tuning.omp">Setting up the OpenMP Environment</a></span></dt><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.tuning.compile">Compile Time Switches</a></span></dt><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.tuning.settings">Run Time Settings and Defaults</a></span></dt></dl></dd><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.impl">Implementation Namespaces</a></span></dt></dl></dd><dt><span class="section"><a href="parallel_mode_test.html">Testing</a></span></dt><dt><span class="bibliography"><a href="parallel_mode.html#parallel_mode.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="profile_mode.html">19. Profile Mode</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.using">Using the Profile Mode</a></span></dt><dt><span class="section"><a href="profile_mode.html#manual.ext.profile_mode.tuning">Tuning the Profile Mode</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_design.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.wrapper">Wrapper Model</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.instrumentation">Instrumentation</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.rtlib">Run Time Behavior</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.analysis">Analysis and Diagnostics</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.cost-model">Cost Model</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.reports">Reports</a></span></dt><dt><span class="section"><a href="profile_mode_design.html#manual.ext.profile_mode.design.testing">Testing</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_api.html">Extensions for Custom Containers</a></span></dt><dt><span class="section"><a href="profile_mode_cost_model.html">Empirical Cost Model</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html">Implementation Issues</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.stack">Stack Traces</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.symbols">Symbolization of Instruction Addresses</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.concurrency">Concurrency</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.stdlib-in-proflib">Using the Standard Library in the Instrumentation Implementation</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.malloc-hooks">Malloc Hooks</a></span></dt><dt><span class="section"><a href="profile_mode_impl.html#manual.ext.profile_mode.implementation.construction-destruction">Construction and Destruction of Global Objects</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_devel.html">Developer Information</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_devel.html#manual.ext.profile_mode.developer.bigpic">Big Picture</a></span></dt><dt><span class="section"><a href="profile_mode_devel.html#manual.ext.profile_mode.developer.howto">How To Add A Diagnostic</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_diagnostics.html">Diagnostics</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.template">Diagnostic Template</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.containers">Containers</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.hashtable_too_small">Hashtable Too Small</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.hashtable_too_large">Hashtable Too Large</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.inefficient_hash">Inefficient Hash</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.vector_too_small">Vector Too Small</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.vector_too_large">Vector Too Large</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.vector_to_hashtable">Vector to Hashtable</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.hashtable_to_vector">Hashtable to Vector</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.vector_to_list">Vector to List</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.list_to_vector">List to Vector</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.list_to_slist">List to Forward List (Slist)</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.assoc_ord_to_unord">Ordered to Unordered Associative Container</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.algorithms">Algorithms</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.algorithms.sort">Sort Algorithm Performance</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.locality">Data Locality</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.locality.sw_prefetch">Need Software Prefetch</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.locality.linked">Linked Structure Locality</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.mthread">Multithreaded Data Access</a></span></dt><dd><dl><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.mthread.ddtest">Data Dependence Violations at Container Level</a></span></dt><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.mthread.false_share">False Sharing</a></span></dt></dl></dd><dt><span class="section"><a href="profile_mode_diagnostics.html#manual.ext.profile_mode.analysis.statistics">Statistics</a></span></dt></dl></dd><dt><span class="bibliography"><a href="profile_mode.html#profile_mode.biblio">Bibliography</a></span></dt></dl></dd><dt><span class="chapter"><a href="mt_allocator.html">20. The mt_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="mt_allocator.html#allocator.mt.intro">Intro</a></span></dt><dt><span class="section"><a href="mt_allocator_design.html">Design Issues</a></span></dt><dd><dl><dt><span class="section"><a href="mt_allocator_design.html#allocator.mt.overview">Overview</a></span></dt></dl></dd><dt><span class="section"><a href="mt_allocator_impl.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="mt_allocator_impl.html#allocator.mt.tune">Tunable Parameters</a></span></dt><dt><span class="section"><a href="mt_allocator_impl.html#allocator.mt.init">Initialization</a></span></dt><dt><span class="section"><a href="mt_allocator_impl.html#allocator.mt.deallocation">Deallocation Notes</a></span></dt></dl></dd><dt><span class="section"><a href="mt_allocator_ex_single.html">Single Thread Example</a></span></dt><dt><span class="section"><a href="mt_allocator_ex_multi.html">Multiple Thread Example</a></span></dt></dl></dd><dt><span class="chapter"><a href="bitmap_allocator.html">21. The bitmap_allocator</a></span></dt><dd><dl><dt><span class="section"><a href="bitmap_allocator.html#allocator.bitmap.design">Design</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.free_list_store">Free List Store</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.super_block">Super Block</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.super_block_data">Super Block Data Layout</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.max_wasted">Maximum Wasted Percentage</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.allocate"><code class="function">allocate</code></a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.deallocate"><code class="function">deallocate</code></a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.questions">Questions</a></span></dt><dd><dl><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.question.1">1</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.question.2">2</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.question.3">3</a></span></dt></dl></dd><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.locality">Locality</a></span></dt><dt><span class="section"><a href="bitmap_allocator_impl.html#bitmap.impl.grow_policy">Overhead and Grow Policy</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="policy_data_structures.html">22. Policy-Based Data Structures</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro">Intro</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues">Performance Issues</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues.associative">Associative</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.issues.priority_queue">Priority Que</a></span></dt></dl></dd><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation">Goals</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation.associative">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.iterators">Iterators</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.associative.functions">Functional</a></span></dt></dl></dd><dt><span class="section"><a href="policy_data_structures.html#pbds.intro.motivation.priority_queue">Priority Queues</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.policy">Policy Choices</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.underlying">Underlying Data Structures</a></span></dt><dt><span class="section"><a href="policy_data_structures.html#motivation.priority_queue.binary_heap">Binary Heaps</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a href="policy_data_structures_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.organization">Organization</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial">Tutorial</a></span></dt><dd><dl><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.basic">Basic Use</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.configuring">
1852
Configuring via Template Parameters
1853
</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.traits">
1854
Index: libstdc++-v3/doc/html/manual/debug_mode_using.html
1855
===================================================================
1856
--- a/src/libstdc++-v3/doc/html/manual/debug_mode_using.html (.../tags/gcc_4_8_2_release)
1857
+++ b/src/libstdc++-v3/doc/html/manual/debug_mode_using.html (.../branches/gcc-4_8-branch)
1859
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1860
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, debug" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="debug_mode.html" title="Chapter 17. Debug Mode" /><link rel="prev" href="debug_mode_semantics.html" title="Semantics" /><link rel="next" href="debug_mode_design.html" title="Design" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="debug_mode_semantics.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Debug Mode</th><td width="20%" align="right"> <a accesskey="n" href="debug_mode_design.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.debug_mode.using"></a>Using</h2></div></div></div><p>
1861
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Using</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, debug" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="debug_mode.html" title="Chapter 17. Debug Mode" /><link rel="prev" href="debug_mode_semantics.html" title="Semantics" /><link rel="next" href="debug_mode_design.html" title="Design" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Using</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="debug_mode_semantics.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Debug Mode</th><td width="20%" align="right"> <a accesskey="n" href="debug_mode_design.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.debug_mode.using"></a>Using</h2></div></div></div><p>
1862
</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="debug_mode.using.mode"></a>Using the Debug Mode</h3></div></div></div><p>To use the libstdc++ debug mode, compile your application with the
1863
compiler flag <code class="code">-D_GLIBCXX_DEBUG</code>. Note that this flag
1864
changes the sizes and behavior of standard class templates such
1866
mode or with debug mode. The
1867
following table provides the names and headers of the debugging
1869
-</p><div class="table"><a id="idp16490400"></a><p class="title"><strong>Table 17.1. Debugging Containers</strong></p><div class="table-contents"><table summary="Debugging Containers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Container</th><th align="left">Header</th><th align="left">Debug container</th><th align="left">Debug header</th></tr></thead><tbody><tr><td align="left"><code class="classname">std::bitset</code></td><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="classname">__gnu_debug::bitset</code></td><td align="left"><code class="filename"><debug/bitset></code></td></tr><tr><td align="left"><code class="classname">std::deque</code></td><td align="left"><code class="filename">deque</code></td><td align="left"><code class="classname">__gnu_debug::deque</code></td><td align="left"><code class="filename"><debug/deque></code></td></tr><tr><td align="left"><code class="classname">std::list</code></td><td align="left"><code class="filename">list</code></td><td align="left"><code class="classname">__gnu_debug::list</code></td><td align="left"><code class="filename"><debug/list></code></td></tr><tr><td align="left"><code class="classname">std::map</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="classname">__gnu_debug::map</code></td><td align="left"><code class="filename"><debug/map></code></td></tr><tr><td align="left"><code class="classname">std::multimap</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="classname">__gnu_debug::multimap</code></td><td align="left"><code class="filename"><debug/map></code></td></tr><tr><td align="left"><code class="classname">std::multiset</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="classname">__gnu_debug::multiset</code></td><td align="left"><code class="filename"><debug/set></code></td></tr><tr><td align="left"><code class="classname">std::set</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="classname">__gnu_debug::set</code></td><td align="left"><code class="filename"><debug/set></code></td></tr><tr><td align="left"><code class="classname">std::string</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::string</code></td><td align="left"><code class="filename"><debug/string></code></td></tr><tr><td align="left"><code class="classname">std::wstring</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::wstring</code></td><td align="left"><code class="filename"><debug/string></code></td></tr><tr><td align="left"><code class="classname">std::basic_string</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::basic_string</code></td><td align="left"><code class="filename"><debug/string></code></td></tr><tr><td align="left"><code class="classname">std::vector</code></td><td align="left"><code class="filename">vector</code></td><td align="left"><code class="classname">__gnu_debug::vector</code></td><td align="left"><code class="filename"><debug/vector></code></td></tr></tbody></table></div></div><br class="table-break" /><p>In addition, when compiling in C++11 mode, these additional
1870
+</p><div class="table"><a id="idm269999040896"></a><p class="title"><strong>Table 17.1. Debugging Containers</strong></p><div class="table-contents"><table summary="Debugging Containers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Container</th><th align="left">Header</th><th align="left">Debug container</th><th align="left">Debug header</th></tr></thead><tbody><tr><td align="left"><code class="classname">std::bitset</code></td><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="classname">__gnu_debug::bitset</code></td><td align="left"><code class="filename"><debug/bitset></code></td></tr><tr><td align="left"><code class="classname">std::deque</code></td><td align="left"><code class="filename">deque</code></td><td align="left"><code class="classname">__gnu_debug::deque</code></td><td align="left"><code class="filename"><debug/deque></code></td></tr><tr><td align="left"><code class="classname">std::list</code></td><td align="left"><code class="filename">list</code></td><td align="left"><code class="classname">__gnu_debug::list</code></td><td align="left"><code class="filename"><debug/list></code></td></tr><tr><td align="left"><code class="classname">std::map</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="classname">__gnu_debug::map</code></td><td align="left"><code class="filename"><debug/map></code></td></tr><tr><td align="left"><code class="classname">std::multimap</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="classname">__gnu_debug::multimap</code></td><td align="left"><code class="filename"><debug/map></code></td></tr><tr><td align="left"><code class="classname">std::multiset</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="classname">__gnu_debug::multiset</code></td><td align="left"><code class="filename"><debug/set></code></td></tr><tr><td align="left"><code class="classname">std::set</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="classname">__gnu_debug::set</code></td><td align="left"><code class="filename"><debug/set></code></td></tr><tr><td align="left"><code class="classname">std::string</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::string</code></td><td align="left"><code class="filename"><debug/string></code></td></tr><tr><td align="left"><code class="classname">std::wstring</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::wstring</code></td><td align="left"><code class="filename"><debug/string></code></td></tr><tr><td align="left"><code class="classname">std::basic_string</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::basic_string</code></td><td align="left"><code class="filename"><debug/string></code></td></tr><tr><td align="left"><code class="classname">std::vector</code></td><td align="left"><code class="filename">vector</code></td><td align="left"><code class="classname">__gnu_debug::vector</code></td><td align="left"><code class="filename"><debug/vector></code></td></tr></tbody></table></div></div><br class="table-break" /><p>In addition, when compiling in C++11 mode, these additional
1871
containers have additional debug capability.
1872
-</p><div class="table"><a id="idp16535296"></a><p class="title"><strong>Table 17.2. Debugging Containers C++11</strong></p><div class="table-contents"><table summary="Debugging Containers C++11" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Container</th><th align="left">Header</th><th align="left">Debug container</th><th align="left">Debug header</th></tr></thead><tbody><tr><td align="left"><code class="classname">std::unordered_map</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="classname">__gnu_debug::unordered_map</code></td><td align="left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td align="left"><code class="classname">std::unordered_multimap</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="classname">__gnu_debug::unordered_multimap</code></td><td align="left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td align="left"><code class="classname">std::unordered_set</code></td><td align="left"><code class="filename">unordered_set</code></td><td align="left"><code class="classname">__gnu_debug::unordered_set</code></td><td align="left"><code class="filename"><debug/unordered_set></code></td></tr><tr><td align="left"><code class="classname">std::unordered_multiset</code></td><td align="left"><code class="filename">unordered_set</code></td><td align="left"><code class="classname">__gnu_debug::unordered_multiset</code></td><td align="left"><code class="filename"><debug/unordered_set></code></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="debug_mode_semantics.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="debug_mode_design.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Semantics </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Design</td></tr></table></div></body></html>
1873
\ No newline at end of file
1874
+</p><div class="table"><a id="idm269998996000"></a><p class="title"><strong>Table 17.2. Debugging Containers C++11</strong></p><div class="table-contents"><table summary="Debugging Containers C++11" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Container</th><th align="left">Header</th><th align="left">Debug container</th><th align="left">Debug header</th></tr></thead><tbody><tr><td align="left"><code class="classname">std::unordered_map</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="classname">__gnu_debug::unordered_map</code></td><td align="left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td align="left"><code class="classname">std::unordered_multimap</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="classname">__gnu_debug::unordered_multimap</code></td><td align="left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td align="left"><code class="classname">std::unordered_set</code></td><td align="left"><code class="filename">unordered_set</code></td><td align="left"><code class="classname">__gnu_debug::unordered_set</code></td><td align="left"><code class="filename"><debug/unordered_set></code></td></tr><tr><td align="left"><code class="classname">std::unordered_multiset</code></td><td align="left"><code class="filename">unordered_set</code></td><td align="left"><code class="classname">__gnu_debug::unordered_multiset</code></td><td align="left"><code class="filename"><debug/unordered_set></code></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="debug_mode_semantics.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="debug_mode_design.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Semantics </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Design</td></tr></table></div></body></html>
1875
\ No newline at end of file
1876
Index: libstdc++-v3/doc/html/manual/parallel_mode.html
1877
===================================================================
1878
--- a/src/libstdc++-v3/doc/html/manual/parallel_mode.html (.../tags/gcc_4_8_2_release)
1879
+++ b/src/libstdc++-v3/doc/html/manual/parallel_mode.html (.../branches/gcc-4_8-branch)
1881
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1882
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 18. Parallel Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, parallel" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="debug_mode_design.html" title="Design" /><link rel="next" href="parallel_mode_semantics.html" title="Semantics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 18. Parallel Mode</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="debug_mode_design.html">Prev</a> </td><th width="60%" align="center">Part III.
1883
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 18. Parallel Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, parallel" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="debug_mode_design.html" title="Design" /><link rel="next" href="parallel_mode_semantics.html" title="Semantics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 18. Parallel Mode</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="debug_mode_design.html">Prev</a> </td><th width="60%" align="center">Part III.
1886
-</th><td width="20%" align="right"> <a accesskey="n" href="parallel_mode_semantics.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode"></a>Chapter 18. Parallel Mode</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="parallel_mode.html#manual.ext.parallel_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="parallel_mode_semantics.html">Semantics</a></span></dt><dt><span class="section"><a href="parallel_mode_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="parallel_mode_using.html#parallel_mode.using.prereq_flags">Prerequisite Compiler Flags</a></span></dt><dt><span class="section"><a href="parallel_mode_using.html#parallel_mode.using.parallel_mode">Using Parallel Mode</a></span></dt><dt><span class="section"><a href="parallel_mode_using.html#parallel_mode.using.specific">Using Specific Parallel Components</a></span></dt></dl></dd><dt><span class="section"><a href="parallel_mode_design.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.intro">Interface Basics</a></span></dt><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.tuning">Configuration and Tuning</a></span></dt><dd><dl><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.tuning.omp">Setting up the OpenMP Environment</a></span></dt><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.tuning.compile">Compile Time Switches</a></span></dt><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.tuning.settings">Run Time Settings and Defaults</a></span></dt></dl></dd><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.impl">Implementation Namespaces</a></span></dt></dl></dd><dt><span class="section"><a href="parallel_mode_test.html">Testing</a></span></dt><dt><span class="bibliography"><a href="parallel_mode.html#parallel_mode.biblio">Bibliography</a></span></dt></dl></div><p> The libstdc++ parallel mode is an experimental parallel
1887
+</th><td width="20%" align="right"> <a accesskey="n" href="parallel_mode_semantics.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.parallel_mode"></a>Chapter 18. Parallel Mode</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="parallel_mode.html#manual.ext.parallel_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="parallel_mode_semantics.html">Semantics</a></span></dt><dt><span class="section"><a href="parallel_mode_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="parallel_mode_using.html#parallel_mode.using.prereq_flags">Prerequisite Compiler Flags</a></span></dt><dt><span class="section"><a href="parallel_mode_using.html#parallel_mode.using.parallel_mode">Using Parallel Mode</a></span></dt><dt><span class="section"><a href="parallel_mode_using.html#parallel_mode.using.specific">Using Specific Parallel Components</a></span></dt></dl></dd><dt><span class="section"><a href="parallel_mode_design.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.intro">Interface Basics</a></span></dt><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.tuning">Configuration and Tuning</a></span></dt><dd><dl><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.tuning.omp">Setting up the OpenMP Environment</a></span></dt><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.tuning.compile">Compile Time Switches</a></span></dt><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.tuning.settings">Run Time Settings and Defaults</a></span></dt></dl></dd><dt><span class="section"><a href="parallel_mode_design.html#parallel_mode.design.impl">Implementation Namespaces</a></span></dt></dl></dd><dt><span class="section"><a href="parallel_mode_test.html">Testing</a></span></dt><dt><span class="bibliography"><a href="parallel_mode.html#parallel_mode.biblio">Bibliography</a></span></dt></dl></div><p> The libstdc++ parallel mode is an experimental parallel
1888
implementation of many algorithms the C++ Standard Library.
1890
Several of the standard algorithms, for instance
1892
specific compiler flag.
1893
</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.parallel_mode.intro"></a>Intro</h2></div></div></div><p>The following library components in the include
1894
<code class="filename">numeric</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="function">std::accumulate</code></p></li><li class="listitem"><p><code class="function">std::adjacent_difference</code></p></li><li class="listitem"><p><code class="function">std::inner_product</code></p></li><li class="listitem"><p><code class="function">std::partial_sum</code></p></li></ul></div><p>The following library components in the include
1895
-<code class="filename">algorithm</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="function">std::adjacent_find</code></p></li><li class="listitem"><p><code class="function">std::count</code></p></li><li class="listitem"><p><code class="function">std::count_if</code></p></li><li class="listitem"><p><code class="function">std::equal</code></p></li><li class="listitem"><p><code class="function">std::find</code></p></li><li class="listitem"><p><code class="function">std::find_if</code></p></li><li class="listitem"><p><code class="function">std::find_first_of</code></p></li><li class="listitem"><p><code class="function">std::for_each</code></p></li><li class="listitem"><p><code class="function">std::generate</code></p></li><li class="listitem"><p><code class="function">std::generate_n</code></p></li><li class="listitem"><p><code class="function">std::lexicographical_compare</code></p></li><li class="listitem"><p><code class="function">std::mismatch</code></p></li><li class="listitem"><p><code class="function">std::search</code></p></li><li class="listitem"><p><code class="function">std::search_n</code></p></li><li class="listitem"><p><code class="function">std::transform</code></p></li><li class="listitem"><p><code class="function">std::replace</code></p></li><li class="listitem"><p><code class="function">std::replace_if</code></p></li><li class="listitem"><p><code class="function">std::max_element</code></p></li><li class="listitem"><p><code class="function">std::merge</code></p></li><li class="listitem"><p><code class="function">std::min_element</code></p></li><li class="listitem"><p><code class="function">std::nth_element</code></p></li><li class="listitem"><p><code class="function">std::partial_sort</code></p></li><li class="listitem"><p><code class="function">std::partition</code></p></li><li class="listitem"><p><code class="function">std::random_shuffle</code></p></li><li class="listitem"><p><code class="function">std::set_union</code></p></li><li class="listitem"><p><code class="function">std::set_intersection</code></p></li><li class="listitem"><p><code class="function">std::set_symmetric_difference</code></p></li><li class="listitem"><p><code class="function">std::set_difference</code></p></li><li class="listitem"><p><code class="function">std::sort</code></p></li><li class="listitem"><p><code class="function">std::stable_sort</code></p></li><li class="listitem"><p><code class="function">std::unique_copy</code></p></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="parallel_mode.biblio"></a>Bibliography</h2></div></div></div><div class="biblioentry"><a id="idp16926864"></a><p><span class="citetitle"><em class="citetitle">
1896
+<code class="filename">algorithm</code> are included in the parallel mode:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><code class="function">std::adjacent_find</code></p></li><li class="listitem"><p><code class="function">std::count</code></p></li><li class="listitem"><p><code class="function">std::count_if</code></p></li><li class="listitem"><p><code class="function">std::equal</code></p></li><li class="listitem"><p><code class="function">std::find</code></p></li><li class="listitem"><p><code class="function">std::find_if</code></p></li><li class="listitem"><p><code class="function">std::find_first_of</code></p></li><li class="listitem"><p><code class="function">std::for_each</code></p></li><li class="listitem"><p><code class="function">std::generate</code></p></li><li class="listitem"><p><code class="function">std::generate_n</code></p></li><li class="listitem"><p><code class="function">std::lexicographical_compare</code></p></li><li class="listitem"><p><code class="function">std::mismatch</code></p></li><li class="listitem"><p><code class="function">std::search</code></p></li><li class="listitem"><p><code class="function">std::search_n</code></p></li><li class="listitem"><p><code class="function">std::transform</code></p></li><li class="listitem"><p><code class="function">std::replace</code></p></li><li class="listitem"><p><code class="function">std::replace_if</code></p></li><li class="listitem"><p><code class="function">std::max_element</code></p></li><li class="listitem"><p><code class="function">std::merge</code></p></li><li class="listitem"><p><code class="function">std::min_element</code></p></li><li class="listitem"><p><code class="function">std::nth_element</code></p></li><li class="listitem"><p><code class="function">std::partial_sort</code></p></li><li class="listitem"><p><code class="function">std::partition</code></p></li><li class="listitem"><p><code class="function">std::random_shuffle</code></p></li><li class="listitem"><p><code class="function">std::set_union</code></p></li><li class="listitem"><p><code class="function">std::set_intersection</code></p></li><li class="listitem"><p><code class="function">std::set_symmetric_difference</code></p></li><li class="listitem"><p><code class="function">std::set_difference</code></p></li><li class="listitem"><p><code class="function">std::sort</code></p></li><li class="listitem"><p><code class="function">std::stable_sort</code></p></li><li class="listitem"><p><code class="function">std::unique_copy</code></p></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h2 class="title"><a id="parallel_mode.biblio"></a>Bibliography</h2></div></div></div><div class="biblioentry"><a id="idm269998604464"></a><p><span class="citetitle"><em class="citetitle">
1897
Parallelization of Bulk Operations for STL Dictionaries
1898
</em>. </span><span class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span>. </span><span class="author"><span class="firstname">Leonor</span> <span class="surname">Frias</span>. </span><span class="copyright">Copyright © 2007 . </span><span class="publisher"><span class="publishername">
1899
Workshop on Highly Parallel Processing on a Chip (HPPC) 2007. (LNCS)
1900
- . </span></span></p></div><div class="biblioentry"><a id="idp16931936"></a><p><span class="citetitle"><em class="citetitle">
1901
+ . </span></span></p></div><div class="biblioentry"><a id="idm269998599392"></a><p><span class="citetitle"><em class="citetitle">
1902
The Multi-Core Standard Template Library
1903
</em>. </span><span class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span>. </span><span class="author"><span class="firstname">Peter</span> <span class="surname">Sanders</span>. </span><span class="author"><span class="firstname">Felix</span> <span class="surname">Putze</span>. </span><span class="copyright">Copyright © 2007 . </span><span class="publisher"><span class="publishername">
1904
Euro-Par 2007: Parallel Processing. (LNCS 4641)
1905
Index: libstdc++-v3/doc/html/manual/debug_mode_semantics.html
1906
===================================================================
1907
--- a/src/libstdc++-v3/doc/html/manual/debug_mode_semantics.html (.../tags/gcc_4_8_2_release)
1908
+++ b/src/libstdc++-v3/doc/html/manual/debug_mode_semantics.html (.../branches/gcc-4_8-branch)
1910
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1911
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Semantics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, debug" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="debug_mode.html" title="Chapter 17. Debug Mode" /><link rel="prev" href="debug_mode.html" title="Chapter 17. Debug Mode" /><link rel="next" href="debug_mode_using.html" title="Using" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Semantics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="debug_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Debug Mode</th><td width="20%" align="right"> <a accesskey="n" href="debug_mode_using.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.debug_mode.semantics"></a>Semantics</h2></div></div></div><p>
1912
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Semantics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, debug" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="debug_mode.html" title="Chapter 17. Debug Mode" /><link rel="prev" href="debug_mode.html" title="Chapter 17. Debug Mode" /><link rel="next" href="debug_mode_using.html" title="Using" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Semantics</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="debug_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 17. Debug Mode</th><td width="20%" align="right"> <a accesskey="n" href="debug_mode_using.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.debug_mode.semantics"></a>Semantics</h2></div></div></div><p>
1913
</p><p>A program that uses the C++ standard library correctly
1914
will maintain the same semantics under debug mode as it had with
1915
the normal (release) library. All functional and exception-handling
1916
Index: libstdc++-v3/doc/html/manual/setup.html
1917
===================================================================
1918
--- a/src/libstdc++-v3/doc/html/manual/setup.html (.../tags/gcc_4_8_2_release)
1919
+++ b/src/libstdc++-v3/doc/html/manual/setup.html (.../branches/gcc-4_8-branch)
1921
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1922
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 2. Setup</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="intro.html" title="Part I. Introduction" /><link rel="prev" href="bugs.html" title="Bugs" /><link rel="next" href="configure.html" title="Configure" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. Setup</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bugs.html">Prev</a> </td><th width="60%" align="center">Part I.
1923
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 2. Setup</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="intro.html" title="Part I. Introduction" /><link rel="prev" href="bugs.html" title="Bugs" /><link rel="next" href="configure.html" title="Configure" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. Setup</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bugs.html">Prev</a> </td><th width="60%" align="center">Part I.
1926
-</th><td width="20%" align="right"> <a accesskey="n" href="configure.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup"></a>Chapter 2. Setup</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></div><p>To transform libstdc++ sources into installed include files
1927
+</th><td width="20%" align="right"> <a accesskey="n" href="configure.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup"></a>Chapter 2. Setup</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></div><p>To transform libstdc++ sources into installed include files
1928
and properly built binaries useful for linking to other software is
1929
a multi-step process. Steps include getting the sources,
1930
configuring and building the sources, testing, and installation.
1931
Index: libstdc++-v3/doc/html/manual/backwards.html
1932
===================================================================
1933
--- a/src/libstdc++-v3/doc/html/manual/backwards.html (.../tags/gcc_4_8_2_release)
1934
+++ b/src/libstdc++-v3/doc/html/manual/backwards.html (.../branches/gcc-4_8-branch)
1936
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1937
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Backwards Compatibility</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, backwards" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="api.html" title="API Evolution and Deprecation History" /><link rel="next" href="appendix_free.html" title="Appendix C. Free Software Needs Free Documentation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Backwards Compatibility</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><th width="60%" align="center">Appendix B.
1938
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Backwards Compatibility</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, backwards" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="api.html" title="API Evolution and Deprecation History" /><link rel="next" href="appendix_free.html" title="Appendix C. Free Software Needs Free Documentation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Backwards Compatibility</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="api.html">Prev</a> </td><th width="60%" align="center">Appendix B.
1939
Porting and Maintenance
1941
</th><td width="20%" align="right"> <a accesskey="n" href="appendix_free.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.appendix.porting.backwards"></a>Backwards Compatibility</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.first"></a>First</h3></div></div></div><p>The first generation GNU C++ library was called libg++. It was a
1942
@@ -940,15 +940,15 @@
1943
This is a change in behavior from older versions. Now, most
1944
<span class="type">iterator_type</span> typedefs in container classes are POD
1945
objects, not <span class="type">value_type</span> pointers.
1946
-</p></div></div><div class="bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="idp23415104"></a><p><span class="title"><em>
1947
+</p></div></div><div class="bibliography"><div class="titlepage"><div><div><h3 class="title"><a id="backwards.biblio"></a>Bibliography</h3></div></div></div><div class="biblioentry"><a id="idm269992117648"></a><p><span class="title"><em>
1948
<a class="link" href="http://www.kegel.com/gcc/gcc4.html" target="_top">
1949
Migrating to GCC 4.1
1951
- </em>. </span><span class="author"><span class="firstname">Dan</span> <span class="surname">Kegel</span>. </span></p></div><div class="biblioentry"><a id="idp23417888"></a><p><span class="title"><em>
1952
+ </em>. </span><span class="author"><span class="firstname">Dan</span> <span class="surname">Kegel</span>. </span></p></div><div class="biblioentry"><a id="idm269992114864"></a><p><span class="title"><em>
1953
<a class="link" href="http://lists.debian.org/debian-gcc/2006/03/msg00405.html" target="_top">
1954
Building the Whole Debian Archive with GCC 4.1: A Summary
1956
- </em>. </span><span class="author"><span class="firstname">Martin</span> <span class="surname">Michlmayr</span>. </span></p></div><div class="biblioentry"><a id="idp23420736"></a><p><span class="title"><em>
1957
+ </em>. </span><span class="author"><span class="firstname">Martin</span> <span class="surname">Michlmayr</span>. </span></p></div><div class="biblioentry"><a id="idm269992112016"></a><p><span class="title"><em>
1958
<a class="link" href="http://annwm.lbl.gov/~leggett/Atlas/gcc-3.2.html" target="_top">
1959
Migration guide for GCC-3.2
1961
Index: libstdc++-v3/doc/html/manual/source_design_notes.html
1962
===================================================================
1963
--- a/src/libstdc++-v3/doc/html/manual/source_design_notes.html (.../tags/gcc_4_8_2_release)
1964
+++ b/src/libstdc++-v3/doc/html/manual/source_design_notes.html (.../branches/gcc-4_8-branch)
1966
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1967
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design Notes</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing" /><link rel="prev" href="source_code_style.html" title="Coding Style" /><link rel="next" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design Notes</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="source_code_style.html">Prev</a> </td><th width="60%" align="center">Appendix A.
1968
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design Notes</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing" /><link rel="prev" href="source_code_style.html" title="Coding Style" /><link rel="next" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design Notes</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="source_code_style.html">Prev</a> </td><th width="60%" align="center">Appendix A.
1971
</th><td width="20%" align="right"> <a accesskey="n" href="appendix_porting.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="contrib.design_notes"></a>Design Notes</h2></div></div></div><p>
1972
Index: libstdc++-v3/doc/html/manual/ext_sgi.html
1973
===================================================================
1974
--- a/src/libstdc++-v3/doc/html/manual/ext_sgi.html (.../tags/gcc_4_8_2_release)
1975
+++ b/src/libstdc++-v3/doc/html/manual/ext_sgi.html (.../branches/gcc-4_8-branch)
1977
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1978
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Deprecated</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="ext_containers.html" title="Chapter 23. HP/SGI Extensions" /><link rel="prev" href="ext_containers.html" title="Chapter 23. HP/SGI Extensions" /><link rel="next" href="ext_utilities.html" title="Chapter 24. Utilities" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Deprecated</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_containers.html">Prev</a> </td><th width="60%" align="center">Chapter 23. HP/SGI Extensions</th><td width="20%" align="right"> <a accesskey="n" href="ext_utilities.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.containers.deprecated_sgi"></a>Deprecated</h2></div></div></div><p>
1979
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Deprecated</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="ext_containers.html" title="Chapter 23. HP/SGI Extensions" /><link rel="prev" href="ext_containers.html" title="Chapter 23. HP/SGI Extensions" /><link rel="next" href="ext_utilities.html" title="Chapter 24. Utilities" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Deprecated</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_containers.html">Prev</a> </td><th width="60%" align="center">Chapter 23. HP/SGI Extensions</th><td width="20%" align="right"> <a accesskey="n" href="ext_utilities.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.containers.deprecated_sgi"></a>Deprecated</h2></div></div></div><p>
1980
The SGI hashing classes <code class="classname">hash_set</code> and
1981
<code class="classname">hash_set</code> have been deprecated by the
1982
unordered_set, unordered_multiset, unordered_map,
1983
Index: libstdc++-v3/doc/html/manual/facets.html
1984
===================================================================
1985
--- a/src/libstdc++-v3/doc/html/manual/facets.html (.../tags/gcc_4_8_2_release)
1986
+++ b/src/libstdc++-v3/doc/html/manual/facets.html (.../branches/gcc-4_8-branch)
1988
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1989
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Facets</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="localization.html" title="Chapter 8. Localization" /><link rel="prev" href="localization.html" title="Chapter 8. Localization" /><link rel="next" href="containers.html" title="Chapter 9. Containers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Facets</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="localization.html">Prev</a> </td><th width="60%" align="center">Chapter 8.
1990
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Facets</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="localization.html" title="Chapter 8. Localization" /><link rel="prev" href="localization.html" title="Chapter 8. Localization" /><link rel="next" href="containers.html" title="Chapter 9. Containers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Facets</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="localization.html">Prev</a> </td><th width="60%" align="center">Chapter 8.
1993
-</th><td width="20%" align="right"> <a accesskey="n" href="containers.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.localization.facet"></a>Facets</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.facet.ctype"></a>ctype</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.impl"></a>Implementation</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15778336"></a>Specializations</h5></div></div></div><p>
1994
+</th><td width="20%" align="right"> <a accesskey="n" href="containers.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.localization.facet"></a>Facets</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.facet.ctype"></a>ctype</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.impl"></a>Implementation</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm269999753024"></a>Specializations</h5></div></div></div><p>
1995
For the required specialization codecvt<wchar_t, char, mbstate_t> ,
1996
conversions are made between the internal character set (always UCS4
1997
on GNU/Linux) and whatever the currently selected locale for the
1999
</p></li><li class="listitem"><p>
2000
Rename abstract base class. See if just smash-overriding is a
2001
better approach. Clarify, add sanity to naming.
2002
- </p></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idp15793392"></a><p><span class="citetitle"><em class="citetitle">
2003
+ </p></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.ctype.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idm269999738032"></a><p><span class="citetitle"><em class="citetitle">
2005
- </em>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">Chapters 6 Character Set Handling and 7 Locales and Internationalization. </span></p></div><div class="biblioentry"><a id="idp15798144"></a><p><span class="citetitle"><em class="citetitle">
2006
+ </em>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">Chapters 6 Character Set Handling and 7 Locales and Internationalization. </span></p></div><div class="biblioentry"><a id="idm269999733280"></a><p><span class="citetitle"><em class="citetitle">
2008
- </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="idp15801232"></a><p><span class="citetitle"><em class="citetitle">
2009
+ </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="idm269999730192"></a><p><span class="citetitle"><em class="citetitle">
2010
ISO/IEC 14882:1998 Programming languages - C++
2011
- </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="idp15803520"></a><p><span class="citetitle"><em class="citetitle">
2012
+ </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="idm269999727904"></a><p><span class="citetitle"><em class="citetitle">
2013
ISO/IEC 9899:1999 Programming languages - C
2014
- </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idp15805792"></a><p><span class="title"><em>
2015
+ </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idm269999725632"></a><p><span class="title"><em>
2016
<a class="link" href="http://www.unix.org/version3/ieee_std.html" target="_top">
2017
The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)
2019
</em>. </span><span class="copyright">Copyright © 1999
2020
- The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span></p></div><div class="biblioentry"><a id="idp15809040"></a><p><span class="citetitle"><em class="citetitle">
2021
+ The Open Group/The Institute of Electrical and Electronics Engineers, Inc.. </span></p></div><div class="biblioentry"><a id="idm269999722384"></a><p><span class="citetitle"><em class="citetitle">
2022
The C++ Programming Language, Special Edition
2023
</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
2025
- . </span></span></p></div><div class="biblioentry"><a id="idp15813664"></a><p><span class="citetitle"><em class="citetitle">
2026
+ . </span></span></p></div><div class="biblioentry"><a id="idm269999717760"></a><p><span class="citetitle"><em class="citetitle">
2027
Standard C++ IOStreams and Locales
2028
</em>. </span><span class="subtitle">
2029
Advanced Programmer's Guide and Reference
2030
@@ -409,42 +409,42 @@
2031
</p></li><li class="listitem"><p>
2032
wchar_t/char internal buffers and conversions between
2033
internal/external buffers?
2034
- </p></li></ul></div></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idp15891136"></a><p><span class="citetitle"><em class="citetitle">
2035
+ </p></li></ul></div></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.codecvt.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idm269999640080"></a><p><span class="citetitle"><em class="citetitle">
2037
</em>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">
2038
Chapters 6 Character Set Handling and 7 Locales and Internationalization
2039
- . </span></p></div><div class="biblioentry"><a id="idp15895888"></a><p><span class="citetitle"><em class="citetitle">
2040
+ . </span></p></div><div class="biblioentry"><a id="idm269999635328"></a><p><span class="citetitle"><em class="citetitle">
2042
- </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="idp15898976"></a><p><span class="citetitle"><em class="citetitle">
2043
+ </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="idm269999632240"></a><p><span class="citetitle"><em class="citetitle">
2044
ISO/IEC 14882:1998 Programming languages - C++
2045
- </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="idp15901264"></a><p><span class="citetitle"><em class="citetitle">
2046
+ </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="idm269999629952"></a><p><span class="citetitle"><em class="citetitle">
2047
ISO/IEC 9899:1999 Programming languages - C
2048
- </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idp15903536"></a><p><span class="title"><em>
2049
+ </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idm269999627680"></a><p><span class="title"><em>
2050
<a class="link" href="http://www.opengroup.org/austin/" target="_top">
2051
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
2053
</em>. </span><span class="copyright">Copyright © 2008
2054
The Open Group/The Institute of Electrical and Electronics
2056
- . </span></p></div><div class="biblioentry"><a id="idp15906768"></a><p><span class="citetitle"><em class="citetitle">
2057
+ . </span></p></div><div class="biblioentry"><a id="idm269999624448"></a><p><span class="citetitle"><em class="citetitle">
2058
The C++ Programming Language, Special Edition
2059
</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
2061
- . </span></span></p></div><div class="biblioentry"><a id="idp15911392"></a><p><span class="citetitle"><em class="citetitle">
2062
+ . </span></span></p></div><div class="biblioentry"><a id="idm269999619824"></a><p><span class="citetitle"><em class="citetitle">
2063
Standard C++ IOStreams and Locales
2064
</em>. </span><span class="subtitle">
2065
Advanced Programmer's Guide and Reference
2066
. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername">
2067
Addison Wesley Longman
2068
- . </span></span></p></div><div class="biblioentry"><a id="idp15917056"></a><p><span class="title"><em>
2069
+ . </span></span></p></div><div class="biblioentry"><a id="idm269999614160"></a><p><span class="title"><em>
2070
<a class="link" href="http://www.lysator.liu.se/c/na1.html" target="_top">
2071
A brief description of Normative Addendum 1
2073
- </em>. </span><span class="author"><span class="firstname">Clive</span> <span class="surname">Feather</span>. </span><span class="pagenums">Extended Character Sets. </span></p></div><div class="biblioentry"><a id="idp15920304"></a><p><span class="title"><em>
2074
+ </em>. </span><span class="author"><span class="firstname">Clive</span> <span class="surname">Feather</span>. </span><span class="pagenums">Extended Character Sets. </span></p></div><div class="biblioentry"><a id="idm269999610912"></a><p><span class="title"><em>
2075
<a class="link" href="http://tldp.org/HOWTO/Unicode-HOWTO.html" target="_top">
2078
- </em>. </span><span class="author"><span class="firstname">Bruno</span> <span class="surname">Haible</span>. </span></p></div><div class="biblioentry"><a id="idp15923088"></a><p><span class="title"><em>
2079
+ </em>. </span><span class="author"><span class="firstname">Bruno</span> <span class="surname">Haible</span>. </span></p></div><div class="biblioentry"><a id="idm269999608128"></a><p><span class="title"><em>
2080
<a class="link" href="http://www.cl.cam.ac.uk/~mgk25/unicode.html" target="_top">
2081
UTF-8 and Unicode FAQ for Unix/Linux
2083
@@ -690,39 +690,39 @@
2084
model. As of this writing, it is unknown how to query to see
2085
if a specified message catalog exists using the gettext
2087
- </p></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idp16003632"></a><p><span class="citetitle"><em class="citetitle">
2088
+ </p></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="facet.messages.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idm269999527584"></a><p><span class="citetitle"><em class="citetitle">
2090
</em>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">Chapters 6 Character Set Handling, and 7 Locales and Internationalization
2091
- . </span></p></div><div class="biblioentry"><a id="idp16008384"></a><p><span class="citetitle"><em class="citetitle">
2092
+ . </span></p></div><div class="biblioentry"><a id="idm269999522832"></a><p><span class="citetitle"><em class="citetitle">
2094
- </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="idp16011472"></a><p><span class="citetitle"><em class="citetitle">
2095
+ </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="idm269999519744"></a><p><span class="citetitle"><em class="citetitle">
2096
ISO/IEC 14882:1998 Programming languages - C++
2097
- </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="idp16013760"></a><p><span class="citetitle"><em class="citetitle">
2098
+ </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="idm269999517456"></a><p><span class="citetitle"><em class="citetitle">
2099
ISO/IEC 9899:1999 Programming languages - C
2100
- </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idp16016032"></a><p><span class="title"><em>
2101
+ </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idm269999515184"></a><p><span class="title"><em>
2102
<a class="link" href="http://www.opengroup.org/austin/" target="_top">
2103
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
2105
</em>. </span><span class="copyright">Copyright © 2008
2106
The Open Group/The Institute of Electrical and Electronics
2108
- . </span></p></div><div class="biblioentry"><a id="idp16019264"></a><p><span class="citetitle"><em class="citetitle">
2109
+ . </span></p></div><div class="biblioentry"><a id="idm269999511952"></a><p><span class="citetitle"><em class="citetitle">
2110
The C++ Programming Language, Special Edition
2111
</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
2113
- . </span></span></p></div><div class="biblioentry"><a id="idp16023888"></a><p><span class="citetitle"><em class="citetitle">
2114
+ . </span></span></p></div><div class="biblioentry"><a id="idm269999507328"></a><p><span class="citetitle"><em class="citetitle">
2115
Standard C++ IOStreams and Locales
2116
</em>. </span><span class="subtitle">
2117
Advanced Programmer's Guide and Reference
2118
. </span><span class="author"><span class="firstname">Angelika</span> <span class="surname">Langer</span>. </span><span class="author"><span class="firstname">Klaus</span> <span class="surname">Kreft</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley Longman, Inc.. </span><span class="publisher"><span class="publishername">
2119
Addison Wesley Longman
2120
- . </span></span></p></div><div class="biblioentry"><a id="idp16029552"></a><p><span class="title"><em>
2121
- <a class="link" href="http://java.sun.com/reference/api/index.html" target="_top">
2122
+ . </span></span></p></div><div class="biblioentry"><a id="idm269999501664"></a><p><span class="title"><em>
2123
+ <a class="link" href="http://www.oracle.com/technetwork/java/api/index.html" target="_top">
2124
API Specifications, Java Platform
2126
</em>. </span><span class="pagenums">java.util.Properties, java.text.MessageFormat,
2127
java.util.Locale, java.util.ResourceBundle
2128
- . </span></p></div><div class="biblioentry"><a id="idp16031888"></a><p><span class="title"><em>
2129
+ . </span></p></div><div class="biblioentry"><a id="idm269999499328"></a><p><span class="title"><em>
2130
<a class="link" href="https://www.gnu.org/software/gettext/" target="_top">
2131
GNU gettext tools, version 0.10.38, Native Language Support
2133
Index: libstdc++-v3/doc/html/manual/diagnostics.html
2134
===================================================================
2135
--- a/src/libstdc++-v3/doc/html/manual/diagnostics.html (.../tags/gcc_4_8_2_release)
2136
+++ b/src/libstdc++-v3/doc/html/manual/diagnostics.html (.../branches/gcc-4_8-branch)
2138
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2139
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 5. Diagnostics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="termination.html" title="Termination" /><link rel="next" href="concept_checking.html" title="Concept Checking" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 5.
2140
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 5. Diagnostics</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="termination.html" title="Termination" /><link rel="next" href="concept_checking.html" title="Concept Checking" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 5.
2143
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="termination.html">Prev</a> </td><th width="60%" align="center">Part II.
2145
</th><td width="20%" align="right"> <a accesskey="n" href="concept_checking.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="std.diagnostics"></a>Chapter 5.
2147
- <a id="idp13835248" class="indexterm"></a>
2148
-</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="concept_checking.html">Concept Checking</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.diagnostics.exceptions"></a>Exceptions</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.diagnostics.exceptions.api"></a>API Reference</h3></div></div></div><p>
2149
+ <a id="idm270001697504" class="indexterm"></a>
2150
+</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="concept_checking.html">Concept Checking</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.diagnostics.exceptions"></a>Exceptions</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.diagnostics.exceptions.api"></a>API Reference</h3></div></div></div><p>
2151
All exception objects are defined in one of the standard header
2152
files: <code class="filename">exception</code>,
2153
<code class="filename">stdexcept</code>, <code class="filename">new</code>, and
2154
Index: libstdc++-v3/doc/html/manual/mt_allocator_design.html
2155
===================================================================
2156
--- a/src/libstdc++-v3/doc/html/manual/mt_allocator_design.html (.../tags/gcc_4_8_2_release)
2157
+++ b/src/libstdc++-v3/doc/html/manual/mt_allocator_design.html (.../branches/gcc-4_8-branch)
2159
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2160
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design Issues</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, allocator" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /><link rel="prev" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /><link rel="next" href="mt_allocator_impl.html" title="Implementation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design Issues</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="mt_allocator.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td width="20%" align="right"> <a accesskey="n" href="mt_allocator_impl.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.mt.design_issues"></a>Design Issues</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.mt.overview"></a>Overview</h3></div></div></div><p> There are three general components to the allocator: a datum
2161
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design Issues</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, allocator" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /><link rel="prev" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /><link rel="next" href="mt_allocator_impl.html" title="Implementation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design Issues</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="mt_allocator.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td width="20%" align="right"> <a accesskey="n" href="mt_allocator_impl.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.mt.design_issues"></a>Design Issues</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.mt.overview"></a>Overview</h3></div></div></div><p> There are three general components to the allocator: a datum
2162
describing the characteristics of the memory pool, a policy class
2163
containing this pool that links instantiation types to common or
2164
individual pools, and a class inheriting from the policy class that is
2165
Index: libstdc++-v3/doc/html/manual/appendix_free.html
2166
===================================================================
2167
--- a/src/libstdc++-v3/doc/html/manual/appendix_free.html (.../tags/gcc_4_8_2_release)
2168
+++ b/src/libstdc++-v3/doc/html/manual/appendix_free.html (.../branches/gcc-4_8-branch)
2170
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2171
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix C. Free Software Needs Free Documentation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix.html" title="Part IV. Appendices" /><link rel="prev" href="backwards.html" title="Backwards Compatibility" /><link rel="next" href="appendix_gpl.html" title="Appendix D. GNU General Public License version 3" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix C.
2172
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix C. Free Software Needs Free Documentation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix.html" title="Part IV. Appendices" /><link rel="prev" href="backwards.html" title="Backwards Compatibility" /><link rel="next" href="appendix_gpl.html" title="Appendix D. GNU General Public License version 3" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix C.
2173
Free Software Needs Free Documentation
2175
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="backwards.html">Prev</a> </td><th width="60%" align="center">Part IV.
2177
</th><td width="20%" align="right"> <a accesskey="n" href="appendix_gpl.html">Next</a></td></tr></table><hr /></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.free"></a>
2178
Free Software Needs Free Documentation
2179
- <a id="idp23426192" class="indexterm"></a>
2180
+ <a id="idm269992106560" class="indexterm"></a>
2181
</h1></div></div></div><p>
2182
The biggest deficiency in free operating systems is not in the
2183
software--it is the lack of good free manuals that we can include in
2184
Index: libstdc++-v3/doc/html/manual/algorithms.html
2185
===================================================================
2186
--- a/src/libstdc++-v3/doc/html/manual/algorithms.html (.../tags/gcc_4_8_2_release)
2187
+++ b/src/libstdc++-v3/doc/html/manual/algorithms.html (.../branches/gcc-4_8-branch)
2189
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2190
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 11. Algorithms</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library, algorithm" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="iterators.html" title="Chapter 10. Iterators" /><link rel="next" href="numerics.html" title="Chapter 12. Numerics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 11.
2191
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 11. Algorithms</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library, algorithm" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="iterators.html" title="Chapter 10. Iterators" /><link rel="next" href="numerics.html" title="Chapter 12. Numerics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 11.
2194
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="iterators.html">Prev</a> </td><th width="60%" align="center">Part II.
2196
</th><td width="20%" align="right"> <a accesskey="n" href="numerics.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="std.algorithms"></a>Chapter 11.
2198
- <a id="idp16191968" class="indexterm"></a>
2199
-</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="algorithms.html#std.algorithms.mutating">Mutating</a></span></dt><dd><dl><dt><span class="section"><a href="algorithms.html#algorithms.mutating.swap"><code class="function">swap</code></a></span></dt><dd><dl><dt><span class="section"><a href="algorithms.html#algorithms.swap.specializations">Specializations</a></span></dt></dl></dd></dl></dd></dl></div><p>
2200
+ <a id="idm269999339120" class="indexterm"></a>
2201
+</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="algorithms.html#std.algorithms.mutating">Mutating</a></span></dt><dd><dl><dt><span class="section"><a href="algorithms.html#algorithms.mutating.swap"><code class="function">swap</code></a></span></dt><dd><dl><dt><span class="section"><a href="algorithms.html#algorithms.swap.specializations">Specializations</a></span></dt></dl></dd></dl></dd></dl></div><p>
2202
The neatest accomplishment of the algorithms section is that all the
2203
work is done via iterators, not containers directly. This means two
2205
Index: libstdc++-v3/doc/html/manual/appendix_porting.html
2206
===================================================================
2207
--- a/src/libstdc++-v3/doc/html/manual/appendix_porting.html (.../tags/gcc_4_8_2_release)
2208
+++ b/src/libstdc++-v3/doc/html/manual/appendix_porting.html (.../branches/gcc-4_8-branch)
2210
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2211
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix B. Porting and Maintenance</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix.html" title="Part IV. Appendices" /><link rel="prev" href="source_design_notes.html" title="Design Notes" /><link rel="next" href="documentation_hacking.html" title="Writing and Generating Documentation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix B.
2212
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix B. Porting and Maintenance</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix.html" title="Part IV. Appendices" /><link rel="prev" href="source_design_notes.html" title="Design Notes" /><link rel="next" href="documentation_hacking.html" title="Writing and Generating Documentation" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix B.
2213
Porting and Maintenance
2215
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="source_design_notes.html">Prev</a> </td><th width="60%" align="center">Part IV.
2217
</th><td width="20%" align="right"> <a accesskey="n" href="documentation_hacking.html">Next</a></td></tr></table><hr /></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.porting"></a>
2218
Porting and Maintenance
2219
- <a id="idp22008864" class="indexterm"></a>
2220
-</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="appendix_porting.html#appendix.porting.build_hacking">Configure and Build Hacking</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_porting.html#build_hacking.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.overview">Overview</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_porting.html#build_hacking.overview.basic">General Process</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.overview.map">What Comes from Where</a></span></dt></dl></dd><dt><span class="section"><a href="appendix_porting.html#build_hacking.configure">Configure</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_porting.html#build_hacking.configure.scripts">Storing Information in non-AC files (like configure.host)</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.configure.conventions">Coding and Commenting Conventions</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.configure.acinclude">The acinclude.m4 layout</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.configure.enable"><code class="constant">GLIBCXX_ENABLE</code>, the <code class="literal">--enable</code> maker</a></span></dt></dl></dd><dt><span class="section"><a href="appendix_porting.html#build_hacking.make">Make</a></span></dt></dl></dd><dt><span class="section"><a href="documentation_hacking.html">Writing and Generating Documentation</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#doc.intro">Introduction</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.generation">Generating Documentation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.doxygen">Doxygen</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#doxygen.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doxygen.rules">Generating the Doxygen Files</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doxygen.debug">Debugging Generation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doxygen.markup">Markup</a></span></dt></dl></dd><dt><span class="section"><a href="documentation_hacking.html#doc.docbook">Docbook</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#docbook.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.rules">Generating the DocBook Files</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.debug">Debugging Generation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.validation">Editing and Validation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.examples">File Organization and Basics</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.markup">Markup By Example</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="internals.html">Porting to New Hardware or Operating Systems</a></span></dt><dd><dl><dt><span class="section"><a href="internals.html#internals.os">Operating System</a></span></dt><dt><span class="section"><a href="internals.html#internals.cpu">CPU</a></span></dt><dt><span class="section"><a href="internals.html#internals.char_types">Character Types</a></span></dt><dt><span class="section"><a href="internals.html#internals.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="internals.html#internals.numeric_limits">Numeric Limits</a></span></dt><dt><span class="section"><a href="internals.html#internals.libtool">Libtool</a></span></dt></dl></dd><dt><span class="section"><a href="test.html">Test</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.organization">Organization</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.organization.layout">Directory Layout</a></span></dt><dt><span class="section"><a href="test.html#test.organization.naming">Naming Conventions</a></span></dt></dl></dd><dt><span class="section"><a href="test.html#test.run">Running the Testsuite</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.run.basic">Basic</a></span></dt><dt><span class="section"><a href="test.html#test.run.variations">Variations</a></span></dt><dt><span class="section"><a href="test.html#test.run.permutations">Permutations</a></span></dt></dl></dd><dt><span class="section"><a href="test.html#test.new_tests">Writing a new test case</a></span></dt><dt><span class="section"><a href="test.html#test.harness">Test Harness and Utilities</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.harness.dejagnu">Dejagnu Harness Details</a></span></dt><dt><span class="section"><a href="test.html#test.harness.utils">Utilities</a></span></dt></dl></dd><dt><span class="section"><a href="test.html#test.special">Special Topics</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.exception.safety">
2221
+ <a id="idm269993523968" class="indexterm"></a>
2222
+</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="appendix_porting.html#appendix.porting.build_hacking">Configure and Build Hacking</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_porting.html#build_hacking.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.overview">Overview</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_porting.html#build_hacking.overview.basic">General Process</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.overview.map">What Comes from Where</a></span></dt></dl></dd><dt><span class="section"><a href="appendix_porting.html#build_hacking.configure">Configure</a></span></dt><dd><dl><dt><span class="section"><a href="appendix_porting.html#build_hacking.configure.scripts">Storing Information in non-AC files (like configure.host)</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.configure.conventions">Coding and Commenting Conventions</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.configure.acinclude">The acinclude.m4 layout</a></span></dt><dt><span class="section"><a href="appendix_porting.html#build_hacking.configure.enable"><code class="constant">GLIBCXX_ENABLE</code>, the <code class="literal">--enable</code> maker</a></span></dt></dl></dd><dt><span class="section"><a href="appendix_porting.html#build_hacking.make">Make</a></span></dt></dl></dd><dt><span class="section"><a href="documentation_hacking.html">Writing and Generating Documentation</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#doc.intro">Introduction</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.generation">Generating Documentation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doc.doxygen">Doxygen</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#doxygen.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doxygen.rules">Generating the Doxygen Files</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doxygen.debug">Debugging Generation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#doxygen.markup">Markup</a></span></dt></dl></dd><dt><span class="section"><a href="documentation_hacking.html#doc.docbook">Docbook</a></span></dt><dd><dl><dt><span class="section"><a href="documentation_hacking.html#docbook.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.rules">Generating the DocBook Files</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.debug">Debugging Generation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.validation">Editing and Validation</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.examples">File Organization and Basics</a></span></dt><dt><span class="section"><a href="documentation_hacking.html#docbook.markup">Markup By Example</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="internals.html">Porting to New Hardware or Operating Systems</a></span></dt><dd><dl><dt><span class="section"><a href="internals.html#internals.os">Operating System</a></span></dt><dt><span class="section"><a href="internals.html#internals.cpu">CPU</a></span></dt><dt><span class="section"><a href="internals.html#internals.char_types">Character Types</a></span></dt><dt><span class="section"><a href="internals.html#internals.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="internals.html#internals.numeric_limits">Numeric Limits</a></span></dt><dt><span class="section"><a href="internals.html#internals.libtool">Libtool</a></span></dt></dl></dd><dt><span class="section"><a href="test.html">Test</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.organization">Organization</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.organization.layout">Directory Layout</a></span></dt><dt><span class="section"><a href="test.html#test.organization.naming">Naming Conventions</a></span></dt></dl></dd><dt><span class="section"><a href="test.html#test.run">Running the Testsuite</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.run.basic">Basic</a></span></dt><dt><span class="section"><a href="test.html#test.run.variations">Variations</a></span></dt><dt><span class="section"><a href="test.html#test.run.permutations">Permutations</a></span></dt></dl></dd><dt><span class="section"><a href="test.html#test.new_tests">Writing a new test case</a></span></dt><dt><span class="section"><a href="test.html#test.harness">Test Harness and Utilities</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.harness.dejagnu">Dejagnu Harness Details</a></span></dt><dt><span class="section"><a href="test.html#test.harness.utils">Utilities</a></span></dt></dl></dd><dt><span class="section"><a href="test.html#test.special">Special Topics</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.exception.safety">
2223
Qualifying Exception Safety Guarantees
2225
</a></span></dt><dd><dl><dt><span class="section"><a href="test.html#test.exception.safety.overview">Overview</a></span></dt><dt><span class="section"><a href="test.html#test.exception.safety.status">
2227
in the build directory starts the build process. The <code class="literal">all</code> target comes from the <code class="filename">Makefile</code> file, which is generated via <span class="command"><strong>configure</strong></span> from the <code class="filename">Makefile.in</code> file, which is in turn generated (via
2228
<span class="command"><strong>automake</strong></span>) from the file
2229
<code class="filename">Makefile.am</code>.
2230
-</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="build_hacking.overview.map"></a>What Comes from Where</h4></div></div></div><div class="figure"><a id="idp22035648"></a><p class="title"><strong>Figure B.1. Configure and Build File Dependencies</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/confdeps.png" align="middle" alt="Dependency Graph for Configure and Build Files" /></div></div></div><br class="figure-break" /><p>
2231
+</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="build_hacking.overview.map"></a>What Comes from Where</h4></div></div></div><div class="figure"><a id="idm269993497120"></a><p class="title"><strong>Figure B.1. Configure and Build File Dependencies</strong></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="../images/confdeps.png" align="middle" alt="Dependency Graph for Configure and Build Files" /></div></div></div><br class="figure-break" /><p>
2232
Regenerate all generated files by using the command
2233
<code class="code">autoreconf</code> at the top level of the libstdc++ source
2235
Index: libstdc++-v3/doc/html/manual/profile_mode_cost_model.html
2236
===================================================================
2237
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_cost_model.html (.../tags/gcc_4_8_2_release)
2238
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_cost_model.html (.../branches/gcc-4_8-branch)
2240
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2241
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Empirical Cost Model</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, profile" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="profile_mode_api.html" title="Extensions for Custom Containers" /><link rel="next" href="profile_mode_impl.html" title="Implementation Issues" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Empirical Cost Model</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode_api.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode_impl.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.cost_model"></a>Empirical Cost Model</h2></div></div></div><p>
2242
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Empirical Cost Model</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, profile" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="profile_mode_api.html" title="Extensions for Custom Containers" /><link rel="next" href="profile_mode_impl.html" title="Implementation Issues" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Empirical Cost Model</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode_api.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode_impl.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.cost_model"></a>Empirical Cost Model</h2></div></div></div><p>
2243
Currently, the cost model uses formulas with predefined relative weights
2244
for alternative containers or container implementations. For instance,
2245
iterating through a vector is X times faster than iterating through a list.
2246
Index: libstdc++-v3/doc/html/manual/make.html
2247
===================================================================
2248
--- a/src/libstdc++-v3/doc/html/manual/make.html (.../tags/gcc_4_8_2_release)
2249
+++ b/src/libstdc++-v3/doc/html/manual/make.html (.../branches/gcc-4_8-branch)
2251
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2252
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Make</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="setup.html" title="Chapter 2. Setup" /><link rel="prev" href="configure.html" title="Configure" /><link rel="next" href="using.html" title="Chapter 3. Using" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Make</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="configure.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Setup</th><td width="20%" align="right"> <a accesskey="n" href="using.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.setup.make"></a>Make</h2></div></div></div><p>If you have never done this before, you should read the basic
2253
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Make</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="setup.html" title="Chapter 2. Setup" /><link rel="prev" href="configure.html" title="Configure" /><link rel="next" href="using.html" title="Chapter 3. Using" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Make</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="configure.html">Prev</a> </td><th width="60%" align="center">Chapter 2. Setup</th><td width="20%" align="right"> <a accesskey="n" href="using.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.setup.make"></a>Make</h2></div></div></div><p>If you have never done this before, you should read the basic
2254
<a class="link" href="http://gcc.gnu.org/install/" target="_top">GCC Installation
2255
Instructions</a> first. Read <span class="emphasis"><em>all of them</em></span>.
2256
<span class="emphasis"><em>Twice.</em></span>
2257
Index: libstdc++-v3/doc/html/manual/pairs.html
2258
===================================================================
2259
--- a/src/libstdc++-v3/doc/html/manual/pairs.html (.../tags/gcc_4_8_2_release)
2260
+++ b/src/libstdc++-v3/doc/html/manual/pairs.html (.../branches/gcc-4_8-branch)
2262
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2263
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Pairs</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="utilities.html" title="Chapter 6. Utilities" /><link rel="prev" href="utilities.html" title="Chapter 6. Utilities" /><link rel="next" href="memory.html" title="Memory" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Pairs</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="utilities.html">Prev</a> </td><th width="60%" align="center">Chapter 6.
2264
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Pairs</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="utilities.html" title="Chapter 6. Utilities" /><link rel="prev" href="utilities.html" title="Chapter 6. Utilities" /><link rel="next" href="memory.html" title="Memory" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Pairs</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="utilities.html">Prev</a> </td><th width="60%" align="center">Chapter 6.
2267
</th><td width="20%" align="right"> <a accesskey="n" href="memory.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.util.pairs"></a>Pairs</h2></div></div></div><p>The <code class="code">pair<T1,T2></code> is a simple and handy way to
2268
Index: libstdc++-v3/doc/html/manual/test.html
2269
===================================================================
2270
--- a/src/libstdc++-v3/doc/html/manual/test.html (.../tags/gcc_4_8_2_release)
2271
+++ b/src/libstdc++-v3/doc/html/manual/test.html (.../branches/gcc-4_8-branch)
2273
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2274
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Test</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, test, testsuite, performance, conformance, ABI, exception safety" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="internals.html" title="Porting to New Hardware or Operating Systems" /><link rel="next" href="abi.html" title="ABI Policy and Guidelines" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Test</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="internals.html">Prev</a> </td><th width="60%" align="center">Appendix B.
2275
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Test</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, test, testsuite, performance, conformance, ABI, exception safety" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_porting.html" title="Appendix B. Porting and Maintenance" /><link rel="prev" href="internals.html" title="Porting to New Hardware or Operating Systems" /><link rel="next" href="abi.html" title="ABI Policy and Guidelines" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Test</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="internals.html">Prev</a> </td><th width="60%" align="center">Appendix B.
2276
Porting and Maintenance
2278
</th><td width="20%" align="right"> <a accesskey="n" href="abi.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.setup.test"></a>Test</h2></div></div></div><p>
2280
reporting functions including:
2281
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>time_counter</p></li><li class="listitem"><p>resource_counter</p></li><li class="listitem"><p>report_performance</p></li></ul></div></li></ul></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="test.special"></a>Special Topics</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="test.exception.safety"></a>
2282
Qualifying Exception Safety Guarantees
2283
- <a id="idp22628992" class="indexterm"></a>
2284
+ <a id="idm269992903504" class="indexterm"></a>
2285
</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="test.exception.safety.overview"></a>Overview</h5></div></div></div><p>
2286
Testing is composed of running a particular test sequence,
2287
and looking at what happens to the surrounding code when
2288
Index: libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html
2289
===================================================================
2290
--- a/src/libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html (.../tags/gcc_4_8_2_release)
2291
+++ b/src/libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html (.../branches/gcc-4_8-branch)
2293
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2294
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Linking</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_namespaces.html" title="Namespaces" /><link rel="next" href="using_concurrency.html" title="Concurrency" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Linking</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_namespaces.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_concurrency.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.linkage"></a>Linking</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.linkage.freestanding"></a>Almost Nothing</h3></div></div></div><p>
2295
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Linking</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_namespaces.html" title="Namespaces" /><link rel="next" href="using_concurrency.html" title="Concurrency" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Linking</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_namespaces.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_concurrency.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.linkage"></a>Linking</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.linkage.freestanding"></a>Almost Nothing</h3></div></div></div><p>
2296
Or as close as it gets: freestanding. This is a minimal
2297
configuration, with only partial support for the standard
2298
library. Assume only the following header files can be used:
2299
Index: libstdc++-v3/doc/html/manual/using_headers.html
2300
===================================================================
2301
--- a/src/libstdc++-v3/doc/html/manual/using_headers.html (.../tags/gcc_4_8_2_release)
2302
+++ b/src/libstdc++-v3/doc/html/manual/using_headers.html (.../branches/gcc-4_8-branch)
2304
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2305
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Headers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using.html" title="Chapter 3. Using" /><link rel="next" href="using_macros.html" title="Macros" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Headers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_macros.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.headers"></a>Headers</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.all"></a>Header Files</h3></div></div></div><p>
2306
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Headers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using.html" title="Chapter 3. Using" /><link rel="next" href="using_macros.html" title="Macros" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Headers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_macros.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.headers"></a>Headers</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.all"></a>Header Files</h3></div></div></div><p>
2307
The C++ standard specifies the entire set of header files that
2308
must be available to all hosted implementations. Actually, the
2309
word "files" is a misnomer, since the contents of the
2311
the 1998 standard as updated for 2003, and the current 2011 standard.
2313
C++98/03 include files. These are available in the default compilation mode, i.e. <code class="code">-std=c++98</code> or <code class="code">-std=gnu++98</code>.
2314
- </p><div class="table"><a id="idp13079360"></a><p class="title"><strong>Table 3.2. C++ 1998 Library Headers</strong></p><div class="table-contents"><table summary="C++ 1998 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="filename">complex</code></td><td align="left"><code class="filename">deque</code></td><td align="left"><code class="filename">exception</code></td></tr><tr><td align="left"><code class="filename">fstream</code></td><td align="left"><code class="filename">functional</code></td><td align="left"><code class="filename">iomanip</code></td><td align="left"><code class="filename">ios</code></td><td align="left"><code class="filename">iosfwd</code></td></tr><tr><td align="left"><code class="filename">iostream</code></td><td align="left"><code class="filename">istream</code></td><td align="left"><code class="filename">iterator</code></td><td align="left"><code class="filename">limits</code></td><td align="left"><code class="filename">list</code></td></tr><tr><td align="left"><code class="filename">locale</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="filename">memory</code></td><td align="left"><code class="filename">new</code></td><td align="left"><code class="filename">numeric</code></td></tr><tr><td align="left"><code class="filename">ostream</code></td><td align="left"><code class="filename">queue</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="filename">sstream</code></td><td align="left"><code class="filename">stack</code></td></tr><tr><td align="left"><code class="filename">stdexcept</code></td><td align="left"><code class="filename">streambuf</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="filename">utility</code></td><td align="left"><code class="filename">typeinfo</code></td></tr><tr><td align="left"><code class="filename">valarray</code></td><td align="left"><code class="filename">vector</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="idp13115840"></a><p class="title"><strong>Table 3.3. C++ 1998 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table summary="C++ 1998 Library Headers for C Library Facilities" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">cassert</code></td><td align="left"><code class="filename">cerrno</code></td><td align="left"><code class="filename">cctype</code></td><td align="left"><code class="filename">cfloat</code></td><td align="left"><code class="filename">ciso646</code></td></tr><tr><td align="left"><code class="filename">climits</code></td><td align="left"><code class="filename">clocale</code></td><td align="left"><code class="filename">cmath</code></td><td align="left"><code class="filename">csetjmp</code></td><td align="left"><code class="filename">csignal</code></td></tr><tr><td align="left"><code class="filename">cstdarg</code></td><td align="left"><code class="filename">cstddef</code></td><td align="left"><code class="filename">cstdio</code></td><td align="left"><code class="filename">cstdlib</code></td><td align="left"><code class="filename">cstring</code></td></tr><tr><td align="left"><code class="filename">ctime</code></td><td align="left"><code class="filename">cwchar</code></td><td align="left"><code class="filename">cwctype</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p>
2315
+ </p><div class="table"><a id="idm270002453792"></a><p class="title"><strong>Table 3.2. C++ 1998 Library Headers</strong></p><div class="table-contents"><table summary="C++ 1998 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="filename">complex</code></td><td align="left"><code class="filename">deque</code></td><td align="left"><code class="filename">exception</code></td></tr><tr><td align="left"><code class="filename">fstream</code></td><td align="left"><code class="filename">functional</code></td><td align="left"><code class="filename">iomanip</code></td><td align="left"><code class="filename">ios</code></td><td align="left"><code class="filename">iosfwd</code></td></tr><tr><td align="left"><code class="filename">iostream</code></td><td align="left"><code class="filename">istream</code></td><td align="left"><code class="filename">iterator</code></td><td align="left"><code class="filename">limits</code></td><td align="left"><code class="filename">list</code></td></tr><tr><td align="left"><code class="filename">locale</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="filename">memory</code></td><td align="left"><code class="filename">new</code></td><td align="left"><code class="filename">numeric</code></td></tr><tr><td align="left"><code class="filename">ostream</code></td><td align="left"><code class="filename">queue</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="filename">sstream</code></td><td align="left"><code class="filename">stack</code></td></tr><tr><td align="left"><code class="filename">stdexcept</code></td><td align="left"><code class="filename">streambuf</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="filename">utility</code></td><td align="left"><code class="filename">typeinfo</code></td></tr><tr><td align="left"><code class="filename">valarray</code></td><td align="left"><code class="filename">vector</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="idm270002417312"></a><p class="title"><strong>Table 3.3. C++ 1998 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table summary="C++ 1998 Library Headers for C Library Facilities" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">cassert</code></td><td align="left"><code class="filename">cerrno</code></td><td align="left"><code class="filename">cctype</code></td><td align="left"><code class="filename">cfloat</code></td><td align="left"><code class="filename">ciso646</code></td></tr><tr><td align="left"><code class="filename">climits</code></td><td align="left"><code class="filename">clocale</code></td><td align="left"><code class="filename">cmath</code></td><td align="left"><code class="filename">csetjmp</code></td><td align="left"><code class="filename">csignal</code></td></tr><tr><td align="left"><code class="filename">cstdarg</code></td><td align="left"><code class="filename">cstddef</code></td><td align="left"><code class="filename">cstdio</code></td><td align="left"><code class="filename">cstdlib</code></td><td align="left"><code class="filename">cstring</code></td></tr><tr><td align="left"><code class="filename">ctime</code></td><td align="left"><code class="filename">cwchar</code></td><td align="left"><code class="filename">cwctype</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p>
2316
C++11 include files. These are only available in C++11 compilation
2317
mode, i.e. <code class="literal">-std=c++11</code> or <code class="literal">-std=gnu++11</code>.
2318
-</p><p></p><div class="table"><a id="idp13140576"></a><p class="title"><strong>Table 3.4. C++ 2011 Library Headers</strong></p><div class="table-contents"><table summary="C++ 2011 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="filename">array</code></td><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="filename">chrono</code></td><td align="left"><code class="filename">complex</code></td></tr><tr><td align="left"><code class="filename">condition_variable</code></td><td align="left"><code class="filename">deque</code></td><td align="left"><code class="filename">exception</code></td><td align="left"><code class="filename">forward_list</code></td><td align="left"><code class="filename">fstream</code></td></tr><tr><td align="left"><code class="filename">functional</code></td><td align="left"><code class="filename">future</code></td><td align="left"><code class="filename">initalizer_list</code></td><td align="left"><code class="filename">iomanip</code></td><td align="left"><code class="filename">ios</code></td></tr><tr><td align="left"><code class="filename">iosfwd</code></td><td align="left"><code class="filename">iostream</code></td><td align="left"><code class="filename">istream</code></td><td align="left"><code class="filename">iterator</code></td><td align="left"><code class="filename">limits</code></td></tr><tr><td align="left"><code class="filename">list</code></td><td align="left"><code class="filename">locale</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="filename">memory</code></td><td align="left"><code class="filename">mutex</code></td></tr><tr><td align="left"><code class="filename">new</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="filename">ostream</code></td><td align="left"><code class="filename">queue</code></td><td align="left"><code class="filename">random</code></td></tr><tr><td align="left"><code class="filename">ratio</code></td><td align="left"><code class="filename">regex</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="filename">sstream</code></td><td align="left"><code class="filename">stack</code></td></tr><tr><td align="left"><code class="filename">stdexcept</code></td><td align="left"><code class="filename">streambuf</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="filename">system_error</code></td><td align="left"><code class="filename">thread</code></td></tr><tr><td align="left"><code class="filename">tuple</code></td><td align="left"><code class="filename">type_traits</code></td><td align="left"><code class="filename">typeinfo</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="filename">unordered_set</code></td></tr><tr><td align="left"><code class="filename">utility</code></td><td align="left"><code class="filename">valarray</code></td><td align="left"><code class="filename">vector</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="idp13192016"></a><p class="title"><strong>Table 3.5. C++ 2011 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table summary="C++ 2011 Library Headers for C Library Facilities" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">cassert</code></td><td align="left"><code class="filename">ccomplex</code></td><td align="left"><code class="filename">cctype</code></td><td align="left"><code class="filename">cerrno</code></td><td align="left"><code class="filename">cfenv</code></td></tr><tr><td align="left"><code class="filename">cfloat</code></td><td align="left"><code class="filename">cinttypes</code></td><td align="left"><code class="filename">ciso646</code></td><td align="left"><code class="filename">climits</code></td><td align="left"><code class="filename">clocale</code></td></tr><tr><td align="left"><code class="filename">cmath</code></td><td align="left"><code class="filename">csetjmp</code></td><td align="left"><code class="filename">csignal</code></td><td align="left"><code class="filename">cstdarg</code></td><td align="left"><code class="filename">cstdbool</code></td></tr><tr><td align="left"><code class="filename">cstddef</code></td><td align="left"><code class="filename">cstdint</code></td><td align="left"><code class="filename">cstdlib</code></td><td align="left"><code class="filename">cstdio</code></td><td align="left"><code class="filename">cstring</code></td></tr><tr><td align="left"><code class="filename">ctgmath</code></td><td align="left"><code class="filename">ctime</code></td><td align="left"><code class="filename">cuchar</code></td><td align="left"><code class="filename">cwchar</code></td><td align="left"><code class="filename">cwctype</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
2319
+</p><p></p><div class="table"><a id="idm270002392576"></a><p class="title"><strong>Table 3.4. C++ 2011 Library Headers</strong></p><div class="table-contents"><table summary="C++ 2011 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">algorithm</code></td><td align="left"><code class="filename">array</code></td><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="filename">chrono</code></td><td align="left"><code class="filename">complex</code></td></tr><tr><td align="left"><code class="filename">condition_variable</code></td><td align="left"><code class="filename">deque</code></td><td align="left"><code class="filename">exception</code></td><td align="left"><code class="filename">forward_list</code></td><td align="left"><code class="filename">fstream</code></td></tr><tr><td align="left"><code class="filename">functional</code></td><td align="left"><code class="filename">future</code></td><td align="left"><code class="filename">initalizer_list</code></td><td align="left"><code class="filename">iomanip</code></td><td align="left"><code class="filename">ios</code></td></tr><tr><td align="left"><code class="filename">iosfwd</code></td><td align="left"><code class="filename">iostream</code></td><td align="left"><code class="filename">istream</code></td><td align="left"><code class="filename">iterator</code></td><td align="left"><code class="filename">limits</code></td></tr><tr><td align="left"><code class="filename">list</code></td><td align="left"><code class="filename">locale</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="filename">memory</code></td><td align="left"><code class="filename">mutex</code></td></tr><tr><td align="left"><code class="filename">new</code></td><td align="left"><code class="filename">numeric</code></td><td align="left"><code class="filename">ostream</code></td><td align="left"><code class="filename">queue</code></td><td align="left"><code class="filename">random</code></td></tr><tr><td align="left"><code class="filename">ratio</code></td><td align="left"><code class="filename">regex</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="filename">sstream</code></td><td align="left"><code class="filename">stack</code></td></tr><tr><td align="left"><code class="filename">stdexcept</code></td><td align="left"><code class="filename">streambuf</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="filename">system_error</code></td><td align="left"><code class="filename">thread</code></td></tr><tr><td align="left"><code class="filename">tuple</code></td><td align="left"><code class="filename">type_traits</code></td><td align="left"><code class="filename">typeinfo</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="filename">unordered_set</code></td></tr><tr><td align="left"><code class="filename">utility</code></td><td align="left"><code class="filename">valarray</code></td><td align="left"><code class="filename">vector</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="idm270002341136"></a><p class="title"><strong>Table 3.5. C++ 2011 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table summary="C++ 2011 Library Headers for C Library Facilities" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">cassert</code></td><td align="left"><code class="filename">ccomplex</code></td><td align="left"><code class="filename">cctype</code></td><td align="left"><code class="filename">cerrno</code></td><td align="left"><code class="filename">cfenv</code></td></tr><tr><td align="left"><code class="filename">cfloat</code></td><td align="left"><code class="filename">cinttypes</code></td><td align="left"><code class="filename">ciso646</code></td><td align="left"><code class="filename">climits</code></td><td align="left"><code class="filename">clocale</code></td></tr><tr><td align="left"><code class="filename">cmath</code></td><td align="left"><code class="filename">csetjmp</code></td><td align="left"><code class="filename">csignal</code></td><td align="left"><code class="filename">cstdarg</code></td><td align="left"><code class="filename">cstdbool</code></td></tr><tr><td align="left"><code class="filename">cstddef</code></td><td align="left"><code class="filename">cstdint</code></td><td align="left"><code class="filename">cstdlib</code></td><td align="left"><code class="filename">cstdio</code></td><td align="left"><code class="filename">cstring</code></td></tr><tr><td align="left"><code class="filename">ctgmath</code></td><td align="left"><code class="filename">ctime</code></td><td align="left"><code class="filename">cuchar</code></td><td align="left"><code class="filename">cwchar</code></td><td align="left"><code class="filename">cwctype</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
2320
In addition, TR1 includes as:
2321
-</p><div class="table"><a id="idp13221904"></a><p class="title"><strong>Table 3.6. C++ TR 1 Library Headers</strong></p><div class="table-contents"><table summary="C++ TR 1 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">tr1/array</code></td><td align="left"><code class="filename">tr1/complex</code></td><td align="left"><code class="filename">tr1/memory</code></td><td align="left"><code class="filename">tr1/functional</code></td><td align="left"><code class="filename">tr1/random</code></td></tr><tr><td align="left"><code class="filename">tr1/regex</code></td><td align="left"><code class="filename">tr1/tuple</code></td><td align="left"><code class="filename">tr1/type_traits</code></td><td align="left"><code class="filename">tr1/unordered_map</code></td><td align="left"><code class="filename">tr1/unordered_set</code></td></tr><tr><td align="left"><code class="filename">tr1/utility</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="idp13238832"></a><p class="title"><strong>Table 3.7. C++ TR 1 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table summary="C++ TR 1 Library Headers for C Library Facilities" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">tr1/ccomplex</code></td><td align="left"><code class="filename">tr1/cfenv</code></td><td align="left"><code class="filename">tr1/cfloat</code></td><td align="left"><code class="filename">tr1/cmath</code></td><td align="left"><code class="filename">tr1/cinttypes</code></td></tr><tr><td align="left"><code class="filename">tr1/climits</code></td><td align="left"><code class="filename">tr1/cstdarg</code></td><td align="left"><code class="filename">tr1/cstdbool</code></td><td align="left"><code class="filename">tr1/cstdint</code></td><td align="left"><code class="filename">tr1/cstdio</code></td></tr><tr><td align="left"><code class="filename">tr1/cstdlib</code></td><td align="left"><code class="filename">tr1/ctgmath</code></td><td align="left"><code class="filename">tr1/ctime</code></td><td align="left"><code class="filename">tr1/cwchar</code></td><td align="left"><code class="filename">tr1/cwctype</code></td></tr></tbody></table></div></div><br class="table-break" /><p>Decimal floating-point arithmetic is available if the C++
2322
+</p><div class="table"><a id="idm270002311248"></a><p class="title"><strong>Table 3.6. C++ TR 1 Library Headers</strong></p><div class="table-contents"><table summary="C++ TR 1 Library Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">tr1/array</code></td><td align="left"><code class="filename">tr1/complex</code></td><td align="left"><code class="filename">tr1/memory</code></td><td align="left"><code class="filename">tr1/functional</code></td><td align="left"><code class="filename">tr1/random</code></td></tr><tr><td align="left"><code class="filename">tr1/regex</code></td><td align="left"><code class="filename">tr1/tuple</code></td><td align="left"><code class="filename">tr1/type_traits</code></td><td align="left"><code class="filename">tr1/unordered_map</code></td><td align="left"><code class="filename">tr1/unordered_set</code></td></tr><tr><td align="left"><code class="filename">tr1/utility</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="idm270002294320"></a><p class="title"><strong>Table 3.7. C++ TR 1 Library Headers for C Library Facilities</strong></p><div class="table-contents"><table summary="C++ TR 1 Library Headers for C Library Facilities" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">tr1/ccomplex</code></td><td align="left"><code class="filename">tr1/cfenv</code></td><td align="left"><code class="filename">tr1/cfloat</code></td><td align="left"><code class="filename">tr1/cmath</code></td><td align="left"><code class="filename">tr1/cinttypes</code></td></tr><tr><td align="left"><code class="filename">tr1/climits</code></td><td align="left"><code class="filename">tr1/cstdarg</code></td><td align="left"><code class="filename">tr1/cstdbool</code></td><td align="left"><code class="filename">tr1/cstdint</code></td><td align="left"><code class="filename">tr1/cstdio</code></td></tr><tr><td align="left"><code class="filename">tr1/cstdlib</code></td><td align="left"><code class="filename">tr1/ctgmath</code></td><td align="left"><code class="filename">tr1/ctime</code></td><td align="left"><code class="filename">tr1/cwchar</code></td><td align="left"><code class="filename">tr1/cwctype</code></td></tr></tbody></table></div></div><br class="table-break" /><p>Decimal floating-point arithmetic is available if the C++
2323
compiler supports scalar decimal floating-point types defined via
2324
<code class="code">__attribute__((mode(SD|DD|LD)))</code>.
2325
-</p><div class="table"><a id="idp13259904"></a><p class="title"><strong>Table 3.8. C++ TR 24733 Decimal Floating-Point Header</strong></p><div class="table-contents"><table summary="C++ TR 24733 Decimal Floating-Point Header" border="1"><colgroup><col align="left" class="c1" /></colgroup><tbody><tr><td align="left"><code class="filename">decimal/decimal</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
2326
+</p><div class="table"><a id="idm270002273248"></a><p class="title"><strong>Table 3.8. C++ TR 24733 Decimal Floating-Point Header</strong></p><div class="table-contents"><table summary="C++ TR 24733 Decimal Floating-Point Header" border="1"><colgroup><col align="left" class="c1" /></colgroup><tbody><tr><td align="left"><code class="filename">decimal/decimal</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
2327
Also included are files for the C++ ABI interface:
2328
-</p><div class="table"><a id="idp13265424"></a><p class="title"><strong>Table 3.9. C++ ABI Headers</strong></p><div class="table-contents"><table summary="C++ ABI Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><tbody><tr><td align="left"><code class="filename">cxxabi.h</code></td><td align="left"><code class="filename">cxxabi_forced.h</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
2329
+</p><div class="table"><a id="idm270002267728"></a><p class="title"><strong>Table 3.9. C++ ABI Headers</strong></p><div class="table-contents"><table summary="C++ ABI Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><tbody><tr><td align="left"><code class="filename">cxxabi.h</code></td><td align="left"><code class="filename">cxxabi_forced.h</code></td></tr></tbody></table></div></div><br class="table-break" /><p>
2330
And a large variety of extensions.
2331
-</p><div class="table"><a id="idp13271824"></a><p class="title"><strong>Table 3.10. Extension Headers</strong></p><div class="table-contents"><table summary="Extension Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">ext/algorithm</code></td><td align="left"><code class="filename">ext/atomicity.h</code></td><td align="left"><code class="filename">ext/array_allocator.h</code></td><td align="left"><code class="filename">ext/bitmap_allocator.h</code></td><td align="left"><code class="filename">ext/cast.h</code></td></tr><tr><td align="left"><code class="filename">ext/codecvt_specializations.h</code></td><td align="left"><code class="filename">ext/concurrence.h</code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="filename">ext/enc_filebuf.h</code></td><td align="left"><code class="filename">ext/extptr_allocator.h</code></td></tr><tr><td align="left"><code class="filename">ext/functional</code></td><td align="left"><code class="filename">ext/iterator</code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="filename">ext/memory</code></td><td align="left"><code class="filename">ext/mt_allocator.h</code></td></tr><tr><td align="left"><code class="filename">ext/new_allocator.h</code></td><td align="left"><code class="filename">ext/numeric</code></td><td align="left"><code class="filename">ext/numeric_traits.h</code></td><td align="left"><code class="filename">ext/pb_ds/assoc_container.h</code></td><td align="left"><code class="filename">ext/pb_ds/priority_queue.h</code></td></tr><tr><td align="left"><code class="filename">ext/pod_char_traits.h</code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="filename">ext/rb_tree</code></td><td align="left"><code class="filename">ext/rope</code></td><td align="left"><code class="filename">ext/slist</code></td></tr><tr><td align="left"><code class="filename">ext/stdio_filebuf.h</code></td><td align="left"><code class="filename">ext/stdio_sync_filebuf.h</code></td><td align="left"><code class="filename">ext/throw_allocator.h</code></td><td align="left"><code class="filename">ext/typelist.h</code></td><td align="left"><code class="filename">ext/type_traits.h</code></td></tr><tr><td align="left"><code class="filename">ext/vstring.h</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="idp13307552"></a><p class="title"><strong>Table 3.11. Extension Debug Headers</strong></p><div class="table-contents"><table summary="Extension Debug Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">debug/bitset</code></td><td align="left"><code class="filename">debug/deque</code></td><td align="left"><code class="filename">debug/list</code></td><td align="left"><code class="filename">debug/map</code></td><td align="left"><code class="filename">debug/set</code></td></tr><tr><td align="left"><code class="filename">debug/string</code></td><td align="left"><code class="filename">debug/unordered_map</code></td><td align="left"><code class="filename">debug/unordered_set</code></td><td align="left"><code class="filename">debug/vector</code></td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="idp13322320"></a><p class="title"><strong>Table 3.12. Extension Profile Headers</strong></p><div class="table-contents"><table summary="Extension Profile Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><tbody><tr><td align="left"><code class="filename">profile/bitset</code></td><td align="left"><code class="filename">profile/deque</code></td><td align="left"><code class="filename">profile/list</code></td><td align="left"><code class="filename">profile/map</code></td></tr><tr><td align="left"><code class="filename">profile/set</code></td><td align="left"><code class="filename">profile/unordered_map</code></td><td align="left"><code class="filename">profile/unordered_set</code></td><td align="left"><code class="filename">profile/vector</code></td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="idp13335696"></a><p class="title"><strong>Table 3.13. Extension Parallel Headers</strong></p><div class="table-contents"><table summary="Extension Parallel Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><tbody><tr><td align="left"><code class="filename">parallel/algorithm</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr></tbody></table></div></div><br class="table-break" /></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.mixing"></a>Mixing Headers</h3></div></div></div><p> A few simple rules.
2332
+</p><div class="table"><a id="idm270002261328"></a><p class="title"><strong>Table 3.10. Extension Headers</strong></p><div class="table-contents"><table summary="Extension Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">ext/algorithm</code></td><td align="left"><code class="filename">ext/atomicity.h</code></td><td align="left"><code class="filename">ext/array_allocator.h</code></td><td align="left"><code class="filename">ext/bitmap_allocator.h</code></td><td align="left"><code class="filename">ext/cast.h</code></td></tr><tr><td align="left"><code class="filename">ext/codecvt_specializations.h</code></td><td align="left"><code class="filename">ext/concurrence.h</code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="filename">ext/enc_filebuf.h</code></td><td align="left"><code class="filename">ext/extptr_allocator.h</code></td></tr><tr><td align="left"><code class="filename">ext/functional</code></td><td align="left"><code class="filename">ext/iterator</code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="filename">ext/memory</code></td><td align="left"><code class="filename">ext/mt_allocator.h</code></td></tr><tr><td align="left"><code class="filename">ext/new_allocator.h</code></td><td align="left"><code class="filename">ext/numeric</code></td><td align="left"><code class="filename">ext/numeric_traits.h</code></td><td align="left"><code class="filename">ext/pb_ds/assoc_container.h</code></td><td align="left"><code class="filename">ext/pb_ds/priority_queue.h</code></td></tr><tr><td align="left"><code class="filename">ext/pod_char_traits.h</code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="filename">ext/rb_tree</code></td><td align="left"><code class="filename">ext/rope</code></td><td align="left"><code class="filename">ext/slist</code></td></tr><tr><td align="left"><code class="filename">ext/stdio_filebuf.h</code></td><td align="left"><code class="filename">ext/stdio_sync_filebuf.h</code></td><td align="left"><code class="filename">ext/throw_allocator.h</code></td><td align="left"><code class="filename">ext/typelist.h</code></td><td align="left"><code class="filename">ext/type_traits.h</code></td></tr><tr><td align="left"><code class="filename">ext/vstring.h</code></td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="idm270002225600"></a><p class="title"><strong>Table 3.11. Extension Debug Headers</strong></p><div class="table-contents"><table summary="Extension Debug Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left"><code class="filename">debug/bitset</code></td><td align="left"><code class="filename">debug/deque</code></td><td align="left"><code class="filename">debug/list</code></td><td align="left"><code class="filename">debug/map</code></td><td align="left"><code class="filename">debug/set</code></td></tr><tr><td align="left"><code class="filename">debug/string</code></td><td align="left"><code class="filename">debug/unordered_map</code></td><td align="left"><code class="filename">debug/unordered_set</code></td><td align="left"><code class="filename">debug/vector</code></td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="idm270002210832"></a><p class="title"><strong>Table 3.12. Extension Profile Headers</strong></p><div class="table-contents"><table summary="Extension Profile Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><tbody><tr><td align="left"><code class="filename">profile/bitset</code></td><td align="left"><code class="filename">profile/deque</code></td><td align="left"><code class="filename">profile/list</code></td><td align="left"><code class="filename">profile/map</code></td></tr><tr><td align="left"><code class="filename">profile/set</code></td><td align="left"><code class="filename">profile/unordered_map</code></td><td align="left"><code class="filename">profile/unordered_set</code></td><td align="left"><code class="filename">profile/vector</code></td></tr></tbody></table></div></div><br class="table-break" /><p></p><div class="table"><a id="idm270002197456"></a><p class="title"><strong>Table 3.13. Extension Parallel Headers</strong></p><div class="table-contents"><table summary="Extension Parallel Headers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><tbody><tr><td align="left"><code class="filename">parallel/algorithm</code></td><td align="left"><code class="filename">parallel/numeric</code></td></tr></tbody></table></div></div><br class="table-break" /></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.headers.mixing"></a>Mixing Headers</h3></div></div></div><p> A few simple rules.
2333
</p><p>First, mixing different dialects of the standard headers is not
2334
possible. It's an all-or-nothing affair. Thus, code like
2335
</p><pre class="programlisting">
2336
Index: libstdc++-v3/doc/html/manual/using_namespaces.html
2337
===================================================================
2338
--- a/src/libstdc++-v3/doc/html/manual/using_namespaces.html (.../tags/gcc_4_8_2_release)
2339
+++ b/src/libstdc++-v3/doc/html/manual/using_namespaces.html (.../branches/gcc-4_8-branch)
2341
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2342
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Namespaces</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_macros.html" title="Macros" /><link rel="next" href="using_dynamic_or_shared.html" title="Linking" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Namespaces</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_macros.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_dynamic_or_shared.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.namespaces"></a>Namespaces</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.all"></a>Available Namespaces</h3></div></div></div><p> There are three main namespaces.
2343
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Namespaces</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_macros.html" title="Macros" /><link rel="next" href="using_dynamic_or_shared.html" title="Linking" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Namespaces</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_macros.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_dynamic_or_shared.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.namespaces"></a>Namespaces</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.namespaces.all"></a>Available Namespaces</h3></div></div></div><p> There are three main namespaces.
2344
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>std</p><p>The ISO C++ standards specify that "all library entities are defined
2345
within namespace std." This includes namespaces nested
2346
within <code class="code">namespace std</code>, such as <code class="code">namespace
2347
Index: libstdc++-v3/doc/html/manual/debug.html
2348
===================================================================
2349
--- a/src/libstdc++-v3/doc/html/manual/debug.html (.../tags/gcc_4_8_2_release)
2350
+++ b/src/libstdc++-v3/doc/html/manual/debug.html (.../branches/gcc-4_8-branch)
2352
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2353
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Debugging Support</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, debug" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_exceptions.html" title="Exceptions" /><link rel="next" href="std_contents.html" title="Part II. Standard Contents" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Debugging Support</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_exceptions.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="std_contents.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.debug"></a>Debugging Support</h2></div></div></div><p>
2354
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Debugging Support</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, debug" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_exceptions.html" title="Exceptions" /><link rel="next" href="std_contents.html" title="Part II. Standard Contents" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Debugging Support</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_exceptions.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="std_contents.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.debug"></a>Debugging Support</h2></div></div></div><p>
2355
There are numerous things that can be done to improve the ease with
2356
which C++ binaries are debugged when using the GNU tool chain. Here
2360
<a class="link" href="http://valgrind.org/docs/manual/hg-manual.html" target="_top">
2362
- <a class="link" href="http://code.google.com/p/data-race-test" target="_top">
2363
+ <a class="link" href="http://code.google.com/p/data-race-test/" target="_top">
2364
ThreadSanitizer</a>.
2366
With DRD, Helgrind and ThreadSanitizer you will need to define
2367
Index: libstdc++-v3/doc/html/manual/localization.html
2368
===================================================================
2369
--- a/src/libstdc++-v3/doc/html/manual/localization.html (.../tags/gcc_4_8_2_release)
2370
+++ b/src/libstdc++-v3/doc/html/manual/localization.html (.../branches/gcc-4_8-branch)
2372
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2373
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 8. Localization</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="strings.html" title="Chapter 7. Strings" /><link rel="next" href="facets.html" title="Facets" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 8.
2374
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 8. Localization</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="strings.html" title="Chapter 7. Strings" /><link rel="next" href="facets.html" title="Facets" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 8.
2377
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="strings.html">Prev</a> </td><th width="60%" align="center">Part II.
2379
</th><td width="20%" align="right"> <a accesskey="n" href="facets.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="std.localization"></a>Chapter 8.
2381
- <a id="idp15701088" class="indexterm"></a>
2382
-</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#idp15778336">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.localization.locales"></a>Locales</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.locales.locale"></a>locale</h3></div></div></div><p>
2383
+ <a id="idm269999830208" class="indexterm"></a>
2384
+</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#idm269999753024">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.localization.locales"></a>Locales</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="std.localization.locales.locale"></a>locale</h3></div></div></div><p>
2385
Describes the basic locale object, including nested
2386
classes id, facet, and the reference-counted implementation object,
2388
@@ -402,29 +402,29 @@
2389
What should non-required facet instantiations do? If the
2390
generic implementation is provided, then how to end-users
2391
provide specializations?
2392
- </p></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idp15744064"></a><p><span class="citetitle"><em class="citetitle">
2393
+ </p></li></ul></div></div><div class="bibliography"><div class="titlepage"><div><div><h4 class="title"><a id="locales.locale.biblio"></a>Bibliography</h4></div></div></div><div class="biblioentry"><a id="idm269999787232"></a><p><span class="citetitle"><em class="citetitle">
2395
</em>. </span><span class="author"><span class="firstname">Roland</span> <span class="surname">McGrath</span>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2007 FSF. </span><span class="pagenums">
2396
Chapters 6 Character Set Handling and 7 Locales and
2397
Internationalization
2398
- . </span></p></div><div class="biblioentry"><a id="idp15748832"></a><p><span class="citetitle"><em class="citetitle">
2399
+ . </span></p></div><div class="biblioentry"><a id="idm269999782464"></a><p><span class="citetitle"><em class="citetitle">
2401
- </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="idp15751920"></a><p><span class="citetitle"><em class="citetitle">
2402
+ </em>. </span><span class="author"><span class="firstname">Ulrich</span> <span class="surname">Drepper</span>. </span><span class="copyright">Copyright © 2002 . </span></p></div><div class="biblioentry"><a id="idm269999779376"></a><p><span class="citetitle"><em class="citetitle">
2403
ISO/IEC 14882:1998 Programming languages - C++
2404
- </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="idp15754208"></a><p><span class="citetitle"><em class="citetitle">
2405
+ </em>. </span><span class="copyright">Copyright © 1998 ISO. </span></p></div><div class="biblioentry"><a id="idm269999777088"></a><p><span class="citetitle"><em class="citetitle">
2406
ISO/IEC 9899:1999 Programming languages - C
2407
- </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idp15756480"></a><p><span class="title"><em>
2408
+ </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idm269999774816"></a><p><span class="title"><em>
2409
<a class="link" href="http://www.opengroup.org/austin/" target="_top">
2410
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
2412
</em>. </span><span class="copyright">Copyright © 2008
2413
The Open Group/The Institute of Electrical and Electronics
2415
- . </span></p></div><div class="biblioentry"><a id="idp15759712"></a><p><span class="citetitle"><em class="citetitle">
2416
+ . </span></p></div><div class="biblioentry"><a id="idm269999771584"></a><p><span class="citetitle"><em class="citetitle">
2417
The C++ Programming Language, Special Edition
2418
</em>. </span><span class="author"><span class="firstname">Bjarne</span> <span class="surname">Stroustrup</span>. </span><span class="copyright">Copyright © 2000 Addison Wesley, Inc.. </span><span class="pagenums">Appendix D. </span><span class="publisher"><span class="publishername">
2420
- . </span></span></p></div><div class="biblioentry"><a id="idp15764336"></a><p><span class="citetitle"><em class="citetitle">
2421
+ . </span></span></p></div><div class="biblioentry"><a id="idm269999766960"></a><p><span class="citetitle"><em class="citetitle">
2422
Standard C++ IOStreams and Locales
2423
</em>. </span><span class="subtitle">
2424
Advanced Programmer's Guide and Reference
2425
Index: libstdc++-v3/doc/html/manual/ext_algorithms.html
2426
===================================================================
2427
--- a/src/libstdc++-v3/doc/html/manual/ext_algorithms.html (.../tags/gcc_4_8_2_release)
2428
+++ b/src/libstdc++-v3/doc/html/manual/ext_algorithms.html (.../branches/gcc-4_8-branch)
2430
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2431
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 25. Algorithms</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_utilities.html" title="Chapter 24. Utilities" /><link rel="next" href="ext_numerics.html" title="Chapter 26. Numerics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 25. Algorithms</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_utilities.html">Prev</a> </td><th width="60%" align="center">Part III.
2432
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 25. Algorithms</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_utilities.html" title="Chapter 24. Utilities" /><link rel="next" href="ext_numerics.html" title="Chapter 26. Numerics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 25. Algorithms</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_utilities.html">Prev</a> </td><th width="60%" align="center">Part III.
2435
</th><td width="20%" align="right"> <a accesskey="n" href="ext_numerics.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.algorithms"></a>Chapter 25. Algorithms</h2></div></div></div><p>25.1.6 (count, count_if) is extended with two more versions of count
2436
Index: libstdc++-v3/doc/html/manual/debug_mode.html
2437
===================================================================
2438
--- a/src/libstdc++-v3/doc/html/manual/debug_mode.html (.../tags/gcc_4_8_2_release)
2439
+++ b/src/libstdc++-v3/doc/html/manual/debug_mode.html (.../branches/gcc-4_8-branch)
2441
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2442
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 17. Debug Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, debug" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_compile_checks.html" title="Chapter 16. Compile Time Checks" /><link rel="next" href="debug_mode_semantics.html" title="Semantics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 17. Debug Mode</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_compile_checks.html">Prev</a> </td><th width="60%" align="center">Part III.
2443
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 17. Debug Mode</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, debug" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="extensions.html" title="Part III. Extensions" /><link rel="prev" href="ext_compile_checks.html" title="Chapter 16. Compile Time Checks" /><link rel="next" href="debug_mode_semantics.html" title="Semantics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 17. Debug Mode</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ext_compile_checks.html">Prev</a> </td><th width="60%" align="center">Part III.
2446
-</th><td width="20%" align="right"> <a accesskey="n" href="debug_mode_semantics.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode"></a>Chapter 17. Debug Mode</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="debug_mode_semantics.html">Semantics</a></span></dt><dt><span class="section"><a href="debug_mode_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_using.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="debug_mode_using.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="debug_mode_design.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods">Methods</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.wrappers">The Wrapper Model</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.safe_iter">Safe Iterators</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.safe_seq">Safe Sequences (Containers)</a></span></dt></dl></dd><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.precond">Precondition Checking</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.coexistence">Release- and debug-mode coexistence</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#methods.coexistence.compile">Compile-time coexistence of release- and debug-mode components</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#methods.coexistence.link">Link- and run-time coexistence of release- and
2447
+</th><td width="20%" align="right"> <a accesskey="n" href="debug_mode_semantics.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.debug_mode"></a>Chapter 17. Debug Mode</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="debug_mode.html#manual.ext.debug_mode.intro">Intro</a></span></dt><dt><span class="section"><a href="debug_mode_semantics.html">Semantics</a></span></dt><dt><span class="section"><a href="debug_mode_using.html">Using</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_using.html#debug_mode.using.mode">Using the Debug Mode</a></span></dt><dt><span class="section"><a href="debug_mode_using.html#debug_mode.using.specific">Using a Specific Debug Container</a></span></dt></dl></dd><dt><span class="section"><a href="debug_mode_design.html">Design</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.goals">Goals</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods">Methods</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.wrappers">The Wrapper Model</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.safe_iter">Safe Iterators</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.safe_seq">Safe Sequences (Containers)</a></span></dt></dl></dd><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.precond">Precondition Checking</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.methods.coexistence">Release- and debug-mode coexistence</a></span></dt><dd><dl><dt><span class="section"><a href="debug_mode_design.html#methods.coexistence.compile">Compile-time coexistence of release- and debug-mode components</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#methods.coexistence.link">Link- and run-time coexistence of release- and
2448
debug-mode components</a></span></dt><dt><span class="section"><a href="debug_mode_design.html#methods.coexistence.alt">Alternatives for Coexistence</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug_mode_design.html#debug_mode.design.other">Other Implementations</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.debug_mode.intro"></a>Intro</h2></div></div></div><p>
2449
By default, libstdc++ is built with efficiency in mind, and
2450
therefore performs little or no error checking that is not
2451
Index: libstdc++-v3/doc/html/manual/profile_mode_design.html
2452
===================================================================
2453
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_design.html (.../tags/gcc_4_8_2_release)
2454
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_design.html (.../branches/gcc-4_8-branch)
2456
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2457
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, profile" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="next" href="profile_mode_api.html" title="Extensions for Custom Containers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode_api.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.design"></a>Design</h2></div></div></div><p>
2458
-</p><div class="table"><a id="idp16981200"></a><p class="title"><strong>Table 19.1. Profile Code Location</strong></p><div class="table-contents"><table summary="Profile Code Location" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">Code Location</th><th align="left">Use</th></tr></thead><tbody><tr><td align="left"><code class="code">libstdc++-v3/include/std/*</code></td><td align="left">Preprocessor code to redirect to profile extension headers.</td></tr><tr><td align="left"><code class="code">libstdc++-v3/include/profile/*</code></td><td align="left">Profile extension public headers (map, vector, ...).</td></tr><tr><td align="left"><code class="code">libstdc++-v3/include/profile/impl/*</code></td><td align="left">Profile extension internals. Implementation files are
2459
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Design</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="C++, library, profile" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="next" href="profile_mode_api.html" title="Extensions for Custom Containers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Design</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode_api.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.design"></a>Design</h2></div></div></div><p>
2460
+</p><div class="table"><a id="idm269998550064"></a><p class="title"><strong>Table 19.1. Profile Code Location</strong></p><div class="table-contents"><table summary="Profile Code Location" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">Code Location</th><th align="left">Use</th></tr></thead><tbody><tr><td align="left"><code class="code">libstdc++-v3/include/std/*</code></td><td align="left">Preprocessor code to redirect to profile extension headers.</td></tr><tr><td align="left"><code class="code">libstdc++-v3/include/profile/*</code></td><td align="left">Profile extension public headers (map, vector, ...).</td></tr><tr><td align="left"><code class="code">libstdc++-v3/include/profile/impl/*</code></td><td align="left">Profile extension internals. Implementation files are
2461
only included from <code class="code">impl/profiler.h</code>, which is the only
2462
file included from the public headers.</td></tr></tbody></table></div></div><br class="table-break" /><p>
2463
</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.design.wrapper"></a>Wrapper Model</h3></div></div></div><p>
2464
Index: libstdc++-v3/doc/html/manual/using_concurrency.html
2465
===================================================================
2466
--- a/src/libstdc++-v3/doc/html/manual/using_concurrency.html (.../tags/gcc_4_8_2_release)
2467
+++ b/src/libstdc++-v3/doc/html/manual/using_concurrency.html (.../branches/gcc-4_8-branch)
2469
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2470
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_dynamic_or_shared.html" title="Linking" /><link rel="next" href="using_exceptions.html" title="Exceptions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Concurrency</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_dynamic_or_shared.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_exceptions.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.concurrency"></a>Concurrency</h2></div></div></div><p>This section discusses issues surrounding the proper compilation
2471
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Concurrency</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="using.html" title="Chapter 3. Using" /><link rel="prev" href="using_dynamic_or_shared.html" title="Linking" /><link rel="next" href="using_exceptions.html" title="Exceptions" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Concurrency</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using_dynamic_or_shared.html">Prev</a> </td><th width="60%" align="center">Chapter 3. Using</th><td width="20%" align="right"> <a accesskey="n" href="using_exceptions.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.intro.using.concurrency"></a>Concurrency</h2></div></div></div><p>This section discusses issues surrounding the proper compilation
2472
of multithreaded applications which use the Standard C++
2473
library. This information is GCC-specific since the C++
2474
standard does not address matters of multithreaded applications.
2475
Index: libstdc++-v3/doc/html/manual/mt_allocator_impl.html
2476
===================================================================
2477
--- a/src/libstdc++-v3/doc/html/manual/mt_allocator_impl.html (.../tags/gcc_4_8_2_release)
2478
+++ b/src/libstdc++-v3/doc/html/manual/mt_allocator_impl.html (.../branches/gcc-4_8-branch)
2480
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2481
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Implementation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, allocator" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /><link rel="prev" href="mt_allocator_design.html" title="Design Issues" /><link rel="next" href="mt_allocator_ex_single.html" title="Single Thread Example" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="mt_allocator_design.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td width="20%" align="right"> <a accesskey="n" href="mt_allocator_ex_single.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.mt.impl"></a>Implementation</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.mt.tune"></a>Tunable Parameters</h3></div></div></div><p>Certain allocation parameters can be modified, or tuned. There
2482
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Implementation</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, allocator" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="mt_allocator.html" title="Chapter 20. The mt_allocator" /><link rel="prev" href="mt_allocator_design.html" title="Design Issues" /><link rel="next" href="mt_allocator_ex_single.html" title="Single Thread Example" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Implementation</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="mt_allocator_design.html">Prev</a> </td><th width="60%" align="center">Chapter 20. The mt_allocator</th><td width="20%" align="right"> <a accesskey="n" href="mt_allocator_ex_single.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="allocator.mt.impl"></a>Implementation</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="allocator.mt.tune"></a>Tunable Parameters</h3></div></div></div><p>Certain allocation parameters can be modified, or tuned. There
2483
exists a nested <code class="code">struct __pool_base::_Tune</code> that contains all
2484
these parameters, which include settings for
2485
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Alignment</p></li><li class="listitem"><p>Maximum bytes before calling <code class="code">::operator new</code> directly</p></li><li class="listitem"><p>Minimum bytes</p></li><li class="listitem"><p>Size of underlying global allocations</p></li><li class="listitem"><p>Maximum number of supported threads</p></li><li class="listitem"><p>Migration of deallocations to the global free list</p></li><li class="listitem"><p>Shunt for global <code class="code">new</code> and <code class="code">delete</code></p></li></ul></div><p>Adjusting parameters for a given instance of an allocator can only
2486
Index: libstdc++-v3/doc/html/manual/appendix_gfdl.html
2487
===================================================================
2488
--- a/src/libstdc++-v3/doc/html/manual/appendix_gfdl.html (.../tags/gcc_4_8_2_release)
2489
+++ b/src/libstdc++-v3/doc/html/manual/appendix_gfdl.html (.../branches/gcc-4_8-branch)
2491
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2492
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix E. GNU Free Documentation License</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix.html" title="Part IV. Appendices" /><link rel="prev" href="appendix_gpl.html" title="Appendix D. GNU General Public License version 3" /><link rel="next" href="../bk02.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix E. GNU Free Documentation License</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix_gpl.html">Prev</a> </td><th width="60%" align="center">Part IV.
2493
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix E. GNU Free Documentation License</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix.html" title="Part IV. Appendices" /><link rel="prev" href="appendix_gpl.html" title="Appendix D. GNU General Public License version 3" /><link rel="next" href="../bk02.html" title="" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix E. GNU Free Documentation License</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix_gpl.html">Prev</a> </td><th width="60%" align="center">Part IV.
2495
</th><td width="20%" align="right"> <a accesskey="n" href="../bk02.html">Next</a></td></tr></table><hr /></div><div class="appendix"><div class="titlepage"><div><div><h1 class="title"><a id="appendix.gfdl-1.3"></a>GNU Free Documentation License</h1></div></div></div><p>Version 1.3, 3 November 2008</p><p>
2496
Copyright © 2000, 2001, 2002, 2007, 2008
2497
Index: libstdc++-v3/doc/html/manual/containers.html
2498
===================================================================
2499
--- a/src/libstdc++-v3/doc/html/manual/containers.html (.../tags/gcc_4_8_2_release)
2500
+++ b/src/libstdc++-v3/doc/html/manual/containers.html (.../branches/gcc-4_8-branch)
2502
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2503
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 9. Containers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="facets.html" title="Facets" /><link rel="next" href="associative.html" title="Associative" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 9.
2504
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 9. Containers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="facets.html" title="Facets" /><link rel="next" href="associative.html" title="Associative" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 9.
2507
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="facets.html">Prev</a> </td><th width="60%" align="center">Part II.
2509
</th><td width="20%" align="right"> <a accesskey="n" href="associative.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="std.containers"></a>Chapter 9.
2511
- <a id="idp16037808" class="indexterm"></a>
2512
-</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="unordered_associative.html">Unordered Associative</a></span></dt><dd><dl><dt><span class="section"><a href="unordered_associative.html#containers.unordered.hash">Hash Code</a></span></dt><dd><dl><dt><span class="section"><a href="unordered_associative.html#containers.unordered.cache">Hash Code Caching Policy</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.containers.sequences"></a>Sequences</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="containers.sequences.list"></a>list</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="sequences.list.size"></a>list::size() is O(n)</h4></div></div></div><p>
2513
+ <a id="idm269999493408" class="indexterm"></a>
2514
+</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="unordered_associative.html">Unordered Associative</a></span></dt><dd><dl><dt><span class="section"><a href="unordered_associative.html#containers.unordered.hash">Hash Code</a></span></dt><dd><dl><dt><span class="section"><a href="unordered_associative.html#containers.unordered.cache">Hash Code Caching Policy</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.containers.sequences"></a>Sequences</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="containers.sequences.list"></a>list</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="sequences.list.size"></a>list::size() is O(n)</h4></div></div></div><p>
2515
Yes it is, and that's okay. This is a decision that we preserved
2516
when we imported SGI's STL implementation. The following is
2517
quoted from <a class="link" href="http://www.sgi.com/tech/stl/FAQ.html" target="_top">their FAQ</a>:
2518
Index: libstdc++-v3/doc/html/manual/io.html
2519
===================================================================
2520
--- a/src/libstdc++-v3/doc/html/manual/io.html (.../tags/gcc_4_8_2_release)
2521
+++ b/src/libstdc++-v3/doc/html/manual/io.html (.../branches/gcc-4_8-branch)
2523
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2524
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 13. Input and Output</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="numerics_and_c.html" title="Interacting with C" /><link rel="next" href="streambufs.html" title="Stream Buffers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 13.
2525
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 13. Input and Output</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="numerics_and_c.html" title="Interacting with C" /><link rel="next" href="streambufs.html" title="Stream Buffers" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 13.
2528
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="numerics_and_c.html">Prev</a> </td><th width="60%" align="center">Part II.
2530
</th><td width="20%" align="right"> <a accesskey="n" href="streambufs.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="std.io"></a>Chapter 13.
2532
- <a id="idp16257600" class="indexterm"></a>
2533
-</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="io.html#std.io.objects">Iostream Objects</a></span></dt><dt><span class="section"><a href="streambufs.html">Stream Buffers</a></span></dt><dd><dl><dt><span class="section"><a href="streambufs.html#io.streambuf.derived">Derived streambuf Classes</a></span></dt><dt><span class="section"><a href="streambufs.html#io.streambuf.buffering">Buffering</a></span></dt></dl></dd><dt><span class="section"><a href="stringstreams.html">Memory Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="stringstreams.html#std.io.memstreams.compat">Compatibility With strstream</a></span></dt></dl></dd><dt><span class="section"><a href="fstreams.html">File Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="fstreams.html#std.io.filestreams.copying_a_file">Copying a File</a></span></dt><dt><span class="section"><a href="fstreams.html#std.io.filestreams.binary">Binary Input and Output</a></span></dt></dl></dd><dt><span class="section"><a href="io_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="io_and_c.html#std.io.c.FILE">Using FILE* and file descriptors</a></span></dt><dt><span class="section"><a href="io_and_c.html#std.io.c.sync">Performance</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.io.objects"></a>Iostream Objects</h2></div></div></div><p>To minimize the time you have to wait on the compiler, it's good to
2534
+ <a id="idm269999273616" class="indexterm"></a>
2535
+</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="io.html#std.io.objects">Iostream Objects</a></span></dt><dt><span class="section"><a href="streambufs.html">Stream Buffers</a></span></dt><dd><dl><dt><span class="section"><a href="streambufs.html#io.streambuf.derived">Derived streambuf Classes</a></span></dt><dt><span class="section"><a href="streambufs.html#io.streambuf.buffering">Buffering</a></span></dt></dl></dd><dt><span class="section"><a href="stringstreams.html">Memory Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="stringstreams.html#std.io.memstreams.compat">Compatibility With strstream</a></span></dt></dl></dd><dt><span class="section"><a href="fstreams.html">File Based Streams</a></span></dt><dd><dl><dt><span class="section"><a href="fstreams.html#std.io.filestreams.copying_a_file">Copying a File</a></span></dt><dt><span class="section"><a href="fstreams.html#std.io.filestreams.binary">Binary Input and Output</a></span></dt></dl></dd><dt><span class="section"><a href="io_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="io_and_c.html#std.io.c.FILE">Using FILE* and file descriptors</a></span></dt><dt><span class="section"><a href="io_and_c.html#std.io.c.sync">Performance</a></span></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.io.objects"></a>Iostream Objects</h2></div></div></div><p>To minimize the time you have to wait on the compiler, it's good to
2536
only include the headers you really need. Many people simply include
2537
<iostream> when they don't need to -- and that can <span class="emphasis"><em>penalize
2538
your runtime as well.</em></span> Here are some tips on which header to use
2539
Index: libstdc++-v3/doc/html/manual/index.html
2540
===================================================================
2541
--- a/src/libstdc++-v3/doc/html/manual/index.html (.../tags/gcc_4_8_2_release)
2542
+++ b/src/libstdc++-v3/doc/html/manual/index.html (.../branches/gcc-4_8-branch)
2544
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2545
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library Manual</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="../index.html" title="The GNU C++ Library" /><link rel="prev" href="../index.html" title="The GNU C++ Library" /><link rel="next" href="intro.html" title="Part I. Introduction" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library Manual</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="../index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr></table><hr /></div><div class="book"><div class="titlepage"><div><div><h1 class="title"><a id="manual"></a>The GNU C++ Library Manual</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname"></span> <span class="surname"></span></h3></div><div class="author"><h3 class="author"><span class="firstname">Paolo</span> <span class="surname">Carlini</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Phil</span> <span class="surname">Edwards</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Doug</span> <span class="surname">Gregor</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Dhruv</span> <span class="surname">Matani</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jason</span> <span class="surname">Merrill</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Mark</span> <span class="surname">Mitchell</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Nathan</span> <span class="surname">Myers</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Felix</span> <span class="surname">Natter</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Stefan</span> <span class="surname">Olsson</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Silvius</span> <span class="surname">Rus</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Ami</span> <span class="surname">Tavory</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jonathan</span> <span class="surname">Wakely</span></h3></div></div></div><div><p class="copyright">Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
2546
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>The GNU C++ Library Manual</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="../index.html" title="The GNU C++ Library" /><link rel="prev" href="../index.html" title="The GNU C++ Library" /><link rel="next" href="intro.html" title="Part I. Introduction" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">The GNU C++ Library Manual</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="../index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr></table><hr /></div><div class="book"><div class="titlepage"><div><div><h1 class="title"><a id="manual"></a>The GNU C++ Library Manual</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname"></span> <span class="surname"></span></h3></div><div class="author"><h3 class="author"><span class="firstname">Paolo</span> <span class="surname">Carlini</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Phil</span> <span class="surname">Edwards</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Doug</span> <span class="surname">Gregor</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Benjamin</span> <span class="surname">Kosnik</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Dhruv</span> <span class="surname">Matani</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jason</span> <span class="surname">Merrill</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Mark</span> <span class="surname">Mitchell</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Nathan</span> <span class="surname">Myers</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Felix</span> <span class="surname">Natter</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Stefan</span> <span class="surname">Olsson</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Silvius</span> <span class="surname">Rus</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Johannes</span> <span class="surname">Singler</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Ami</span> <span class="surname">Tavory</span></h3></div><div class="author"><h3 class="author"><span class="firstname">Jonathan</span> <span class="surname">Wakely</span></h3></div></div></div><div><p class="copyright">Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
2547
<a class="link" href="http://www.fsf.org" target="_top">FSF</a>
2548
- </p></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="part"><a href="intro.html">I.
2549
+ </p></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="part"><a href="intro.html">I.
2552
</a></span></dt><dd><dl><dt><span class="chapter"><a href="status.html">1. Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#manual.intro.status.iso">Implementation Status</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#status.iso.1998">C++ 1998/2003</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.1998.status">Implementation Status</a></span></dt><dt><span class="section"><a href="status.html#iso.1998.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.2011">C++ 2011</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.2011.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr1">C++ TR1</a></span></dt><dd><dl><dt><span class="section"><a href="status.html#iso.tr1.specific">Implementation Specific Behavior</a></span></dt></dl></dd><dt><span class="section"><a href="status.html#status.iso.tr24733">C++ TR 24733</a></span></dt></dl></dd><dt><span class="section"><a href="license.html">License</a></span></dt><dd><dl><dt><span class="section"><a href="license.html#manual.intro.status.license.gpl">The Code: GPL</a></span></dt><dt><span class="section"><a href="license.html#manual.intro.status.license.fdl">The Documentation: GPL, FDL</a></span></dt></dl></dd><dt><span class="section"><a href="bugs.html">Bugs</a></span></dt><dd><dl><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.impl">Implementation Bugs</a></span></dt><dt><span class="section"><a href="bugs.html#manual.intro.status.bugs.iso">Standard Bugs</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="setup.html">2. Setup</a></span></dt><dd><dl><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></dd><dt><span class="chapter"><a href="using.html">3. Using</a></span></dt><dd><dl><dt><span class="section"><a href="using.html#manual.intro.using.flags">Command Options</a></span></dt><dt><span class="section"><a href="using_headers.html">Headers</a></span></dt><dd><dl><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.all">Header Files</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.mixing">Mixing Headers</a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.cheaders">The C Headers and <code class="code">namespace std</code></a></span></dt><dt><span class="section"><a href="using_headers.html#manual.intro.using.headers.pre">Precompiled Headers</a></span></dt></dl></dd><dt><span class="section"><a href="using_macros.html">Macros</a></span></dt><dt><span class="section"><a href="using_namespaces.html">Namespaces</a></span></dt><dd><dl><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.all">Available Namespaces</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.std">namespace std</a></span></dt><dt><span class="section"><a href="using_namespaces.html#manual.intro.using.namespaces.comp">Using Namespace Composition</a></span></dt></dl></dd><dt><span class="section"><a href="using_dynamic_or_shared.html">Linking</a></span></dt><dd><dl><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.freestanding">Almost Nothing</a></span></dt><dt><span class="section"><a href="using_dynamic_or_shared.html#manual.intro.using.linkage.dynamic">Finding Dynamic or Shared Libraries</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html">Concurrency</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.thread_safety">Thread Safety</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.atomics">Atomics</a></span></dt><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.io">IO</a></span></dt><dd><dl><dt><span class="section"><a href="using_concurrency.html#concurrency.io.structure">Structure</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.defaults">Defaults</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.future">Future</a></span></dt><dt><span class="section"><a href="using_concurrency.html#concurrency.io.alt">Alternatives</a></span></dt></dl></dd><dt><span class="section"><a href="using_concurrency.html#manual.intro.using.concurrency.containers">Containers</a></span></dt></dl></dd><dt><span class="section"><a href="using_exceptions.html">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.safety">Exception Safety</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.propagating">Exception Neutrality</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.no">Doing without</a></span></dt><dt><span class="section"><a href="using_exceptions.html#intro.using.exception.compat">Compatibility</a></span></dt><dd><dl><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.c">With <code class="literal">C</code></a></span></dt><dt><span class="section"><a href="using_exceptions.html#using.exception.compat.posix">With <code class="literal">POSIX</code> thread cancellation</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="debug.html">Debugging Support</a></span></dt><dd><dl><dt><span class="section"><a href="debug.html#debug.compiler">Using <span class="command"><strong>g++</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.req">Debug Versions of Library Binary Files</a></span></dt><dt><span class="section"><a href="debug.html#debug.memory">Memory Leak Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.races">Data Race Hunting</a></span></dt><dt><span class="section"><a href="debug.html#debug.gdb">Using <span class="command"><strong>gdb</strong></span></a></span></dt><dt><span class="section"><a href="debug.html#debug.exceptions">Tracking uncaught exceptions</a></span></dt><dt><span class="section"><a href="debug.html#debug.debug_mode">Debug Mode</a></span></dt><dt><span class="section"><a href="debug.html#debug.compile_time_checks">Compile Time Checking</a></span></dt><dt><span class="section"><a href="debug.html#debug.profile_mode">Profile-based Performance Analysis</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="part"><a href="std_contents.html">II.
2554
</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions">Exceptions</a></span></dt><dd><dl><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.api">API Reference</a></span></dt><dt><span class="section"><a href="diagnostics.html#std.diagnostics.exceptions.data">Adding Data to <code class="classname">exception</code></a></span></dt></dl></dd><dt><span class="section"><a href="concept_checking.html">Concept Checking</a></span></dt></dl></dd><dt><span class="chapter"><a href="utilities.html">6.
2557
-</a></span></dt><dd><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idp13920976">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#idp13924528">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#idp13937824">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idp15512272">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#idp15534784">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#idp15542080">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#idp15556704">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idp15573056">Examples</a></span></dt><dt><span class="section"><a href="memory.html#idp15576640">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="strings.html">7.
2558
+</a></span></dt><dd><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idm270001611968">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#idm270001608416">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#idm270001595120">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idm270000019344">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#idm269999996832">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#idm269999989536">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#idm269999974912">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idm269999958496">Examples</a></span></dt><dt><span class="section"><a href="memory.html#idm269999954912">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></dd><dt><span class="chapter"><a href="strings.html">7.
2561
</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#std.strings.string">String Classes</a></span></dt><dd><dl><dt><span class="section"><a href="strings.html#strings.string.simple">Simple Transformations</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.case">Case Sensitivity</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.character_types">Arbitrary Character Types</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.token">Tokenizing</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.shrink">Shrink to Fit</a></span></dt><dt><span class="section"><a href="strings.html#strings.string.Cstring">CString (MFC)</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="localization.html">8.
2564
-</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#idp15778336">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="containers.html">9.
2565
+</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales">Locales</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#std.localization.locales.locale">locale</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locales.locale.req">Requirements</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.design">Design</a></span></dt><dt><span class="section"><a href="localization.html#locales.locale.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="localization.html#locale.impl.c">Interacting with "C" locales</a></span></dt></dl></dd><dt><span class="section"><a href="localization.html#locales.locale.future">Future</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="facets.html">Facets</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#std.localization.facet.ctype">ctype</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.ctype.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#idm269999753024">Specializations</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.ctype.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#std.localization.facet.codecvt">codecvt</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.codecvt.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#codecvt.design.wchar_t_size"><span class="type">wchar_t</span> Size</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.unicode">Support for Unicode</a></span></dt><dt><span class="section"><a href="facets.html#codecvt.design.issues">Other Issues</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.codecvt.impl">Implementation</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.codecvt.future">Future</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#manual.localization.facet.messages">messages</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#facet.messages.req">Requirements</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.design">Design</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="facets.html#messages.impl.models">Models</a></span></dt><dt><span class="section"><a href="facets.html#messages.impl.gnu">The GNU Model</a></span></dt></dl></dd><dt><span class="section"><a href="facets.html#facet.messages.use">Use</a></span></dt><dt><span class="section"><a href="facets.html#facet.messages.future">Future</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="chapter"><a href="containers.html">9.
2568
</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#std.containers.sequences">Sequences</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#containers.sequences.list">list</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.list.size">list::size() is O(n)</a></span></dt></dl></dd><dt><span class="section"><a href="containers.html#containers.sequences.vector">vector</a></span></dt><dd><dl><dt><span class="section"><a href="containers.html#sequences.vector.management">Space Overhead Management</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="associative.html">Associative</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#containers.associative.insert_hints">Insertion Hints</a></span></dt><dt><span class="section"><a href="associative.html#containers.associative.bitset">bitset</a></span></dt><dd><dl><dt><span class="section"><a href="associative.html#associative.bitset.size_variable">Size Variable</a></span></dt><dt><span class="section"><a href="associative.html#associative.bitset.type_string">Type String</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="unordered_associative.html">Unordered Associative</a></span></dt><dd><dl><dt><span class="section"><a href="unordered_associative.html#containers.unordered.hash">Hash Code</a></span></dt><dd><dl><dt><span class="section"><a href="unordered_associative.html#containers.unordered.cache">Hash Code Caching Policy</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="containers_and_c.html">Interacting with C</a></span></dt><dd><dl><dt><span class="section"><a href="containers_and_c.html#containers.c.vs_array">Containers vs. Arrays</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="iterators.html">10.
2569
@@ -143,19 +143,19 @@
2571
</a></span></dt><dt><span class="appendix"><a href="appendix_gpl.html">D.
2572
<acronym class="acronym">GNU</acronym> General Public License version 3
2573
- </a></span></dt><dt><span class="appendix"><a href="appendix_gfdl.html">E. GNU Free Documentation License</a></span></dt></dl></dd></dl></div><div class="list-of-figures"><p><strong>List of Figures</strong></p><dl><dt>22.1. <a href="policy_data_structures.html#idp17613296">Node Invariants</a></dt><dt>22.2. <a href="policy_data_structures.html#idp17619952">Underlying Associative Data Structures</a></dt><dt>22.3. <a href="policy_data_structures.html#idp17651648">Range Iteration in Different Data Structures</a></dt><dt>22.4. <a href="policy_data_structures.html#idp17666528">Point Iteration in Hash Data Structures</a></dt><dt>22.5. <a href="policy_data_structures.html#idp17675840">Effect of erase in different underlying data structures</a></dt><dt>22.6. <a href="policy_data_structures.html#idp17743424">Underlying Priority Queue Data Structures</a></dt><dt>22.7. <a href="policy_data_structures_using.html#idp17806128">Exception Hierarchy</a></dt><dt>22.8. <a href="policy_data_structures_design.html#idp18000448">Non-unique Mapping Standard Containers</a></dt><dt>22.9. <a href="policy_data_structures_design.html#fig.pbds_embedded_lists_2">
2574
+ </a></span></dt><dt><span class="appendix"><a href="appendix_gfdl.html">E. GNU Free Documentation License</a></span></dt></dl></dd></dl></div><div class="list-of-figures"><p><strong>List of Figures</strong></p><dl><dt>22.1. <a href="policy_data_structures.html#idm269997917584">Node Invariants</a></dt><dt>22.2. <a href="policy_data_structures.html#idm269997910864">Underlying Associative Data Structures</a></dt><dt>22.3. <a href="policy_data_structures.html#idm269997879168">Range Iteration in Different Data Structures</a></dt><dt>22.4. <a href="policy_data_structures.html#idm269997864256">Point Iteration in Hash Data Structures</a></dt><dt>22.5. <a href="policy_data_structures.html#idm269997855056">Effect of erase in different underlying data structures</a></dt><dt>22.6. <a href="policy_data_structures.html#idm269997787392">Underlying Priority Queue Data Structures</a></dt><dt>22.7. <a href="policy_data_structures_using.html#idm269997724688">Exception Hierarchy</a></dt><dt>22.8. <a href="policy_data_structures_design.html#idm269997530416">Non-unique Mapping Standard Containers</a></dt><dt>22.9. <a href="policy_data_structures_design.html#fig.pbds_embedded_lists_2">
2575
Effect of embedded lists in
2576
<code class="classname">std::multimap</code>
2577
- </a></dt><dt>22.10. <a href="policy_data_structures_design.html#idp18023952">Non-unique Mapping Containers</a></dt><dt>22.11. <a href="policy_data_structures_design.html#idp18043824">Point Iterator Hierarchy</a></dt><dt>22.12. <a href="policy_data_structures_design.html#idp18057168">Invalidation Guarantee Tags Hierarchy</a></dt><dt>22.13. <a href="policy_data_structures_design.html#idp18087392">Container Tag Hierarchy</a></dt><dt>22.14. <a href="policy_data_structures_design.html#idp18127536">Hash functions, ranged-hash functions, and
2578
- range-hashing functions</a></dt><dt>22.15. <a href="policy_data_structures_design.html#idp18191968">Insert hash sequence diagram</a></dt><dt>22.16. <a href="policy_data_structures_design.html#idp18199024">Insert hash sequence diagram with a null policy</a></dt><dt>22.17. <a href="policy_data_structures_design.html#idp18215840">Hash policy class diagram</a></dt><dt>22.18. <a href="policy_data_structures_design.html#idp18234944">Balls and bins</a></dt><dt>22.19. <a href="policy_data_structures_design.html#idp18265728">Insert resize sequence diagram</a></dt><dt>22.20. <a href="policy_data_structures_design.html#idp18273504">Standard resize policy trigger sequence
2579
- diagram</a></dt><dt>22.21. <a href="policy_data_structures_design.html#idp18277664">Standard resize policy size sequence
2580
- diagram</a></dt><dt>22.22. <a href="policy_data_structures_design.html#idp18355696">Tree node invariants</a></dt><dt>22.23. <a href="policy_data_structures_design.html#idp18365136">Tree node invalidation</a></dt><dt>22.24. <a href="policy_data_structures_design.html#idp18378304">A tree and its update policy</a></dt><dt>22.25. <a href="policy_data_structures_design.html#idp18389968">Restoring node invariants</a></dt><dt>22.26. <a href="policy_data_structures_design.html#idp18398144">Insert update sequence</a></dt><dt>22.27. <a href="policy_data_structures_design.html#idp18420400">Useless update path</a></dt><dt>22.28. <a href="policy_data_structures_design.html#idp18465088">A PATRICIA trie</a></dt><dt>22.29. <a href="policy_data_structures_design.html#idp18475584">A trie and its update policy</a></dt><dt>22.30. <a href="policy_data_structures_design.html#idp18506160">A simple list</a></dt><dt>22.31. <a href="policy_data_structures_design.html#idp18511744">The counter algorithm</a></dt><dt>22.32. <a href="policy_data_structures_design.html#idp18575568">Underlying Priority-Queue Data-Structures.</a></dt><dt>22.33. <a href="policy_data_structures_design.html#idp18610544">Priority-Queue Data-Structure Tags.</a></dt><dt>B.1. <a href="appendix_porting.html#idp22035648">Configure and Build File Dependencies</a></dt></dl></div><div class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>1.1. <a href="status.html#idp452240">C++ 1998/2003 Implementation Status</a></dt><dt>1.2. <a href="status.html#idp8670848">C++ 2011 Implementation Status</a></dt><dt>1.3. <a href="status.html#idp7483200">C++ TR1 Implementation Status</a></dt><dt>1.4. <a href="status.html#idp12559072">C++ TR 24733 Implementation Status</a></dt><dt>3.1. <a href="using.html#idp13051936">C++ Command Options</a></dt><dt>3.2. <a href="using_headers.html#idp13079360">C++ 1998 Library Headers</a></dt><dt>3.3. <a href="using_headers.html#idp13115840">C++ 1998 Library Headers for C Library Facilities</a></dt><dt>3.4. <a href="using_headers.html#idp13140576">C++ 2011 Library Headers</a></dt><dt>3.5. <a href="using_headers.html#idp13192016">C++ 2011 Library Headers for C Library Facilities</a></dt><dt>3.6. <a href="using_headers.html#idp13221904">C++ TR 1 Library Headers</a></dt><dt>3.7. <a href="using_headers.html#idp13238832">C++ TR 1 Library Headers for C Library Facilities</a></dt><dt>3.8. <a href="using_headers.html#idp13259904">C++ TR 24733 Decimal Floating-Point Header</a></dt><dt>3.9. <a href="using_headers.html#idp13265424">C++ ABI Headers</a></dt><dt>3.10. <a href="using_headers.html#idp13271824">Extension Headers</a></dt><dt>3.11. <a href="using_headers.html#idp13307552">Extension Debug Headers</a></dt><dt>3.12. <a href="using_headers.html#idp13322320">Extension Profile Headers</a></dt><dt>3.13. <a href="using_headers.html#idp13335696">Extension Parallel Headers</a></dt><dt>17.1. <a href="debug_mode_using.html#idp16490400">Debugging Containers</a></dt><dt>17.2. <a href="debug_mode_using.html#idp16535296">Debugging Containers C++11</a></dt><dt>18.1. <a href="parallel_mode_using.html#idp16725920">Parallel Algorithms</a></dt><dt>19.1. <a href="profile_mode_design.html#idp16981200">Profile Code Location</a></dt><dt>19.2. <a href="profile_mode_diagnostics.html#idp17088912">Profile Diagnostics</a></dt><dt>21.1. <a href="bitmap_allocator_impl.html#idp17500848">Bitmap Allocator Memory Map</a></dt><dt>B.1. <a href="documentation_hacking.html#idp22162432">Doxygen Prerequisites</a></dt><dt>B.2. <a href="documentation_hacking.html#idp22238096">HTML to Doxygen Markup Comparison</a></dt><dt>B.3. <a href="documentation_hacking.html#idp22257536">Docbook Prerequisites</a></dt><dt>B.4. <a href="documentation_hacking.html#idp22335040">HTML to Docbook XML Markup Comparison</a></dt><dt>B.5. <a href="documentation_hacking.html#idp22359184">Docbook XML Element Use</a></dt><dt>B.6. <a href="api.html#idp23030528">Extension Allocators</a></dt><dt>B.7. <a href="api.html#idp23058160">Extension Allocators Continued</a></dt></dl></div><div class="list-of-equations"><p><strong>List of Equations</strong></p><dl><dt>22.1. <a href="policy_data_structures_design.html#idp18141344">Ranged Hash Function</a></dt><dt>22.2. <a href="policy_data_structures_design.html#idp18147232">Range-Hashing, Division Method</a></dt><dt>22.3. <a href="policy_data_structures_design.html#idp18151744">Division via Prime Modulo</a></dt><dt>22.4. <a href="policy_data_structures_design.html#idp18153568">Division via Bit Mask</a></dt><dt>22.5. <a href="policy_data_structures_design.html#idp18163200">
2581
+ </a></dt><dt>22.10. <a href="policy_data_structures_design.html#idm269997506912">Non-unique Mapping Containers</a></dt><dt>22.11. <a href="policy_data_structures_design.html#idm269997487104">Point Iterator Hierarchy</a></dt><dt>22.12. <a href="policy_data_structures_design.html#idm269997473760">Invalidation Guarantee Tags Hierarchy</a></dt><dt>22.13. <a href="policy_data_structures_design.html#idm269997443664">Container Tag Hierarchy</a></dt><dt>22.14. <a href="policy_data_structures_design.html#idm269997403584">Hash functions, ranged-hash functions, and
2582
+ range-hashing functions</a></dt><dt>22.15. <a href="policy_data_structures_design.html#idm269997339216">Insert hash sequence diagram</a></dt><dt>22.16. <a href="policy_data_structures_design.html#idm269997332160">Insert hash sequence diagram with a null policy</a></dt><dt>22.17. <a href="policy_data_structures_design.html#idm269997315408">Hash policy class diagram</a></dt><dt>22.18. <a href="policy_data_structures_design.html#idm269997296368">Balls and bins</a></dt><dt>22.19. <a href="policy_data_structures_design.html#idm269997265648">Insert resize sequence diagram</a></dt><dt>22.20. <a href="policy_data_structures_design.html#idm269997257872">Standard resize policy trigger sequence
2583
+ diagram</a></dt><dt>22.21. <a href="policy_data_structures_design.html#idm269997253712">Standard resize policy size sequence
2584
+ diagram</a></dt><dt>22.22. <a href="policy_data_structures_design.html#idm269997175616">Tree node invariants</a></dt><dt>22.23. <a href="policy_data_structures_design.html#idm269997166176">Tree node invalidation</a></dt><dt>22.24. <a href="policy_data_structures_design.html#idm269997153072">A tree and its update policy</a></dt><dt>22.25. <a href="policy_data_structures_design.html#idm269997141408">Restoring node invariants</a></dt><dt>22.26. <a href="policy_data_structures_design.html#idm269997133232">Insert update sequence</a></dt><dt>22.27. <a href="policy_data_structures_design.html#idm269997110976">Useless update path</a></dt><dt>22.28. <a href="policy_data_structures_design.html#idm269997066288">A PATRICIA trie</a></dt><dt>22.29. <a href="policy_data_structures_design.html#idm269997055856">A trie and its update policy</a></dt><dt>22.30. <a href="policy_data_structures_design.html#idm269997025344">A simple list</a></dt><dt>22.31. <a href="policy_data_structures_design.html#idm269997019760">The counter algorithm</a></dt><dt>22.32. <a href="policy_data_structures_design.html#idm269996955920">Underlying Priority-Queue Data-Structures.</a></dt><dt>22.33. <a href="policy_data_structures_design.html#idm269996920880">Priority-Queue Data-Structure Tags.</a></dt><dt>B.1. <a href="appendix_porting.html#idm269993497120">Configure and Build File Dependencies</a></dt></dl></div><div class="list-of-tables"><p><strong>List of Tables</strong></p><dl><dt>1.1. <a href="status.html#idm270008034928">C++ 1998/2003 Implementation Status</a></dt><dt>1.2. <a href="status.html#idm270007982624">C++ 2011 Implementation Status</a></dt><dt>1.3. <a href="status.html#idm270006687472">C++ TR1 Implementation Status</a></dt><dt>1.4. <a href="status.html#idm270002960368">C++ TR 24733 Implementation Status</a></dt><dt>3.1. <a href="using.html#idm270002481088">C++ Command Options</a></dt><dt>3.2. <a href="using_headers.html#idm270002453792">C++ 1998 Library Headers</a></dt><dt>3.3. <a href="using_headers.html#idm270002417312">C++ 1998 Library Headers for C Library Facilities</a></dt><dt>3.4. <a href="using_headers.html#idm270002392576">C++ 2011 Library Headers</a></dt><dt>3.5. <a href="using_headers.html#idm270002341136">C++ 2011 Library Headers for C Library Facilities</a></dt><dt>3.6. <a href="using_headers.html#idm270002311248">C++ TR 1 Library Headers</a></dt><dt>3.7. <a href="using_headers.html#idm270002294320">C++ TR 1 Library Headers for C Library Facilities</a></dt><dt>3.8. <a href="using_headers.html#idm270002273248">C++ TR 24733 Decimal Floating-Point Header</a></dt><dt>3.9. <a href="using_headers.html#idm270002267728">C++ ABI Headers</a></dt><dt>3.10. <a href="using_headers.html#idm270002261328">Extension Headers</a></dt><dt>3.11. <a href="using_headers.html#idm270002225600">Extension Debug Headers</a></dt><dt>3.12. <a href="using_headers.html#idm270002210832">Extension Profile Headers</a></dt><dt>3.13. <a href="using_headers.html#idm270002197456">Extension Parallel Headers</a></dt><dt>17.1. <a href="debug_mode_using.html#idm269999040896">Debugging Containers</a></dt><dt>17.2. <a href="debug_mode_using.html#idm269998996000">Debugging Containers C++11</a></dt><dt>18.1. <a href="parallel_mode_using.html#idm269998805216">Parallel Algorithms</a></dt><dt>19.1. <a href="profile_mode_design.html#idm269998550064">Profile Code Location</a></dt><dt>19.2. <a href="profile_mode_diagnostics.html#idm269998442544">Profile Diagnostics</a></dt><dt>21.1. <a href="bitmap_allocator_impl.html#idm269998030352">Bitmap Allocator Memory Map</a></dt><dt>B.1. <a href="documentation_hacking.html#idm269993370272">Doxygen Prerequisites</a></dt><dt>B.2. <a href="documentation_hacking.html#idm269993294592">HTML to Doxygen Markup Comparison</a></dt><dt>B.3. <a href="documentation_hacking.html#idm269993275152">Docbook Prerequisites</a></dt><dt>B.4. <a href="documentation_hacking.html#idm269993197520">HTML to Docbook XML Markup Comparison</a></dt><dt>B.5. <a href="documentation_hacking.html#idm269993173376">Docbook XML Element Use</a></dt><dt>B.6. <a href="api.html#idm269992502096">Extension Allocators</a></dt><dt>B.7. <a href="api.html#idm269992474464">Extension Allocators Continued</a></dt></dl></div><div class="list-of-equations"><p><strong>List of Equations</strong></p><dl><dt>22.1. <a href="policy_data_structures_design.html#idm269997389776">Ranged Hash Function</a></dt><dt>22.2. <a href="policy_data_structures_design.html#idm269997383888">Range-Hashing, Division Method</a></dt><dt>22.3. <a href="policy_data_structures_design.html#idm269997379376">Division via Prime Modulo</a></dt><dt>22.4. <a href="policy_data_structures_design.html#idm269997377552">Division via Bit Mask</a></dt><dt>22.5. <a href="policy_data_structures_design.html#idm269997367984">
2585
A Standard String Hash Function
2586
- </a></dt><dt>22.6. <a href="policy_data_structures_design.html#idp18169344">
2587
+ </a></dt><dt>22.6. <a href="policy_data_structures_design.html#idm269997361840">
2588
Only k String DNA Hash
2589
- </a></dt><dt>22.7. <a href="policy_data_structures_design.html#idp18240448">
2590
+ </a></dt><dt>22.7. <a href="policy_data_structures_design.html#idm269997290864">
2591
Probability of Probe Sequence of Length k
2592
- </a></dt><dt>22.8. <a href="policy_data_structures_design.html#idp18247216">
2593
+ </a></dt><dt>22.8. <a href="policy_data_structures_design.html#idm269997284096">
2594
Probability Probe Sequence in Some Bin
2595
</a></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="../index.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="intro.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">The GNU C++ Library </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Part I.
2597
Index: libstdc++-v3/doc/html/manual/numerics_and_c.html
2598
===================================================================
2599
--- a/src/libstdc++-v3/doc/html/manual/numerics_and_c.html (.../tags/gcc_4_8_2_release)
2600
+++ b/src/libstdc++-v3/doc/html/manual/numerics_and_c.html (.../branches/gcc-4_8-branch)
2602
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2603
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="numerics.html" title="Chapter 12. Numerics" /><link rel="prev" href="generalized_numeric_operations.html" title="Generalized Operations" /><link rel="next" href="io.html" title="Chapter 13. Input and Output" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="generalized_numeric_operations.html">Prev</a> </td><th width="60%" align="center">Chapter 12.
2604
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Interacting with C</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="numerics.html" title="Chapter 12. Numerics" /><link rel="prev" href="generalized_numeric_operations.html" title="Generalized Operations" /><link rel="next" href="io.html" title="Chapter 13. Input and Output" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Interacting with C</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="generalized_numeric_operations.html">Prev</a> </td><th width="60%" align="center">Chapter 12.
2607
</th><td width="20%" align="right"> <a accesskey="n" href="io.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.numerics.c"></a>Interacting with C</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="numerics.c.array"></a>Numerics vs. Arrays</h3></div></div></div><p>One of the major reasons why FORTRAN can chew through numbers so well
2608
Index: libstdc++-v3/doc/html/manual/appendix_gpl.html
2609
===================================================================
2610
--- a/src/libstdc++-v3/doc/html/manual/appendix_gpl.html (.../tags/gcc_4_8_2_release)
2611
+++ b/src/libstdc++-v3/doc/html/manual/appendix_gpl.html (.../branches/gcc-4_8-branch)
2613
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2614
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix D. GNU General Public License version 3</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix.html" title="Part IV. Appendices" /><link rel="prev" href="appendix_free.html" title="Appendix C. Free Software Needs Free Documentation" /><link rel="next" href="appendix_gfdl.html" title="Appendix E. GNU Free Documentation License" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix D.
2615
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix D. GNU General Public License version 3</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix.html" title="Part IV. Appendices" /><link rel="prev" href="appendix_free.html" title="Appendix C. Free Software Needs Free Documentation" /><link rel="next" href="appendix_gfdl.html" title="Appendix E. GNU Free Documentation License" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix D.
2616
<acronym class="acronym">GNU</acronym> General Public License version 3
2617
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix_free.html">Prev</a> </td><th width="60%" align="center">Part IV.
2621
The precise terms and conditions for copying, distribution and modification
2623
- </p><h2><a id="idp23466384"></a>
2624
+ </p><h2><a id="idm269992066368"></a>
2625
TERMS AND CONDITIONS
2626
</h2><h2><a id="gpl-3-definitions"></a>
2629
waiver of all civil liability in connection with the Program, unless a
2630
warranty or assumption of liability accompanies a copy of the Program in
2632
- </p><h2><a id="idp23565184"></a>
2633
+ </p><h2><a id="idm269991967568"></a>
2634
END OF TERMS AND CONDITIONS
2635
</h2><h2><a id="HowToApply"></a>
2636
How to Apply These Terms to Your New Programs
2637
Index: libstdc++-v3/doc/html/manual/source_code_style.html
2638
===================================================================
2639
--- a/src/libstdc++-v3/doc/html/manual/source_code_style.html (.../tags/gcc_4_8_2_release)
2640
+++ b/src/libstdc++-v3/doc/html/manual/source_code_style.html (.../branches/gcc-4_8-branch)
2642
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2643
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Coding Style</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing" /><link rel="prev" href="source_organization.html" title="Directory Layout and Source Conventions" /><link rel="next" href="source_design_notes.html" title="Design Notes" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Coding Style</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="source_organization.html">Prev</a> </td><th width="60%" align="center">Appendix A.
2644
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Coding Style</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="appendix_contributing.html" title="Appendix A. Contributing" /><link rel="prev" href="source_organization.html" title="Directory Layout and Source Conventions" /><link rel="next" href="source_design_notes.html" title="Design Notes" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Coding Style</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="source_organization.html">Prev</a> </td><th width="60%" align="center">Appendix A.
2647
</th><td width="20%" align="right"> <a accesskey="n" href="source_design_notes.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="contrib.coding_style"></a>Coding Style</h2></div></div></div><p>
2648
Index: libstdc++-v3/doc/html/manual/streambufs.html
2649
===================================================================
2650
--- a/src/libstdc++-v3/doc/html/manual/streambufs.html (.../tags/gcc_4_8_2_release)
2651
+++ b/src/libstdc++-v3/doc/html/manual/streambufs.html (.../branches/gcc-4_8-branch)
2653
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2654
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Stream Buffers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="io.html" title="Chapter 13. Input and Output" /><link rel="prev" href="io.html" title="Chapter 13. Input and Output" /><link rel="next" href="stringstreams.html" title="Memory Based Streams" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Stream Buffers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="io.html">Prev</a> </td><th width="60%" align="center">Chapter 13.
2655
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Stream Buffers</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="io.html" title="Chapter 13. Input and Output" /><link rel="prev" href="io.html" title="Chapter 13. Input and Output" /><link rel="next" href="stringstreams.html" title="Memory Based Streams" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Stream Buffers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="io.html">Prev</a> </td><th width="60%" align="center">Chapter 13.
2658
</th><td width="20%" align="right"> <a accesskey="n" href="stringstreams.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.io.streambufs"></a>Stream Buffers</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="io.streambuf.derived"></a>Derived streambuf Classes</h3></div></div></div><p>
2659
Index: libstdc++-v3/doc/html/manual/utilities.html
2660
===================================================================
2661
--- a/src/libstdc++-v3/doc/html/manual/utilities.html (.../tags/gcc_4_8_2_release)
2662
+++ b/src/libstdc++-v3/doc/html/manual/utilities.html (.../branches/gcc-4_8-branch)
2664
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2665
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 6. Utilities</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="concept_checking.html" title="Concept Checking" /><link rel="next" href="pairs.html" title="Pairs" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 6.
2666
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 6. Utilities</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.78.1" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="std_contents.html" title="Part II. Standard Contents" /><link rel="prev" href="concept_checking.html" title="Concept Checking" /><link rel="next" href="pairs.html" title="Pairs" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 6.
2669
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="concept_checking.html">Prev</a> </td><th width="60%" align="center">Part II.
2671
</th><td width="20%" align="right"> <a accesskey="n" href="pairs.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="std.util"></a>Chapter 6.
2673
- <a id="idp13862416" class="indexterm"></a>
2674
-</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idp13920976">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#idp13924528">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#idp13937824">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idp15512272">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#idp15534784">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#idp15542080">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#idp15556704">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idp15573056">Examples</a></span></dt><dt><span class="section"><a href="memory.html#idp15576640">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.util.functors"></a>Functors</h2></div></div></div><p>If you don't know what functors are, you're not alone. Many people
2675
+ <a id="idm270001670464" class="indexterm"></a>
2676
+</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="utilities.html#std.util.functors">Functors</a></span></dt><dt><span class="section"><a href="pairs.html">Pairs</a></span></dt><dt><span class="section"><a href="memory.html">Memory</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#std.util.memory.allocator">Allocators</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#allocator.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#allocator.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#allocator.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idm270001611968">Interface Design</a></span></dt><dt><span class="section"><a href="memory.html#idm270001608416">Selecting Default Allocation Policy</a></span></dt><dt><span class="section"><a href="memory.html#idm270001595120">Disabling Memory Caching</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#allocator.using">Using a Specific Allocator</a></span></dt><dt><span class="section"><a href="memory.html#allocator.custom">Custom Allocators</a></span></dt><dt><span class="section"><a href="memory.html#allocator.ext">Extension Allocators</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.auto_ptr">auto_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#auto_ptr.limitations">Limitations</a></span></dt><dt><span class="section"><a href="memory.html#auto_ptr.using">Use in Containers</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#std.util.memory.shared_ptr">shared_ptr</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#shared_ptr.req">Requirements</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.design_issues">Design Issues</a></span></dt><dt><span class="section"><a href="memory.html#shared_ptr.impl">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idm270000019344">Class Hierarchy</a></span></dt><dt><span class="section"><a href="memory.html#idm269999996832">Thread Safety</a></span></dt><dt><span class="section"><a href="memory.html#idm269999989536">Selecting Lock Policy</a></span></dt><dt><span class="section"><a href="memory.html#idm269999974912">Related functions and classes</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.using">Use</a></span></dt><dd><dl><dt><span class="section"><a href="memory.html#idm269999958496">Examples</a></span></dt><dt><span class="section"><a href="memory.html#idm269999954912">Unresolved Issues</a></span></dt></dl></dd><dt><span class="section"><a href="memory.html#shared_ptr.ack">Acknowledgments</a></span></dt></dl></dd></dl></dd><dt><span class="section"><a href="traits.html">Traits</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.util.functors"></a>Functors</h2></div></div></div><p>If you don't know what functors are, you're not alone. Many people
2677
get slightly the wrong idea. In the interest of not reinventing
2678
the wheel, we will refer you to the introduction to the functor
2679
concept written by SGI as part of their STL, in
2680
Index: libstdc++-v3/include/debug/functions.h
2681
===================================================================
2682
--- a/src/libstdc++-v3/include/debug/functions.h (.../tags/gcc_4_8_2_release)
2683
+++ b/src/libstdc++-v3/include/debug/functions.h (.../branches/gcc-4_8-branch)
2684
@@ -345,11 +345,13 @@
2685
return __check_sorted_set_aux(__first, __last, __pred, _SameType());
2688
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
2689
+ // 270. Binary search requirements overly strict
2690
+ // Determine if a sequence is partitioned w.r.t. this element.
2691
template<typename _ForwardIterator, typename _Tp>
2693
- __check_partitioned_lower_aux(_ForwardIterator __first,
2694
- _ForwardIterator __last, const _Tp& __value,
2695
- std::forward_iterator_tag)
2696
+ __check_partitioned_lower(_ForwardIterator __first,
2697
+ _ForwardIterator __last, const _Tp& __value)
2699
while (__first != __last && *__first < __value)
2701
@@ -362,38 +364,11 @@
2702
return __first == __last;
2705
- // For performance reason, as the iterator range has been validated, check on
2706
- // random access safe iterators is done using the base iterator.
2707
- template<typename _Iterator, typename _Sequence, typename _Tp>
2709
- __check_partitioned_lower_aux(
2710
- const _Safe_iterator<_Iterator, _Sequence>& __first,
2711
- const _Safe_iterator<_Iterator, _Sequence>& __last,
2712
- const _Tp& __value,
2713
- std::random_access_iterator_tag __tag)
2715
- return __check_partitioned_lower_aux(__first.base(), __last.base(),
2719
- // _GLIBCXX_RESOLVE_LIB_DEFECTS
2720
- // 270. Binary search requirements overly strict
2721
- // Determine if a sequence is partitioned w.r.t. this element.
2722
template<typename _ForwardIterator, typename _Tp>
2724
- __check_partitioned_lower(_ForwardIterator __first,
2725
+ __check_partitioned_upper(_ForwardIterator __first,
2726
_ForwardIterator __last, const _Tp& __value)
2728
- return __check_partitioned_lower_aux(__first, __last, __value,
2729
- std::__iterator_category(__first));
2732
- template<typename _ForwardIterator, typename _Tp>
2734
- __check_partitioned_upper_aux(_ForwardIterator __first,
2735
- _ForwardIterator __last, const _Tp& __value,
2736
- std::forward_iterator_tag)
2738
while (__first != __last && !(__value < *__first))
2740
if (__first != __last)
2741
@@ -405,35 +380,12 @@
2742
return __first == __last;
2745
- // For performance reason, as the iterator range has been validated, check on
2746
- // random access safe iterators is done using the base iterator.
2747
- template<typename _Iterator, typename _Sequence, typename _Tp>
2749
- __check_partitioned_upper_aux(
2750
- const _Safe_iterator<_Iterator, _Sequence>& __first,
2751
- const _Safe_iterator<_Iterator, _Sequence>& __last,
2752
- const _Tp& __value,
2753
- std::random_access_iterator_tag __tag)
2755
- return __check_partitioned_upper_aux(__first.base(), __last.base(),
2759
- template<typename _ForwardIterator, typename _Tp>
2761
- __check_partitioned_upper(_ForwardIterator __first,
2762
- _ForwardIterator __last, const _Tp& __value)
2764
- return __check_partitioned_upper_aux(__first, __last, __value,
2765
- std::__iterator_category(__first));
2768
+ // Determine if a sequence is partitioned w.r.t. this element.
2769
template<typename _ForwardIterator, typename _Tp, typename _Pred>
2771
- __check_partitioned_lower_aux(_ForwardIterator __first,
2772
- _ForwardIterator __last, const _Tp& __value,
2774
- std::forward_iterator_tag)
2775
+ __check_partitioned_lower(_ForwardIterator __first,
2776
+ _ForwardIterator __last, const _Tp& __value,
2779
while (__first != __last && bool(__pred(*__first, __value)))
2781
@@ -446,39 +398,12 @@
2782
return __first == __last;
2785
- // For performance reason, as the iterator range has been validated, check on
2786
- // random access safe iterators is done using the base iterator.
2787
- template<typename _Iterator, typename _Sequence,
2788
- typename _Tp, typename _Pred>
2790
- __check_partitioned_lower_aux(
2791
- const _Safe_iterator<_Iterator, _Sequence>& __first,
2792
- const _Safe_iterator<_Iterator, _Sequence>& __last,
2793
- const _Tp& __value, _Pred __pred,
2794
- std::random_access_iterator_tag __tag)
2796
- return __check_partitioned_lower_aux(__first.base(), __last.base(),
2797
- __value, __pred, __tag);
2800
- // Determine if a sequence is partitioned w.r.t. this element.
2801
template<typename _ForwardIterator, typename _Tp, typename _Pred>
2803
- __check_partitioned_lower(_ForwardIterator __first,
2804
+ __check_partitioned_upper(_ForwardIterator __first,
2805
_ForwardIterator __last, const _Tp& __value,
2808
- return __check_partitioned_lower_aux(__first, __last, __value, __pred,
2809
- std::__iterator_category(__first));
2812
- template<typename _ForwardIterator, typename _Tp, typename _Pred>
2814
- __check_partitioned_upper_aux(_ForwardIterator __first,
2815
- _ForwardIterator __last, const _Tp& __value,
2817
- std::forward_iterator_tag)
2819
while (__first != __last && !bool(__pred(__value, *__first)))
2821
if (__first != __last)
2822
@@ -490,31 +415,6 @@
2823
return __first == __last;
2826
- // For performance reason, as the iterator range has been validated, check on
2827
- // random access safe iterators is done using the base iterator.
2828
- template<typename _Iterator, typename _Sequence,
2829
- typename _Tp, typename _Pred>
2831
- __check_partitioned_upper_aux(
2832
- const _Safe_iterator<_Iterator, _Sequence>& __first,
2833
- const _Safe_iterator<_Iterator, _Sequence>& __last,
2834
- const _Tp& __value, _Pred __pred,
2835
- std::random_access_iterator_tag __tag)
2837
- return __check_partitioned_upper_aux(__first.base(), __last.base(),
2838
- __value, __pred, __tag);
2841
- template<typename _ForwardIterator, typename _Tp, typename _Pred>
2843
- __check_partitioned_upper(_ForwardIterator __first,
2844
- _ForwardIterator __last, const _Tp& __value,
2847
- return __check_partitioned_upper_aux(__first, __last, __value, __pred,
2848
- std::__iterator_category(__first));
2851
// Helper struct to detect random access safe iterators.
2852
template<typename _Iterator>
2853
struct __is_safe_random_iterator
2854
Index: libstdc++-v3/include/debug/macros.h
2855
===================================================================
2856
--- a/src/libstdc++-v3/include/debug/macros.h (.../tags/gcc_4_8_2_release)
2857
+++ b/src/libstdc++-v3/include/debug/macros.h (.../branches/gcc-4_8-branch)
2859
w.r.t. the value _Value. */
2860
#define __glibcxx_check_partitioned_lower(_First,_Last,_Value) \
2861
__glibcxx_check_valid_range(_First,_Last); \
2862
-_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower(_First, _Last, \
2864
+_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower( \
2865
+ __gnu_debug::__base(_First), \
2866
+ __gnu_debug::__base(_Last), _Value), \
2867
_M_message(__gnu_debug::__msg_unpartitioned) \
2868
._M_iterator(_First, #_First) \
2869
._M_iterator(_Last, #_Last) \
2872
#define __glibcxx_check_partitioned_upper(_First,_Last,_Value) \
2873
__glibcxx_check_valid_range(_First,_Last); \
2874
-_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper(_First, _Last, \
2876
+_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper( \
2877
+ __gnu_debug::__base(_First), \
2878
+ __gnu_debug::__base(_Last), _Value), \
2879
_M_message(__gnu_debug::__msg_unpartitioned) \
2880
._M_iterator(_First, #_First) \
2881
._M_iterator(_Last, #_Last) \
2883
w.r.t. the value _Value and predicate _Pred. */
2884
#define __glibcxx_check_partitioned_lower_pred(_First,_Last,_Value,_Pred) \
2885
__glibcxx_check_valid_range(_First,_Last); \
2886
-_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower(_First, _Last, \
2888
+_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower( \
2889
+ __gnu_debug::__base(_First), \
2890
+ __gnu_debug::__base(_Last), _Value, _Pred), \
2891
_M_message(__gnu_debug::__msg_unpartitioned_pred) \
2892
._M_iterator(_First, #_First) \
2893
._M_iterator(_Last, #_Last) \
2895
w.r.t. the value _Value and predicate _Pred. */
2896
#define __glibcxx_check_partitioned_upper_pred(_First,_Last,_Value,_Pred) \
2897
__glibcxx_check_valid_range(_First,_Last); \
2898
-_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper(_First, _Last, \
2900
+_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper( \
2901
+ __gnu_debug::__base(_First), \
2902
+ __gnu_debug::__base(_Last), _Value, _Pred), \
2903
_M_message(__gnu_debug::__msg_unpartitioned_pred) \
2904
._M_iterator(_First, #_First) \
2905
._M_iterator(_Last, #_Last) \
2906
Index: libstdc++-v3/include/bits/stl_algo.h
2907
===================================================================
2908
--- a/src/libstdc++-v3/include/bits/stl_algo.h (.../tags/gcc_4_8_2_release)
2909
+++ b/src/libstdc++-v3/include/bits/stl_algo.h (.../branches/gcc-4_8-branch)
2910
@@ -2279,7 +2279,7 @@
2911
_RandomAccessIterator __last)
2913
_RandomAccessIterator __mid = __first + (__last - __first) / 2;
2914
- std::__move_median_to_first(__first, __first + 1, __mid, (__last - 2));
2915
+ std::__move_median_to_first(__first, __first + 1, __mid, __last - 1);
2916
return std::__unguarded_partition(__first + 1, __last, *__first);
2919
@@ -2291,7 +2291,7 @@
2920
_RandomAccessIterator __last, _Compare __comp)
2922
_RandomAccessIterator __mid = __first + (__last - __first) / 2;
2923
- std::__move_median_to_first(__first, __first + 1, __mid, (__last - 2),
2924
+ std::__move_median_to_first(__first, __first + 1, __mid, __last - 1,
2926
return std::__unguarded_partition(__first + 1, __last, *__first, __comp);
2928
Index: libstdc++-v3/include/bits/shared_ptr_base.h
2929
===================================================================
2930
--- a/src/libstdc++-v3/include/bits/shared_ptr_base.h (.../tags/gcc_4_8_2_release)
2931
+++ b/src/libstdc++-v3/include/bits/shared_ptr_base.h (.../branches/gcc-4_8-branch)
2934
template<typename... _Args>
2935
_Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
2936
- : _M_impl(__a), _M_storage()
2939
_M_impl._M_ptr = static_cast<_Tp*>(static_cast<void*>(&_M_storage));
2940
// _GLIBCXX_RESOLVE_LIB_DEFECTS
2942
: _M_ptr(__r.get()), _M_refcount()
2944
__glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>)
2945
- auto __tmp = std::__addressof(*__r.get());
2946
+ auto __tmp = __r.get();
2947
_M_refcount = __shared_count<_Lp>(std::move(__r));
2948
__enable_shared_from_this_helper(_M_refcount, __tmp, __tmp);
2950
Index: libstdc++-v3/include/c_global/cstdio
2951
===================================================================
2952
--- a/src/libstdc++-v3/include/c_global/cstdio (.../tags/gcc_4_8_2_release)
2953
+++ b/src/libstdc++-v3/include/c_global/cstdio (.../branches/gcc-4_8-branch)
2962
Index: libstdc++-v3/ChangeLog
2963
===================================================================
2964
--- a/src/libstdc++-v3/ChangeLog (.../tags/gcc_4_8_2_release)
2965
+++ b/src/libstdc++-v3/ChangeLog (.../branches/gcc-4_8-branch)
2967
+2013-11-22 Jonathan Wakely <jwakely.gcc@gmail.com>
2969
+ * acinclude.m4 (libtool_VERSION): Bump.
2970
+ * configure: Regenerate.
2971
+ * doc/xml/manual/abi.xml: Update version information.
2973
+2013-11-05 Jonathan Wakely <jwakely.gcc@gmail.com>
2975
+ * doc/xml/manual/status_cxx2011.xml: Document aligned_union as
2978
+ * doc/xml/manual/spine.xml: Update copyright years.
2979
+ * doc/html/*: Regenerate.
2981
+2013-11-01 Paolo Carlini <paolo.carlini@oracle.com>
2983
+ PR libstdc++/58952
2984
+ * include/c_global/cstdio: Undef getchar.
2986
+2013-10-31 Jonathan Wakely <jwakely.gcc@gmail.com>
2988
+ * testsuite/20_util/shared_ptr/cons/58839.cc: Do not use
2989
+ default_delete<void>.
2991
+2013-10-30 Chris Studholme <cvs@cs.utoronto.ca>
2993
+ PR libstdc++/58912
2994
+ * include/bits/shared_ptr_base.h (_Sp_counted_ptr_inplace): Remove
2995
+ unnecessary initialization of storage buffer.
2997
+2013-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
2999
+ PR libstdc++/58839
3000
+ * include/bits/shared_ptr_base.h
3001
+ (__shared_ptr<T>::__shared_ptr(unique_ptr<U,D>&&)): Do not dereference
3003
+ * testsuite/20_util/shared_ptr/cons/58839.cc: New.
3005
+2013-10-20 Chris Jefferson <chris@bubblescope.net>
3006
+ Paolo Carlini <paolo.carlini@oracle.com>
3008
+ PR libstdc++/58800
3009
+ * include/bits/stl_algo.h (__unguarded_partition_pivot): Change
3010
+ __last - 2 to __last - 1.
3011
+ * testsuite/25_algorithms/nth_element/58800.cc: New
3013
+2013-10-16 François Dumont <fdumont@gcc.gnu.org>
3015
+ PR libstdc++/58191
3016
+ * include/debug/macros.h (__glibcxx_check_partitioned_lower): Add
3017
+ __gnu_debug::__base calls on iterators passed to internal debug
3019
+ (__glibcxx_check_partitioned_lower_pred): Likewise.
3020
+ (__glibcxx_check_partitioned_upper): Likewise.
3021
+ (__glibcxx_check_partitioned_upper_pred): Likewise.
3022
+ * include/debug/functions.h (__check_partitioned_lower):
3023
+ Remove code to detect safe iterators.
3024
+ (__check_partitioned_upper): Likewise.
3026
2013-10-16 Release Manager
3028
* GCC 4.8.2 released.
3029
Index: libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc
3030
===================================================================
3031
--- a/src/libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc (.../tags/gcc_4_8_2_release)
3032
+++ b/src/libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc (.../branches/gcc-4_8-branch)
3034
+// Copyright (C) 2013 Free Software Foundation, Inc.
3036
+// This file is part of the GNU ISO C++ Library. This library is free
3037
+// software; you can redistribute it and/or modify it under the
3038
+// terms of the GNU General Public License as published by the
3039
+// Free Software Foundation; either version 3, or (at your option)
3040
+// any later version.
3042
+// This library is distributed in the hope that it will be useful,
3043
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
3044
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3045
+// GNU General Public License for more details.
3047
+// You should have received a copy of the GNU General Public License along
3048
+// with this library; see the file COPYING3. If not see
3049
+// <http://www.gnu.org/licenses/>.
3051
+// 25.3.2 [lib.alg.nth.element]
3053
+// { dg-options "-std=gnu++11" }
3055
+#include <algorithm>
3056
+#include <testsuite_hooks.h>
3057
+#include <testsuite_iterators.h>
3059
+using __gnu_test::test_container;
3060
+using __gnu_test::random_access_iterator_wrapper;
3062
+typedef test_container<int, random_access_iterator_wrapper> Container;
3066
+ std::vector<int> v = {
3076
+ Container con(v.data(), v.data() + 7);
3078
+ std::nth_element(con.begin(), con.begin() + 3, con.end());
3086
Index: libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc
3087
===================================================================
3088
--- a/src/libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc (.../tags/gcc_4_8_2_release)
3089
+++ b/src/libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc (.../branches/gcc-4_8-branch)
3091
+// { dg-options "-std=gnu++11" }
3092
+// { dg-do compile }
3094
+// Copyright (C) 2013 Free Software Foundation, Inc.
3096
+// This file is part of the GNU ISO C++ Library. This library is free
3097
+// software; you can redistribute it and/or modify it under the
3098
+// terms of the GNU General Public License as published by the
3099
+// Free Software Foundation; either version 3, or (at your option)
3100
+// any later version.
3102
+// This library is distributed in the hope that it will be useful,
3103
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
3104
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3105
+// GNU General Public License for more details.
3107
+// You should have received a copy of the GNU General Public License along
3108
+// with this library; see the file COPYING3. If not see
3109
+// <http://www.gnu.org/licenses/>.
3116
+ void operator()(void*) const noexcept { }
3121
+ std::unique_ptr<void, D> y;
3122
+ std::shared_ptr<void> x = std::move(y);
3124
Index: libstdc++-v3/acinclude.m4
3125
===================================================================
3126
--- a/src/libstdc++-v3/acinclude.m4 (.../tags/gcc_4_8_2_release)
3127
+++ b/src/libstdc++-v3/acinclude.m4 (.../branches/gcc-4_8-branch)
3128
@@ -3266,7 +3266,7 @@
3131
# For libtool versioning info, format is CURRENT:REVISION:AGE
3132
-libtool_VERSION=6:18:0
3133
+libtool_VERSION=6:19:0
3135
# Everything parsed; figure out what files and settings to use.
3136
case $enable_symvers in
3137
Index: contrib/ChangeLog
3138
===================================================================
3139
--- a/src/contrib/ChangeLog (.../tags/gcc_4_8_2_release)
3140
+++ b/src/contrib/ChangeLog (.../branches/gcc-4_8-branch)
3142
+2013-10-21 Mike Stump <mikestump@comcast.net>
3144
+ * gcc_update (configure): Update to handle svn 1.8.1.
3146
2013-10-16 Release Manager
3148
* GCC 4.8.2 released.
3149
Index: contrib/gcc_update
3150
===================================================================
3151
--- a/src/contrib/gcc_update (.../tags/gcc_4_8_2_release)
3152
+++ b/src/contrib/gcc_update (.../branches/gcc-4_8-branch)
3156
revision=`$GCC_SVN info | awk '/Revision:/ { print $2 }'`
3157
- branch=`$GCC_SVN info | sed -ne "/URL:/ {
3158
+ branch=`$GCC_SVN info | sed -ne "/^URL:/ {
3162
Index: libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
3163
===================================================================
3164
--- a/src/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c (.../tags/gcc_4_8_2_release)
3165
+++ b/src/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c (.../branches/gcc-4_8-branch)
3167
#include <pango/pango.h>
3168
#include <pango/pangoft2.h>
3169
#include <pango/pangofc-font.h>
3170
-#include <freetype/ftglyph.h>
3171
-#include <freetype/ftoutln.h>
3172
-#include <freetype/fttypes.h>
3173
-#include <freetype/tttables.h>
3174
+#include <ft2build.h>
3175
+#include FT_GLYPH_H
3176
+#include FT_OUTLINE_H
3177
+#include FT_TYPES_H
3178
+#include FT_TRUETYPE_TABLES_H
3179
#include "gdkfont.h"
3180
#include "gtkpeer.h"
3181
#include "gnu_java_awt_peer_gtk_GdkFontPeer.h"
3182
Index: libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
3183
===================================================================
3184
--- a/src/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c (.../tags/gcc_4_8_2_release)
3185
+++ b/src/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c (.../branches/gcc-4_8-branch)
3187
#include <pango/pango.h>
3188
#include <pango/pangoft2.h>
3189
#include <pango/pangofc-font.h>
3190
-#include <freetype/ftglyph.h>
3191
-#include <freetype/ftoutln.h>
3192
+#include <ft2build.h>
3193
+#include FT_GLYPH_H
3194
+#include FT_OUTLINE_H
3196
#include "gdkfont.h"
3197
#include "gnu_java_awt_peer_gtk_FreetypeGlyphVector.h"
3198
Index: libjava/classpath/ChangeLog.gcj
3199
===================================================================
3200
--- a/src/libjava/classpath/ChangeLog.gcj (.../tags/gcc_4_8_2_release)
3201
+++ b/src/libjava/classpath/ChangeLog.gcj (.../branches/gcc-4_8-branch)
3203
+2013-11-29 Matthias Klose <doko@ubuntu.com>
3205
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c,
3206
+ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c:
3207
+ Fix freetype includes.
3209
2013-03-22 Jakub Jelinek <jakub@redhat.com>
3212
Index: libgcc/ChangeLog
3213
===================================================================
3214
--- a/src/libgcc/ChangeLog (.../tags/gcc_4_8_2_release)
3215
+++ b/src/libgcc/ChangeLog (.../branches/gcc-4_8-branch)
3217
+2013-11-10 Kai Tietz <ktietz@redhat.com>
3219
+ Back-merged from trunk
3220
+ * config/i386/cygming-crtbegin.c (__gcc_register_frame):
3221
+ Increment load-count on use of LIBGCC_SONAME DLL.
3222
+ (hmod_libgcc): New static variable to hold handle of
3223
+ LIBGCC_SONAME DLL.
3224
+ (__gcc_deregister_frame): Decrement load-count of
3225
+ LIBGCC_SONAME DLL.
3227
+2013-11-07 Uros Bizjak <ubizjak@gmail.com>
3229
+ * config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Handle
3230
+ FP_EX_DENORM. Store result to volatile location after SSE division
3231
+ to close interrupt window. Remove unneeded fwait after x87
3232
+ division since interrupt window will be closed by emitted fstp.
3233
+ Rewrite FP_EX_INEXACT handling.
3235
2013-10-16 Release Manager
3237
* GCC 4.8.2 released.
3238
Index: libgcc/config/i386/sfp-exceptions.c
3239
===================================================================
3240
--- a/src/libgcc/config/i386/sfp-exceptions.c (.../tags/gcc_4_8_2_release)
3241
+++ b/src/libgcc/config/i386/sfp-exceptions.c (.../branches/gcc-4_8-branch)
3246
+ volatile float r __attribute__ ((unused));
3247
asm volatile ("%vdivss\t{%0, %d0|%d0, %0}" : "+x" (f));
3248
+ r = f; /* Needed to trigger exception. */
3250
asm volatile ("fdiv\t{%y0, %0|%0, %y0}" : "+t" (f));
3251
- asm volatile ("fwait");
3252
+ /* No need for fwait, exception is triggered by emitted fstp. */
3255
+ if (_fex & FP_EX_DENORM)
3258
+ asm volatile ("fnstenv\t%0" : "=m" (temp));
3259
+ temp.__status_word |= FP_EX_DENORM;
3260
+ asm volatile ("fldenv\t%0" : : "m" (temp));
3261
+ asm volatile ("fwait");
3263
if (_fex & FP_EX_DIVZERO)
3265
float f = 1.0f, g = 0.0f;
3267
+ volatile float r __attribute__ ((unused));
3268
asm volatile ("%vdivss\t{%1, %d0|%d0, %1}" : "+x" (f) : "xm" (g));
3269
+ r = f; /* Needed to trigger exception. */
3271
asm volatile ("fdivs\t%1" : "+t" (f) : "m" (g));
3272
- asm volatile ("fwait");
3273
+ /* No need for fwait, exception is triggered by emitted fstp. */
3276
if (_fex & FP_EX_OVERFLOW)
3279
if (_fex & FP_EX_INEXACT)
3282
- asm volatile ("fnstenv\t%0" : "=m" (temp));
3283
- temp.__status_word |= FP_EX_INEXACT;
3284
- asm volatile ("fldenv\t%0" : : "m" (temp));
3285
- asm volatile ("fwait");
3286
+ float f = 1.0f, g = 3.0f;
3288
+ volatile float r __attribute__ ((unused));
3289
+ asm volatile ("%vdivss\t{%1, %d0|%d0, %1}" : "+x" (f) : "xm" (g));
3290
+ r = f; /* Needed to trigger exception. */
3292
+ asm volatile ("fdivs\t%1" : "+t" (f) : "m" (g));
3293
+ /* No need for fwait, exception is triggered by emitted fstp. */
3298
Index: libgcc/config/i386/cygming-crtbegin.c
3299
===================================================================
3300
--- a/src/libgcc/config/i386/cygming-crtbegin.c (.../tags/gcc_4_8_2_release)
3301
+++ b/src/libgcc/config/i386/cygming-crtbegin.c (.../branches/gcc-4_8-branch)
3305
static struct object obj;
3307
+/* Handle of libgcc's DLL reference. */
3308
+HANDLE hmod_libgcc;
3311
#if TARGET_USE_JCR_SECTION
3314
void (*register_frame_fn) (const void *, struct object *);
3315
HANDLE h = GetModuleHandle (LIBGCC_SONAME);
3318
- register_frame_fn = (void (*) (const void *, struct object *))
3319
- GetProcAddress (h, "__register_frame_info");
3321
+ /* Increasing the load-count of LIBGCC_SONAME DLL. */
3322
+ hmod_libgcc = LoadLibrary (LIBGCC_SONAME);
3323
+ register_frame_fn = (void (*) (const void *, struct object *))
3324
+ GetProcAddress (h, "__register_frame_info");
3327
register_frame_fn = __register_frame_info;
3328
if (register_frame_fn)
3330
deregister_frame_fn = __deregister_frame_info;
3331
if (deregister_frame_fn)
3332
deregister_frame_fn (__EH_FRAME_BEGIN__);
3334
+ FreeLibrary (hmod_libgcc);
3337
Index: gcc/tree-vrp.c
3338
===================================================================
3339
--- a/src/gcc/tree-vrp.c (.../tags/gcc_4_8_2_release)
3340
+++ b/src/gcc/tree-vrp.c (.../branches/gcc-4_8-branch)
3341
@@ -5271,9 +5271,13 @@
3343
else if (CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (op_def)))
3345
- /* Recurse through the type conversion. */
3346
- retval |= register_edge_assert_for_1 (gimple_assign_rhs1 (op_def),
3348
+ /* Recurse through the type conversion, unless it is a narrowing
3349
+ conversion or conversion from non-integral type. */
3350
+ tree rhs = gimple_assign_rhs1 (op_def);
3351
+ if (INTEGRAL_TYPE_P (TREE_TYPE (rhs))
3352
+ && (TYPE_PRECISION (TREE_TYPE (rhs))
3353
+ <= TYPE_PRECISION (TREE_TYPE (op))))
3354
+ retval |= register_edge_assert_for_1 (rhs, code, e, bsi);
3358
Index: gcc/loop-unswitch.c
3359
===================================================================
3360
--- a/src/gcc/loop-unswitch.c (.../tags/gcc_4_8_2_release)
3361
+++ b/src/gcc/loop-unswitch.c (.../branches/gcc-4_8-branch)
3367
for (i = 0; i < 2; i++)
3369
op[i] = XEXP (test, i);
3370
@@ -205,11 +206,15 @@
3373
op[i] = get_iv_value (&iv, const0_rtx);
3374
+ if (iv.extend != IV_UNKNOWN_EXTEND
3375
+ && iv.mode != iv.extend_mode)
3376
+ op[i] = lowpart_subreg (iv.mode, op[i], iv.extend_mode);
3377
+ if (mode == VOIDmode)
3380
+ gcc_assert (mode == iv.mode);
3383
- mode = GET_MODE (op[0]);
3384
- if (mode == VOIDmode)
3385
- mode = GET_MODE (op[1]);
3386
if (GET_MODE_CLASS (mode) == MODE_CC)
3388
if (at != BB_END (bb))
3389
Index: gcc/tree-ssa-loop-im.c
3390
===================================================================
3391
--- a/src/gcc/tree-ssa-loop-im.c (.../tags/gcc_4_8_2_release)
3392
+++ b/src/gcc/tree-ssa-loop-im.c (.../branches/gcc-4_8-branch)
3393
@@ -1190,6 +1190,67 @@
3394
fini_walk_dominator_tree (&walk_data);
3397
+/* Return true if CODE is an operation that when operating on signed
3398
+ integer types involves undefined behavior on overflow and the
3399
+ operation can be expressed with unsigned arithmetic. */
3402
+arith_code_with_undefined_signed_overflow (tree_code code)
3410
+ case POINTER_PLUS_EXPR:
3417
+/* Rewrite STMT, an assignment with a signed integer or pointer arithmetic
3418
+ operation that can be transformed to unsigned arithmetic by converting
3419
+ its operand, carrying out the operation in the corresponding unsigned
3420
+ type and converting the result back to the original type.
3422
+ Returns a sequence of statements that replace STMT and also contain
3423
+ a modified form of STMT itself. */
3426
+rewrite_to_defined_overflow (gimple stmt)
3428
+ if (dump_file && (dump_flags & TDF_DETAILS))
3430
+ fprintf (dump_file, "rewriting stmt with undefined signed "
3432
+ print_gimple_stmt (dump_file, stmt, 0, TDF_SLIM);
3435
+ tree lhs = gimple_assign_lhs (stmt);
3436
+ tree type = unsigned_type_for (TREE_TYPE (lhs));
3437
+ gimple_seq stmts = NULL;
3438
+ for (unsigned i = 1; i < gimple_num_ops (stmt); ++i)
3440
+ gimple_seq stmts2 = NULL;
3441
+ gimple_set_op (stmt, i,
3442
+ force_gimple_operand (fold_convert (type,
3443
+ gimple_op (stmt, i)),
3444
+ &stmts2, true, NULL_TREE));
3445
+ gimple_seq_add_seq (&stmts, stmts2);
3447
+ gimple_assign_set_lhs (stmt, make_ssa_name (type, stmt));
3448
+ if (gimple_assign_rhs_code (stmt) == POINTER_PLUS_EXPR)
3449
+ gimple_assign_set_rhs_code (stmt, PLUS_EXPR);
3450
+ gimple_seq_add_stmt (&stmts, stmt);
3451
+ gimple cvt = gimple_build_assign_with_ops
3452
+ (NOP_EXPR, lhs, gimple_assign_lhs (stmt), NULL_TREE);
3453
+ gimple_seq_add_stmt (&stmts, cvt);
3458
/* Hoist the statements in basic block BB out of the loops prescribed by
3459
data stored in LIM_DATA structures associated with each statement. Callback
3460
for walk_dominator_tree. */
3461
@@ -1321,7 +1382,21 @@
3464
gsi_remove (&bsi, false);
3465
- gsi_insert_on_edge (e, stmt);
3466
+ /* In case this is a stmt that is not unconditionally executed
3467
+ when the target loop header is executed and the stmt may
3468
+ invoke undefined integer or pointer overflow rewrite it to
3469
+ unsigned arithmetic. */
3470
+ if (is_gimple_assign (stmt)
3471
+ && INTEGRAL_TYPE_P (TREE_TYPE (gimple_assign_lhs (stmt)))
3472
+ && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (gimple_assign_lhs (stmt)))
3473
+ && arith_code_with_undefined_signed_overflow
3474
+ (gimple_assign_rhs_code (stmt))
3475
+ && (!ALWAYS_EXECUTED_IN (bb)
3476
+ || !(ALWAYS_EXECUTED_IN (bb) == level
3477
+ || flow_loop_nested_p (ALWAYS_EXECUTED_IN (bb), level))))
3478
+ gsi_insert_seq_on_edge (e, rewrite_to_defined_overflow (stmt));
3480
+ gsi_insert_on_edge (e, stmt);
3484
Index: gcc/tree-ssa-tail-merge.c
3485
===================================================================
3486
--- a/src/gcc/tree-ssa-tail-merge.c (.../tags/gcc_4_8_2_release)
3487
+++ b/src/gcc/tree-ssa-tail-merge.c (.../branches/gcc-4_8-branch)
3490
def_operand_p def_p;
3492
- if (gimple_has_side_effects (stmt))
3493
+ if (gimple_has_side_effects (stmt)
3494
+ || gimple_vdef (stmt) != NULL_TREE)
3497
def_p = SINGLE_SSA_DEF_OPERAND (stmt, SSA_OP_DEF);
3498
Index: gcc/cgraphbuild.c
3499
===================================================================
3500
--- a/src/gcc/cgraphbuild.c (.../tags/gcc_4_8_2_release)
3501
+++ b/src/gcc/cgraphbuild.c (.../branches/gcc-4_8-branch)
3503
decl = get_base_var (*tp);
3504
if (TREE_CODE (decl) == FUNCTION_DECL)
3506
- struct cgraph_node *node = cgraph_get_create_node (decl);
3507
+ struct cgraph_node *node = cgraph_get_create_real_symbol_node (decl);
3508
if (!ctx->only_vars)
3509
cgraph_mark_address_taken_node (node);
3510
ipa_record_reference ((symtab_node)ctx->varpool_node,
3513
struct cgraph_node *per_node;
3515
- per_node = cgraph_get_create_node (DECL_FUNCTION_PERSONALITY (node->symbol.decl));
3516
+ per_node = cgraph_get_create_real_symbol_node (DECL_FUNCTION_PERSONALITY (node->symbol.decl));
3517
ipa_record_reference ((symtab_node)node, (symtab_node)per_node, IPA_REF_ADDR, NULL);
3518
cgraph_mark_address_taken_node (per_node);
3521
addr = get_base_address (addr);
3522
if (TREE_CODE (addr) == FUNCTION_DECL)
3524
- struct cgraph_node *node = cgraph_get_create_node (addr);
3525
+ struct cgraph_node *node = cgraph_get_create_real_symbol_node (addr);
3526
cgraph_mark_address_taken_node (node);
3527
ipa_record_reference ((symtab_node)data,
3531
/* ??? This can happen on platforms with descriptors when these are
3532
directly manipulated in the code. Pretend that it's an address. */
3533
- struct cgraph_node *node = cgraph_get_create_node (t);
3534
+ struct cgraph_node *node = cgraph_get_create_real_symbol_node (t);
3535
cgraph_mark_address_taken_node (node);
3536
ipa_record_reference ((symtab_node)data,
3540
tree fn = gimple_omp_parallel_child_fn (stmt);
3541
ipa_record_reference ((symtab_node)node,
3542
- (symtab_node)cgraph_get_create_node (fn),
3543
+ (symtab_node)cgraph_get_create_real_symbol_node (fn),
3544
IPA_REF_ADDR, stmt);
3546
if (gimple_code (stmt) == GIMPLE_OMP_TASK)
3547
@@ -338,12 +338,12 @@
3548
tree fn = gimple_omp_task_child_fn (stmt);
3550
ipa_record_reference ((symtab_node)node,
3551
- (symtab_node) cgraph_get_create_node (fn),
3552
+ (symtab_node) cgraph_get_create_real_symbol_node (fn),
3553
IPA_REF_ADDR, stmt);
3554
fn = gimple_omp_task_copy_fn (stmt);
3556
ipa_record_reference ((symtab_node)node,
3557
- (symtab_node)cgraph_get_create_node (fn),
3558
+ (symtab_node)cgraph_get_create_real_symbol_node (fn),
3559
IPA_REF_ADDR, stmt);
3562
Index: gcc/c-family/ChangeLog
3563
===================================================================
3564
--- a/src/gcc/c-family/ChangeLog (.../tags/gcc_4_8_2_release)
3565
+++ b/src/gcc/c-family/ChangeLog (.../branches/gcc-4_8-branch)
3567
+2013-11-29 Jakub Jelinek <jakub@redhat.com>
3570
+ * c-common.c (get_priority): If TREE_VALUE (args) is IDENTIFIER_NODE,
3571
+ goto invalid. If it is error_mark_node, don't issue further
3574
+2013-11-04 Marek Polacek <polacek@redhat.com>
3576
+ Backport from mainline
3577
+ 2013-11-04 Marek Polacek <polacek@redhat.com>
3580
+ * c-common.c (invalid_indirection_error): Handle RO_ARROW_STAR case.
3582
2013-10-16 Release Manager
3584
* GCC 4.8.2 released.
3585
Index: gcc/c-family/c-common.c
3586
===================================================================
3587
--- a/src/gcc/c-family/c-common.c (.../tags/gcc_4_8_2_release)
3588
+++ b/src/gcc/c-family/c-common.c (.../branches/gcc-4_8-branch)
3589
@@ -6917,6 +6917,10 @@
3592
arg = TREE_VALUE (args);
3593
+ if (TREE_CODE (arg) == IDENTIFIER_NODE)
3595
+ if (arg == error_mark_node)
3596
+ return DEFAULT_INIT_PRIORITY;
3597
arg = default_conversion (arg);
3598
if (!host_integerp (arg, /*pos=*/0)
3599
|| !INTEGRAL_TYPE_P (TREE_TYPE (arg)))
3600
@@ -9763,6 +9767,11 @@
3601
"invalid type argument of %<->%> (have %qT)",
3604
+ case RO_ARROW_STAR:
3606
+ "invalid type argument of %<->*%> (have %qT)",
3609
case RO_IMPLICIT_CONVERSION:
3611
"invalid type argument of implicit conversion (have %qT)",
3613
===================================================================
3614
--- a/src/gcc/cgraph.c (.../tags/gcc_4_8_2_release)
3615
+++ b/src/gcc/cgraph.c (.../branches/gcc-4_8-branch)
3616
@@ -2596,4 +2596,47 @@
3617
FOR_EACH_FUNCTION (node)
3618
verify_cgraph_node (node);
3621
+/* Create external decl node for DECL.
3622
+ The difference i nbetween cgraph_get_create_node and
3623
+ cgraph_get_create_real_symbol_node is that cgraph_get_create_node
3624
+ may return inline clone, while cgraph_get_create_real_symbol_node
3625
+ will create a new node in this case.
3626
+ FIXME: This function should be removed once clones are put out of decl
3629
+struct cgraph_node *
3630
+cgraph_get_create_real_symbol_node (tree decl)
3632
+ struct cgraph_node *first_clone = cgraph_get_node (decl);
3633
+ struct cgraph_node *node;
3634
+ /* create symbol table node. even if inline clone exists, we can not take
3635
+ it as a target of non-inlined call. */
3636
+ node = cgraph_get_node (decl);
3637
+ if (node && !node->global.inlined_to)
3640
+ node = cgraph_create_node (decl);
3642
+ /* ok, we previously inlined the function, then removed the offline copy and
3643
+ now we want it back for external call. this can happen when devirtualizing
3644
+ while inlining function called once that happens after extern inlined and
3645
+ virtuals are already removed. in this case introduce the external node
3646
+ and make it available for call. */
3649
+ first_clone->clone_of = node;
3650
+ node->clones = first_clone;
3651
+ symtab_prevail_in_asm_name_hash ((symtab_node) node);
3652
+ symtab_insert_node_to_hashtable ((symtab_node) node);
3654
+ fprintf (dump_file, "Introduced new external node "
3655
+ "(%s/%i) and turned into root of the clone tree.\n",
3656
+ xstrdup (cgraph_node_name (node)), node->uid);
3658
+ else if (dump_file)
3659
+ fprintf (dump_file, "Introduced new external node "
3660
+ "(%s/%i).\n", xstrdup (cgraph_node_name (node)), node->uid);
3663
#include "gt-cgraph.h"
3665
===================================================================
3666
--- a/src/gcc/cgraph.h (.../tags/gcc_4_8_2_release)
3667
+++ b/src/gcc/cgraph.h (.../branches/gcc-4_8-branch)
3669
struct cgraph_node * cgraph_create_node (tree);
3670
struct cgraph_node * cgraph_create_empty_node (void);
3671
struct cgraph_node * cgraph_get_create_node (tree);
3672
+struct cgraph_node * cgraph_get_create_real_symbol_node (tree);
3673
struct cgraph_node * cgraph_same_body_alias (struct cgraph_node *, tree, tree);
3674
struct cgraph_node * cgraph_add_thunk (struct cgraph_node *, tree, tree, bool, HOST_WIDE_INT,
3675
HOST_WIDE_INT, tree, tree);
3677
===================================================================
3678
--- a/src/gcc/optabs.c (.../tags/gcc_4_8_2_release)
3679
+++ b/src/gcc/optabs.c (.../branches/gcc-4_8-branch)
3680
@@ -7035,8 +7035,7 @@
3682
create_output_operand (&ops[0], target, mode);
3683
create_fixed_operand (&ops[1], mem);
3684
- /* VAL may have been promoted to a wider mode. Shrink it if so. */
3685
- create_convert_operand_to (&ops[2], val, mode, true);
3686
+ create_input_operand (&ops[2], val, mode);
3687
create_integer_operand (&ops[3], model);
3688
if (maybe_expand_insn (icode, 4, ops))
3689
return ops[0].value;
3690
@@ -7075,8 +7074,7 @@
3691
struct expand_operand ops[3];
3692
create_output_operand (&ops[0], target, mode);
3693
create_fixed_operand (&ops[1], mem);
3694
- /* VAL may have been promoted to a wider mode. Shrink it if so. */
3695
- create_convert_operand_to (&ops[2], val, mode, true);
3696
+ create_input_operand (&ops[2], val, mode);
3697
if (maybe_expand_insn (icode, 3, ops))
3698
return ops[0].value;
3700
@@ -7118,8 +7116,6 @@
3702
if (!target || !register_operand (target, mode))
3703
target = gen_reg_rtx (mode);
3704
- if (GET_MODE (val) != VOIDmode && GET_MODE (val) != mode)
3705
- val = convert_modes (mode, GET_MODE (val), val, 1);
3706
if (expand_compare_and_swap_loop (mem, target, val, NULL_RTX))
3709
@@ -7331,8 +7327,8 @@
3710
create_output_operand (&ops[0], target_bool, bool_mode);
3711
create_output_operand (&ops[1], target_oval, mode);
3712
create_fixed_operand (&ops[2], mem);
3713
- create_convert_operand_to (&ops[3], expected, mode, true);
3714
- create_convert_operand_to (&ops[4], desired, mode, true);
3715
+ create_input_operand (&ops[3], expected, mode);
3716
+ create_input_operand (&ops[4], desired, mode);
3717
create_integer_operand (&ops[5], is_weak);
3718
create_integer_operand (&ops[6], succ_model);
3719
create_integer_operand (&ops[7], fail_model);
3720
@@ -7353,8 +7349,8 @@
3722
create_output_operand (&ops[0], target_oval, mode);
3723
create_fixed_operand (&ops[1], mem);
3724
- create_convert_operand_to (&ops[2], expected, mode, true);
3725
- create_convert_operand_to (&ops[3], desired, mode, true);
3726
+ create_input_operand (&ops[2], expected, mode);
3727
+ create_input_operand (&ops[3], desired, mode);
3728
if (!maybe_expand_insn (icode, 4, ops))
3731
Index: gcc/DATESTAMP
3732
===================================================================
3733
--- a/src/gcc/DATESTAMP (.../tags/gcc_4_8_2_release)
3734
+++ b/src/gcc/DATESTAMP (.../branches/gcc-4_8-branch)
3738
Index: gcc/configure
3739
===================================================================
3740
--- a/src/gcc/configure (.../tags/gcc_4_8_2_release)
3741
+++ b/src/gcc/configure (.../branches/gcc-4_8-branch)
3742
@@ -24263,6 +24263,43 @@
3743
$as_echo "#define HAVE_AS_SPARC4 1" >>confdefs.h
3747
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for LEON instructions" >&5
3748
+$as_echo_n "checking assembler for LEON instructions... " >&6; }
3749
+if test "${gcc_cv_as_sparc_leon+set}" = set; then :
3750
+ $as_echo_n "(cached) " >&6
3752
+ gcc_cv_as_sparc_leon=no
3753
+ if test x$gcc_cv_as != x; then
3755
+ .register %g2, #scratch
3756
+ .register %g3, #scratch
3758
+ smac %g2, %g3, %g1
3759
+ umac %g2, %g3, %g1
3760
+ cas [%g2], %g3, %g1' > conftest.s
3761
+ if { ac_try='$gcc_cv_as $gcc_cv_as_flags -Aleon -o conftest.o conftest.s >&5'
3762
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
3763
+ (eval $ac_try) 2>&5
3765
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
3766
+ test $ac_status = 0; }; }
3768
+ gcc_cv_as_sparc_leon=yes
3770
+ echo "configure: failed program was" >&5
3771
+ cat conftest.s >&5
3773
+ rm -f conftest.o conftest.s
3776
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_sparc_leon" >&5
3777
+$as_echo "$gcc_cv_as_sparc_leon" >&6; }
3778
+if test $gcc_cv_as_sparc_leon = yes; then
3780
+$as_echo "#define HAVE_AS_LEON 1" >>confdefs.h
3785
i[34567]86-*-* | x86_64-*-*)
3786
@@ -27239,8 +27276,8 @@
3787
$as_echo_n "checking for exported symbols... " >&6; }
3788
if test "x$export_sym_check" != x; then
3789
echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c
3790
- ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest > /dev/null 2>&1
3791
- if $export_sym_check conftest | grep foobar > /dev/null; then
3792
+ ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest$ac_exeext > /dev/null 2>&1
3793
+ if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then
3794
: # No need to use a flag
3795
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3796
$as_echo "yes" >&6; }
3797
@@ -27249,8 +27286,8 @@
3798
$as_echo "yes" >&6; }
3799
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -rdynamic" >&5
3800
$as_echo_n "checking for -rdynamic... " >&6; }
3801
- ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1
3802
- if $export_sym_check conftest | grep foobar > /dev/null; then
3803
+ ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest$ac_exeext > /dev/null 2>&1
3804
+ if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then
3806
pluginlibs="-rdynamic"
3808
Index: gcc/builtins.c
3809
===================================================================
3810
--- a/src/gcc/builtins.c (.../tags/gcc_4_8_2_release)
3811
+++ b/src/gcc/builtins.c (.../branches/gcc-4_8-branch)
3812
@@ -1958,6 +1958,7 @@
3813
tree fndecl = get_callee_fndecl (exp);
3814
enum machine_mode mode;
3815
bool errno_set = false;
3816
+ bool try_widening = false;
3819
if (!validate_arglist (exp, REAL_TYPE, VOID_TYPE))
3820
@@ -1969,6 +1970,7 @@
3822
CASE_FLT_FN (BUILT_IN_SQRT):
3823
errno_set = ! tree_expr_nonnegative_p (arg);
3824
+ try_widening = true;
3825
builtin_optab = sqrt_optab;
3827
CASE_FLT_FN (BUILT_IN_EXP):
3828
@@ -2025,8 +2027,10 @@
3829
if (! flag_errno_math || ! HONOR_NANS (mode))
3832
- /* Before working hard, check whether the instruction is available. */
3833
- if (optab_handler (builtin_optab, mode) != CODE_FOR_nothing
3834
+ /* Before working hard, check whether the instruction is available, but try
3835
+ to widen the mode for specific operations. */
3836
+ if ((optab_handler (builtin_optab, mode) != CODE_FOR_nothing
3837
+ || (try_widening && !excess_precision_type (TREE_TYPE (exp))))
3838
&& (!errno_set || !optimize_insn_for_size_p ()))
3840
rtx result = gen_reg_rtx (mode);
3841
Index: gcc/fold-const.c
3842
===================================================================
3843
--- a/src/gcc/fold-const.c (.../tags/gcc_4_8_2_release)
3844
+++ b/src/gcc/fold-const.c (.../branches/gcc-4_8-branch)
3845
@@ -2664,10 +2664,11 @@
3847
/* Handle operand 2 the same as for ARRAY_REF. Operand 0
3848
may be NULL when we're called to compare MEM_EXPRs. */
3849
- if (!OP_SAME_WITH_NULL (0))
3850
+ if (!OP_SAME_WITH_NULL (0)
3853
flags &= ~OEP_CONSTANT_ADDRESS_OF;
3854
- return OP_SAME (1) && OP_SAME_WITH_NULL (2);
3855
+ return OP_SAME_WITH_NULL (2);
3859
@@ -10927,6 +10928,13 @@
3860
fold_build2_loc (loc, MULT_EXPR, type,
3861
build_int_cst (type, 2) , arg1));
3863
+ /* ((T) (X /[ex] C)) * C cancels out if the conversion is
3864
+ sign-changing only. */
3865
+ if (TREE_CODE (arg1) == INTEGER_CST
3866
+ && TREE_CODE (arg0) == EXACT_DIV_EXPR
3867
+ && operand_equal_p (arg1, TREE_OPERAND (arg0, 1), 0))
3868
+ return fold_convert_loc (loc, type, TREE_OPERAND (arg0, 0));
3870
strict_overflow_p = false;
3871
if (TREE_CODE (arg1) == INTEGER_CST
3872
&& 0 != (tem = extract_muldiv (op0, arg1, code, NULL_TREE,
3873
Index: gcc/ChangeLog
3874
===================================================================
3875
--- a/src/gcc/ChangeLog (.../tags/gcc_4_8_2_release)
3876
+++ b/src/gcc/ChangeLog (.../branches/gcc-4_8-branch)
3878
+2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3880
+ Backport from mainline
3881
+ 2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3883
+ * config/arm/iterators.md (vrint_conds): New int attribute.
3884
+ * config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute.
3885
+ (smax<mode>3): Likewise.
3886
+ (smin<mode>3): Likewise.
3888
+2013-11-19 Uros Bizjak <ubizjak@gmail.com>
3890
+ Backport from mainline
3891
+ 2013-11-27 Uros Bizjak <ubizjak@gmail.com>
3892
+ Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3895
+ * gcc.target/i386/xop-frczX.c: New test.
3897
+2013-11-28 Terry Guo <terry.guo@arm.com>
3899
+ Backport mainline r205391
3900
+ 2013-11-26 Terry Guo <terry.guo@arm.com>
3902
+ * config/arm/arm.c (require_pic_register): Handle high pic base
3903
+ register for thumb-1.
3904
+ (arm_load_pic_register): Also initialize high pic base register.
3905
+ * doc/invoke.texi: Update documentation for option -mpic-register.
3907
+2013-11-27 Jakub Jelinek <jakub@redhat.com>
3909
+ Backported from mainline
3910
+ 2013-11-26 Jakub Jelinek <jakub@redhat.com>
3912
+ PR tree-optimization/59014
3913
+ * tree-vrp.c (register_edge_assert_for_1): Don't look
3914
+ through conversions from non-integral types or through
3915
+ narrowing conversions.
3917
+2013-11-27 Eric Botcazou <ebotcazou@adacore.com>
3919
+ PR middle-end/59138
3920
+ * expr.c (emit_group_store): Don't write past the end of the structure.
3921
+ (store_bit_field): Fix formatting.
3923
+2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
3925
+ Backport from mainline
3926
+ 2013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
3928
+ * config/sparc/t-rtems: Add leon3 multilibs.
3930
+2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
3932
+ Backport from mainline
3933
+ 2013-08-09 Eric Botcazou <ebotcazou@adacore.com>
3935
+ * configure.ac: Add GAS check for LEON instructions on SPARC.
3936
+ * configure: Regenerate.
3937
+ * config.in: Likewise.
3938
+ * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
3940
+ * config/sparc/sparc.opt (LEON, LEON3): New masks.
3941
+ * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
3942
+ for LEON or LEON3.
3943
+ (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
3944
+ (AS_LEON_FLAG): New macro.
3945
+ * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
3946
+ and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
3947
+ Deal with LEON and LEON3 for the memory model.
3948
+ * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
3949
+ (atomic_compare_and_swap<mode>_1): Likewise.
3950
+ (*atomic_compare_and_swap<mode>_1): Likewise.
3952
+2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
3954
+ Backport from mainline
3955
+ 2013-07-23 Eric Botcazou <ebotcazou@adacore.com>
3957
+ * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
3959
+2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
3961
+ Backport from mainline
3962
+ 2013-07-22 Eric Botcazou <ebotcazou@adacore.com>
3964
+ * config.gcc (sparc*-*-*): Accept leon3 processor.
3965
+ (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
3966
+ * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
3967
+ * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
3968
+ * config/sparc/sparc.opt (enum processor_type): Add leon3.
3969
+ (mfix-ut699): Adjust comment.
3970
+ * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
3971
+ (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
3972
+ (CPP_CPU_SPEC): Likewise.
3973
+ (ASM_CPU_SPEC): Likewise.
3974
+ * config/sparc/sparc.c (leon3_cost): New constant.
3975
+ (sparc_option_override): Add leon3 support.
3976
+ (mem_ref): New function.
3977
+ (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
3978
+ (sparc_do_work_around_errata): Look into the instruction in the delay
3979
+ slot and adjust accordingly. Add fix for the data cache nullify issues
3980
+ of the UT699. Change insertion position for the NOP.
3981
+ * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
3982
+ (leon3_load): New reservation.
3983
+ (leon_store): Bump latency to 2.
3984
+ (grfpu): New automaton.
3985
+ (grfpu_alu): New unit.
3986
+ (grfpu_ds): Likewise.
3987
+ (leon_fp_alu): Adjust.
3988
+ (leon_fp_mult): Delete.
3989
+ (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
3990
+ (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
3991
+ * config/sparc/sparc.md (cpu): Add leon3.
3992
+ * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
3993
+ (swapsi): Likewise.
3994
+ (atomic_test_and_set): Likewise.
3995
+ (ldstub): Likewise.
3997
+2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
3999
+ Backport from mainline
4000
+ 2013-04-10 Steven Bosscher <steven@gcc.gnu.org>
4002
+ * config/sparc/sparc.c: Include tree-pass.h.
4003
+ (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
4004
+ (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
4005
+ head of file. Change return type. Split off gate function.
4006
+ (sparc_gate_work_around_errata): New function.
4007
+ (pass_work_around_errata): New pass definition.
4008
+ (insert_pass_work_around_errata) New pass insert definition to
4009
+ insert pass_work_around_errata just after delayed-branch scheduling.
4010
+ (sparc_option_override): Insert the pass.
4011
+ * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
4013
+2013-11-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
4015
+ Backport from mainline
4016
+ 2013-05-28 Eric Botcazou <ebotcazou@adacore.com>
4018
+ * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
4019
+ * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
4020
+ mode if the instruction isn't available in the original mode.
4021
+ * config/sparc/sparc.opt (mfix-ut699): New option.
4022
+ * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
4023
+ (divdf3): Turn into expander.
4024
+ (divdf3_nofix): New insn.
4025
+ (divdf3_fix): Likewise.
4026
+ (divsf3): Disable if -mfix-ut699.
4027
+ (sqrtdf2): Turn into expander.
4028
+ (sqrtdf2_nofix): New insn.
4029
+ (sqrtdf2_fix): Likewise.
4030
+ (sqrtsf2): Disable if -mfix-ut699.
4032
+2013-11-22 Eric Botcazou <ebotcazou@adacore.com>
4034
+ * print-rtl.c (print_rtx) <case MEM>: Output a space if no MEM_EXPR.
4036
+2013-11-21 Zhenqiang Chen <zhenqiang.chen@linaro.org>
4038
+ PR bootstrap/57683
4039
+ Backport from mainline: r197467 and r198999.
4040
+ 2013-04-03 Jeff Law <law@redhat.com>
4042
+ * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
4043
+ (lra-eliminations.o): Likewise.
4045
+ 2013-05-16 Jeff Law <law@redhat.com>
4047
+ * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
4049
+2013-11-20 Eric Botcazou <ebotcazou@adacore.com>
4052
+ * config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>:
4053
+ Make sure neg2_ovf is set before being used.
4055
+2013-11-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4056
+ Dominik Vogt <vogt@linux.vnet.ibm.com>
4058
+ Backport from mainline
4059
+ * config/s390/s390.c (s390_canonicalize_comparison): Don't fold
4060
+ int comparisons with an out of range condition code.
4061
+ (s390_optimize_nonescaping_tx): Skip empty BBs.
4062
+ Generate the new tbegin RTX when removing the FPR clobbers (with
4064
+ (s390_expand_tbegin): Fix the retry loop counter. Copy CC to the
4065
+ result before doing the retry calculations.
4066
+ (s390_init_builtins): Make tbegin "returns_twice" and tabort
4068
+ * config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for
4069
+ the TDB setting part of an tbegin.
4070
+ ("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB.
4071
+ ("tx_assist"): Set unused argument to an immediate zero instead of
4072
+ loading zero into a GPR and pass it as argument.
4073
+ * config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin):
4074
+ Remove inline and related attributes.
4075
+ (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort)
4076
+ (__TM_is_illegal, __TM_is_footprint_exceeded)
4077
+ (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value
4080
+2013-11-19 Uros Bizjak <ubizjak@gmail.com>
4082
+ Backport from mainline
4083
+ 2013-11-18 Uros Bizjak <ubizjak@gmail.com>
4085
+ * config/i386/i386.c (ix86_decompose_address): Use REG_P instead of
4086
+ ix86_address_subreg_operand. Move subreg checks to
4087
+ ix86_validate_address_register. Move address override check to
4088
+ ix86_legitimate_address_p.
4089
+ (ix86_validate_address_register): New function.
4090
+ (ix86_legitimate_address_p): Call ix86_validate_address_register
4091
+ to validate base and index registers. Add address override check
4092
+ from ix86_decompose_address.
4093
+ (ix86_decompose_address): Remove.
4095
+ Backport from mainline
4096
+ 2013-11-17 Uros Bizjak <ubizjak@gmail.com>
4099
+ * config/i386/i386.c (ix86_address_subreg_operand): Do not
4100
+ reject non-integer subregs.
4101
+ (ix86_decompose_address): Do not reject invalid CONST_INT RTXes.
4102
+ Move check for invalid x32 constant addresses ...
4103
+ (ix86_legitimate_address_p): ... here.
4105
+2013-11-19 Richard Biener <rguenther@suse.de>
4107
+ Backport from mainline
4108
+ 2013-11-07 Richard Biener <rguenther@suse.de>
4110
+ * tree-dfa.c (get_ref_base_and_extent): Fix casting.
4112
+2013-11-19 Richard Biener <rguenther@suse.de>
4114
+ PR tree-optimization/57517
4115
+ * tree-predcom.c (combinable_refs_p): Verify the combination
4116
+ is always executed when the refs are.
4118
+2013-11-19 Richard Biener <rguenther@suse.de>
4120
+ Backport from mainline
4121
+ 2013-11-05 Richard Biener <rguenther@suse.de>
4123
+ PR middle-end/58941
4124
+ * tree-dfa.c (get_ref_base_and_extent): Merge common code
4125
+ in MEM_REF and TARGET_MEM_REF handling. Make sure to
4126
+ process trailing array detection before diving into the
4127
+ view-converted object (and possibly apply some extra offset).
4129
+2013-11-18 Richard Biener <rguenther@suse.de>
4131
+ Backport from mainline
4132
+ 2013-10-21 Richard Biener <rguenther@suse.de>
4134
+ PR tree-optimization/58794
4135
+ * fold-const.c (operand_equal_p): Compare FIELD_DECL operand
4136
+ of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place.
4138
+ 2013-10-21 Richard Biener <rguenther@suse.de>
4140
+ PR middle-end/58742
4141
+ * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C
4142
+ to (T) X for sign-changing conversions (or no conversion).
4144
+ 2013-11-06 Richard Biener <rguenther@suse.de>
4146
+ PR tree-optimization/58653
4147
+ * tree-predcom.c (ref_at_iteration): Rewrite to generate
4149
+ (prepare_initializers_chain): Adjust.
4151
+ PR tree-optimization/59047
4152
+ * tree-predcom.c (ref_at_iteration): Handle bitfield accesses
4155
+ 2013-10-15 Richard Biener <rguenther@suse.de>
4157
+ PR tree-optimization/58143
4158
+ * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
4160
+ (rewrite_to_defined_overflow): Likewise.
4161
+ (move_computations_dom_walker::before_dom): Rewrite stmts
4162
+ with undefined signed overflow that are not always executed
4163
+ into unsigned arithmetic.
4165
+2013-11-14 Uros Bizjak <ubizjak@gmail.com>
4167
+ Backport from mainline
4168
+ 2013-11-10 Uros Bizjak <ubizjak@gmail.com>
4170
+ * mode-switching.c (optimize_mode_switching): Mark block as
4171
+ nontransparent, if last_mode at block exit is different from no_mode.
4173
+ Backport from mainline
4174
+ 2013-11-06 Uros Bizjak <ubizjak@gmail.com>
4177
+ * config/i386/i386.c (ix86_avx_u128_mode_needed): Require
4178
+ AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers.
4179
+ (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn
4180
+ RTXes that return in AVX256 register.
4182
+2013-11-14 Jakub Jelinek <jakub@redhat.com>
4183
+ Uros Bizjak <ubizjak@gmail.com>
4186
+ * config/i386/i386.md (*anddi_2): Only allow CCZmode if
4187
+ operands[2] satisfies_constraint_Z that might have bit 31 set.
4189
+2013-11-12 H.J. Lu <hongjiu.lu@intel.com>
4191
+ Backported from mainline
4192
+ 2013-11-12 H.J. Lu <hongjiu.lu@intel.com>
4195
+ * config/i386/i386.c (initial_ix86_tune_features): Set
4196
+ X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
4197
+ X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for m_HASWELL.
4199
+2013-11-11 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4201
+ Backported from mainline
4202
+ 2013-10-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4205
+ * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage
4207
+2013-11-11 Jakub Jelinek <jakub@redhat.com>
4209
+ Backported from mainline
4210
+ 2013-11-06 Jakub Jelinek <jakub@redhat.com>
4212
+ PR middle-end/58970
4213
+ * expr.c (get_bit_range): Handle *offset == NULL_TREE.
4214
+ (expand_assignment): If *bitpos is negative, set *offset
4215
+ and adjust *bitpos, so that it is not negative.
4217
+ 2013-11-05 Jakub Jelinek <jakub@redhat.com>
4219
+ PR rtl-optimization/58997
4220
+ * loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect
4221
+ get_iv_value to be in iv->mode rather than iv->extend_mode.
4222
+ (iv_extend): Likewise. Otherwise, if iv->extend != extend,
4223
+ use lowpart_subreg on get_iv_value before calling simplify_gen_unary.
4224
+ * loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right
4227
+2013-11-10 Karlson2k <k2k@narod.ru>
4228
+ Kai Tietz <ktietz@redhat.com>
4232
+ * configure.ac: Adding for exported symbols check
4233
+ and for rdynamic-check executable-extension.
4234
+ * configure: Regenerated.
4236
+2013-11-07 H.J. Lu <hongjiu.lu@intel.com>
4239
+ * config/i386/i386.md (push peepholer/splitter): Use Pmode
4240
+ with stack_pointer_rtx.
4242
+2013-11-05 Uros Bizjak <ubizjak@gmail.com>
4244
+ * config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos.
4246
+2013-11-05 Jakub Jelinek <jakub@redhat.com>
4248
+ PR tree-optimization/58984
4249
+ * ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument,
4250
+ set *SIZE_P if non-NULL on success.
4251
+ (ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust
4253
+ (ipcp_transform_function): Likewise. Punt if size of access
4254
+ is different from TYPE_SIZE on v->value's type.
4256
+2013-11-03 H.J. Lu <hongjiu.lu@intel.com>
4258
+ Backport from mainline
4259
+ 2013-10-12 H.J. Lu <hongjiu.lu@intel.com>
4262
+ * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
4263
+ (ix86_expand_movmem): Replace copy_addr_to_reg with
4264
+ ix86_copy_addr_to_reg.
4265
+ (ix86_expand_setmem): Likewise.
4267
+2013-10-29 Uros Bizjak <ubizjak@gmail.com>
4269
+ Backport from mainline
4270
+ 2013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
4272
+ PR rtl-optimization/58079
4273
+ * combine.c (combine_simplify_rtx): Avoid using SUBST if
4274
+ simplify_comparison has widened a comparison with an integer.
4276
+2013-10-29 Martin Jambor <mjambor@suse.cz>
4278
+ PR middle-end/58789
4279
+ Backport from mainline
4280
+ 2013-05-09 Martin Jambor <mjambor@suse.cz>
4283
+ * gimple-fold.c (canonicalize_constructor_val): Call
4284
+ cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
4286
+ Backport from mainline
4287
+ 2013-03-16 Jan Hubicka <jh@suse.cz>
4289
+ * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
4290
+ * cgraph.c (cgraph_get_create_real_symbol_node): New function.
4291
+ * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
4292
+ of cgraph_get_create_node.
4293
+ * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
4295
+2013-10-28 Tom de Vries <tom@codesourcery.com>
4297
+ * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn.
4298
+ Don't commit insertions after NOTE_INSN_FUNCTION_BEG.
4300
+2013-10-26 Uros Bizjak <ubizjak@gmail.com>
4302
+ Backport from mainline
4303
+ 2013-10-22 Uros Bizjak <ubizjak@gmail.com>
4306
+ * config/i386/i386.c (put_condition_code) <case GTU, case LEU>:
4307
+ Remove CCCmode handling.
4308
+ <case LTU>: Return 'c' suffix for CCCmode.
4309
+ <case GEU>: Return 'nc' suffix for CCCmode.
4310
+ (ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks.
4311
+ * config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove.
4312
+ (*sub<mode>3_cc_overflow): Ditto.
4313
+ (*subsi3_zext_cc_overflow): Ditto.
4315
+2013-10-26 Uros Bizjak <ubizjak@gmail.com>
4317
+ Backport from mainline
4318
+ 2013-10-19 Uros Bizjak <ubizjak@gmail.com>
4321
+ * config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
4322
+ ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG
4323
+ and SI_REG for 64bit SYSV ABI targets.
4325
+2013-08-25 Richard Henderson <rth@twiddle.net>
4328
+ * optabs.c (maybe_emit_atomic_exchange): Use create_input_operand
4329
+ instead of create_convert_operand_to.
4330
+ (maybe_emit_sync_lock_test_and_set): Likewise.
4331
+ (expand_atomic_compare_and_swap): Likewise.
4332
+ (maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes.
4334
+2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
4336
+ PR rtl-optimization/58831
4337
+ * alias.c (init_alias_analysis): At the beginning of each iteration, set
4338
+ the reg_seen[N] bit if static_reg_base_value[N] is non-null.
4340
+2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
4342
+ * recog.c (search_ofs): New static variable moved from...
4343
+ (peep2_find_free_register): ...here.
4344
+ (peephole2_optimize): Initialize it.
4346
+2013-10-24 David Edelsohn <dje.gcc@gmail.com>
4348
+ Backport from mainline
4349
+ 2013-10-23 David Edelsohn <dje.gcc@gmail.com>
4352
+ * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add
4353
+ TARGET_32BIT final condition.
4354
+ (mulsi3_internal2 and splitter): Same.
4356
+2013-10-23 Tom de Vries <tom@codesourcery.com>
4358
+ PR tree-optimization/58805
4359
+ * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check.
4361
+2013-10-23 Richard Biener <rguenther@suse.de>
4363
+ Backport from mainline
4364
+ 2013-06-24 Richard Biener <rguenther@suse.de>
4366
+ PR tree-optimization/57488
4367
+ * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
4369
+2013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
4371
+ Backport from mainline
4372
+ 2013-10-16 Ganesh Gopalasubramanian
4373
+ <Ganesh.Gopalasubramanian@amd.com>
4375
+ * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
4378
2013-10-16 Release Manager
4380
* GCC 4.8.2 released.
4381
@@ -639,7 +1144,7 @@
4382
2013-07-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4384
Backport from mainline
4385
- 2013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4386
+ 2013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4388
* config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
4390
Index: gcc/testsuite/gcc.target/arm/thumb1-pic-single-base.c
4391
===================================================================
4392
--- a/src/gcc/testsuite/gcc.target/arm/thumb1-pic-single-base.c (.../tags/gcc_4_8_2_release)
4393
+++ b/src/gcc/testsuite/gcc.target/arm/thumb1-pic-single-base.c (.../branches/gcc-4_8-branch)
4395
+/* { dg-do compile } */
4396
+/* { dg-require-effective-target arm_thumb1_ok } */
4397
+/* { dg-options "-mthumb -fpic -msingle-pic-base" } */
4406
Index: gcc/testsuite/gcc.target/arm/thumb1-pic-high-reg.c
4407
===================================================================
4408
--- a/src/gcc/testsuite/gcc.target/arm/thumb1-pic-high-reg.c (.../tags/gcc_4_8_2_release)
4409
+++ b/src/gcc/testsuite/gcc.target/arm/thumb1-pic-high-reg.c (.../branches/gcc-4_8-branch)
4411
+/* { dg-do compile } */
4412
+/* { dg-require-effective-target arm_thumb1_ok } */
4413
+/* { dg-options "-mthumb -fpic -mpic-register=9" } */
4422
Index: gcc/testsuite/gcc.target/arm/require-pic-register-loc.c
4423
===================================================================
4424
--- a/src/gcc/testsuite/gcc.target/arm/require-pic-register-loc.c (.../tags/gcc_4_8_2_release)
4425
+++ b/src/gcc/testsuite/gcc.target/arm/require-pic-register-loc.c (.../branches/gcc-4_8-branch)
4427
+/* { dg-do compile } */
4428
+/* { dg-options "-g -fPIC" } */
4431
+void a (void *x) { }
4435
+main (int argc) /* line 9. */
4437
+ if (argc == 12345) /* line 11. */
4447
+/* { dg-final { scan-assembler-not "\.loc 1 7 0" } } */
4448
+/* { dg-final { scan-assembler-not "\.loc 1 8 0" } } */
4449
+/* { dg-final { scan-assembler-not "\.loc 1 9 0" } } */
4451
+/* The loc at the start of the prologue. */
4452
+/* { dg-final { scan-assembler-times "\.loc 1 10 0" 1 } } */
4454
+/* The loc at the end of the prologue, with the first user line. */
4455
+/* { dg-final { scan-assembler-times "\.loc 1 11 0" 1 } } */
4456
Index: gcc/testsuite/gcc.target/arm/vrinta-ce.c
4457
===================================================================
4458
--- a/src/gcc/testsuite/gcc.target/arm/vrinta-ce.c (.../tags/gcc_4_8_2_release)
4459
+++ b/src/gcc/testsuite/gcc.target/arm/vrinta-ce.c (.../branches/gcc-4_8-branch)
4461
+/* { dg-do compile } */
4462
+/* { dg-require-effective-target arm_v8_vfp_ok } */
4463
+/* { dg-options "-O2 -marm -march=armv8-a" } */
4464
+/* { dg-add-options arm_v8_vfp } */
4466
+double foo (double a)
4469
+ return __builtin_round (a);
4474
+/* { dg-final { scan-assembler-times "vrinta.f64\td\[0-9\]+" 1 } } */
4476
Index: gcc/testsuite/gcc.target/i386/pr59034-1.c
4477
===================================================================
4478
--- a/src/gcc/testsuite/gcc.target/i386/pr59034-1.c (.../tags/gcc_4_8_2_release)
4479
+++ b/src/gcc/testsuite/gcc.target/i386/pr59034-1.c (.../branches/gcc-4_8-branch)
4481
+/* { dg-do compile { target { ! { ia32 } } } } */
4482
+/* { dg-require-effective-target maybe_x32 } */
4483
+/* { dg-options "-O -mx32 -mtune=corei7 -maddress-mode=short" } */
4485
+extern int foo(int, ...);
4487
+ long double l = 1.2345E6;
4491
Index: gcc/testsuite/gcc.target/i386/pr58690.c
4492
===================================================================
4493
--- a/src/gcc/testsuite/gcc.target/i386/pr58690.c (.../tags/gcc_4_8_2_release)
4494
+++ b/src/gcc/testsuite/gcc.target/i386/pr58690.c (.../branches/gcc-4_8-branch)
4496
+/* { dg-do compile { target { ! { ia32 } } } } */
4497
+/* { dg-require-effective-target maybe_x32 } */
4498
+/* { dg-options "-O2 -mx32 -maddress-mode=short" } */
4504
+extern __thread struct gomp_thread gomp_tls_data;
4508
+ __builtin_memset (&gomp_tls_data, '\0', sizeof (gomp_tls_data));
4510
Index: gcc/testsuite/gcc.target/i386/pr59021.c
4511
===================================================================
4512
--- a/src/gcc/testsuite/gcc.target/i386/pr59021.c (.../tags/gcc_4_8_2_release)
4513
+++ b/src/gcc/testsuite/gcc.target/i386/pr59021.c (.../branches/gcc-4_8-branch)
4515
+/* { dg-do compile } */
4516
+/* { dg-options "-O2 -mavx -mvzeroupper" } */
4518
+extern void abort (void);
4526
+typedef double v4df __attribute__ ((vector_size (32)));
4528
+extern int foo (v4df, int i1, int i2, int i3, int i4, int i5, struct S s);
4530
+void bar (v4df v, struct S s)
4532
+ int r = foo (v, 1, 2, 3, 4, 5, s);
4537
+/* { dg-final { scan-assembler-not "vzeroupper" } } */
4538
Index: gcc/testsuite/gcc.target/i386/pr59034-2.c
4539
===================================================================
4540
--- a/src/gcc/testsuite/gcc.target/i386/pr59034-2.c (.../tags/gcc_4_8_2_release)
4541
+++ b/src/gcc/testsuite/gcc.target/i386/pr59034-2.c (.../branches/gcc-4_8-branch)
4543
+/* { dg-do compile { target { ! { ia32 } } } } */
4544
+/* { dg-require-effective-target maybe_x32 } */
4545
+/* { dg-options "-O -mx32 -mtune=corei7 -maddress-mode=long" } */
4547
+extern int foo(int, ...);
4549
+ long double l = 1.2345E6;
4553
Index: gcc/testsuite/gcc.target/i386/xop-frczX.c
4554
===================================================================
4555
--- a/src/gcc/testsuite/gcc.target/i386/xop-frczX.c (.../tags/gcc_4_8_2_release)
4556
+++ b/src/gcc/testsuite/gcc.target/i386/xop-frczX.c (.../branches/gcc-4_8-branch)
4558
+/* { dg-do run } */
4559
+/* { dg-require-effective-target xop } */
4560
+/* { dg-options "-O2 -mxop" } */
4562
+#include "xop-check.h"
4564
+#include <x86intrin.h>
4567
+check_mm_vmfrcz_sd (__m128d __A, __m128d __B)
4569
+ union128d a, b, c;
4574
+ c.x = _mm_frcz_sd (__A, __B);
4575
+ d[0] = b.a[0] - (int)b.a[0] ;
4577
+ if (check_union128d (c, d))
4582
+check_mm_vmfrcz_ss (__m128 __A, __m128 __B)
4589
+ c.x = _mm_frcz_ss (__A, __B);
4590
+ f[0] = b.a[0] - (int)b.a[0] ;
4594
+ if (check_union128 (c, f))
4605
+ for (i = 0; i < 4; i++)
4610
+ for (i = 0; i < 2; i++)
4613
+ d.a[i] = i + 7.987654321;
4615
+ check_mm_vmfrcz_ss (a.x, b.x);
4616
+ check_mm_vmfrcz_sd (c.x, d.x);
4618
Index: gcc/testsuite/gcc.target/i386/pr30315.c
4619
===================================================================
4620
--- a/src/gcc/testsuite/gcc.target/i386/pr30315.c (.../tags/gcc_4_8_2_release)
4621
+++ b/src/gcc/testsuite/gcc.target/i386/pr30315.c (.../branches/gcc-4_8-branch)
4623
/* { dg-do compile } */
4624
/* { dg-options "-O2" } */
4625
-/* { dg-final { scan-assembler-times "cmp" 4 } } */
4626
+/* { dg-final { scan-assembler-not "cmp" } } */
4628
extern void abort (void);
4632
#define PLUSCCONLY(T, t) PLUSCCONLY1(T, t, a) PLUSCCONLY1(T, t, b)
4634
-#define MINUSCC(T, t) \
4635
-T minuscc##t (T a, T b) \
4637
- T difference = a - b; \
4638
- if (difference > a) \
4640
- return difference; \
4643
-#define DECCC(T, t) \
4644
-T deccc##t (T a, T b) \
4646
- T difference = a - b; \
4647
- if (difference > a) \
4649
- return difference; \
4652
-#define MINUSCCONLY(T, t) \
4653
-void minuscconly##t (T a, T b) \
4655
- T difference = a - b; \
4656
- if (difference > a) \
4660
#define TEST(T, t) \
4665
- MINUSCCONLY(T, t) \
4669
TEST (unsigned long, l)
4670
TEST (unsigned int, i)
4676
-#define MINUSCCZEXT \
4677
-unsigned long minuscczext (unsigned int a, unsigned int b) \
4679
- unsigned int difference = a - b; \
4680
- if (difference > a) \
4682
- return difference; \
4686
Index: gcc/testsuite/gcc.target/s390/htm-xl-intrin-1.c
4687
===================================================================
4688
--- a/src/gcc/testsuite/gcc.target/s390/htm-xl-intrin-1.c (.../tags/gcc_4_8_2_release)
4689
+++ b/src/gcc/testsuite/gcc.target/s390/htm-xl-intrin-1.c (.../branches/gcc-4_8-branch)
4691
-/* This checks the availability of the XL compiler intrinsics for
4692
- transactional execution with the expected prototypes. */
4694
-/* { dg-do compile } */
4695
-/* { dg-options "-O3 -march=zEC12 -mzarch" } */
4697
-#include <htmxlintrin.h>
4705
- struct __htm_tdb *tdb_struct;
4706
- void * const tdb = tdb_struct;
4708
- unsigned char code;
4710
- result = __TM_simple_begin ();
4711
- result = __TM_begin (tdb);
4712
- result = __TM_end ();
4714
- __TM_named_abort (42);
4715
- __TM_non_transactional_store (&g, 42);
4716
- result = __TM_nesting_depth (tdb);
4718
- result = __TM_is_user_abort (tdb);
4719
- result = __TM_is_named_user_abort (tdb, &code);
4720
- result = __TM_is_illegal (tdb);
4721
- result = __TM_is_footprint_exceeded (tdb);
4722
- result = __TM_is_nested_too_deep (tdb);
4723
- result = __TM_is_conflict (tdb);
4724
- result = __TM_is_failure_persistent (result);
4725
- result = __TM_failure_address (tdb);
4726
- result = __TM_failure_code (tdb);
4728
Index: gcc/testsuite/gcc.target/s390/htm-1.c
4729
===================================================================
4730
--- a/src/gcc/testsuite/gcc.target/s390/htm-1.c (.../tags/gcc_4_8_2_release)
4731
+++ b/src/gcc/testsuite/gcc.target/s390/htm-1.c (.../branches/gcc-4_8-branch)
4733
-/* This checks the availability of the low-level builtins introduced
4734
- for transactional execution. */
4736
-/* { dg-do compile } */
4737
-/* { dg-options "-O3 -march=zEC12 -mzarch" } */
4739
-#include <stdint.h>
4740
-#include <htmintrin.h>
4744
-struct __htm_tdb global_tdb;
4747
-foo (struct __htm_tdb* tdb, int reg, int *mem, uint64_t *mem64)
4753
- cc = __builtin_tbegin (0);
4754
- cc = __builtin_tbegin (tdb);
4755
- cc = __builtin_tbegin (&global_tdb);
4757
- cc = __builtin_tbegin_nofloat (0);
4758
- cc = __builtin_tbegin_nofloat (&global_tdb);
4760
- cc = __builtin_tbegin_retry (0, 42);
4761
- cc = __builtin_tbegin_retry (0, reg);
4762
- cc = __builtin_tbegin_retry (0, *mem);
4763
- cc = __builtin_tbegin_retry (0, global);
4764
- cc = __builtin_tbegin_retry (tdb, 42);
4765
- cc = __builtin_tbegin_retry (&global_tdb, 42);
4767
- cc = __builtin_tbegin_retry_nofloat (0, 42);
4768
- cc = __builtin_tbegin_retry_nofloat (0, reg);
4769
- cc = __builtin_tbegin_retry_nofloat (0, *mem);
4770
- cc = __builtin_tbegin_retry_nofloat (0, global);
4771
- cc = __builtin_tbegin_retry_nofloat (&global_tdb, 42);
4773
- __builtin_tbeginc ();
4775
- n = __builtin_tx_nesting_depth();
4777
- __builtin_non_tx_store(&g, 23);
4778
- __builtin_non_tx_store(mem64, 23);
4779
- __builtin_non_tx_store(&g, reg);
4780
- __builtin_non_tx_store(&g, *mem);
4781
- __builtin_non_tx_store(&g, global);
4783
- __builtin_tabort (42 + 255);
4784
- __builtin_tabort (reg);
4785
- /* { dg-final { scan-assembler-times "tabort\t255" 1 } } */
4786
- __builtin_tabort (reg + 255);
4787
- __builtin_tabort (*mem);
4788
- __builtin_tabort (global);
4789
- /* Here global + 255 gets reloaded into a reg. Better would be to
4790
- just reload global or *mem and get the +255 for free as address
4792
- __builtin_tabort (*mem + 255);
4793
- __builtin_tabort (global + 255);
4797
- __builtin_tx_assist (23);
4798
- __builtin_tx_assist (reg);
4799
- __builtin_tx_assist (*mem);
4800
- __builtin_tx_assist (global);
4803
-/* Make sure the tdb NULL argument ends up as immediate value in the
4805
-/* { dg-final { scan-assembler-times "tbegin\t0," 10 } } */
4806
Index: gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c
4807
===================================================================
4808
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c (.../tags/gcc_4_8_2_release)
4809
+++ b/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c (.../branches/gcc-4_8-branch)
4811
+/* This checks the availability of the low-level builtins introduced
4812
+ for transactional execution. */
4814
+/* { dg-do compile } */
4815
+/* { dg-require-effective-target htm } */
4816
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
4818
+#include <stdint.h>
4819
+#include <htmintrin.h>
4823
+struct __htm_tdb global_tdb;
4826
+foo (struct __htm_tdb* tdb, int reg, int *mem, uint64_t *mem64)
4832
+ __builtin_tbegin ((void *)0);
4833
+ __builtin_tbegin ((void *)-99999);
4834
+ __builtin_tbegin ((void *)99999);
4835
+ while (__builtin_tbegin ((void *)0) != 0)
4838
+ cc = __builtin_tbegin ((void *)0x12345678);
4839
+ cc = __builtin_tbegin (tdb);
4840
+ cc = __builtin_tbegin (&global_tdb);
4841
+ cc = __builtin_tbegin ((void *)(long long)(reg + 0x12345678));
4842
+ cc = __builtin_tbegin ((void *)(long long)(reg));
4844
+ __builtin_tbegin_nofloat ((void *)0);
4845
+ __builtin_tbegin_nofloat ((void *)-99999);
4846
+ __builtin_tbegin_nofloat ((void *)99999);
4847
+ cc = __builtin_tbegin_nofloat ((void *)0x12345678);
4848
+ cc = __builtin_tbegin_nofloat (tdb);
4849
+ cc = __builtin_tbegin_nofloat (&global_tdb);
4850
+ cc = __builtin_tbegin_nofloat ((void *)(long long)(reg + 0x12345678));
4851
+ cc = __builtin_tbegin_nofloat ((void *)(long long)(reg));
4853
+ __builtin_tbegin_retry ((void *)0, 0);
4854
+ cc = __builtin_tbegin_retry ((void *)0, 1);
4855
+ cc = __builtin_tbegin_retry ((void *)0, -1);
4856
+ cc = __builtin_tbegin_retry ((void *)0, 42);
4857
+ cc = __builtin_tbegin_retry ((void *)0, reg);
4858
+ cc = __builtin_tbegin_retry ((void *)0, *mem);
4859
+ cc = __builtin_tbegin_retry ((void *)0, global);
4860
+ cc = __builtin_tbegin_retry (tdb, 42);
4861
+ cc = __builtin_tbegin_retry (&global_tdb, 42);
4862
+ cc = __builtin_tbegin_retry ((void *)0x12345678, global);
4863
+ cc = __builtin_tbegin_retry (
4864
+ (void *)(long long) (reg + 0x12345678), global + 1);
4865
+ cc = __builtin_tbegin_retry (
4866
+ (void *)(long long)(reg), global - 1);
4868
+ __builtin_tbegin_retry_nofloat ((void *)0, 0);
4869
+ cc = __builtin_tbegin_retry_nofloat ((void *)0, 1);
4870
+ cc = __builtin_tbegin_retry_nofloat ((void *)0, -1);
4871
+ cc = __builtin_tbegin_retry_nofloat ((void *)0, 42);
4872
+ cc = __builtin_tbegin_retry_nofloat ((void *)0, reg);
4873
+ cc = __builtin_tbegin_retry_nofloat ((void *)0, *mem);
4874
+ cc = __builtin_tbegin_retry_nofloat ((void *)0, global);
4875
+ cc = __builtin_tbegin_retry_nofloat (tdb, 42);
4876
+ cc = __builtin_tbegin_retry_nofloat (&global_tdb, 42);
4877
+ cc = __builtin_tbegin_retry_nofloat ((void *)0x12345678, global);
4878
+ cc = __builtin_tbegin_retry_nofloat (
4879
+ (void *)(long long) (reg + 0x12345678), global + 1);
4880
+ cc = __builtin_tbegin_retry_nofloat (
4881
+ (void *)(long long)(reg), global - 1);
4883
+ __builtin_tbeginc ();
4885
+ __builtin_tx_nesting_depth ();
4886
+ n = __builtin_tx_nesting_depth ();
4888
+ __builtin_non_tx_store (mem64, 0);
4890
+ const uint64_t val_var = 0x1122334455667788;
4892
+ __builtin_non_tx_store (mem64, val_var);
4894
+ __builtin_non_tx_store (mem64, (uint64_t)reg);
4895
+ __builtin_non_tx_store (mem64, g);
4896
+ __builtin_non_tx_store ((uint64_t *)0, 0);
4897
+ __builtin_non_tx_store ((uint64_t *)0x12345678, 0);
4898
+ __builtin_non_tx_store (&g, 23);
4899
+ __builtin_non_tx_store (&g, reg);
4900
+ __builtin_non_tx_store (&g, *mem);
4901
+ __builtin_non_tx_store (&g, global);
4905
+ __builtin_tx_assist (0);
4906
+ __builtin_tx_assist (1);
4907
+ __builtin_tx_assist (reg);
4908
+ __builtin_tx_assist (*mem);
4909
+ __builtin_tx_assist (global);
4912
+/* The taborts must go into separate function since they are
4918
+ __builtin_tabort (256);
4924
+ __builtin_tabort (reg);
4930
+ /* { dg-final { scan-assembler-times "tabort\t255" 1 } } */
4931
+ __builtin_tabort (reg + 255);
4937
+ __builtin_tabort (*mem);
4943
+ __builtin_tabort (global);
4949
+ /* Here global + 255 gets reloaded into a reg. Better would be to
4950
+ just reload global or *mem and get the +255 for free as address
4952
+ __builtin_tabort (*mem + 255);
4958
+ __builtin_tabort (global + 255);
4964
+ __builtin_tabort (-1);
4968
+/* Make sure the tdb NULL argument ends up as immediate value in the
4970
+/* { dg-final { scan-assembler-times "tbegin\t0," 17 } } */
4971
+/* { dg-final { scan-assembler-times "tbegin\t" 41 } } */
4972
+/* Check number of occurences of certain instructions. */
4973
+/* { dg-final { scan-assembler-times "tbeginc\t" 1 } } */
4974
+/* { dg-final { scan-assembler-times "tabort\t" 8 } } */
4975
+/* { dg-final { scan-assembler "ppa\t" } } */
4976
Index: gcc/testsuite/gcc.target/s390/htm-builtins-compile-2.c
4977
===================================================================
4978
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-2.c (.../tags/gcc_4_8_2_release)
4979
+++ b/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-2.c (.../branches/gcc-4_8-branch)
4981
+/* { dg-do compile } */
4982
+/* { dg-require-effective-target htm } */
4983
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
4985
+void must_not_compile1 (void)
4987
+ __builtin_tabort (0); /* { dg-error "Invalid transaction abort code:" } */
4990
+void must_not_compile2 (void)
4992
+ __builtin_tabort (255); /* { dg-error "Invalid transaction abort code:" } */
4994
Index: gcc/testsuite/gcc.target/s390/htm-builtins-compile-3.c
4995
===================================================================
4996
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-3.c (.../tags/gcc_4_8_2_release)
4997
+++ b/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-3.c (.../branches/gcc-4_8-branch)
4999
+/* This checks the availability of the XL compiler intrinsics for
5000
+ transactional execution with the expected prototypes. */
5002
+/* { dg-do compile } */
5003
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
5005
+#include <htmxlintrin.h>
5013
+ struct __htm_tdb *tdb_struct;
5014
+ void * const tdb = tdb_struct;
5016
+ unsigned char code;
5018
+ result = __TM_simple_begin ();
5019
+ result = __TM_begin (tdb);
5020
+ result = __TM_end ();
5022
+ __TM_named_abort (42);
5023
+ __TM_non_transactional_store (&g, 42);
5024
+ result = __TM_nesting_depth (tdb);
5026
+ result = __TM_is_user_abort (tdb);
5027
+ result = __TM_is_named_user_abort (tdb, &code);
5028
+ result = __TM_is_illegal (tdb);
5029
+ result = __TM_is_footprint_exceeded (tdb);
5030
+ result = __TM_is_nested_too_deep (tdb);
5031
+ result = __TM_is_conflict (tdb);
5032
+ result = __TM_is_failure_persistent (result);
5033
+ result = __TM_failure_address (tdb);
5034
+ result = __TM_failure_code (tdb);
5036
Index: gcc/testsuite/gcc.target/s390/s390.exp
5037
===================================================================
5038
--- a/src/gcc/testsuite/gcc.target/s390/s390.exp (.../tags/gcc_4_8_2_release)
5039
+++ b/src/gcc/testsuite/gcc.target/s390/s390.exp (.../branches/gcc-4_8-branch)
5041
# Load support procs.
5044
+# Return 1 if htm (etnd - extract nesting depth) instructions can be
5046
+proc check_effective_target_htm { } {
5047
+ if { ![check_runtime s390_check_htm [subst {
5050
+ unsigned int nd = 77;
5051
+ asm (".insn rre,0xb2ec0000,%0,0" : "=d" (nd));
5054
+ }]] } { return 0 } else { return 1 }
5057
# If a testcase doesn't have special options, use these.
5058
global DEFAULT_CFLAGS
5059
if ![info exists DEFAULT_CFLAGS] then {
5060
Index: gcc/testsuite/gcc.target/s390/htm-builtins-1.c
5061
===================================================================
5062
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-1.c (.../tags/gcc_4_8_2_release)
5063
+++ b/src/gcc/testsuite/gcc.target/s390/htm-builtins-1.c (.../branches/gcc-4_8-branch)
5065
+/* Functional tests of the htm __builtin_... macros. */
5067
+/* { dg-do run } */
5068
+/* { dg-require-effective-target htm } */
5069
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
5071
+/* ---------------------------- included header files ---------------------- */
5074
+#include <string.h>
5075
+#include <stdint.h>
5076
+#include <htmintrin.h>
5078
+/* ---------------------------- local definitions -------------------------- */
5080
+#define DEFAULT_MAX_REPETITIONS 5
5081
+#define DEFAULT_REQUIRED_QUORUM ((DEFAULT_MAX_REPETITIONS) - 1)
5082
+#define NUM_WARMUP_RUNS 10
5084
+/* ---------------------------- local macros ------------------------------- */
5086
+#define TEST_DF_REP(name) \
5087
+ { #name, name, DEFAULT_MAX_REPETITIONS, DEFAULT_REQUIRED_QUORUM }
5088
+#define TEST_NO_REP(name) { #name, name, 1, 1 }
5090
+/* ---------------------------- local types -------------------------------- */
5092
+typedef int (*test_func_t)(void);
5097
+ test_func_t test_func;
5098
+ int max_repetitions;
5099
+ int required_quorum;
5100
+} test_table_entry_t;
5102
+/* ---------------------------- local variables ---------------------------- */
5104
+__attribute__ ((aligned(256))) static struct __htm_tdb local_tdb256;
5105
+static struct __htm_tdb local_tdb;
5106
+static int do_dump_tdb = 0;
5108
+/* ---------------------------- exported variables (globals) --------------- */
5110
+__attribute__ ((aligned(256))) struct
5115
+} global = { 1.0, 2.5, 0.0 };
5117
+__attribute__ ((aligned(256))) struct
5119
+ volatile uint64_t c1;
5120
+ volatile uint64_t c2;
5121
+ volatile uint64_t c3;
5122
+} counters = { 0, 0, 0 };
5124
+/* ---------------------------- local helper functions --------------------- */
5126
+static void dump_tdb (struct __htm_tdb *tdb)
5132
+ if (do_dump_tdb == 0)
5136
+ p = (unsigned char *)tdb;
5137
+ for (i = 0; i < 16; i++)
5139
+ fprintf (stderr, "0x%02x ", i * 16);
5140
+ for (j = 0; j < 16; j++)
5142
+ fprintf (stderr, "%02x", (int)p[i * 16 + j]);
5145
+ fprintf (stderr, " ");
5149
+ fprintf (stderr, " ");
5152
+ fprintf (stderr, "\n");
5158
+/* ---------------------------- local test functions ----------------------- */
5160
+/* Check values of the constants defined in htmintrin.h. */
5161
+static int test_constants (void)
5163
+ if (_HTM_TBEGIN_STARTED != 0)
5165
+ return 100 * _HTM_TBEGIN_STARTED + 1;
5167
+ if (_HTM_TBEGIN_INDETERMINATE != 1)
5169
+ return 100 * _HTM_TBEGIN_INDETERMINATE + 2;
5171
+ if (_HTM_TBEGIN_TRANSIENT != 2)
5173
+ return 100 * _HTM_TBEGIN_TRANSIENT + 3;
5175
+ if (_HTM_TBEGIN_PERSISTENT != 3)
5177
+ return 100 * _HTM_TBEGIN_PERSISTENT + 4;
5183
+static int test_tbegin_ntstg_tend (void)
5189
+ if ((rc = __builtin_tbegin ((void *)0)) == 0)
5191
+ __builtin_non_tx_store ((uint64_t *)&counters.c1, 1);
5193
+ rc = __builtin_tend ();
5196
+ return 100 * rc + 5;
5198
+ if (counters.c1 != 1)
5200
+ return 100 * counters.c1 + 2;
5202
+ if (counters.c2 != 2)
5204
+ return 100 * counters.c2 + 3;
5209
+ return 100 * rc + 4;
5215
+static int test_tbegin_ntstg_tabort (void)
5222
+ if (__builtin_tbegin ((void *)0) == 0)
5224
+ __builtin_non_tx_store ((uint64_t *)&counters.c1, 1);
5227
+ __builtin_tabort (256);
5230
+ if (counters.c1 != 1)
5232
+ return 100 * counters.c1 + 2;
5234
+ if (counters.c2 != 0)
5236
+ return 100 * counters.c2 + 3;
5240
+ return 100 * f + 4;
5246
+static int test_tbegin_nofloat (void)
5252
+ if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
5254
+ __builtin_non_tx_store ((uint64_t *)&counters.c1, 1);
5256
+ rc = __builtin_tend ();
5259
+ return 100 * rc + 5;
5261
+ if (counters.c1 != 1)
5263
+ return 100 * counters.c1 + 2;
5265
+ if (counters.c2 != 2)
5267
+ return 100 * counters.c2 + 3;
5272
+ return 100 * rc + 4;
5278
+static int test_tbegin_retry (void)
5285
+ if ((rc = __builtin_tbegin_retry ((void *)0, 5)) == 0)
5289
+ do_abort = (counters.c1 == 0) ? 1 : 0;
5290
+ __builtin_non_tx_store (
5291
+ (uint64_t *)&counters.c1, counters.c1 + 1);
5292
+ if (do_abort == 1)
5294
+ __builtin_tabort (256);
5296
+ counters.c2 = counters.c2 + 10;
5297
+ __builtin_non_tx_store ((uint64_t *)&counters.c3, 3);
5298
+ rc = __builtin_tend ();
5301
+ return 100 * rc + 5;
5303
+ if (counters.c1 != 2)
5305
+ return 100 * counters.c1 + 2;
5307
+ if (counters.c2 != 10)
5309
+ return 100 * counters.c2 + 3;
5311
+ if (counters.c3 != 3)
5313
+ return 100 * counters.c3 + 6;
5318
+ return 100 * rc + 4;
5324
+static int test_tbegin_retry_nofloat (void)
5331
+ if ((rc = __builtin_tbegin_retry_nofloat ((void *)0, 5)) == 0)
5335
+ do_abort = (counters.c1 == 0) ? 1 : 0;
5336
+ __builtin_non_tx_store (
5337
+ (uint64_t *)&counters.c1, counters.c1 + 1);
5338
+ if (do_abort == 1)
5340
+ __builtin_tabort (256);
5342
+ counters.c2 = counters.c2 + 10;
5343
+ __builtin_non_tx_store ((uint64_t *)&counters.c3, 3);
5344
+ rc = __builtin_tend ();
5347
+ return 100 * rc + 5;
5349
+ if (counters.c1 != 2)
5351
+ return 100 * counters.c1 + 2;
5353
+ if (counters.c2 != 10)
5355
+ return 100 * counters.c2 + 3;
5357
+ if (counters.c3 != 3)
5359
+ return 100 * counters.c3 + 6;
5364
+ return 100 * rc + 4;
5370
+static int test_tbegin_aborts (void)
5376
+ if ((rc = __builtin_tbegin ((void *)0)) == 0)
5379
+ __builtin_tabort (256);
5391
+ if ((rc = __builtin_tbegin ((void *)0)) == 0)
5394
+ __builtin_tabort (257);
5399
+ return 100 * rc + 6;
5403
+ return 100 * f + 7;
5405
+ if ((rc = __builtin_tbegin ((void *)0)) == 0)
5407
+ global.float_3 = global.float_1 + global.float_2;
5408
+ rc = __builtin_tend ();
5411
+ return 100 * rc + 8;
5416
+ return 100 * rc + 9;
5418
+ if (global.float_3 != global.float_1 + global.float_2)
5420
+ return 100 * rc + 10;
5426
+static __attribute__((noinline)) void indirect_abort(int abort_code)
5428
+ __builtin_tabort (abort_code);
5433
+static int test_tbegin_indirect_aborts (void)
5439
+ if ((rc = __builtin_tbegin ((void *)0)) == 0)
5442
+ indirect_abort(256);
5447
+ return 100 * rc + 3;
5451
+ return 100 * rc + 4;
5454
+ if ((rc = __builtin_tbegin ((void *)0)) == 0)
5457
+ indirect_abort(257);
5462
+ return 100 * rc + 6;
5466
+ return 100 * f + 7;
5472
+static int test_tbegin_nofloat_aborts (void)
5476
+ if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
5478
+ __builtin_tabort (256);
5481
+ if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
5483
+ __builtin_tabort (257);
5488
+ return 1000 * rc + 6;
5494
+static int test_tbegin_nofloat_indirect_aborts (void)
5498
+ if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
5500
+ indirect_abort (256);
5503
+ if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
5505
+ indirect_abort (257);
5510
+ return 1000 * rc + 6;
5517
+int _test_tbegin_retry_aborts (int retries, uint64_t abort_code)
5522
+ if ((rc = __builtin_tbegin_retry ((void *)0, retries)) == 0)
5524
+ __builtin_non_tx_store ((uint64_t *)&counters.c1, counters.c1 + 1);
5525
+ __builtin_tabort (abort_code);
5530
+ if ((abort_code & 1) == 0)
5534
+ return 100 * rc + 2003;
5536
+ else if (counters.c1 != (uint64_t)retries + 1)
5538
+ return 1000 * counters.c1 + 100 * retries + 4;
5545
+ return 100 * rc + 3005;
5547
+ else if (counters.c1 != 1)
5549
+ return 1000 * counters.c1 + 100 * retries + 6;
5557
+static int test_tbegin_retry_aborts (void)
5562
+ for (retries = 1; retries <= 3; retries++)
5564
+ rc = _test_tbegin_retry_aborts (retries, 256);
5567
+ return 10000 + rc;
5570
+ for (retries = 1; retries <= 3; retries++)
5572
+ rc = _test_tbegin_retry_aborts (retries, 257);
5575
+ return 20000 + rc;
5578
+ if ((rc = __builtin_tbegin_retry ((void *)0, 5)) == 0)
5580
+ global.float_3 = global.float_1 + global.float_2;
5581
+ rc = __builtin_tend ();
5584
+ return 30000 + 100 * rc + 6;
5589
+ return 30000 + 100 * rc + 7;
5595
+static int _test_tbegin_retry_nofloat_aborts (int retries, uint64_t abort_code)
5600
+ if ((rc = __builtin_tbegin_retry_nofloat ((void *)0, retries)) == 0)
5602
+ __builtin_non_tx_store ((uint64_t *)&counters.c1, counters.c1 + 1);
5603
+ __builtin_tabort (abort_code);
5608
+ if ((abort_code & 1) == 0)
5612
+ return 100 * rc + 2003;
5614
+ else if (counters.c1 != (uint64_t)retries + 1)
5616
+ return 1000 * counters.c1 + 100 * retries + 4;
5623
+ return 100 * rc + 3005;
5625
+ else if (counters.c1 != 1)
5627
+ return 1000 * counters.c1 + 100 * retries + 6;
5635
+static int test_tbegin_retry_nofloat_aborts (void)
5640
+ for (retries = 1; retries <= 3; retries++)
5642
+ rc = _test_tbegin_retry_nofloat_aborts (retries, 256);
5645
+ return 10 * retries + rc;
5648
+ for (retries = 1; retries <= 3; retries++)
5650
+ rc = _test_tbegin_retry_nofloat_aborts (retries, 257);
5653
+ return 10000 + 10 * retries + rc;
5660
+static int test_tbegin_tdb (void)
5664
+ local_tdb.format = 0;
5665
+ if ((rc = __builtin_tbegin (&local_tdb)) == 0)
5667
+ rc = __builtin_tend ();
5670
+ return 100 * rc + 1;
5672
+ if (local_tdb.format != 0)
5674
+ dump_tdb (&local_tdb);
5675
+ return 100 * local_tdb.format + 2;
5680
+ return 100 * rc + 3;
5682
+ local_tdb.format = 0;
5683
+ if ((rc = __builtin_tbegin (&local_tdb)) == 0)
5685
+ __builtin_tabort (257);
5692
+ return 100 * rc + 5;
5694
+ if (local_tdb.format != 1)
5696
+ dump_tdb (&local_tdb);
5697
+ return 100 * local_tdb.format + 6;
5700
+ local_tdb256.format = 0;
5701
+ if ((rc = __builtin_tbegin (&local_tdb256)) == 0)
5703
+ rc = __builtin_tend ();
5706
+ return 1100 * rc + 1;
5708
+ if (local_tdb256.format != 0)
5710
+ dump_tdb (&local_tdb256);
5711
+ return 1100 * local_tdb256.format + 2;
5716
+ return 1100 * rc + 3;
5718
+ local_tdb256.format = 0;
5719
+ if ((rc = __builtin_tbegin (&local_tdb256)) == 0)
5721
+ __builtin_tabort (257);
5728
+ return 2100 * rc + 5;
5730
+ if (local_tdb256.format != 1)
5732
+ dump_tdb (&local_tdb256);
5733
+ return 2100 * local_tdb256.format + 6;
5740
+static int test_tbegin_nofloat_tdb (void)
5744
+ local_tdb.format = 0;
5745
+ if ((rc = __builtin_tbegin_nofloat (&local_tdb)) == 0)
5747
+ rc = __builtin_tend ();
5750
+ return 100 * rc + 1;
5752
+ if (local_tdb.format != 0)
5754
+ dump_tdb (&local_tdb);
5755
+ return 100 * local_tdb.format + 2;
5762
+ local_tdb.format = 0;
5763
+ if ((rc = __builtin_tbegin_nofloat (&local_tdb)) == 0)
5765
+ __builtin_tabort (257);
5772
+ return 100 * rc + 5;
5774
+ if (local_tdb.format != 1)
5776
+ dump_tdb (&local_tdb);
5777
+ return 100 * local_tdb.format + 6;
5780
+ local_tdb256.format = 0;
5781
+ if ((rc = __builtin_tbegin_nofloat (&local_tdb256)) == 0)
5783
+ rc = __builtin_tend ();
5786
+ return 1100 * rc + 1;
5788
+ if (local_tdb256.format != 0)
5790
+ dump_tdb (&local_tdb256);
5791
+ return 1100 * local_tdb256.format + 2;
5798
+ local_tdb256.format = 0;
5799
+ if ((rc = __builtin_tbegin_nofloat (&local_tdb256)) == 0)
5801
+ __builtin_tabort (257);
5808
+ return 2100 * rc + 5;
5810
+ if (local_tdb256.format != 1)
5812
+ dump_tdb (&local_tdb256);
5813
+ return 2100 * local_tdb256.format + 6;
5820
+static int test_tbegin_retry_tdb (void)
5824
+ local_tdb256.format = 0;
5825
+ if ((rc = __builtin_tbegin_retry (&local_tdb256, 2)) == 0)
5827
+ rc = __builtin_tend ();
5830
+ return 1100 * rc + 1;
5832
+ if (local_tdb256.format != 0)
5834
+ dump_tdb (&local_tdb256);
5835
+ return 1100 * local_tdb256.format + 2;
5842
+ local_tdb256.format = 0;
5843
+ if ((rc = __builtin_tbegin_retry (&local_tdb256, 2)) == 0)
5845
+ __builtin_tabort (257);
5852
+ return 2100 * rc + 5;
5854
+ if (local_tdb256.format != 1)
5856
+ dump_tdb (&local_tdb256);
5857
+ return 2100 * local_tdb256.format + 6;
5864
+static int test_tbegin_retry_nofloat_tdb (void)
5868
+ local_tdb.format = 0;
5869
+ if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb, 2)) == 0)
5871
+ rc = __builtin_tend ();
5874
+ return 100 * rc + 1;
5876
+ if (local_tdb.format != 0)
5878
+ dump_tdb (&local_tdb);
5879
+ return 100 * local_tdb.format + 2;
5884
+ return 100 * rc + 3;
5886
+ local_tdb.format = 0;
5887
+ if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb, 2)) == 0)
5889
+ __builtin_tabort (257);
5896
+ return 100 * rc + 5;
5898
+ if (local_tdb.format != 1)
5900
+ dump_tdb (&local_tdb);
5901
+ return 100 * local_tdb.format + 6;
5904
+ local_tdb256.format = 0;
5905
+ if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb256, 2)) == 0)
5907
+ rc = __builtin_tend ();
5910
+ return 1100 * rc + 1;
5912
+ if (local_tdb256.format != 0)
5914
+ dump_tdb (&local_tdb256);
5915
+ return 1100 * local_tdb256.format + 2;
5920
+ return 1100 * rc + 3;
5922
+ local_tdb256.format = 0;
5923
+ if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb256, 2)) == 0)
5925
+ __builtin_tabort (257);
5932
+ return 2100 * rc + 5;
5934
+ if (local_tdb256.format != 1)
5936
+ dump_tdb (&local_tdb256);
5937
+ return 2100 * local_tdb256.format + 6;
5944
+static int test_etnd (void)
5951
+ if ((rc = __builtin_tbegin ((void *)0)) == 0)
5953
+ counters.c1 = __builtin_tx_nesting_depth ();
5954
+ if (__builtin_tbegin ((void *)0) == 0)
5956
+ counters.c2 = __builtin_tx_nesting_depth ();
5957
+ if (__builtin_tbegin ((void *)0) == 0)
5959
+ counters.c3 = __builtin_tx_nesting_depth ();
5960
+ __builtin_tend ();
5962
+ __builtin_tend ();
5964
+ __builtin_tend ();
5968
+ return 100 * rc + 1;
5970
+ if (counters.c1 != 1)
5972
+ return 100 * counters.c1 + 2;
5974
+ if (counters.c2 != 2)
5976
+ return 100 * counters.c2 + 3;
5978
+ if (counters.c3 != 3)
5980
+ return 100 * counters.c3 + 4;
5986
+static int test_tbeginc (void)
5991
+ __builtin_tbeginc ();
5993
+ rc = __builtin_tend ();
5996
+ return 10000 * rc + 1;
5998
+ if (counters.c1 != 1)
6000
+ return 100000 * counters.c1 + 3;
6006
+/* ---------------------------- local testing framework functions ---------- */
6008
+static int run_one_test (const test_table_entry_t *test_entry)
6010
+ int do_print_passes;
6015
+ /* Warmup run to get all necessary data and instruction pages into the page
6021
+ for (run = 0; run < NUM_WARMUP_RUNS; run++)
6023
+ test_entry->test_func ();
6027
+ do_print_passes = (
6028
+ test_entry->required_quorum != 1 ||
6029
+ test_entry->max_repetitions != 1);
6030
+ printf ("RRR RUN %s\n", test_entry->name);
6031
+ if (do_print_passes == 1)
6034
+ " (requires %d successful out of %d runs)\n",
6035
+ test_entry->required_quorum,
6036
+ test_entry->max_repetitions);
6040
+ for (rc = 0, i = 0; i < test_entry->max_repetitions; i++)
6042
+ if (do_print_passes == 1)
6053
+ rc = test_entry->test_func ();
6056
+ if (do_print_passes == 1)
6058
+ printf (" success");
6061
+ if (succeeded >= test_entry->required_quorum)
6068
+ printf (" failed (rc = %d)", rc);
6071
+ if (do_print_passes == 1 || rc != 0)
6075
+ if (succeeded >= test_entry->required_quorum)
6077
+ printf ("+++ OK %s\n", test_entry->name);
6083
+ printf ("--- FAIL %s\n", test_entry->name);
6085
+ return (rc != 0) ? rc : -1;
6089
+static int run_all_tests (const test_table_entry_t *test_table)
6091
+ const test_table_entry_t *test;
6095
+ rc = 0, test = &test_table[0];
6096
+ test->test_func != NULL && rc == 0; test++)
6098
+ rc = run_one_test (test);
6104
+/* ---------------------------- interface functions ------------------------ */
6108
+ const test_table_entry_t test_table[] = {
6109
+ TEST_NO_REP (test_constants),
6110
+ TEST_DF_REP (test_tbegin_ntstg_tend),
6111
+ TEST_DF_REP (test_tbegin_ntstg_tabort),
6112
+ TEST_DF_REP (test_tbegin_nofloat),
6113
+ TEST_NO_REP (test_tbegin_retry),
6114
+ TEST_NO_REP (test_tbegin_retry_nofloat),
6115
+ TEST_DF_REP (test_tbegin_aborts),
6116
+ TEST_DF_REP (test_tbegin_indirect_aborts),
6117
+ TEST_DF_REP (test_tbegin_nofloat_aborts),
6118
+ TEST_DF_REP (test_tbegin_nofloat_indirect_aborts),
6119
+ TEST_NO_REP (test_tbegin_retry_aborts),
6120
+ TEST_NO_REP (test_tbegin_retry_nofloat_aborts),
6121
+ TEST_DF_REP (test_tbegin_tdb),
6122
+ TEST_DF_REP (test_tbegin_nofloat_tdb),
6123
+ TEST_NO_REP (test_tbegin_retry_tdb),
6124
+ TEST_NO_REP (test_tbegin_retry_nofloat_tdb),
6125
+ TEST_DF_REP (test_etnd),
6126
+ TEST_DF_REP (test_tbeginc),
6127
+ { (void *)0, 0, 0 }
6133
+ rc = run_all_tests (test_table);
6138
Index: gcc/testsuite/gcc.target/s390/htm-builtins-2.c
6139
===================================================================
6140
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-2.c (.../tags/gcc_4_8_2_release)
6141
+++ b/src/gcc/testsuite/gcc.target/s390/htm-builtins-2.c (.../branches/gcc-4_8-branch)
6143
+/* Functional tests of the htm __TM_... macros. */
6145
+/* { dg-do run } */
6146
+/* { dg-require-effective-target htm } */
6147
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
6149
+/* ---------------------------- included header files ---------------------- */
6152
+#include <string.h>
6153
+#include <inttypes.h>
6154
+#include <htmxlintrin.h>
6156
+/* ---------------------------- local definitions -------------------------- */
6158
+#define DEFAULT_MAX_REPETITIONS 5
6159
+#define DEFAULT_REQUIRED_QUORUM ((DEFAULT_MAX_REPETITIONS) - 1)
6160
+#define DEFAULT_ABORT_ADDRESS (0x12345678u)
6162
+/* ---------------------------- local macros ------------------------------- */
6164
+#define TEST_DF_REP(name) \
6165
+ { #name, name, DEFAULT_MAX_REPETITIONS, DEFAULT_REQUIRED_QUORUM }
6166
+#define TEST_NO_REP(name) { #name, name, 1, 1 }
6168
+/* ---------------------------- local types -------------------------------- */
6170
+typedef int (*test_func_t)(void);
6175
+ test_func_t test_func;
6176
+ int max_repetitions;
6177
+ int required_quorum;
6178
+} test_table_entry_t;
6182
+ ABORT_T_SYSTEM = 0,
6190
+ ABORT_T_FOOTPRINT_EXCEEDED,
6191
+ ABORT_T_NESTED_TOO_DEEP,
6194
+ ABORT_T_INVALID_ABORT_CODE
6197
+/* ---------------------------- local variables ---------------------------- */
6199
+__attribute__ ((aligned(256))) static struct __htm_tdb local_tdb256;
6200
+static struct __htm_tdb local_tdb;
6202
+static abort_t const abort_classes[] =
6204
+ ABORT_T_INVALID_ABORT_CODE,
6212
+ ABORT_T_FOOTPRINT_EXCEEDED,
6214
+ ABORT_T_FOOTPRINT_EXCEEDED,
6220
+ ABORT_T_NESTED_TOO_DEEP,
6227
+static size_t num_abort_classes = sizeof(abort_classes) / sizeof(abort_t);
6229
+/* ---------------------------- exported variables (globals) --------------- */
6231
+int global_int = 0;
6232
+uint64_t global_u64 = 0;
6233
+float global_float_1 = 1.0;
6234
+float global_float_2 = 2.5;
6235
+float global_float_3 = 0.0;
6236
+__attribute__ ((aligned(256))) struct
6238
+ volatile uint64_t c1;
6239
+ volatile uint64_t c2;
6240
+ volatile uint64_t c3;
6241
+} counters = { 0, 0, 0 };
6243
+/* ---------------------------- local helper functions --------------------- */
6245
+static void dump_tdb(struct __htm_tdb *tdb)
6251
+ p = (unsigned char *)tdb;
6252
+ for (i = 0; i < 16; i++)
6254
+ fprintf(stderr, "0x%02x ", i * 16);
6255
+ for (j = 0; j < 16; j++)
6257
+ fprintf(stderr, "%02x", (int)p[i * 16 + j]);
6260
+ fprintf(stderr, " ");
6264
+ fprintf(stderr, " ");
6267
+ fprintf(stderr, "\n");
6273
+static void make_fake_tdb(struct __htm_tdb *tdb)
6275
+ memset(tdb, 0, sizeof(*tdb));
6277
+ tdb->nesting_depth = 1;
6278
+ tdb->atia = DEFAULT_ABORT_ADDRESS;
6279
+ tdb->abort_code = 11;
6284
+static int check_abort_code_in_tdb(struct __htm_tdb *tdb, uint64_t abort_code)
6289
+ if (abort_code != 0)
6293
+ addr = __TM_failure_address(&local_tdb);
6294
+ if (addr != DEFAULT_ABORT_ADDRESS)
6300
+ long long tdb_abort_code;
6302
+ tdb_abort_code = __TM_failure_code(tdb);
6303
+ if ((uint64_t)tdb_abort_code != abort_code)
6306
+ stderr, "tm_ac %" PRIu64 ", ac %" PRIu64
6307
+ ", tdb_ac %" PRIu64 "\n",
6308
+ (uint64_t)tdb_abort_code, abort_code,
6309
+ (uint64_t)tdb->abort_code);
6313
+ expect_rc = (abort_code >= 256) ? 1 : 0;
6314
+ rc = __TM_is_user_abort(tdb);
6315
+ if (rc != expect_rc)
6317
+ fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
6321
+ unsigned char code;
6324
+ rc = __TM_is_named_user_abort(tdb, &code);
6325
+ if (rc != expect_rc)
6328
+ stderr, "rc %ld, expect_rc %ld\n", rc,
6332
+ if (expect_rc == 1 && code != abort_code - 256)
6337
+ if (abort_code > (uint64_t)num_abort_classes)
6339
+ abort_code = (uint64_t)num_abort_classes;
6341
+ expect_rc = (abort_classes[abort_code] == ABORT_T_ILLEGAL) ? 1 : 0;
6342
+ rc = __TM_is_illegal(tdb);
6343
+ if (rc != expect_rc)
6346
+ fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
6350
+ (abort_classes[abort_code] == ABORT_T_FOOTPRINT_EXCEEDED) ?
6352
+ rc = __TM_is_footprint_exceeded(tdb);
6353
+ if (rc != expect_rc)
6356
+ fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
6360
+ (abort_classes[abort_code] == ABORT_T_NESTED_TOO_DEEP) ? 1 : 0;
6361
+ rc = __TM_is_nested_too_deep(tdb);
6362
+ if (rc != expect_rc)
6365
+ fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
6368
+ expect_rc = (abort_classes[abort_code] == ABORT_T_CONFLICT) ? 1 : 0;
6369
+ rc = __TM_is_conflict(tdb);
6370
+ if (rc != expect_rc)
6373
+ fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
6380
+/* ---------------------------- local test functions ----------------------- */
6382
+/* Not a test; make sure that the involved global cachelines are reserved for
6384
+static int init_cache(void)
6386
+ make_fake_tdb(&local_tdb);
6387
+ make_fake_tdb(&local_tdb256);
6390
+ global_float_1 = 1.0;
6391
+ global_float_2 = 2.5;
6392
+ global_float_3 = 0.0;
6400
+static int test_abort_classification(void)
6404
+ make_fake_tdb(&local_tdb);
6405
+ for (i = 0; i <= 256; i++)
6409
+ local_tdb.abort_code = (uint64_t)i;
6410
+ rc = check_abort_code_in_tdb(&local_tdb, (uint64_t)i);
6413
+ return 100 * i + rc;
6420
+static int test_cc_classification(void)
6424
+ rc = __TM_is_failure_persistent(0);
6429
+ rc = __TM_is_failure_persistent(1);
6434
+ rc = __TM_is_failure_persistent(2);
6439
+ rc = __TM_is_failure_persistent(3);
6448
+static int test_tbegin_ntstg_tend(void)
6454
+ if ((rc = __TM_simple_begin()) == 0)
6456
+ __TM_non_transactional_store((uint64_t *)&counters.c1, 1);
6461
+ return 100 * rc + 5;
6463
+ if (counters.c1 != 1)
6465
+ return 100 * counters.c1 + 2;
6467
+ if (counters.c2 != 2)
6469
+ return 100 * counters.c2 + 3;
6474
+ return 100 * rc + 4;
6480
+static int test_tbegin_ntstg_tabort(void)
6487
+ if (__TM_simple_begin() == 0)
6489
+ __TM_non_transactional_store((uint64_t *)&counters.c1, 1);
6492
+ __TM_named_abort(0);
6495
+ if (counters.c1 != 1)
6497
+ return 100 * counters.c1 + 2;
6499
+ if (counters.c2 != 0)
6501
+ return 100 * counters.c2 + 3;
6505
+ return 100 * f + 4;
6511
+static int test_tbegin_aborts(void)
6517
+ if ((rc = __TM_simple_begin()) == 0)
6532
+ if ((rc = __TM_simple_begin()) == 0)
6535
+ __TM_named_abort(3);
6540
+ return 100 * rc + 6;
6544
+ return 100 * f + 7;
6546
+ if ((rc = __TM_simple_begin()) == 0)
6548
+ global_float_3 = global_float_1 + global_float_2;
6552
+ return 100 * rc + 8;
6557
+ return 100 * rc + 9;
6559
+ if (global_float_3 != global_float_1 + global_float_2)
6561
+ return 100 * rc + 10;
6567
+static int test_tbegin_tdb(void)
6571
+ local_tdb.format = 0;
6572
+ if ((rc = __TM_begin(&local_tdb)) == 0)
6577
+ return 100 * rc + 1;
6579
+ if (local_tdb.format != 0)
6581
+ dump_tdb(&local_tdb);
6582
+ return 100 * local_tdb.format + 2;
6587
+ return 100 * rc + 3;
6589
+ local_tdb.format = 0;
6590
+ if ((rc = __TM_begin(&local_tdb)) == 0)
6592
+ __TM_named_abort(1);
6599
+ return 100 * rc + 5;
6601
+ if (local_tdb.format != 1)
6603
+ dump_tdb(&local_tdb);
6604
+ return 100 * local_tdb.format + 6;
6607
+ local_tdb256.format = 0;
6608
+ if ((rc = __TM_begin(&local_tdb256)) == 0)
6613
+ return 1100 * rc + 1;
6615
+ if (local_tdb256.format != 0)
6617
+ dump_tdb(&local_tdb256);
6618
+ return 1100 * local_tdb256.format + 2;
6623
+ return 1100 * rc + 3;
6625
+#if 1 /*!!!does not work*/
6626
+ local_tdb256.format = 0;
6627
+ if ((rc = __TM_begin(&local_tdb256)) == 0)
6629
+ __TM_named_abort(1);
6636
+ return 2100 * rc + 5;
6638
+ if (local_tdb256.format != 1)
6640
+ dump_tdb(&local_tdb256);
6641
+ return 2100 * local_tdb256.format + 6;
6649
+static int test_etnd(void)
6656
+ make_fake_tdb(&local_tdb);
6657
+ local_tdb.nesting_depth = 0;
6658
+ nd = __TM_nesting_depth(&local_tdb);
6663
+ local_tdb.nesting_depth = 7;
6664
+ nd = __TM_nesting_depth(&local_tdb);
6669
+ local_tdb.format = 0;
6670
+ nd = __TM_nesting_depth(&local_tdb);
6680
+ if ((rc = __TM_simple_begin()) == 0)
6682
+ counters.c1 = __TM_nesting_depth(0);
6683
+ if (__TM_simple_begin() == 0)
6685
+ counters.c2 = __TM_nesting_depth(0);
6686
+ if (__TM_simple_begin() == 0)
6688
+ counters.c3 = __TM_nesting_depth(0);
6697
+ return 100 * rc + 1;
6699
+ if (counters.c1 != 1)
6701
+ return 100 * counters.c1 + 2;
6703
+ if (counters.c2 != 2)
6705
+ return 100 * counters.c2 + 3;
6707
+ if (counters.c3 != 3)
6709
+ return 100 * counters.c3 + 4;
6715
+/* ---------------------------- local testing framework functions ---------- */
6717
+static int run_one_test(const test_table_entry_t *test_entry)
6719
+ int do_print_passes;
6724
+ do_print_passes = (
6725
+ test_entry->required_quorum != 1 ||
6726
+ test_entry->max_repetitions != 1);
6727
+ printf("RRR RUN %s\n", test_entry->name);
6728
+ if (do_print_passes == 1)
6731
+ " (requires %d successful out of %d runs)\n",
6732
+ test_entry->required_quorum,
6733
+ test_entry->max_repetitions);
6737
+ for (rc = 0, i = 0; i < test_entry->max_repetitions; i++)
6739
+ if (do_print_passes == 1)
6750
+ rc = test_entry->test_func();
6753
+ if (do_print_passes == 1)
6755
+ printf(" success");
6758
+ if (succeeded >= test_entry->required_quorum)
6765
+ printf(" failed (rc = %d)", rc);
6768
+ if (do_print_passes == 1 || rc != 0)
6772
+ if (succeeded >= test_entry->required_quorum)
6774
+ printf("+++ OK %s\n", test_entry->name);
6780
+ printf("--- FAIL %s\n", test_entry->name);
6782
+ return (rc != 0) ? rc : -1;
6786
+static int run_all_tests(const test_table_entry_t *test_table)
6788
+ const test_table_entry_t *test;
6792
+ rc = 0, test = &test_table[0];
6793
+ test->test_func != NULL && rc == 0; test++)
6795
+ rc = run_one_test(test);
6801
+/* ---------------------------- interface functions ------------------------ */
6805
+ const test_table_entry_t test_table[] = {
6806
+ TEST_NO_REP(init_cache),
6807
+ TEST_NO_REP(test_abort_classification),
6808
+ TEST_NO_REP(test_cc_classification),
6809
+ TEST_DF_REP(test_tbegin_ntstg_tend),
6810
+ TEST_DF_REP(test_tbegin_ntstg_tabort),
6811
+ TEST_DF_REP(test_tbegin_aborts),
6812
+ TEST_DF_REP(test_tbegin_tdb),
6813
+ TEST_DF_REP(test_etnd),
6814
+ { (void *)0, 0, 0 }
6820
+ rc = run_all_tests(test_table);
6825
Index: gcc/testsuite/gcc.target/sh/pr54089-3.c
6826
===================================================================
6827
--- a/src/gcc/testsuite/gcc.target/sh/pr54089-3.c (.../tags/gcc_4_8_2_release)
6828
+++ b/src/gcc/testsuite/gcc.target/sh/pr54089-3.c (.../branches/gcc-4_8-branch)
6830
/* { dg-options "-O1" } */
6831
/* { dg-skip-if "" { "sh*-*-*" } { "*" } { "-m1*" "-m2" "-m2e*" } } */
6832
/* { dg-final { scan-assembler-not "and" } } */
6833
-/* { dg-final { scan-assembler-not "31" } } */
6834
+/* { dg-final { scan-assembler-not "#31" } } */
6837
test00 (unsigned int a, int* b, int c, int* d, unsigned int e)
6838
Index: gcc/testsuite/gfortran.dg/reshape_6.f90
6839
===================================================================
6840
--- a/src/gcc/testsuite/gfortran.dg/reshape_6.f90 (.../tags/gcc_4_8_2_release)
6841
+++ b/src/gcc/testsuite/gfortran.dg/reshape_6.f90 (.../branches/gcc-4_8-branch)
6843
+! { dg-do compile }
6848
+ real(8), dimension(4,4) :: fluxes
6849
+ real(8), dimension(2,2,2,2) :: f
6850
+ integer, dimension(3) :: dmmy
6851
+ integer, parameter :: indx(4)=(/2,2,2,2/)
6857
+ f = reshape(fluxes,(/dmmy,2/)) ! Caused an ICE
6858
+ f = reshape(fluxes,(/2,2,2,2/)) ! Works as expected
6859
+ f = reshape(fluxes,indx) ! Works as expected
6862
Index: gcc/testsuite/gfortran.dg/derived_external_function_1.f90
6863
===================================================================
6864
--- a/src/gcc/testsuite/gfortran.dg/derived_external_function_1.f90 (.../tags/gcc_4_8_2_release)
6865
+++ b/src/gcc/testsuite/gfortran.dg/derived_external_function_1.f90 (.../branches/gcc-4_8-branch)
6871
+! Contributed by Vittorio Secca <zeccav@gmail.com>
6873
+! ICEd on the write statement with f() because the derived type backend
6874
+! declaration not built.
6882
+type(t) function f() result(ff)
6888
+ character (20) :: line1, line2
6890
+ write (line1, *) f()
6891
+ write (line2, *) 42_4
6892
+ if (line1 .ne. line2) call abort
6894
Index: gcc/testsuite/gfortran.dg/constructor_9.f90
6895
===================================================================
6896
--- a/src/gcc/testsuite/gfortran.dg/constructor_9.f90 (.../tags/gcc_4_8_2_release)
6897
+++ b/src/gcc/testsuite/gfortran.dg/constructor_9.f90 (.../branches/gcc-4_8-branch)
6899
+! { dg-do compile }
6900
+! { dg-options "-Wall" }
6902
+! PR 58471: [4.8/4.9 Regression] ICE on invalid with missing type constructor and -Wall
6904
+! Contributed by Andrew Benson <abensonca@gmail.com>
6911
+ module procedure mdedc ! { dg-error "is neither function nor subroutine" }
6915
+ type(cfmde), pointer :: cfd
6916
+ cfd=cfmde() ! { dg-error "Can't convert" }
6920
+! { dg-final { cleanup-modules "cf" } }
6921
Index: gcc/testsuite/gfortran.dg/proc_ptr_43.f90
6922
===================================================================
6923
--- a/src/gcc/testsuite/gfortran.dg/proc_ptr_43.f90 (.../tags/gcc_4_8_2_release)
6924
+++ b/src/gcc/testsuite/gfortran.dg/proc_ptr_43.f90 (.../branches/gcc-4_8-branch)
6926
+! { dg-do compile }
6928
+! PR 58099: [4.8/4.9 Regression] [F03] over-zealous procedure-pointer error checking
6930
+! Contributed by Daniel Price <daniel.price@monash.edu>
6933
+ procedure(real), pointer :: wfunc
6939
+ pure real function w_cubic(q2)
6940
+ real, intent(in) :: q2
6945
Index: gcc/testsuite/gfortran.dg/extends_15.f90
6946
===================================================================
6947
--- a/src/gcc/testsuite/gfortran.dg/extends_15.f90 (.../tags/gcc_4_8_2_release)
6948
+++ b/src/gcc/testsuite/gfortran.dg/extends_15.f90 (.../branches/gcc-4_8-branch)
6950
+! { dg-do compile }
6952
+! PR 58355: [4.7/4.8/4.9 Regression] [F03] ICE with TYPE, EXTENDS before parent TYPE defined
6954
+! Contributed by Andrew Benson <abensonca@gmail.com>
6959
+ type, extends(t1) :: t2 ! { dg-error "has not been previously defined" }
6965
+! { dg-final { cleanup-modules "ct" } }
6966
Index: gcc/testsuite/gcc.c-torture/execute/pr58984.c
6967
===================================================================
6968
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr58984.c (.../tags/gcc_4_8_2_release)
6969
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr58984.c (.../branches/gcc-4_8-branch)
6971
+/* PR tree-optimization/58984 */
6973
+struct S { int f0 : 8; int : 6; int f1 : 5; };
6974
+struct T { char f0; int : 6; int f1 : 5; };
6976
+int a, *c = &a, e, n, b, m;
6981
+ const unsigned short *f[36];
6982
+ for (; e < 2; e++)
6984
+ const unsigned short **i = &f[0];
6998
+ const unsigned short *f[36];
6999
+ for (; e < 2; e++)
7001
+ const unsigned short **i = &f[0];
7015
+ struct S o = { 1, 1 };
7019
+ __builtin_abort ();
7021
+ struct T p = { 1, 1 };
7025
+ __builtin_abort ();
7028
Index: gcc/testsuite/gcc.c-torture/execute/20131127-1.c
7029
===================================================================
7030
--- a/src/gcc/testsuite/gcc.c-torture/execute/20131127-1.c (.../tags/gcc_4_8_2_release)
7031
+++ b/src/gcc/testsuite/gcc.c-torture/execute/20131127-1.c (.../branches/gcc-4_8-branch)
7033
+/* PR middle-end/59138 */
7034
+/* Testcase by John Regehr <regehr@cs.utah.edu> */
7036
+extern void abort (void);
7049
+struct S0 b = { 1 }, c, d, e;
7051
+struct S0 fn1() { return c; }
7067
Index: gcc/testsuite/gcc.c-torture/execute/pr59014-2.c
7068
===================================================================
7069
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr59014-2.c (.../tags/gcc_4_8_2_release)
7070
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr59014-2.c (.../branches/gcc-4_8-branch)
7072
+/* PR tree-optimization/59014 */
7074
+__attribute__((noinline, noclone)) long long int
7075
+foo (long long int x, long long int y)
7077
+ if (((int) x | (int) y) != 0)
7085
+ if (sizeof (long long) == sizeof (int))
7087
+ int shift_half = sizeof (int) * __CHAR_BIT__ / 2;
7088
+ long long int x = (3LL << shift_half) << shift_half;
7089
+ long long int y = (5LL << shift_half) << shift_half;
7090
+ long long int z = foo (x, y);
7091
+ if (z != ((8LL << shift_half) << shift_half))
7092
+ __builtin_abort ();
7095
Index: gcc/testsuite/gcc.c-torture/execute/pr59101.c
7096
===================================================================
7097
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr59101.c (.../tags/gcc_4_8_2_release)
7098
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr59101.c (.../branches/gcc-4_8-branch)
7100
+/* PR target/59101 */
7102
+__attribute__((noinline, noclone)) int
7105
+ return (~a & 4102790424LL) > 0 | 6;
7112
+ __builtin_abort ();
7115
Index: gcc/testsuite/gcc.c-torture/execute/pr58831.c
7116
===================================================================
7117
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr58831.c (.../tags/gcc_4_8_2_release)
7118
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr58831.c (.../branches/gcc-4_8-branch)
7120
+#include <assert.h>
7122
+int a, *b, c, d, f, **i, p, q, *r;
7125
+static int __attribute__((noinline, noclone))
7126
+fn1 (int *p1, int **p2)
7138
+static int ** __attribute__((noinline, noclone))
7141
+ for (f = 0; f != 42; f++)
7143
+ int *g[3] = {0, 0, 0};
7144
+ for (o = 0; o; o--)
7147
+ int **h[1] = { &g[2] };
7160
Index: gcc/testsuite/gcc.c-torture/execute/pr59014.c
7161
===================================================================
7162
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr59014.c (.../tags/gcc_4_8_2_release)
7163
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr59014.c (.../branches/gcc-4_8-branch)
7165
+/* PR tree-optimization/59014 */
7167
+int a = 2, b, c, d;
7173
+ if ((b > 0) | (a & 1))
7187
+ __builtin_abort ();
7190
Index: gcc/testsuite/gcc.c-torture/compile/pr58970-1.c
7191
===================================================================
7192
--- a/src/gcc/testsuite/gcc.c-torture/compile/pr58970-1.c (.../tags/gcc_4_8_2_release)
7193
+++ b/src/gcc/testsuite/gcc.c-torture/compile/pr58970-1.c (.../branches/gcc-4_8-branch)
7195
+/* PR middle-end/58970 */
7197
+struct T { int b : 1; };
7198
+struct S { struct T t[1]; };
7201
+foo (int x, struct S *s)
7206
Index: gcc/testsuite/gcc.c-torture/compile/pr58997.c
7207
===================================================================
7208
--- a/src/gcc/testsuite/gcc.c-torture/compile/pr58997.c (.../tags/gcc_4_8_2_release)
7209
+++ b/src/gcc/testsuite/gcc.c-torture/compile/pr58997.c (.../branches/gcc-4_8-branch)
7211
+/* PR rtl-optimization/58997 */
7222
+ d = a ? c : 1 % a;
7230
Index: gcc/testsuite/gcc.c-torture/compile/pr58970-2.c
7231
===================================================================
7232
--- a/src/gcc/testsuite/gcc.c-torture/compile/pr58970-2.c (.../tags/gcc_4_8_2_release)
7233
+++ b/src/gcc/testsuite/gcc.c-torture/compile/pr58970-2.c (.../branches/gcc-4_8-branch)
7235
+/* PR middle-end/58970 */
7237
+struct T { char a : 8; char b : 1; };
7238
+struct S { char x; struct T t[1]; };
7241
+foo (int x, struct S *s)
7246
Index: gcc/testsuite/gcc.dg/pr57518.c
7247
===================================================================
7248
--- a/src/gcc/testsuite/gcc.dg/pr57518.c (.../tags/gcc_4_8_2_release)
7249
+++ b/src/gcc/testsuite/gcc.dg/pr57518.c (.../branches/gcc-4_8-branch)
7251
-/* PR rtl-optimization/57130 */
7252
+/* PR rtl-optimization/57518 */
7254
/* { dg-do compile } */
7255
/* { dg-options "-O2 -fdump-rtl-ira" } */
7256
-/* { dg-final { scan-rtl-dump-not "REG_EQUIV.*mem.*\"ip\"" "ira" } } */
7257
+/* { dg-final { scan-rtl-dump-not "REG_EQUIV\[^\n\]*mem\[^\n\]*\"ip\".*subreg" "ira" } } */
7261
Index: gcc/testsuite/gcc.dg/20050922-1.c
7262
===================================================================
7263
--- a/src/gcc/testsuite/gcc.dg/20050922-1.c (.../tags/gcc_4_8_2_release)
7264
+++ b/src/gcc/testsuite/gcc.dg/20050922-1.c (.../branches/gcc-4_8-branch)
7267
/* { dg-options "-O1 -std=c99" } */
7269
-#include <stdlib.h>
7270
+extern void abort (void);
7272
#if __INT_MAX__ == 2147483647
7273
typedef unsigned int uint32_t;
7274
Index: gcc/testsuite/gcc.dg/atomic-store-6.c
7275
===================================================================
7276
--- a/src/gcc/testsuite/gcc.dg/atomic-store-6.c (.../tags/gcc_4_8_2_release)
7277
+++ b/src/gcc/testsuite/gcc.dg/atomic-store-6.c (.../branches/gcc-4_8-branch)
7279
+/* { dg-do run } */
7280
+/* { dg-require-effective-target sync_int_128_runtime } */
7281
+/* { dg-options "-mcx16" { target { i?86-*-* x86_64-*-* } } } */
7287
+ __atomic_store_16(&i, -1, 0);
7289
+ __builtin_abort();
7292
Index: gcc/testsuite/gcc.dg/20050922-2.c
7293
===================================================================
7294
--- a/src/gcc/testsuite/gcc.dg/20050922-2.c (.../tags/gcc_4_8_2_release)
7295
+++ b/src/gcc/testsuite/gcc.dg/20050922-2.c (.../branches/gcc-4_8-branch)
7298
/* { dg-options "-O1 -std=c99" } */
7300
-#include <stdlib.h>
7301
+extern void abort (void);
7302
+extern void exit (int);
7304
#if __INT_MAX__ == 2147483647
7305
typedef unsigned int uint32_t;
7306
Index: gcc/testsuite/gcc.dg/pr58805.c
7307
===================================================================
7308
--- a/src/gcc/testsuite/gcc.dg/pr58805.c (.../tags/gcc_4_8_2_release)
7309
+++ b/src/gcc/testsuite/gcc.dg/pr58805.c (.../branches/gcc-4_8-branch)
7311
+/* { dg-do compile } */
7312
+/* { dg-options "-O2 -ftree-tail-merge -fdump-tree-pre" } */
7314
+/* Type that matches the 'p' constraint. */
7315
+#define TYPE void *
7321
+ __asm__ ("" : "=&p" (t), "=p" (*r));
7325
+foo (int n, TYPE *x, TYPE *y)
7333
+/* { dg-final { scan-tree-dump-times "__asm__" 2 "pre"} } */
7334
+/* { dg-final { cleanup-tree-dump "pre" } } */
7335
Index: gcc/testsuite/gcc.dg/torture/pr59047.c
7336
===================================================================
7337
--- a/src/gcc/testsuite/gcc.dg/torture/pr59047.c (.../tags/gcc_4_8_2_release)
7338
+++ b/src/gcc/testsuite/gcc.dg/torture/pr59047.c (.../branches/gcc-4_8-branch)
7340
+/* { dg-do run } */
7342
+extern void abort (void);
7351
+int b, c, *d, e, f;
7356
+ for (; b < 1; ++b)
7358
+ for (e = 0; e < 1; e = 1)
7379
Index: gcc/testsuite/gcc.dg/torture/pr57517.c
7380
===================================================================
7381
--- a/src/gcc/testsuite/gcc.dg/torture/pr57517.c (.../tags/gcc_4_8_2_release)
7382
+++ b/src/gcc/testsuite/gcc.dg/torture/pr57517.c (.../branches/gcc-4_8-branch)
7384
+/* { dg-do compile } */
7386
+int x[1024], y[1024], z[1024], w[1024];
7390
+ for (i = 1; i < 1024; ++i)
7397
+ z[i] = (a + b) + (c + d);
7400
Index: gcc/testsuite/gcc.dg/torture/pr58779.c
7401
===================================================================
7402
--- a/src/gcc/testsuite/gcc.dg/torture/pr58779.c (.../tags/gcc_4_8_2_release)
7403
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58779.c (.../branches/gcc-4_8-branch)
7405
+/* { dg-do run } */
7412
+ short d = (c <= 0) ^ e;
7413
+ if ((unsigned int) a - (a || d) <= (unsigned int) a)
7414
+ __builtin_abort ();
7417
Index: gcc/testsuite/gcc.dg/torture/pr58079.c
7418
===================================================================
7419
--- a/src/gcc/testsuite/gcc.dg/torture/pr58079.c (.../tags/gcc_4_8_2_release)
7420
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58079.c (.../branches/gcc-4_8-branch)
7422
+/* { dg-options "-mlong-calls" { target mips*-*-* } } */
7424
+typedef unsigned char u8;
7425
+typedef unsigned short u16;
7426
+typedef unsigned int __kernel_size_t;
7427
+typedef __kernel_size_t size_t;
7429
+ struct list_head *next;
7432
+struct dmx_ts_feed {
7435
+struct dmx_section_feed {
7441
+typedef int (*dmx_ts_cb) (
7442
+ const u8 * buffer1,
7443
+ size_t buffer1_length,
7444
+ const u8 * buffer2,
7445
+ size_t buffer2_length
7448
+struct dvb_demux_feed {
7450
+ struct dmx_ts_feed ts;
7451
+ struct dmx_section_feed sec;
7459
+ struct list_head list_head;
7463
+ int (*stop_feed)(struct dvb_demux_feed *feed);
7464
+ struct list_head feed_list;
7470
+__attribute__((always_inline))
7472
+payload(const u8 *tsp)
7474
+ if (tsp[3] & 0x20) {
7475
+ return 184 - 1 - tsp[4];
7482
+__attribute__((always_inline))
7484
+dvb_dmx_swfilter_payload(struct dvb_demux_feed *feed, const u8 *buf)
7486
+ int count = payload(buf);
7490
+ return feed->cb.ts(&buf[p], count, ((void *)0), 0);
7495
+__attribute__((always_inline))
7497
+dvb_dmx_swfilter_packet_type(struct dvb_demux_feed *feed, const u8 *buf)
7499
+ switch (feed->type) {
7501
+ if (feed->ts_type & 1) {
7502
+ dvb_dmx_swfilter_payload(feed, buf);
7504
+ if (dvb_dmx_swfilter_section_packet(feed, buf) < 0)
7505
+ feed->feed.sec.seclen = feed->feed.sec.secbufp = 0;
7511
+dvb_dmx_swfilter_packet(struct dvb_demux *demux, const u8 *buf)
7513
+ struct dvb_demux_feed *feed;
7516
+ for (feed = ({ const typeof( ((typeof(*feed) *)0)->list_head ) *__mptr = ((&demux->feed_list)->next); (typeof(*feed) *)( (char *)__mptr - __builtin_offsetof(typeof(*feed),list_head) );}); __builtin_prefetch(feed->list_head.next), &feed->list_head != (&demux->feed_list); feed = ({ const typeof( ((typeof(*feed) *)0)->list_head ) *__mptr = (feed->list_head.next); (typeof(*feed) *)( (char *)__mptr - __builtin_offsetof(typeof(*feed),list_head) );})) {
7517
+ if (((((feed)->type == 0) && ((feed)->feed.ts.is_filtering) && (((feed)->ts_type & (1 | 8)) == 1))) && (dvr_done++))
7518
+ dvb_dmx_swfilter_packet_type(feed, buf);
7519
+ else if (feed->pid == 0x2000)
7520
+ feed->cb.ts(buf, 188, ((void *)0), 0);
7523
+void dvb_dmx_swfilter_packets(struct dvb_demux *demux, const u8 *buf, size_t count)
7526
+ dvb_dmx_swfilter_packet(demux, buf);
7529
Index: gcc/testsuite/gcc.dg/torture/pr58830.c
7530
===================================================================
7531
--- a/src/gcc/testsuite/gcc.dg/torture/pr58830.c (.../tags/gcc_4_8_2_release)
7532
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58830.c (.../branches/gcc-4_8-branch)
7534
+/* { dg-do run } */
7535
+/* { dg-additional-options "-ftree-pre -ftree-partial-pre" } */
7537
+extern void abort (void);
7539
+int b, c, d, f, g, h, i, j[6], *l = &b, *m, n, *o, r;
7553
+ for (f = 0; f < 2; f++)
7561
+ for (q = -8; q >= 5; q++)
7572
+ if (j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[j[0]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ^ (k & 15)] != 0)
7576
Index: gcc/testsuite/gcc.dg/torture/pr58143-1.c
7577
===================================================================
7578
--- a/src/gcc/testsuite/gcc.dg/torture/pr58143-1.c (.../tags/gcc_4_8_2_release)
7579
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58143-1.c (.../branches/gcc-4_8-branch)
7581
+/* { dg-do run } */
7582
+/* { dg-additional-options "-fstrict-overflow" } */
7584
+extern void abort (void);
7586
+int a, b, c, d, e, f, g, h = 1, i;
7590
+ return p < 0 && a < - __INT_MAX__ - 1 - p ? 0 : 1;
7596
+ i = h ? 0 : 1 % h;
7597
+ for (j = 0; j < 1; j++)
7598
+ for (d = 0; d; d++)
7606
+ for (; b >= 0; b--)
7607
+ for (c = 1; c >= 0; c--)
7612
+ for (f = 0; f < 1; f++)
7632
Index: gcc/testsuite/gcc.dg/torture/pr58143-2.c
7633
===================================================================
7634
--- a/src/gcc/testsuite/gcc.dg/torture/pr58143-2.c (.../tags/gcc_4_8_2_release)
7635
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58143-2.c (.../branches/gcc-4_8-branch)
7637
+/* { dg-do run } */
7638
+/* { dg-additional-options "-fstrict-overflow" } */
7640
+int a, b, d, e, f, *g, h, i;
7643
+char foo (unsigned char p)
7650
+ for (h = 0; h < 3; h = foo (h))
7653
+ for (f = 0; f < 1; f++)
7655
+ i = a && 0 < -__INT_MAX__ - h ? 0 : 1;
7671
Index: gcc/testsuite/gcc.dg/torture/pr58941.c
7672
===================================================================
7673
--- a/src/gcc/testsuite/gcc.dg/torture/pr58941.c (.../tags/gcc_4_8_2_release)
7674
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58941.c (.../branches/gcc-4_8-branch)
7676
+/* { dg-do run } */
7678
+extern void abort (void);
7682
+ unsigned char data[1000];
7695
+ SData *pData = (SData*)(msg.data);
7696
+ unsigned int i = 0;
7697
+ for (i = 0; i < 1; i++)
7701
+ pData->d[i] |= 0x55;
7703
+ pData->d[i] |= 0xaa;
7705
+ if (pData->d[0] != 0xff)
7709
Index: gcc/testsuite/gcc.dg/torture/pr57488.c
7710
===================================================================
7711
--- a/src/gcc/testsuite/gcc.dg/torture/pr57488.c (.../tags/gcc_4_8_2_release)
7712
+++ b/src/gcc/testsuite/gcc.dg/torture/pr57488.c (.../branches/gcc-4_8-branch)
7714
+/* { dg-do run } */
7716
+extern void abort (void);
7718
+int i, j, *pj = &j, **ppj = &pj;
7721
+short s, *ps = &s, k;
7723
+unsigned short u, *pu = &u, **ppu = &pu;
7727
+unsigned char v = 48;
7740
+void __attribute__((noinline))
7743
+ for (; i <= 3; i++)
7748
+ for (k = 1; k >= 0; k--)
7752
+ for (l = 1; l < 5; l++)
7755
+ for (m = 6; m; m--)
7772
Index: gcc/testsuite/gcc.dg/torture/pr58143-3.c
7773
===================================================================
7774
--- a/src/gcc/testsuite/gcc.dg/torture/pr58143-3.c (.../tags/gcc_4_8_2_release)
7775
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58143-3.c (.../branches/gcc-4_8-branch)
7777
+/* { dg-do run } */
7778
+/* { dg-additional-options "-fstrict-overflow" } */
7785
+ for (b = 4; b > -30; b--)
7789
+ e = a > __INT_MAX__ - b;
7795
Index: gcc/testsuite/gcc.dg/tree-ssa/predcom-6.c
7796
===================================================================
7797
--- a/src/gcc/testsuite/gcc.dg/tree-ssa/predcom-6.c (.../tags/gcc_4_8_2_release)
7798
+++ b/src/gcc/testsuite/gcc.dg/tree-ssa/predcom-6.c (.../branches/gcc-4_8-branch)
7800
+/* { dg-do run } */
7801
+/* { dg-options "-O3" } */
7809
+ for (d = 0; d < 2; d++)
7810
+ if (a ? 0 : e[c + 3][d] & e[c + 4][d])
7814
Index: gcc/testsuite/gcc.dg/tree-ssa/predcom-7.c
7815
===================================================================
7816
--- a/src/gcc/testsuite/gcc.dg/tree-ssa/predcom-7.c (.../tags/gcc_4_8_2_release)
7817
+++ b/src/gcc/testsuite/gcc.dg/tree-ssa/predcom-7.c (.../branches/gcc-4_8-branch)
7819
+/* { dg-do run } */
7820
+/* { dg-options "-O3 -fdump-tree-pcom-details" } */
7828
+ for (c = 0; c < 2; c++)
7829
+ if (d[b + 3][c] & d[b + 4][c])
7835
+/* { dg-final { scan-tree-dump "Executing predictive commoning" "pcom" } } */
7836
+/* { dg-final { cleanup-tree-dump "pcom" } } */
7837
Index: gcc/testsuite/ChangeLog
7838
===================================================================
7839
--- a/src/gcc/testsuite/ChangeLog (.../tags/gcc_4_8_2_release)
7840
+++ b/src/gcc/testsuite/ChangeLog (.../branches/gcc-4_8-branch)
7842
+2013-11-29 Jakub Jelinek <jakub@redhat.com>
7845
+ * c-c++-common/pr59280.c: New test.
7847
+2013-11-28 Jakub Jelinek <jakub@redhat.com>
7850
+ * g++.dg/gomp/pr59297.C: New test.
7852
+2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7854
+ Backport from mainline
7855
+ 2013-11-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7857
+ * gcc.target/arm/vrinta-ce.c: New testcase.
7859
+2013-11-28 Uros Bizjak <ubizjak@gmail.com>
7861
+ Backport from mainline
7862
+ 2013-11-23 Uros Bizjak <ubizjak@gmail.com>
7865
+ * config/i386/i386.c (bdesc_multi_arg) <IX86_BUILTIN_VFRCZSS>:
7866
+ Declare as MULTI_ARG_1_SF instruction.
7867
+ <IX86_BUILTIN_VFRCZSD>: Decleare as MULTI_ARG_1_DF instruction.
7868
+ * config/i386/sse.md (*xop_vmfrcz<mode>2): Rename
7869
+ from *xop_vmfrcz_<mode>.
7870
+ * config/i386/xopintrin.h (_mm_frcz_ss): Use __builtin_ia32_movss
7871
+ to merge scalar result with __A.
7872
+ (_mm_frcz_sd): Use __builtin_ia32_movsd to merge scalar
7875
+2013-11-28 Terry Guo <terry.guo@arm.com>
7877
+ Backport mainline r205391
7878
+ 2013-11-26 Terry Guo <terry.guo@arm.com>
7880
+ * gcc.target/arm/thumb1-pic-high-reg.c: New case.
7881
+ * gcc.target/arm/thumb1-pic-single-base.c: New case.
7883
+2013-11-27 Jakub Jelinek <jakub@redhat.com>
7885
+ Backported from mainline
7886
+ 2013-11-27 Jakub Jelinek <jakub@redhat.com>
7888
+ PR tree-optimization/59014
7889
+ * gcc.c-torture/execute/pr59014-2.c: New test.
7891
+ 2013-11-26 Jakub Jelinek <jakub@redhat.com>
7893
+ PR tree-optimization/59014
7894
+ * gcc.c-torture/execute/pr59014.c: New test.
7896
+2013-11-27 Eric Botcazou <ebotcazou@adacore.com>
7898
+ * gcc.c-torture/execute/20131127-1.c: New test.
7900
+2013-11-25 Vidya Praveen <vidyapraveen@arm.com>
7902
+ Backport from mainline
7903
+ 2013-10-21 Vidya Praveen <vidyapraveen@arm.com>
7905
+ * gcc.dg/20050922-1.c: Remove stdlib.h and declare abort().
7906
+ * gcc.dg/20050922-1.c: Remove stdlib.h and declare abort() and exit().
7908
+2013-11-20 Dominik Vogt <vogt@linux.vnet.ibm.com>
7910
+ Backport from mainline
7911
+ * gcc.target/s390/htm-1.c: Rename to ...
7912
+ * gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c: ... this
7914
+ * gcc.target/s390/htm-xl-intrin-1.c: Rename to ...
7915
+ * gcc.target/s390/htm-builtins-compile-3.c: ... this one.
7916
+ * gcc.target/s390/htm-builtins-compile-2.c: New testcase.
7917
+ * gcc.target/s390/htm-builtins-1.c: New testcase.
7918
+ * gcc.target/s390/htm-builtins-2.c: New testcase.
7919
+ * gcc.target/s390/s390.exp: Add check for htm machine.
7921
+2013-11-19 Richard Biener <rguenther@suse.de>
7923
+ PR tree-optimization/57517
7924
+ * gfortran.fortran-torture/compile/pr57517.f90: New testcase.
7925
+ * gcc.dg/torture/pr57517.c: Likewise.
7927
+2013-11-19 Richard Biener <rguenther@suse.de>
7929
+ Backport from mainline
7930
+ 2013-11-05 Richard Biener <rguenther@suse.de>
7932
+ PR middle-end/58941
7933
+ * gcc.dg/torture/pr58941.c: New testcase.
7935
+2013-11-18 Richard Biener <rguenther@suse.de>
7937
+ Backport from mainline
7938
+ 2013-10-21 Richard Biener <rguenther@suse.de>
7940
+ PR tree-optimization/58794
7941
+ * c-c++-common/torture/pr58794-1.c: New testcase.
7942
+ * c-c++-common/torture/pr58794-2.c: Likewise.
7944
+ 2013-10-21 Richard Biener <rguenther@suse.de>
7946
+ PR middle-end/58742
7947
+ * c-c++-common/fold-divmul-1.c: New testcase.
7949
+ 2013-11-06 Richard Biener <rguenther@suse.de>
7951
+ PR tree-optimization/58653
7952
+ * gcc.dg/tree-ssa/predcom-6.c: New testcase.
7953
+ * gcc.dg/tree-ssa/predcom-7.c: Likewise.
7955
+ PR tree-optimization/59047
7956
+ * gcc.dg/torture/pr59047.c: New testcase.
7958
+ 2013-10-15 Richard Biener <rguenther@suse.de>
7960
+ PR tree-optimization/58143
7961
+ * gcc.dg/torture/pr58143-1.c: New testcase.
7962
+ * gcc.dg/torture/pr58143-2.c: Likewise.
7963
+ * gcc.dg/torture/pr58143-3.c: Likewise.
7965
+2013-11-17 Janus Weil <janus@gcc.gnu.org>
7967
+ Backport from mainline
7968
+ 2013-11-07 Janus Weil <janus@gcc.gnu.org>
7971
+ * gfortran.dg/constructor_9.f90: New.
7973
+2013-11-16 Janus Weil <janus@gcc.gnu.org>
7975
+ Backport from mainline
7976
+ 2013-09-20 Janus Weil <janus@gcc.gnu.org>
7979
+ * gfortran.dg/proc_ptr_43.f90: New.
7981
+2013-11-16 Paul Thomas <pault@gcc.gnu.org>
7984
+ * gfortran.dg/derived_external_function_1.f90 : New test
7986
+2013-11-14 Uros Bizjak <ubizjak@gmail.com>
7988
+ Backport from mainline
7989
+ 2013-11-06 Uros Bizjak <ubizjak@gmail.com>
7992
+ * gcc.target/i386/pr59021.c: New test.
7994
+2013-11-14 Jakub Jelinek <jakub@redhat.com>
7997
+ * gcc.c-torture/execute/pr59101.c: New test.
7999
+2013-11-11 Jakub Jelinek <jakub@redhat.com>
8001
+ Backported from mainline
8002
+ 2013-11-06 Jakub Jelinek <jakub@redhat.com>
8004
+ PR middle-end/58970
8005
+ * gcc.c-torture/compile/pr58970-1.c: New test.
8006
+ * gcc.c-torture/compile/pr58970-2.c: New test.
8008
+ 2013-11-05 Jakub Jelinek <jakub@redhat.com>
8010
+ PR rtl-optimization/58997
8011
+ * gcc.c-torture/compile/pr58997.c: New test.
8013
+2013-11-10 Wei Mi <wmi@google.com>
8015
+ * testsuite/gcc.dg/pr57518.c: Backport regex fix from r200720.
8017
+2013-11-07 H.J. Lu <hongjiu.lu@intel.com>
8019
+ Backport from mainline
8020
+ 2013-11-07 H.J. Lu <hongjiu.lu@intel.com>
8023
+ * gcc.target/i386/pr59034-1.c: New test.
8024
+ * gcc.target/i386/pr59034-2.c: Likewise.
8026
+2013-11-06 Wei Mi <wmi@google.com>
8028
+ PR regression/58985
8029
+ * testsuite/gcc.dg/pr57518.c: Add subreg in regexp pattern.
8031
+2013-11-05 Steven G. Kargl <kargl@gcc.gnu.org>
8034
+ * gfortran.dg/reshape_6.f90: New test.
8036
+2013-11-05 Jakub Jelinek <jakub@redhat.com>
8038
+ PR tree-optimization/58984
8039
+ * gcc.c-torture/execute/pr58984.c: New test.
8041
+2013-11-04 Marek Polacek <polacek@redhat.com>
8043
+ Backport from mainline
8044
+ 2013-11-04 Marek Polacek <polacek@redhat.com>
8047
+ * g++.dg/diagnostic/pr58979.C: New test.
8049
+2013-11-03 H.J. Lu <hongjiu.lu@intel.com>
8051
+ Backport from mainline
8052
+ 2013-10-12 H.J. Lu <hongjiu.lu@intel.com>
8055
+ * gcc.target/i386/pr58690.c: New test
8057
+2013-11-02 Janus Weil <janus@gcc.gnu.org>
8059
+ Backport from mainline
8060
+ 2013-09-23 Janus Weil <janus@gcc.gnu.org>
8063
+ * gfortran.dg/extends_15.f90: New.
8065
+2013-10-29 Uros Bizjak <ubizjak@gmail.com>
8067
+ Backport from mainline
8068
+ 2013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
8070
+ PR rtl-optimization/58079
8071
+ * gcc.dg/torture/pr58079.c: New test.
8073
+2013-10-28 Tom de Vries <tom@codesourcery.com>
8075
+ * gcc.target/arm/require-pic-register-loc.c: New test.
8077
+2013-10-26 Uros Bizjak <ubizjak@gmail.com>
8079
+ Backport from mainline
8080
+ 2013-10-22 Uros Bizjak <ubizjak@gmail.com>
8083
+ * gcc.target/i386/pr30315.c: Remove MINUSCC, DECCC, MINUSCCONLY
8084
+ and MINUSCCZEXT defines. Update scan-assembler dg directive.
8085
+ * gcc.dg/torture/pr58779.c: New test.
8087
+2013-10-25 Richard Henderson <rth@redhat.com>
8090
+ * gcc.dg/atomic-store-6.c: New.
8092
+2013-10-25 Tom de Vries <tom@codesourcery.com>
8095
+ * g++.dg/tm/noexcept-6.C: New test.
8097
+2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
8099
+ * gcc.c-torture/execute/pr58831.c: New test.
8101
+2013-10-23 Tom de Vries <tom@codesourcery.com>
8103
+ PR tree-optimization/58805
8104
+ * gcc.dg/pr58805.c: New test.
8106
+2013-10-23 Richard Biener <rguenther@suse.de>
8108
+ * gcc.dg/torture/pr58830.c: New testcase.
8110
+ Backport from mainline
8111
+ 2013-06-24 Richard Biener <rguenther@suse.de>
8113
+ PR tree-optimization/57488
8114
+ * gcc.dg/torture/pr57488.c: New testcase.
8116
+2013-10-19 Oleg Endo <olegendo@gcc.gnu.org>
8118
+ * gcc.target/sh/pr54089-3.c: Fix test for load of constant 31.
8120
+2013-10-17 Paolo Carlini <paolo.carlini@oracle.com>
8123
+ * g++.dg/cpp0x/lambda/lambda-nsdmi5.C: New
8125
+2013-10-16 Paolo Carlini <paolo.carlini@oracle.com>
8128
+ * g++.dg/cpp0x/decltype57.C: New.
8129
+ * g++.dg/cpp0x/enum18.C: Revert r174385 changes.
8131
2013-10-16 Release Manager
8133
* GCC 4.8.2 released.
8135
Backport from mainline
8136
2013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8138
- * gcc.target/s390/htm-1.c: New file.
8139
- * gcc.target/s390/htm-nofloat-1.c: New file.
8140
- * gcc.target/s390/htm-xl-intrin-1.c: New file.
8141
+ * gcc.target/s390/htm-1.c: New file.
8142
+ * gcc.target/s390/htm-nofloat-1.c: New file.
8143
+ * gcc.target/s390/htm-xl-intrin-1.c: New file.
8145
2013-10-04 Tobias Burnus <burnus@net-b.de>
8148
Backport from mainline
8149
2013-08-12 Perez Read <netfirewall@gmail.com>
8152
- * gcc.target/i386/movabs-1.c: New test.
8154
+ * gcc.target/i386/movabs-1.c: New test.
8156
2013-08-11 Janus Weil <janus@gcc.gnu.org>
8160
2013-05-09 Martin Jambor <mjambor@suse.cz>
8162
- PR middle-end/56988
8163
- * gcc.dg/ipa/pr56988.c: New test.
8164
+ PR middle-end/56988
8165
+ * gcc.dg/ipa/pr56988.c: New test.
8167
2013-05-08 Marc Glisse <marc.glisse@inria.fr>
8170
2013-04-25 Marek Polacek <polacek@redhat.com>
8172
PR tree-optimization/57066
8173
- * gcc.dg/torture/builtin-logb-1.c: Adjust testcase.
8174
+ * gcc.dg/torture/builtin-logb-1.c: Adjust testcase.
8176
2013-05-02 Jakub Jelinek <jakub@redhat.com>
8178
@@ -727,32 +1016,32 @@
8179
Backport from mainline
8180
2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
8182
- PR rtl-optimizations/57046
8183
- * gcc.target/i386/pr57046.c: New test.
8184
+ PR rtl-optimizations/57046
8185
+ * gcc.target/i386/pr57046.c: New test.
8187
2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
8189
Backport from mainline
8190
2013-04-22 Vladimir Makarov <vmakarov@redhat.com>
8193
- * gcc.target/i386/pr57018.c: New test.
8195
+ * gcc.target/i386/pr57018.c: New test.
8197
2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
8199
Backport from mainline
8200
2013-04-18 Jakub Jelinek <jakub@redhat.com>
8202
- PR rtl-optimization/56999
8203
- * g++.dg/opt/pr56999.C: New test.
8204
+ PR rtl-optimization/56999
8205
+ * g++.dg/opt/pr56999.C: New test.
8207
2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
8209
Backport from mainline
8210
2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
8212
- PR rtl-optimization/56847
8213
- * gcc.dg/pr56847.c: New test.
8214
+ PR rtl-optimization/56847
8215
+ * gcc.dg/pr56847.c: New test.
8217
2013-05-02 Ian Bolton <ian.bolton@arm.com>
8219
Index: gcc/testsuite/gfortran.fortran-torture/compile/pr57517.f90
8220
===================================================================
8221
--- a/src/gcc/testsuite/gfortran.fortran-torture/compile/pr57517.f90 (.../tags/gcc_4_8_2_release)
8222
+++ b/src/gcc/testsuite/gfortran.fortran-torture/compile/pr57517.f90 (.../branches/gcc-4_8-branch)
8224
+SUBROUTINE cal_helicity (uh, ph, phb, wavg, ims, ime, its, ite)
8225
+ INTEGER, INTENT( IN ) :: ims, ime, its, ite
8226
+ REAL, DIMENSION( ims:ime), INTENT( IN ) :: ph, phb, wavg
8227
+ REAL, DIMENSION( ims:ime), INTENT( INOUT ) :: uh
8231
+ zu = (ph(i ) + phb(i)) + (ph(i-1) + phb(i-1))
8232
+ IF (wavg(i) .GT. 0) THEN
8233
+ uh(i) = uh(i) + zu
8236
+END SUBROUTINE cal_helicity
8237
Index: gcc/testsuite/g++.dg/gomp/pr59297.C
8238
===================================================================
8239
--- a/src/gcc/testsuite/g++.dg/gomp/pr59297.C (.../tags/gcc_4_8_2_release)
8240
+++ b/src/gcc/testsuite/g++.dg/gomp/pr59297.C (.../branches/gcc-4_8-branch)
8243
+// { dg-do compile }
8244
+// { dg-options "-fopenmp" }
8246
+template <typename T>
8250
+ const T &operator[] (int) const;
8255
+ int &operator () (A <int>);
8262
+ #pragma omp atomic
8264
+ #pragma omp atomic
8267
Index: gcc/testsuite/g++.dg/diagnostic/pr58979.C
8268
===================================================================
8269
--- a/src/gcc/testsuite/g++.dg/diagnostic/pr58979.C (.../tags/gcc_4_8_2_release)
8270
+++ b/src/gcc/testsuite/g++.dg/diagnostic/pr58979.C (.../branches/gcc-4_8-branch)
8273
+// { dg-do compile }
8275
+int i = 0->*0; // { dg-error "invalid type argument of" }
8276
Index: gcc/testsuite/g++.dg/tm/noexcept-6.C
8277
===================================================================
8278
--- a/src/gcc/testsuite/g++.dg/tm/noexcept-6.C (.../tags/gcc_4_8_2_release)
8279
+++ b/src/gcc/testsuite/g++.dg/tm/noexcept-6.C (.../branches/gcc-4_8-branch)
8281
+// { dg-do compile }
8282
+// { dg-options "-fno-exceptions -fgnu-tm -O -std=c++0x -fdump-tree-tmlower" }
8286
+ static constexpr bool v() { return true; }
8291
+template<typename T> int foo()
8293
+ return __transaction_atomic noexcept(T::v()) (global + 1);
8298
+ return foo<TrueFalse>();
8301
+/* { dg-final { scan-tree-dump-times "eh_must_not_throw" 0 "tmlower" } } */
8302
+/* { dg-final { scan-tree-dump-times "__transaction_atomic" 1 "tmlower" } } */
8303
+/* { dg-final { cleanup-tree-dump "tmlower" } } */
8304
Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi5.C
8305
===================================================================
8306
--- a/src/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi5.C (.../tags/gcc_4_8_2_release)
8307
+++ b/src/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi5.C (.../branches/gcc-4_8-branch)
8310
+// { dg-do compile { target c++11 } }
8314
+ int i = [] { return decltype(i)(); }();
8316
Index: gcc/testsuite/g++.dg/cpp0x/enum18.C
8317
===================================================================
8318
--- a/src/gcc/testsuite/g++.dg/cpp0x/enum18.C (.../tags/gcc_4_8_2_release)
8319
+++ b/src/gcc/testsuite/g++.dg/cpp0x/enum18.C (.../branches/gcc-4_8-branch)
8324
- ev.e::~e_u(); // { dg-error "e_u. has not been declared" }
8325
+ ev.e::~e_u(); // { dg-error "" }
8327
Index: gcc/testsuite/g++.dg/cpp0x/nsdmi9.C
8328
===================================================================
8329
--- a/src/gcc/testsuite/g++.dg/cpp0x/nsdmi9.C (.../tags/gcc_4_8_2_release)
8330
+++ b/src/gcc/testsuite/g++.dg/cpp0x/nsdmi9.C (.../branches/gcc-4_8-branch)
8333
+// { dg-require-effective-target c++11 }
8345
Index: gcc/testsuite/g++.dg/cpp0x/decltype57.C
8346
===================================================================
8347
--- a/src/gcc/testsuite/g++.dg/cpp0x/decltype57.C (.../tags/gcc_4_8_2_release)
8348
+++ b/src/gcc/testsuite/g++.dg/cpp0x/decltype57.C (.../branches/gcc-4_8-branch)
8351
+// { dg-do compile { target c++11 } }
8356
+ decltype(i.I::~I())* p;
8358
Index: gcc/testsuite/g++.dg/inherit/virtual11.C
8359
===================================================================
8360
--- a/src/gcc/testsuite/g++.dg/inherit/virtual11.C (.../tags/gcc_4_8_2_release)
8361
+++ b/src/gcc/testsuite/g++.dg/inherit/virtual11.C (.../branches/gcc-4_8-branch)
8364
+// { dg-do compile }
8365
+// { dg-options "-fdump-tree-gimple " }
8368
+ virtual int add (int a, int b) {return a+ b;}
8371
+class D : public B {
8374
+int foo (int a, int b) {
8376
+ return d.add(a, b);
8378
+// { dg-final { scan-tree-dump-not "OBJ_TYPE_REF" "gimple" } }
8379
+// { dg-final { cleanup-tree-dump "gimple" } }
8380
Index: gcc/testsuite/c-c++-common/pr59280.c
8381
===================================================================
8382
--- a/src/gcc/testsuite/c-c++-common/pr59280.c (.../tags/gcc_4_8_2_release)
8383
+++ b/src/gcc/testsuite/c-c++-common/pr59280.c (.../branches/gcc-4_8-branch)
8386
+/* { dg-do compile } */
8388
+void bar (char *) __attribute__((constructor(foo))); /* { dg-error "constructor priorities must be integers|was not declared|constructor priorities are not supported" } */
8389
Index: gcc/testsuite/c-c++-common/fold-divmul-1.c
8390
===================================================================
8391
--- a/src/gcc/testsuite/c-c++-common/fold-divmul-1.c (.../tags/gcc_4_8_2_release)
8392
+++ b/src/gcc/testsuite/c-c++-common/fold-divmul-1.c (.../branches/gcc-4_8-branch)
8394
+/* { dg-do compile } */
8395
+/* { dg-options "-fdump-tree-original" } */
8398
+fx (int *b, int *e)
8400
+ return b + (e - b);
8403
+/* { dg-final { scan-tree-dump-not "/\\\[ex\\\]" "original" } } */
8404
+/* { dg-final { cleanup-tree-dump "original" } } */
8405
Index: gcc/testsuite/c-c++-common/torture/pr58794-1.c
8406
===================================================================
8407
--- a/src/gcc/testsuite/c-c++-common/torture/pr58794-1.c (.../tags/gcc_4_8_2_release)
8408
+++ b/src/gcc/testsuite/c-c++-common/torture/pr58794-1.c (.../branches/gcc-4_8-branch)
8410
+/* { dg-do compile } */
8428
+static int *c[1][2] = {{0, (int *)&a.g.f2}};
8434
+ for (d = 0; d < 1; d++)
8435
+ for (b.g.f1.f = 0; b.g.f1.f < 1; b.g.f1.f++)
8436
+ *c[b.g.f1.f][d + 1] = 0;
8439
Index: gcc/testsuite/c-c++-common/torture/pr58794-2.c
8440
===================================================================
8441
--- a/src/gcc/testsuite/c-c++-common/torture/pr58794-2.c (.../tags/gcc_4_8_2_release)
8442
+++ b/src/gcc/testsuite/c-c++-common/torture/pr58794-2.c (.../branches/gcc-4_8-branch)
8444
+/* { dg-do compile } */
8453
+static int *c[1][2] = {{0, (int *)&a.f}};
8454
+static unsigned int d;
8459
+ for (; d < 1; d++)
8460
+ for (; b < 1; b++)
8465
Index: gcc/cp/typeck.c
8466
===================================================================
8467
--- a/src/gcc/cp/typeck.c (.../tags/gcc_4_8_2_release)
8468
+++ b/src/gcc/cp/typeck.c (.../branches/gcc-4_8-branch)
8469
@@ -7611,7 +7611,7 @@
8470
/* Handle null pointer to member function conversions. */
8471
if (null_ptr_cst_p (pfn))
8473
- pfn = build_c_cast (input_location, type, pfn);
8474
+ pfn = cp_build_c_cast (type, pfn, complain);
8475
return build_ptrmemfunc1 (to_type,
8478
Index: gcc/cp/except.c
8479
===================================================================
8480
--- a/src/gcc/cp/except.c (.../tags/gcc_4_8_2_release)
8481
+++ b/src/gcc/cp/except.c (.../branches/gcc-4_8-branch)
8484
tree type = body ? TREE_TYPE (body) : void_type_node;
8486
+ if (!flag_exceptions)
8489
if (cond && !value_dependent_expression_p (cond))
8491
cond = cxx_constant_value (cond);
8492
Index: gcc/cp/ChangeLog
8493
===================================================================
8494
--- a/src/gcc/cp/ChangeLog (.../tags/gcc_4_8_2_release)
8495
+++ b/src/gcc/cp/ChangeLog (.../branches/gcc-4_8-branch)
8497
+2013-11-28 Jakub Jelinek <jakub@redhat.com>
8500
+ * semantics.c (finish_omp_atomic): Call finish_expr_stmt
8501
+ rather than add_stmt.
8503
+2013-11-23 Easwaran Raman <eraman@google.com>
8506
+ * call.c (build_new_method_call_1): Comnpare function context
8507
+ with BASELINK_BINFO type rather than instance type before
8508
+ marking the call with LOOKUP_NONVIRTUAL.
8510
+2013-10-31 Jason Merrill <jason@redhat.com>
8513
+ * parser.c (cp_parser_late_parse_one_default_arg): Set
8514
+ TARGET_EXPR_DIRECT_INIT_P.
8516
+2013-11-11 Paolo Carlini <paolo.carlini@oracle.com>
8518
+ * cvt.c (cp_convert_to_pointer): Call build_ptrmemfunc before
8519
+ maybe_warn_zero_as_null_pointer_constant to avoid duplicate
8520
+ -Wzero-as-null-pointer-constant diagnostics.
8522
+ * typeck.c (build_ptrmemfunc): Use cp_build_c_cast.
8524
+2013-10-25 Tom de Vries <tom@codesourcery.com>
8527
+ * except.c (build_must_not_throw_expr): Handle
8530
+2013-10-17 Paolo Carlini <paolo.carlini@oracle.com>
8533
+ * semantics.c (lambda_expr_this_capture): Handle NSDMIs in the
8534
+ cp_unevaluated_operand case.
8536
+2013-10-16 Paolo Carlini <paolo.carlini@oracle.com>
8539
+ * parser.c (cp_parser_pseudo_destructor_name): Revert r174385 changes.
8541
+2013-10-16 Jason Merrill <jason@redhat.com>
8544
+ * decl2.c (dump_tu): Split out from...
8545
+ (cp_write_global_declarations): ...here. Call it in PCH mode.
8547
2013-10-16 Release Manager
8549
* GCC 4.8.2 released.
8550
Index: gcc/cp/semantics.c
8551
===================================================================
8552
--- a/src/gcc/cp/semantics.c (.../tags/gcc_4_8_2_release)
8553
+++ b/src/gcc/cp/semantics.c (.../branches/gcc-4_8-branch)
8554
@@ -5059,7 +5059,7 @@
8556
stmt = build2 (OMP_ATOMIC, void_type_node, integer_zero_node, stmt);
8559
+ finish_expr_stmt (stmt);
8563
@@ -9481,7 +9481,14 @@
8564
/* In unevaluated context this isn't an odr-use, so just return the
8566
if (cp_unevaluated_operand)
8567
- return lookup_name (this_identifier);
8569
+ /* In an NSDMI the fake 'this' pointer that we're using for
8570
+ parsing is in scope_chain. */
8571
+ if (LAMBDA_EXPR_EXTRA_SCOPE (lambda)
8572
+ && TREE_CODE (LAMBDA_EXPR_EXTRA_SCOPE (lambda)) == FIELD_DECL)
8573
+ return scope_chain->x_current_class_ptr;
8574
+ return lookup_name (this_identifier);
8577
/* Try to default capture 'this' if we can. */
8579
Index: gcc/cp/decl2.c
8580
===================================================================
8581
--- a/src/gcc/cp/decl2.c (.../tags/gcc_4_8_2_release)
8582
+++ b/src/gcc/cp/decl2.c (.../branches/gcc-4_8-branch)
8583
@@ -3960,6 +3960,22 @@
8584
expand_or_defer_fn (finish_function (0));
8587
+/* The entire file is now complete. If requested, dump everything
8594
+ FILE *stream = dump_begin (TDI_tu, &flags);
8598
+ dump_node (global_namespace, flags & ~TDF_SLIM, stream);
8599
+ dump_end (TDI_tu, stream);
8603
/* This routine is called at the end of compilation.
8604
Its job is to create all the code needed to initialize and
8605
destroy the global aggregates. We do the destruction
8606
@@ -3990,6 +4006,7 @@
8609
c_common_write_pch ();
8614
@@ -4359,17 +4376,8 @@
8616
/* The entire file is now complete. If requested, dump everything
8620
- FILE *stream = dump_begin (TDI_tu, &flags);
8625
- dump_node (global_namespace, flags & ~TDF_SLIM, stream);
8626
- dump_end (TDI_tu, stream);
8630
if (flag_detailed_statistics)
8632
dump_tree_statistics ();
8633
Index: gcc/cp/parser.c
8634
===================================================================
8635
--- a/src/gcc/cp/parser.c (.../tags/gcc_4_8_2_release)
8636
+++ b/src/gcc/cp/parser.c (.../branches/gcc-4_8-branch)
8637
@@ -6421,10 +6421,6 @@
8638
/* Look for the `~'. */
8639
cp_parser_require (parser, CPP_COMPL, RT_COMPL);
8641
- /* Once we see the ~, this has to be a pseudo-destructor. */
8642
- if (!processing_template_decl && !cp_parser_error_occurred (parser))
8643
- cp_parser_commit_to_tentative_parse (parser);
8645
/* Look for the type-name again. We are not responsible for
8646
checking that it matches the first type-name. */
8647
*type = cp_parser_nonclass_name (parser);
8648
@@ -22576,6 +22572,9 @@
8649
&& CONSTRUCTOR_IS_DIRECT_INIT (parsed_arg))
8650
flags = LOOKUP_NORMAL;
8651
parsed_arg = digest_init_flags (TREE_TYPE (decl), parsed_arg, flags);
8652
+ if (TREE_CODE (parsed_arg) == TARGET_EXPR)
8653
+ /* This represents the whole initialization. */
8654
+ TARGET_EXPR_DIRECT_INIT_P (parsed_arg) = true;
8658
Index: gcc/cp/call.c
8659
===================================================================
8660
--- a/src/gcc/cp/call.c (.../tags/gcc_4_8_2_release)
8661
+++ b/src/gcc/cp/call.c (.../branches/gcc-4_8-branch)
8662
@@ -7414,7 +7414,7 @@
8663
struct z_candidate *candidates = 0, *cand;
8664
tree explicit_targs = NULL_TREE;
8665
tree basetype = NULL_TREE;
8666
- tree access_binfo;
8667
+ tree access_binfo, binfo;
8669
tree first_mem_arg = NULL_TREE;
8671
@@ -7454,6 +7454,7 @@
8672
if (!conversion_path)
8673
conversion_path = BASELINK_BINFO (fns);
8674
access_binfo = BASELINK_ACCESS_BINFO (fns);
8675
+ binfo = BASELINK_BINFO (fns);
8676
optype = BASELINK_OPTYPE (fns);
8677
fns = BASELINK_FUNCTIONS (fns);
8678
if (TREE_CODE (fns) == TEMPLATE_ID_EXPR)
8679
@@ -7697,13 +7698,13 @@
8681
/* Optimize away vtable lookup if we know that this
8682
function can't be overridden. We need to check if
8683
- the context and the instance type are the same,
8684
+ the context and the type where we found fn are the same,
8685
actually FN might be defined in a different class
8686
type because of a using-declaration. In this case, we
8687
do not want to perform a non-virtual call. */
8688
if (DECL_VINDEX (fn) && ! (flags & LOOKUP_NONVIRTUAL)
8689
&& same_type_ignoring_top_level_qualifiers_p
8690
- (DECL_CONTEXT (fn), TREE_TYPE (instance))
8691
+ (DECL_CONTEXT (fn), BINFO_TYPE (binfo))
8692
&& resolves_to_fixed_type_p (instance, 0))
8693
flags |= LOOKUP_NONVIRTUAL;
8696
===================================================================
8697
--- a/src/gcc/cp/cvt.c (.../tags/gcc_4_8_2_release)
8698
+++ b/src/gcc/cp/cvt.c (.../branches/gcc-4_8-branch)
8699
@@ -203,13 +203,13 @@
8701
if (null_ptr_cst_p (expr))
8703
- if (complain & tf_warning)
8704
- maybe_warn_zero_as_null_pointer_constant (expr, loc);
8706
if (TYPE_PTRMEMFUNC_P (type))
8707
return build_ptrmemfunc (TYPE_PTRMEMFUNC_FN_TYPE (type), expr, 0,
8708
/*c_cast_p=*/false, complain);
8710
+ if (complain & tf_warning)
8711
+ maybe_warn_zero_as_null_pointer_constant (expr, loc);
8713
/* A NULL pointer-to-data-member is represented by -1, not by
8715
tree val = (TYPE_PTRDATAMEM_P (type)
8716
Index: gcc/cp/cp-tree.h
8717
===================================================================
8718
--- a/src/gcc/cp/cp-tree.h (.../tags/gcc_4_8_2_release)
8719
+++ b/src/gcc/cp/cp-tree.h (.../branches/gcc-4_8-branch)
8721
/* Returns true iff NODE is a BASELINK. */
8722
#define BASELINK_P(NODE) \
8723
(TREE_CODE (NODE) == BASELINK)
8724
-/* The BINFO indicating the base from which the BASELINK_FUNCTIONS came. */
8725
+/* The BINFO indicating the base in which lookup found the
8726
+ BASELINK_FUNCTIONS. */
8727
#define BASELINK_BINFO(NODE) \
8728
(((struct tree_baselink*) BASELINK_CHECK (NODE))->binfo)
8729
/* The functions referred to by the BASELINK; either a FUNCTION_DECL,
8730
Index: gcc/mode-switching.c
8731
===================================================================
8732
--- a/src/gcc/mode-switching.c (.../tags/gcc_4_8_2_release)
8733
+++ b/src/gcc/mode-switching.c (.../branches/gcc-4_8-branch)
8734
@@ -568,12 +568,15 @@
8736
info[bb->index].computing = last_mode;
8737
/* Check for blocks without ANY mode requirements.
8738
- N.B. because of MODE_AFTER, last_mode might still be different
8740
+ N.B. because of MODE_AFTER, last_mode might still
8741
+ be different from no_mode, in which case we need to
8742
+ mark the block as nontransparent. */
8743
if (!any_set_required)
8745
ptr = new_seginfo (no_mode, BB_END (bb), bb->index, live_now);
8746
add_seginfo (info + bb->index, ptr);
8747
+ if (last_mode != no_mode)
8748
+ bitmap_clear_bit (transp[bb->index], j);
8751
#if defined (MODE_ENTRY) && defined (MODE_EXIT)
8752
Index: gcc/config.in
8753
===================================================================
8754
--- a/src/gcc/config.in (.../tags/gcc_4_8_2_release)
8755
+++ b/src/gcc/config.in (.../branches/gcc-4_8-branch)
8756
@@ -375,6 +375,12 @@
8760
+/* Define if your assembler supports LEON instructions. */
8761
+#ifndef USED_FOR_TARGET
8762
+#undef HAVE_AS_LEON
8766
/* Define if the assembler won't complain about a line such as # 0 "" 2. */
8767
#ifndef USED_FOR_TARGET
8768
#undef HAVE_AS_LINE_ZERO
8770
===================================================================
8771
--- a/src/gcc/expr.c (.../tags/gcc_4_8_2_release)
8772
+++ b/src/gcc/expr.c (.../branches/gcc-4_8-branch)
8773
@@ -1994,12 +1994,14 @@
8774
HOST_WIDE_INT bytepos = INTVAL (XEXP (XVECEXP (src, 0, i), 1));
8775
enum machine_mode mode = GET_MODE (tmps[i]);
8776
unsigned int bytelen = GET_MODE_SIZE (mode);
8777
- unsigned int adj_bytelen = bytelen;
8778
+ unsigned int adj_bytelen;
8781
/* Handle trailing fragments that run over the size of the struct. */
8782
if (ssize >= 0 && bytepos + (HOST_WIDE_INT) bytelen > ssize)
8783
adj_bytelen = ssize - bytepos;
8785
+ adj_bytelen = bytelen;
8787
if (GET_CODE (dst) == CONCAT)
8789
@@ -2040,6 +2042,7 @@
8793
+ /* Handle trailing fragments that run over the size of the struct. */
8794
if (ssize >= 0 && bytepos + (HOST_WIDE_INT) bytelen > ssize)
8796
/* store_bit_field always takes its value from the lsb.
8797
@@ -2057,16 +2060,22 @@
8798
tmps[i] = expand_shift (RSHIFT_EXPR, mode, tmps[i],
8801
- bytelen = adj_bytelen;
8803
+ /* Make sure not to write past the end of the struct. */
8804
+ store_bit_field (dest,
8805
+ adj_bytelen * BITS_PER_UNIT, bytepos * BITS_PER_UNIT,
8806
+ bytepos * BITS_PER_UNIT, ssize * BITS_PER_UNIT,
8807
+ VOIDmode, tmps[i]);
8810
/* Optimize the access just a bit. */
8812
- && (! SLOW_UNALIGNED_ACCESS (mode, MEM_ALIGN (dest))
8813
- || MEM_ALIGN (dest) >= GET_MODE_ALIGNMENT (mode))
8814
- && bytepos * BITS_PER_UNIT % GET_MODE_ALIGNMENT (mode) == 0
8815
- && bytelen == GET_MODE_SIZE (mode))
8816
+ else if (MEM_P (dest)
8817
+ && (!SLOW_UNALIGNED_ACCESS (mode, MEM_ALIGN (dest))
8818
+ || MEM_ALIGN (dest) >= GET_MODE_ALIGNMENT (mode))
8819
+ && bytepos * BITS_PER_UNIT % GET_MODE_ALIGNMENT (mode) == 0
8820
+ && bytelen == GET_MODE_SIZE (mode))
8821
emit_move_insn (adjust_address (dest, mode, bytepos), tmps[i]);
8824
store_bit_field (dest, bytelen * BITS_PER_UNIT, bytepos * BITS_PER_UNIT,
8825
0, 0, mode, tmps[i]);
8826
@@ -4551,19 +4560,19 @@
8827
- tree_low_cst (DECL_FIELD_BIT_OFFSET (repr), 1));
8829
/* If the adjustment is larger than bitpos, we would have a negative bit
8830
- position for the lower bound and this may wreak havoc later. This can
8831
- occur only if we have a non-null offset, so adjust offset and bitpos
8832
- to make the lower bound non-negative. */
8833
+ position for the lower bound and this may wreak havoc later. Adjust
8834
+ offset and bitpos to make the lower bound non-negative in that case. */
8835
if (bitoffset > *bitpos)
8837
HOST_WIDE_INT adjust = bitoffset - *bitpos;
8839
gcc_assert ((adjust % BITS_PER_UNIT) == 0);
8840
- gcc_assert (*offset != NULL_TREE);
8844
- = size_binop (MINUS_EXPR, *offset, size_int (adjust / BITS_PER_UNIT));
8845
+ if (*offset == NULL_TREE)
8846
+ *offset = size_int (-adjust / BITS_PER_UNIT);
8849
+ = size_binop (MINUS_EXPR, *offset, size_int (adjust / BITS_PER_UNIT));
8853
@@ -4668,8 +4677,7 @@
8854
expand_insn (icode, 2, ops);
8857
- store_bit_field (mem, GET_MODE_BITSIZE (mode),
8858
- 0, 0, 0, mode, reg);
8859
+ store_bit_field (mem, GET_MODE_BITSIZE (mode), 0, 0, 0, mode, reg);
8863
@@ -4698,6 +4706,15 @@
8864
tem = get_inner_reference (to, &bitsize, &bitpos, &offset, &mode1,
8865
&unsignedp, &volatilep, true);
8867
+ /* Make sure bitpos is not negative, it can wreak havoc later. */
8870
+ gcc_assert (offset == NULL_TREE);
8871
+ offset = size_int (bitpos >> (BITS_PER_UNIT == 8
8872
+ ? 3 : exact_log2 (BITS_PER_UNIT)));
8873
+ bitpos &= BITS_PER_UNIT - 1;
8876
if (TREE_CODE (to) == COMPONENT_REF
8877
&& DECL_BIT_FIELD_TYPE (TREE_OPERAND (to, 1)))
8878
get_bit_range (&bitregion_start, &bitregion_end, to, &bitpos, &offset);
8879
Index: gcc/go/go-gcc.cc
8880
===================================================================
8881
--- a/src/gcc/go/go-gcc.cc (.../tags/gcc_4_8_2_release)
8882
+++ b/src/gcc/go/go-gcc.cc (.../branches/gcc-4_8-branch)
8885
convert_expression(Btype* type, Bexpression* expr, Location);
8888
+ function_code_expression(Bfunction*, Location);
8893
@@ -334,6 +337,17 @@
8895
label_address(Blabel*, Location);
8901
+ { return this->make_function(error_mark_node); }
8904
+ function(Btype* fntype, const std::string& name, const std::string& asm_name,
8905
+ bool is_visible, bool is_declaration, bool is_inlinable,
8906
+ bool disable_split_stack, bool in_unique_section, Location);
8909
// Make a Bexpression from a tree.
8911
@@ -350,6 +364,10 @@
8913
{ return new Btype(t); }
8916
+ make_function(tree t)
8917
+ { return new Bfunction(t); }
8920
fill_in_struct(Btype*, const std::vector<Btyped_identifier>&);
8922
@@ -966,6 +984,19 @@
8923
return tree_to_expr(ret);
8926
+// Get the address of a function.
8929
+Gcc_backend::function_code_expression(Bfunction* bfunc, Location location)
8931
+ tree func = bfunc->get_tree();
8932
+ if (func == error_mark_node)
8933
+ return this->error_expression();
8935
+ tree ret = build_fold_addr_expr_loc(location.gcc_location(), func);
8936
+ return this->make_expression(ret);
8939
// An expression as a statement.
8942
@@ -1724,6 +1755,56 @@
8943
return this->make_expression(ret);
8946
+// Declare or define a new function.
8949
+Gcc_backend::function(Btype* fntype, const std::string& name,
8950
+ const std::string& asm_name, bool is_visible,
8951
+ bool is_declaration, bool is_inlinable,
8952
+ bool disable_split_stack, bool in_unique_section,
8953
+ Location location)
8955
+ tree functype = fntype->get_tree();
8956
+ if (functype != error_mark_node)
8958
+ gcc_assert(FUNCTION_POINTER_TYPE_P(functype));
8959
+ functype = TREE_TYPE(functype);
8961
+ tree id = get_identifier_from_string(name);
8962
+ if (functype == error_mark_node || id == error_mark_node)
8963
+ return this->error_function();
8965
+ tree decl = build_decl(location.gcc_location(), FUNCTION_DECL, id, functype);
8966
+ if (!asm_name.empty())
8967
+ SET_DECL_ASSEMBLER_NAME(decl, get_identifier_from_string(asm_name));
8969
+ TREE_PUBLIC(decl) = 1;
8970
+ if (is_declaration)
8971
+ DECL_EXTERNAL(decl) = 1;
8974
+ tree restype = TREE_TYPE(functype);
8976
+ build_decl(location.gcc_location(), RESULT_DECL, NULL_TREE, restype);
8977
+ DECL_ARTIFICIAL(resdecl) = 1;
8978
+ DECL_IGNORED_P(resdecl) = 1;
8979
+ DECL_CONTEXT(resdecl) = decl;
8980
+ DECL_RESULT(decl) = resdecl;
8982
+ if (!is_inlinable)
8983
+ DECL_UNINLINABLE(decl) = 1;
8984
+ if (disable_split_stack)
8986
+ tree attr = get_identifier("__no_split_stack__");
8987
+ DECL_ATTRIBUTES(decl) = tree_cons(attr, NULL_TREE, NULL_TREE);
8989
+ if (in_unique_section)
8990
+ resolve_unique_section(decl, 0, 1);
8992
+ go_preserve_from_gc(decl);
8993
+ return new Bfunction(decl);
8996
// The single backend.
8998
static Gcc_backend gcc_backend;
8999
@@ -1799,3 +1880,9 @@
9001
return bv->get_tree();
9005
+function_to_tree(Bfunction* bf)
9007
+ return bf->get_tree();
9009
Index: gcc/go/ChangeLog
9010
===================================================================
9011
--- a/src/gcc/go/ChangeLog (.../tags/gcc_4_8_2_release)
9012
+++ b/src/gcc/go/ChangeLog (.../branches/gcc-4_8-branch)
9014
+2013-10-16 Ian Lance Taylor <iant@google.com>
9016
+ Bring in from mainline:
9018
+ 2013-10-11 Chris Manghane <cmang@google.com>
9019
+ * go-gcc.cc (Gcc_backend::function_code_expression): New
9022
+ 2013-10-10 Chris Manghane <cmang@google.com>
9023
+ * go-gcc.cc (Backend::error_function): New function.
9024
+ (Backend::function): New function.
9025
+ (Backend::make_function): New function.
9026
+ (function_to_tree): New function.
9028
2013-10-16 Release Manager
9030
* GCC 4.8.2 released.
9031
Index: gcc/go/gofrontend/gogo.cc
9032
===================================================================
9033
--- a/src/gcc/go/gofrontend/gogo.cc (.../tags/gcc_4_8_2_release)
9034
+++ b/src/gcc/go/gofrontend/gogo.cc (.../branches/gcc-4_8-branch)
9035
@@ -3320,7 +3320,8 @@
9036
closure_var_(NULL), block_(block), location_(location), labels_(),
9037
local_type_count_(0), descriptor_(NULL), fndecl_(NULL), defer_stack_(NULL),
9038
is_sink_(false), results_are_named_(false), nointerface_(false),
9039
- calls_recover_(false), is_recover_thunk_(false), has_recover_thunk_(false),
9040
+ is_unnamed_type_stub_method_(false), calls_recover_(false),
9041
+ is_recover_thunk_(false), has_recover_thunk_(false),
9042
in_unique_section_(false)
9045
@@ -3819,6 +3820,81 @@
9046
*presults = results;
9049
+// Get the backend representation.
9052
+Function::get_or_make_decl(Gogo* gogo, Named_object* no)
9054
+ if (this->fndecl_ == NULL)
9056
+ std::string asm_name;
9057
+ bool is_visible = false;
9058
+ if (no->package() != NULL)
9060
+ else if (this->enclosing_ != NULL || Gogo::is_thunk(no))
9062
+ else if (Gogo::unpack_hidden_name(no->name()) == "init"
9063
+ && !this->type_->is_method())
9065
+ else if (Gogo::unpack_hidden_name(no->name()) == "main"
9066
+ && gogo->is_main_package())
9067
+ is_visible = true;
9068
+ // Methods have to be public even if they are hidden because
9069
+ // they can be pulled into type descriptors when using
9070
+ // anonymous fields.
9071
+ else if (!Gogo::is_hidden_name(no->name())
9072
+ || this->type_->is_method())
9074
+ if (!this->is_unnamed_type_stub_method_)
9075
+ is_visible = true;
9076
+ std::string pkgpath = gogo->pkgpath_symbol();
9077
+ if (this->type_->is_method()
9078
+ && Gogo::is_hidden_name(no->name())
9079
+ && Gogo::hidden_name_pkgpath(no->name()) != gogo->pkgpath())
9081
+ // This is a method we created for an unexported
9082
+ // method of an imported embedded type. We need to
9083
+ // use the pkgpath of the imported package to avoid
9084
+ // a possible name collision. See bug478 for a test
9086
+ pkgpath = Gogo::hidden_name_pkgpath(no->name());
9087
+ pkgpath = Gogo::pkgpath_for_symbol(pkgpath);
9090
+ asm_name = pkgpath;
9091
+ asm_name.append(1, '.');
9092
+ asm_name.append(Gogo::unpack_hidden_name(no->name()));
9093
+ if (this->type_->is_method())
9095
+ asm_name.append(1, '.');
9096
+ Type* rtype = this->type_->receiver()->type();
9097
+ asm_name.append(rtype->mangled_name(gogo));
9101
+ // If a function calls the predeclared recover function, we
9102
+ // can't inline it, because recover behaves differently in a
9103
+ // function passed directly to defer. If this is a recover
9104
+ // thunk that we built to test whether a function can be
9105
+ // recovered, we can't inline it, because that will mess up
9106
+ // our return address comparison.
9107
+ bool is_inlinable = !(this->calls_recover_ || this->is_recover_thunk_);
9109
+ // If this is a thunk created to call a function which calls
9110
+ // the predeclared recover function, we need to disable
9111
+ // stack splitting for the thunk.
9112
+ bool disable_split_stack = this->is_recover_thunk_;
9114
+ Btype* functype = this->type_->get_backend_fntype(gogo);
9116
+ gogo->backend()->function(functype, no->get_id(gogo), asm_name,
9117
+ is_visible, false, is_inlinable,
9118
+ disable_split_stack,
9119
+ this->in_unique_section_, this->location());
9121
+ return this->fndecl_;
9126
Block::Block(Block* enclosing, Location location)
9127
@@ -5110,6 +5186,75 @@
9132
+// Return the external identifier for this object.
9135
+Named_object::get_id(Gogo* gogo)
9137
+ go_assert(!this->is_variable() && !this->is_result_variable());
9138
+ std::string decl_name;
9139
+ if (this->is_function_declaration()
9140
+ && !this->func_declaration_value()->asm_name().empty())
9141
+ decl_name = this->func_declaration_value()->asm_name();
9142
+ else if (this->is_type()
9143
+ && Linemap::is_predeclared_location(this->type_value()->location()))
9145
+ // We don't need the package name for builtin types.
9146
+ decl_name = Gogo::unpack_hidden_name(this->name_);
9150
+ std::string package_name;
9151
+ if (this->package_ == NULL)
9152
+ package_name = gogo->package_name();
9154
+ package_name = this->package_->package_name();
9156
+ // Note that this will be misleading if this is an unexported
9157
+ // method generated for an embedded imported type. In that case
9158
+ // the unexported method should have the package name of the
9159
+ // package from which it is imported, but we are going to give
9160
+ // it our package name. Fixing this would require knowing the
9161
+ // package name, but we only know the package path. It might be
9162
+ // better to use package paths here anyhow. This doesn't affect
9163
+ // the assembler code, because we always set that name in
9164
+ // Function::get_or_make_decl anyhow. FIXME.
9166
+ decl_name = package_name + '.' + Gogo::unpack_hidden_name(this->name_);
9168
+ Function_type* fntype;
9169
+ if (this->is_function())
9170
+ fntype = this->func_value()->type();
9171
+ else if (this->is_function_declaration())
9172
+ fntype = this->func_declaration_value()->type();
9175
+ if (fntype != NULL && fntype->is_method())
9177
+ decl_name.push_back('.');
9178
+ decl_name.append(fntype->receiver()->type()->mangled_name(gogo));
9181
+ if (this->is_type())
9183
+ unsigned int index;
9184
+ const Named_object* in_function = this->type_value()->in_function(&index);
9185
+ if (in_function != NULL)
9187
+ decl_name += '$' + Gogo::unpack_hidden_name(in_function->name());
9191
+ snprintf(buf, sizeof buf, "%u", index);
9202
Bindings::Bindings(Bindings* enclosing)
9203
Index: gcc/go/gofrontend/runtime.def
9204
===================================================================
9205
--- a/src/gcc/go/gofrontend/runtime.def (.../tags/gcc_4_8_2_release)
9206
+++ b/src/gcc/go/gofrontend/runtime.def (.../branches/gcc-4_8-branch)
9208
P1(STRING), R1(SLICE))
9211
+// Complex division.
9212
+DEF_GO_RUNTIME(COMPLEX64_DIV, "__go_complex64_div",
9213
+ P2(COMPLEX64, COMPLEX64), R1(COMPLEX64))
9214
+DEF_GO_RUNTIME(COMPLEX128_DIV, "__go_complex128_div",
9215
+ P2(COMPLEX128, COMPLEX128), R1(COMPLEX128))
9218
DEF_GO_RUNTIME(MAKESLICE1, "__go_make_slice1", P2(TYPE, UINTPTR), R1(SLICE))
9219
DEF_GO_RUNTIME(MAKESLICE2, "__go_make_slice2", P3(TYPE, UINTPTR, UINTPTR),
9220
Index: gcc/go/gofrontend/gogo.h
9221
===================================================================
9222
--- a/src/gcc/go/gofrontend/gogo.h (.../tags/gcc_4_8_2_release)
9223
+++ b/src/gcc/go/gofrontend/gogo.h (.../branches/gcc-4_8-branch)
9230
// This file declares the basic classes used to hold the internal
9231
// representation of Go which is built by the parser.
9232
@@ -952,6 +953,15 @@
9233
this->nointerface_ = true;
9236
+ // Record that this function is a stub method created for an unnamed
9239
+ set_is_unnamed_type_stub_method()
9241
+ go_assert(this->is_method());
9242
+ this->is_unnamed_type_stub_method_ = true;
9245
// Add a new field to the closure variable.
9247
add_closure_field(Named_object* var, Location loc)
9248
@@ -1089,17 +1099,13 @@
9249
this->descriptor_ = descriptor;
9252
- // Return the function's decl given an identifier.
9254
- get_or_make_decl(Gogo*, Named_object*, tree id);
9255
+ // Return the backend representation.
9257
+ get_or_make_decl(Gogo*, Named_object*);
9259
// Return the function's decl after it has been built.
9263
- go_assert(this->fndecl_ != NULL);
9264
- return this->fndecl_;
9268
// Set the function decl to hold a tree of the function code.
9270
@@ -1170,7 +1176,7 @@
9271
// The function descriptor, if any.
9272
Expression* descriptor_;
9273
// The function decl.
9275
+ Bfunction* fndecl_;
9276
// The defer stack variable. A pointer to this variable is used to
9277
// distinguish the defer stack for one function from another. This
9278
// is NULL unless we actually need a defer stack.
9279
@@ -1181,6 +1187,9 @@
9280
bool results_are_named_ : 1;
9281
// True if this method should not be included in the type descriptor.
9282
bool nointerface_ : 1;
9283
+ // True if this function is a stub method created for an unnamed
9285
+ bool is_unnamed_type_stub_method_ : 1;
9286
// True if this function calls the predeclared recover function.
9287
bool calls_recover_ : 1;
9288
// True if this a thunk built for a function which calls recover.
9289
@@ -1265,9 +1274,9 @@
9290
has_descriptor() const
9291
{ return this->descriptor_ != NULL; }
9293
- // Return a decl for the function given an identifier.
9295
- get_or_make_decl(Gogo*, Named_object*, tree id);
9296
+ // Return a backend representation.
9298
+ get_or_make_decl(Gogo*, Named_object*);
9300
// If there is a descriptor, build it into the backend
9302
@@ -1290,7 +1299,7 @@
9303
// The function descriptor, if any.
9304
Expression* descriptor_;
9305
// The function decl if needed.
9307
+ Bfunction* fndecl_;
9311
@@ -2181,8 +2190,8 @@
9313
get_backend_variable(Gogo*, Named_object* function);
9315
- // Return a tree for the external identifier for this object.
9317
+ // Return the external identifier for this object.
9321
// Return a tree representing this object.
9322
Index: gcc/go/gofrontend/types.h
9323
===================================================================
9324
--- a/src/gcc/go/gofrontend/types.h (.../tags/gcc_4_8_2_release)
9325
+++ b/src/gcc/go/gofrontend/types.h (.../branches/gcc-4_8-branch)
9326
@@ -1717,7 +1717,8 @@
9327
Typed_identifier_list* results, Location location)
9328
: Type(TYPE_FUNCTION),
9329
receiver_(receiver), parameters_(parameters), results_(results),
9330
- location_(location), is_varargs_(false), is_builtin_(false)
9331
+ location_(location), is_varargs_(false), is_builtin_(false),
9335
// Get the receiver.
9336
@@ -1798,6 +1799,11 @@
9338
make_function_type_descriptor_type();
9340
+ // Return the backend representation of this function type. This is used
9341
+ // as the real type of a backend function declaration or defintion.
9343
+ get_backend_fntype(Gogo*);
9347
do_traverse(Traverse*);
9348
@@ -1851,6 +1857,9 @@
9349
// Whether this is a special builtin function which can not simply
9350
// be called. This is used for len, cap, etc.
9352
+ // The backend representation of this type for backend function
9353
+ // declarations and definitions.
9357
// The type of a pointer.
9358
@@ -1915,7 +1924,7 @@
9361
explicit Struct_field(const Typed_identifier& typed_identifier)
9362
- : typed_identifier_(typed_identifier), tag_(NULL)
9363
+ : typed_identifier_(typed_identifier), tag_(NULL), is_imported_(false)
9367
@@ -1926,6 +1935,10 @@
9369
is_field_name(const std::string& name) const;
9371
+ // Return whether this struct field is an unexported field named NAME.
9373
+ is_unexported_field_name(Gogo*, const std::string& name) const;
9375
// Return whether this struct field is an embedded built-in type.
9377
is_embedded_builtin(Gogo*) const;
9378
@@ -1963,6 +1976,11 @@
9379
set_tag(const std::string& tag)
9380
{ this->tag_ = new std::string(tag); }
9382
+ // Record that this field is defined in an imported struct.
9385
+ { this->is_imported_ = true; }
9387
// Set the type. This is only used in error cases.
9389
set_type(Type* type)
9390
@@ -1973,6 +1991,8 @@
9391
Typed_identifier typed_identifier_;
9392
// The field tag. This is NULL if the field has no tag.
9394
+ // Whether this field is defined in an imported struct.
9395
+ bool is_imported_;
9398
// A list of struct fields.
9399
Index: gcc/go/gofrontend/parse.cc
9400
===================================================================
9401
--- a/src/gcc/go/gofrontend/parse.cc (.../tags/gcc_4_8_2_release)
9402
+++ b/src/gcc/go/gofrontend/parse.cc (.../branches/gcc-4_8-branch)
9407
+ if (receiver != NULL)
9408
+ names[receiver->name()] = receiver;
9410
this->check_signature_names(params, &names);
9411
if (results != NULL)
9412
Index: gcc/go/gofrontend/import.h
9413
===================================================================
9414
--- a/src/gcc/go/gofrontend/import.h (.../tags/gcc_4_8_2_release)
9415
+++ b/src/gcc/go/gofrontend/import.h (.../branches/gcc-4_8-branch)
9416
@@ -149,6 +149,11 @@
9418
{ return this->location_; }
9420
+ // Return the package we are importing.
9423
+ { return this->package_; }
9425
// Return the next character.
9428
Index: gcc/go/gofrontend/runtime.cc
9429
===================================================================
9430
--- a/src/gcc/go/gofrontend/runtime.cc (.../tags/gcc_4_8_2_release)
9431
+++ b/src/gcc/go/gofrontend/runtime.cc (.../branches/gcc-4_8-branch)
9434
// Go type float64, C type double.
9436
+ // Go type complex64, C type __complex float.
9438
// Go type complex128, C type __complex double.
9440
// Go type string, C type struct __go_string.
9441
@@ -126,6 +128,10 @@
9442
t = Type::lookup_float_type("float64");
9445
+ case RFT_COMPLEX64:
9446
+ t = Type::lookup_complex_type("complex64");
9449
case RFT_COMPLEX128:
9450
t = Type::lookup_complex_type("complex128");
9456
+ case RFT_COMPLEX64:
9457
case RFT_COMPLEX128:
9460
Index: gcc/go/gofrontend/expressions.h
9461
===================================================================
9462
--- a/src/gcc/go/gofrontend/expressions.h (.../tags/gcc_4_8_2_release)
9463
+++ b/src/gcc/go/gofrontend/expressions.h (.../branches/gcc-4_8-branch)
9464
@@ -1514,8 +1514,8 @@
9466
{ return this->closure_; }
9468
- // Return a tree for the code for a function.
9470
+ // Return a backend expression for the code of a function.
9471
+ static Bexpression*
9472
get_code_pointer(Gogo*, Named_object* function, Location loc);
9475
Index: gcc/go/gofrontend/gogo-tree.cc
9476
===================================================================
9477
--- a/src/gcc/go/gofrontend/gogo-tree.cc (.../tags/gcc_4_8_2_release)
9478
+++ b/src/gcc/go/gofrontend/gogo-tree.cc (.../branches/gcc-4_8-branch)
9479
@@ -985,74 +985,6 @@
9483
-// Get a tree for the identifier for a named object.
9486
-Named_object::get_id(Gogo* gogo)
9488
- go_assert(!this->is_variable() && !this->is_result_variable());
9489
- std::string decl_name;
9490
- if (this->is_function_declaration()
9491
- && !this->func_declaration_value()->asm_name().empty())
9492
- decl_name = this->func_declaration_value()->asm_name();
9493
- else if (this->is_type()
9494
- && Linemap::is_predeclared_location(this->type_value()->location()))
9496
- // We don't need the package name for builtin types.
9497
- decl_name = Gogo::unpack_hidden_name(this->name_);
9501
- std::string package_name;
9502
- if (this->package_ == NULL)
9503
- package_name = gogo->package_name();
9505
- package_name = this->package_->package_name();
9507
- // Note that this will be misleading if this is an unexported
9508
- // method generated for an embedded imported type. In that case
9509
- // the unexported method should have the package name of the
9510
- // package from which it is imported, but we are going to give
9511
- // it our package name. Fixing this would require knowing the
9512
- // package name, but we only know the package path. It might be
9513
- // better to use package paths here anyhow. This doesn't affect
9514
- // the assembler code, because we always set that name in
9515
- // Function::get_or_make_decl anyhow. FIXME.
9517
- decl_name = package_name + '.' + Gogo::unpack_hidden_name(this->name_);
9519
- Function_type* fntype;
9520
- if (this->is_function())
9521
- fntype = this->func_value()->type();
9522
- else if (this->is_function_declaration())
9523
- fntype = this->func_declaration_value()->type();
9526
- if (fntype != NULL && fntype->is_method())
9528
- decl_name.push_back('.');
9529
- decl_name.append(fntype->receiver()->type()->mangled_name(gogo));
9532
- if (this->is_type())
9534
- unsigned int index;
9535
- const Named_object* in_function = this->type_value()->in_function(&index);
9536
- if (in_function != NULL)
9538
- decl_name += '$' + Gogo::unpack_hidden_name(in_function->name());
9542
- snprintf(buf, sizeof buf, "%u", index);
9548
- return get_identifier_from_string(decl_name);
9551
// Get a tree for a named object.
9554
@@ -1067,11 +999,6 @@
9555
return error_mark_node;
9559
- if (this->classification_ == NAMED_OBJECT_TYPE)
9562
- name = this->get_id(gogo);
9564
switch (this->classification_)
9566
@@ -1099,6 +1026,7 @@
9567
decl = error_mark_node;
9568
else if (INTEGRAL_TYPE_P(TREE_TYPE(expr_tree)))
9570
+ tree name = get_identifier_from_string(this->get_id(gogo));
9571
decl = build_decl(named_constant->location().gcc_location(),
9572
CONST_DECL, name, TREE_TYPE(expr_tree));
9573
DECL_INITIAL(decl) = expr_tree;
9574
@@ -1161,7 +1089,7 @@
9575
case NAMED_OBJECT_FUNC:
9577
Function* func = this->u_.func_value;
9578
- decl = func->get_or_make_decl(gogo, this, name);
9579
+ decl = function_to_tree(func->get_or_make_decl(gogo, this));
9580
if (decl != error_mark_node)
9582
if (func->block() != NULL)
9583
@@ -1286,124 +1214,13 @@
9587
-// Get a tree for a function decl.
9588
+// Get the backend representation.
9591
-Function::get_or_make_decl(Gogo* gogo, Named_object* no, tree id)
9593
+Function_declaration::get_or_make_decl(Gogo* gogo, Named_object* no)
9595
- if (this->fndecl_ == NULL_TREE)
9596
+ if (this->fndecl_ == NULL)
9598
- tree functype = type_to_tree(this->type_->get_backend(gogo));
9600
- if (functype != error_mark_node)
9602
- // The type of a function comes back as a pointer to a
9603
- // struct whose first field is the function, but we want the
9604
- // real function type for a function declaration.
9605
- go_assert(POINTER_TYPE_P(functype)
9606
- && TREE_CODE(TREE_TYPE(functype)) == RECORD_TYPE);
9607
- functype = TREE_TYPE(TYPE_FIELDS(TREE_TYPE(functype)));
9608
- go_assert(FUNCTION_POINTER_TYPE_P(functype));
9609
- functype = TREE_TYPE(functype);
9612
- if (functype == error_mark_node)
9613
- this->fndecl_ = error_mark_node;
9616
- tree decl = build_decl(this->location().gcc_location(), FUNCTION_DECL,
9619
- this->fndecl_ = decl;
9621
- if (no->package() != NULL)
9623
- else if (this->enclosing_ != NULL || Gogo::is_thunk(no))
9625
- else if (Gogo::unpack_hidden_name(no->name()) == "init"
9626
- && !this->type_->is_method())
9628
- else if (Gogo::unpack_hidden_name(no->name()) == "main"
9629
- && gogo->is_main_package())
9630
- TREE_PUBLIC(decl) = 1;
9631
- // Methods have to be public even if they are hidden because
9632
- // they can be pulled into type descriptors when using
9633
- // anonymous fields.
9634
- else if (!Gogo::is_hidden_name(no->name())
9635
- || this->type_->is_method())
9637
- TREE_PUBLIC(decl) = 1;
9638
- std::string pkgpath = gogo->pkgpath_symbol();
9639
- if (this->type_->is_method()
9640
- && Gogo::is_hidden_name(no->name())
9641
- && Gogo::hidden_name_pkgpath(no->name()) != gogo->pkgpath())
9643
- // This is a method we created for an unexported
9644
- // method of an imported embedded type. We need to
9645
- // use the pkgpath of the imported package to avoid
9646
- // a possible name collision. See bug478 for a test
9648
- pkgpath = Gogo::hidden_name_pkgpath(no->name());
9649
- pkgpath = Gogo::pkgpath_for_symbol(pkgpath);
9652
- std::string asm_name = pkgpath;
9653
- asm_name.append(1, '.');
9654
- asm_name.append(Gogo::unpack_hidden_name(no->name()));
9655
- if (this->type_->is_method())
9657
- asm_name.append(1, '.');
9658
- Type* rtype = this->type_->receiver()->type();
9659
- asm_name.append(rtype->mangled_name(gogo));
9661
- SET_DECL_ASSEMBLER_NAME(decl,
9662
- get_identifier_from_string(asm_name));
9665
- // Why do we have to do this in the frontend?
9666
- tree restype = TREE_TYPE(functype);
9668
- build_decl(this->location().gcc_location(), RESULT_DECL, NULL_TREE,
9670
- DECL_ARTIFICIAL(resdecl) = 1;
9671
- DECL_IGNORED_P(resdecl) = 1;
9672
- DECL_CONTEXT(resdecl) = decl;
9673
- DECL_RESULT(decl) = resdecl;
9675
- // If a function calls the predeclared recover function, we
9676
- // can't inline it, because recover behaves differently in a
9677
- // function passed directly to defer. If this is a recover
9678
- // thunk that we built to test whether a function can be
9679
- // recovered, we can't inline it, because that will mess up
9680
- // our return address comparison.
9681
- if (this->calls_recover_ || this->is_recover_thunk_)
9682
- DECL_UNINLINABLE(decl) = 1;
9684
- // If this is a thunk created to call a function which calls
9685
- // the predeclared recover function, we need to disable
9686
- // stack splitting for the thunk.
9687
- if (this->is_recover_thunk_)
9689
- tree attr = get_identifier("__no_split_stack__");
9690
- DECL_ATTRIBUTES(decl) = tree_cons(attr, NULL_TREE, NULL_TREE);
9693
- if (this->in_unique_section_)
9694
- resolve_unique_section (decl, 0, 1);
9696
- go_preserve_from_gc(decl);
9699
- return this->fndecl_;
9702
-// Get a tree for a function declaration.
9705
-Function_declaration::get_or_make_decl(Gogo* gogo, Named_object* no, tree id)
9707
- if (this->fndecl_ == NULL_TREE)
9709
// Let Go code use an asm declaration to pick up a builtin
9711
if (!this->asm_name_.empty())
9712
@@ -1412,58 +1229,46 @@
9713
builtin_functions.find(this->asm_name_);
9714
if (p != builtin_functions.end())
9716
- this->fndecl_ = p->second;
9717
+ this->fndecl_ = tree_to_function(p->second);
9718
return this->fndecl_;
9722
- tree functype = type_to_tree(this->fntype_->get_backend(gogo));
9723
+ std::string asm_name;
9724
+ if (this->asm_name_.empty())
9726
+ asm_name = (no->package() == NULL
9727
+ ? gogo->pkgpath_symbol()
9728
+ : no->package()->pkgpath_symbol());
9729
+ asm_name.append(1, '.');
9730
+ asm_name.append(Gogo::unpack_hidden_name(no->name()));
9731
+ if (this->fntype_->is_method())
9733
+ asm_name.append(1, '.');
9734
+ Type* rtype = this->fntype_->receiver()->type();
9735
+ asm_name.append(rtype->mangled_name(gogo));
9739
- if (functype != error_mark_node)
9741
- // The type of a function comes back as a pointer to a
9742
- // struct whose first field is the function, but we want the
9743
- // real function type for a function declaration.
9744
- go_assert(POINTER_TYPE_P(functype)
9745
- && TREE_CODE(TREE_TYPE(functype)) == RECORD_TYPE);
9746
- functype = TREE_TYPE(TYPE_FIELDS(TREE_TYPE(functype)));
9747
- go_assert(FUNCTION_POINTER_TYPE_P(functype));
9748
- functype = TREE_TYPE(functype);
9750
+ Btype* functype = this->fntype_->get_backend_fntype(gogo);
9752
+ gogo->backend()->function(functype, no->get_id(gogo), asm_name,
9753
+ true, true, true, false, false,
9754
+ this->location());
9758
- if (functype == error_mark_node)
9759
- decl = error_mark_node;
9762
- decl = build_decl(this->location().gcc_location(), FUNCTION_DECL, id,
9764
- TREE_PUBLIC(decl) = 1;
9765
- DECL_EXTERNAL(decl) = 1;
9767
- if (this->asm_name_.empty())
9769
- std::string asm_name = (no->package() == NULL
9770
- ? gogo->pkgpath_symbol()
9771
- : no->package()->pkgpath_symbol());
9772
- asm_name.append(1, '.');
9773
- asm_name.append(Gogo::unpack_hidden_name(no->name()));
9774
- if (this->fntype_->is_method())
9776
- asm_name.append(1, '.');
9777
- Type* rtype = this->fntype_->receiver()->type();
9778
- asm_name.append(rtype->mangled_name(gogo));
9780
- SET_DECL_ASSEMBLER_NAME(decl,
9781
- get_identifier_from_string(asm_name));
9784
- this->fndecl_ = decl;
9785
- go_preserve_from_gc(decl);
9787
return this->fndecl_;
9790
+// Return the function's decl after it has been built.
9793
+Function::get_decl() const
9795
+ go_assert(this->fndecl_ != NULL);
9796
+ return function_to_tree(this->fndecl_);
9799
// We always pass the receiver to a method as a pointer. If the
9800
// receiver is actually declared as a non-pointer type, then we copy
9801
// the value into a local variable, so that it has the right type. In
9802
@@ -1558,7 +1363,7 @@
9804
Function::build_tree(Gogo* gogo, Named_object* named_function)
9806
- tree fndecl = this->fndecl_;
9807
+ tree fndecl = this->get_decl();
9808
go_assert(fndecl != NULL_TREE);
9810
tree params = NULL_TREE;
9811
@@ -1796,7 +1601,7 @@
9814
set = fold_build2_loc(end_loc.gcc_location(), MODIFY_EXPR, void_type_node,
9815
- DECL_RESULT(this->fndecl_), retval);
9816
+ DECL_RESULT(this->get_decl()), retval);
9817
tree ret_stmt = fold_build1_loc(end_loc.gcc_location(), RETURN_EXPR,
9818
void_type_node, set);
9819
append_to_statement_list(ret_stmt, &stmt_list);
9820
@@ -1851,7 +1656,7 @@
9821
retval = this->return_value(gogo, named_function, end_loc,
9823
set = fold_build2_loc(end_loc.gcc_location(), MODIFY_EXPR, void_type_node,
9824
- DECL_RESULT(this->fndecl_), retval);
9825
+ DECL_RESULT(this->get_decl()), retval);
9826
ret_stmt = fold_build1_loc(end_loc.gcc_location(), RETURN_EXPR,
9827
void_type_node, set);
9829
@@ -1869,7 +1674,7 @@
9833
-// Return the value to assign to DECL_RESULT(this->fndecl_). This may
9834
+// Return the value to assign to DECL_RESULT(this->get_decl()). This may
9835
// also add statements to STMT_LIST, which need to be executed before
9836
// the assignment. This is used for a return statement with no
9838
@@ -1902,7 +1707,7 @@
9842
- tree rettype = TREE_TYPE(DECL_RESULT(this->fndecl_));
9843
+ tree rettype = TREE_TYPE(DECL_RESULT(this->get_decl()));
9844
retval = create_tmp_var(rettype, "RESULT");
9845
tree field = TYPE_FIELDS(rettype);
9847
@@ -2323,18 +2128,14 @@
9848
go_assert(m != NULL);
9850
Named_object* no = m->named_object();
9852
- tree fnid = no->get_id(this);
9856
if (no->is_function())
9857
- fndecl = no->func_value()->get_or_make_decl(this, no, fnid);
9858
+ bf = no->func_value()->get_or_make_decl(this, no);
9859
else if (no->is_function_declaration())
9860
- fndecl = no->func_declaration_value()->get_or_make_decl(this, no,
9862
+ bf = no->func_declaration_value()->get_or_make_decl(this, no);
9865
- fndecl = build_fold_addr_expr(fndecl);
9866
+ tree fndecl = build_fold_addr_expr(function_to_tree(bf));
9868
elt = pointers->quick_push(empty);
9869
elt->index = size_int(i);
9870
@@ -2353,10 +2154,11 @@
9871
TREE_CONSTANT(decl) = 1;
9872
DECL_INITIAL(decl) = constructor;
9874
- // If the interface type has hidden methods, then this is the only
9875
- // definition of the table. Otherwise it is a comdat table which
9876
- // may be defined in multiple packages.
9877
- if (has_hidden_methods)
9878
+ // If the interface type has hidden methods, and the table is for a
9879
+ // named type, then this is the only definition of the table.
9880
+ // Otherwise it is a comdat table which may be defined in multiple
9882
+ if (has_hidden_methods && type->named_type() != NULL)
9883
TREE_PUBLIC(decl) = 1;
9886
Index: gcc/go/gofrontend/lex.cc
9887
===================================================================
9888
--- a/src/gcc/go/gofrontend/lex.cc (.../tags/gcc_4_8_2_release)
9889
+++ b/src/gcc/go/gofrontend/lex.cc (.../branches/gcc-4_8-branch)
9890
@@ -873,7 +873,28 @@
9891
&& (cc < 'a' || cc > 'z')
9893
&& (cc < '0' || cc > '9'))
9896
+ // Check for an invalid character here, as we get better
9897
+ // error behaviour if we swallow them as part of the
9898
+ // identifier we are building.
9899
+ if ((cc >= ' ' && cc < 0x7f)
9905
+ this->lineoff_ = p - this->linebuf_;
9906
+ error_at(this->location(),
9907
+ "invalid character 0x%x in identifier",
9909
+ if (!has_non_ascii_char)
9911
+ buf.assign(pstart, p - pstart);
9912
+ has_non_ascii_char = true;
9914
+ if (!Lex::is_invalid_identifier(buf))
9915
+ buf.append("$INVALID$");
9920
Index: gcc/go/gofrontend/backend.h
9921
===================================================================
9922
--- a/src/gcc/go/gofrontend/backend.h (.../tags/gcc_4_8_2_release)
9923
+++ b/src/gcc/go/gofrontend/backend.h (.../branches/gcc-4_8-branch)
9925
// The backend representation of a statement.
9928
-// The backend representation of a function definition.
9929
+// The backend representation of a function definition or declaration.
9932
// The backend representation of a block.
9933
@@ -266,6 +266,11 @@
9934
virtual Bexpression*
9935
convert_expression(Btype* type, Bexpression* expr, Location) = 0;
9937
+ // Create an expression for the address of a function. This is used to
9938
+ // get the address of the code for a function.
9939
+ virtual Bexpression*
9940
+ function_code_expression(Bfunction*, Location) = 0;
9944
// Create an error statement. This is used for cases which should
9945
@@ -498,6 +503,32 @@
9947
virtual Bexpression*
9948
label_address(Blabel*, Location) = 0;
9952
+ // Create an error function. This is used for cases which should
9953
+ // not occur in a correct program, in order to keep the compilation
9954
+ // going without crashing.
9955
+ virtual Bfunction*
9956
+ error_function() = 0;
9958
+ // Declare or define a function of FNTYPE.
9959
+ // NAME is the Go name of the function. ASM_NAME, if not the empty string, is
9960
+ // the name that should be used in the symbol table; this will be non-empty if
9961
+ // a magic extern comment is used.
9962
+ // IS_VISIBLE is true if this function should be visible outside of the
9963
+ // current compilation unit. IS_DECLARATION is true if this is a function
9964
+ // declaration rather than a definition; the function definition will be in
9965
+ // another compilation unit.
9966
+ // IS_INLINABLE is true if the function can be inlined.
9967
+ // DISABLE_SPLIT_STACK is true if this function may not split the stack; this
9968
+ // is used for the implementation of recover.
9969
+ // IN_UNIQUE_SECTION is true if this function should be put into a unique
9970
+ // location if possible; this is used for field tracking.
9971
+ virtual Bfunction*
9972
+ function(Btype* fntype, const std::string& name, const std::string& asm_name,
9973
+ bool is_visible, bool is_declaration, bool is_inlinable,
9974
+ bool disable_split_stack, bool in_unique_section, Location) = 0;
9977
// The backend interface has to define this function.
9979
extern tree stat_to_tree(Bstatement*);
9980
extern tree block_to_tree(Bblock*);
9981
extern tree var_to_tree(Bvariable*);
9982
+extern tree function_to_tree(Bfunction*);
9984
#endif // !defined(GO_BACKEND_H)
9985
Index: gcc/go/gofrontend/types.cc
9986
===================================================================
9987
--- a/src/gcc/go/gofrontend/types.cc (.../tags/gcc_4_8_2_release)
9988
+++ b/src/gcc/go/gofrontend/types.cc (.../branches/gcc-4_8-branch)
9989
@@ -3383,6 +3383,68 @@
9990
// Get the backend representation for a function type.
9993
+Function_type::get_backend_fntype(Gogo* gogo)
9995
+ if (this->fnbtype_ == NULL)
9997
+ Backend::Btyped_identifier breceiver;
9998
+ if (this->receiver_ != NULL)
10000
+ breceiver.name = Gogo::unpack_hidden_name(this->receiver_->name());
10002
+ // We always pass the address of the receiver parameter, in
10003
+ // order to make interface calls work with unknown types.
10004
+ Type* rtype = this->receiver_->type();
10005
+ if (rtype->points_to() == NULL)
10006
+ rtype = Type::make_pointer_type(rtype);
10007
+ breceiver.btype = rtype->get_backend(gogo);
10008
+ breceiver.location = this->receiver_->location();
10011
+ std::vector<Backend::Btyped_identifier> bparameters;
10012
+ if (this->parameters_ != NULL)
10014
+ bparameters.resize(this->parameters_->size());
10016
+ for (Typed_identifier_list::const_iterator p =
10017
+ this->parameters_->begin(); p != this->parameters_->end();
10020
+ bparameters[i].name = Gogo::unpack_hidden_name(p->name());
10021
+ bparameters[i].btype = p->type()->get_backend(gogo);
10022
+ bparameters[i].location = p->location();
10024
+ go_assert(i == bparameters.size());
10027
+ std::vector<Backend::Btyped_identifier> bresults;
10028
+ if (this->results_ != NULL)
10030
+ bresults.resize(this->results_->size());
10032
+ for (Typed_identifier_list::const_iterator p =
10033
+ this->results_->begin(); p != this->results_->end();
10036
+ bresults[i].name = Gogo::unpack_hidden_name(p->name());
10037
+ bresults[i].btype = p->type()->get_backend(gogo);
10038
+ bresults[i].location = p->location();
10040
+ go_assert(i == bresults.size());
10043
+ this->fnbtype_ = gogo->backend()->function_type(breceiver, bparameters,
10045
+ this->location());
10049
+ return this->fnbtype_;
10052
+// Get the backend representation for a Go function type.
10055
Function_type::do_get_backend(Gogo* gogo)
10057
// When we do anything with a function value other than call it, it
10058
@@ -3395,57 +3457,9 @@
10059
gogo->backend()->placeholder_struct_type("__go_descriptor", loc);
10060
Btype* ptr_struct_type = gogo->backend()->pointer_type(struct_type);
10062
- Backend::Btyped_identifier breceiver;
10063
- if (this->receiver_ != NULL)
10065
- breceiver.name = Gogo::unpack_hidden_name(this->receiver_->name());
10067
- // We always pass the address of the receiver parameter, in
10068
- // order to make interface calls work with unknown types.
10069
- Type* rtype = this->receiver_->type();
10070
- if (rtype->points_to() == NULL)
10071
- rtype = Type::make_pointer_type(rtype);
10072
- breceiver.btype = rtype->get_backend(gogo);
10073
- breceiver.location = this->receiver_->location();
10076
- std::vector<Backend::Btyped_identifier> bparameters;
10077
- if (this->parameters_ != NULL)
10079
- bparameters.resize(this->parameters_->size());
10081
- for (Typed_identifier_list::const_iterator p = this->parameters_->begin();
10082
- p != this->parameters_->end();
10085
- bparameters[i].name = Gogo::unpack_hidden_name(p->name());
10086
- bparameters[i].btype = p->type()->get_backend(gogo);
10087
- bparameters[i].location = p->location();
10089
- go_assert(i == bparameters.size());
10092
- std::vector<Backend::Btyped_identifier> bresults;
10093
- if (this->results_ != NULL)
10095
- bresults.resize(this->results_->size());
10097
- for (Typed_identifier_list::const_iterator p = this->results_->begin();
10098
- p != this->results_->end();
10101
- bresults[i].name = Gogo::unpack_hidden_name(p->name());
10102
- bresults[i].btype = p->type()->get_backend(gogo);
10103
- bresults[i].location = p->location();
10105
- go_assert(i == bresults.size());
10108
- Btype* fntype = gogo->backend()->function_type(breceiver, bparameters,
10110
std::vector<Backend::Btyped_identifier> fields(1);
10111
fields[0].name = "code";
10112
- fields[0].btype = fntype;
10113
+ fields[0].btype = this->get_backend_fntype(gogo);
10114
fields[0].location = loc;
10115
if (!gogo->backend()->set_placeholder_struct_type(struct_type, fields))
10116
return gogo->backend()->error_type();
10117
@@ -4195,7 +4209,8 @@
10119
// This is a horrible hack caused by the fact that we don't pack
10120
// the names of builtin types. FIXME.
10122
+ if (!this->is_imported_
10124
&& nt->is_builtin()
10125
&& nt->name() == Gogo::unpack_hidden_name(name))
10127
@@ -4204,6 +4219,36 @@
10131
+// Return whether this field is an unexported field named NAME.
10134
+Struct_field::is_unexported_field_name(Gogo* gogo,
10135
+ const std::string& name) const
10137
+ const std::string& field_name(this->field_name());
10138
+ if (Gogo::is_hidden_name(field_name)
10139
+ && name == Gogo::unpack_hidden_name(field_name)
10140
+ && gogo->pack_hidden_name(name, false) != field_name)
10143
+ // Check for the name of a builtin type. This is like the test in
10144
+ // is_field_name, only there we return false if this->is_imported_,
10145
+ // and here we return true.
10146
+ if (this->is_imported_ && this->is_anonymous())
10148
+ Type* t = this->typed_identifier_.type();
10149
+ if (t->points_to() != NULL)
10150
+ t = t->points_to();
10151
+ Named_type* nt = t->named_type();
10153
+ && nt->is_builtin()
10154
+ && nt->name() == Gogo::unpack_hidden_name(name))
10161
// Return whether this field is an embedded built-in type.
10164
@@ -4264,13 +4309,8 @@
10167
Type* t = p->type();
10168
- if (t->is_undefined())
10169
+ if (p->is_anonymous())
10171
- error_at(p->location(), "struct field type is incomplete");
10172
- p->set_type(Type::make_error_type());
10174
- else if (p->is_anonymous())
10176
if (t->named_type() != NULL && t->points_to() != NULL)
10178
error_at(p->location(), "embedded type may not be a pointer");
10179
@@ -4641,13 +4681,8 @@
10180
for (Struct_field_list::const_iterator pf = fields->begin();
10181
pf != fields->end();
10184
- const std::string& field_name(pf->field_name());
10185
- if (Gogo::is_hidden_name(field_name)
10186
- && name == Gogo::unpack_hidden_name(field_name)
10187
- && gogo->pack_hidden_name(name, false) != field_name)
10190
+ if (pf->is_unexported_field_name(gogo, name))
10195
@@ -5250,6 +5285,7 @@
10196
Type* ftype = imp->read_type();
10198
Struct_field sf(Typed_identifier(name, ftype, imp->location()));
10199
+ sf.set_is_imported();
10201
if (imp->peek_char() == ' ')
10203
@@ -9022,6 +9058,8 @@
10204
fntype->is_varargs(), location);
10205
gogo->finish_function(fntype->location());
10207
+ if (type->named_type() == NULL && stub->is_function())
10208
+ stub->func_value()->set_is_unnamed_type_stub_method();
10209
if (m->nointerface() && stub->is_function())
10210
stub->func_value()->set_nointerface();
10212
@@ -9289,7 +9327,9 @@
10215
bool is_unexported;
10216
- if (!Gogo::is_hidden_name(name))
10217
+ // The test for 'a' and 'z' is to handle builtin names,
10218
+ // which are not hidden.
10219
+ if (!Gogo::is_hidden_name(name) && (name[0] < 'a' || name[0] > 'z'))
10220
is_unexported = false;
10223
Index: gcc/go/gofrontend/expressions.cc
10224
===================================================================
10225
--- a/src/gcc/go/gofrontend/expressions.cc (.../tags/gcc_4_8_2_release)
10226
+++ b/src/gcc/go/gofrontend/expressions.cc (.../branches/gcc-4_8-branch)
10227
@@ -1219,7 +1219,7 @@
10229
// Get the tree for the code of a function expression.
10233
Func_expression::get_code_pointer(Gogo* gogo, Named_object* no, Location loc)
10235
Function_type* fntype;
10236
@@ -1237,25 +1237,18 @@
10238
"invalid use of special builtin function %qs; must be called",
10239
no->message_name().c_str());
10240
- return error_mark_node;
10241
+ return gogo->backend()->error_expression();
10244
- tree id = no->get_id(gogo);
10245
- if (id == error_mark_node)
10246
- return error_mark_node;
10249
+ Bfunction* fndecl;
10250
if (no->is_function())
10251
- fndecl = no->func_value()->get_or_make_decl(gogo, no, id);
10252
+ fndecl = no->func_value()->get_or_make_decl(gogo, no);
10253
else if (no->is_function_declaration())
10254
- fndecl = no->func_declaration_value()->get_or_make_decl(gogo, no, id);
10255
+ fndecl = no->func_declaration_value()->get_or_make_decl(gogo, no);
10259
- if (fndecl == error_mark_node)
10260
- return error_mark_node;
10262
- return build_fold_addr_expr_loc(loc.gcc_location(), fndecl);
10263
+ return gogo->backend()->function_code_expression(fndecl, loc);
10266
// Get the tree for a function expression. This is used when we take
10267
@@ -1492,8 +1485,10 @@
10269
Func_code_reference_expression::do_get_tree(Translate_context* context)
10271
- return Func_expression::get_code_pointer(context->gogo(), this->function_,
10272
- this->location());
10273
+ Bexpression* ret =
10274
+ Func_expression::get_code_pointer(context->gogo(), this->function_,
10275
+ this->location());
10276
+ return expr_to_tree(ret);
10279
// Make a reference to the code of a function.
10280
@@ -3055,8 +3050,7 @@
10281
do_lower(Gogo*, Named_object*, Statement_inserter*, int);
10284
- do_is_constant() const
10285
- { return this->expr_->is_constant(); }
10286
+ do_is_constant() const;
10289
do_numeric_constant_value(Numeric_constant*) const;
10290
@@ -3198,6 +3192,27 @@
10294
+// Return whether a type conversion is a constant.
10297
+Type_conversion_expression::do_is_constant() const
10299
+ if (!this->expr_->is_constant())
10302
+ // A conversion to a type that may not be used as a constant is not
10303
+ // a constant. For example, []byte(nil).
10304
+ Type* type = this->type_;
10305
+ if (type->integer_type() == NULL
10306
+ && type->float_type() == NULL
10307
+ && type->complex_type() == NULL
10308
+ && !type->is_boolean_type()
10309
+ && !type->is_string_type())
10315
// Return the constant numeric value if there is one.
10318
@@ -5586,6 +5601,15 @@
10319
subcontext.type = NULL;
10322
+ if (this->op_ == OPERATOR_ANDAND || this->op_ == OPERATOR_OROR)
10324
+ // For a logical operation, the context does not determine the
10325
+ // types of the operands. The operands must be some boolean
10326
+ // type but if the context has a boolean type they do not
10327
+ // inherit it. See http://golang.org/issue/3924.
10328
+ subcontext.type = NULL;
10331
// Set the context for the left hand operand.
10334
@@ -5967,6 +5991,43 @@
10338
+ // For complex division Go wants slightly different results than the
10339
+ // GCC library provides, so we have our own runtime routine.
10340
+ if (this->op_ == OPERATOR_DIV && this->left_->type()->complex_type() != NULL)
10342
+ const char *name;
10345
+ static tree complex64_div_decl;
10346
+ static tree complex128_div_decl;
10347
+ switch (this->left_->type()->complex_type()->bits())
10350
+ name = "__go_complex64_div";
10351
+ pdecl = &complex64_div_decl;
10352
+ ctype = Type::lookup_complex_type("complex64");
10355
+ name = "__go_complex128_div";
10356
+ pdecl = &complex128_div_decl;
10357
+ ctype = Type::lookup_complex_type("complex128");
10360
+ go_unreachable();
10362
+ Btype* cbtype = ctype->get_backend(gogo);
10363
+ tree ctype_tree = type_to_tree(cbtype);
10364
+ return Gogo::call_builtin(pdecl,
10365
+ this->location(),
10370
+ fold_convert_loc(gccloc, ctype_tree, left),
10372
+ fold_convert_loc(gccloc, ctype_tree, right));
10375
tree compute_type = excess_precision_type(type);
10376
if (compute_type != NULL_TREE)
10378
@@ -7191,6 +7252,15 @@
10379
if (this->code_ == BUILTIN_OFFSETOF)
10381
Expression* arg = this->one_arg();
10383
+ if (arg->bound_method_expression() != NULL
10384
+ || arg->interface_field_reference_expression() != NULL)
10386
+ this->report_error(_("invalid use of method value as argument "
10391
Field_reference_expression* farg = arg->field_reference_expression();
10392
while (farg != NULL)
10394
@@ -7200,7 +7270,8 @@
10395
// it must not be reached through pointer indirections.
10396
if (farg->expr()->deref() != farg->expr())
10398
- this->report_error(_("argument of Offsetof implies indirection of an embedded field"));
10399
+ this->report_error(_("argument of Offsetof implies "
10400
+ "indirection of an embedded field"));
10403
// Go up until we reach the original base.
10404
@@ -7476,7 +7547,7 @@
10405
switch (nc.to_unsigned_long(&v))
10407
case Numeric_constant::NC_UL_VALID:
10410
case Numeric_constant::NC_UL_NOTINT:
10411
error_at(e->location(), "non-integer %s argument to make",
10412
is_length ? "len" : "cap");
10413
@@ -7488,8 +7559,23 @@
10414
case Numeric_constant::NC_UL_BIG:
10415
// We don't want to give a compile-time error for a 64-bit
10416
// value on a 32-bit target.
10422
+ if (!nc.to_int(&val))
10423
+ go_unreachable();
10424
+ int bits = mpz_sizeinbase(val, 2);
10426
+ Type* int_type = Type::lookup_integer_type("int");
10427
+ if (bits >= int_type->integer_type()->bits())
10429
+ error_at(e->location(), "%s argument too large for make",
10430
+ is_length ? "len" : "cap");
10437
if (e->type()->integer_type() != NULL)
10438
@@ -7595,6 +7681,8 @@
10440
Builtin_call_expression::do_is_constant() const
10442
+ if (this->is_error_expression())
10444
switch (this->code_)
10447
@@ -9744,15 +9832,9 @@
10450
tree fntype_tree = type_to_tree(fntype->get_backend(gogo));
10451
- if (fntype_tree == error_mark_node)
10452
+ tree fnfield_type = type_to_tree(fntype->get_backend_fntype(gogo));
10453
+ if (fntype_tree == error_mark_node || fnfield_type == error_mark_node)
10454
return error_mark_node;
10455
- go_assert(POINTER_TYPE_P(fntype_tree));
10456
- if (TREE_TYPE(fntype_tree) == error_mark_node)
10457
- return error_mark_node;
10458
- go_assert(TREE_CODE(TREE_TYPE(fntype_tree)) == RECORD_TYPE);
10459
- tree fnfield_type = TREE_TYPE(TYPE_FIELDS(TREE_TYPE(fntype_tree)));
10460
- if (fnfield_type == error_mark_node)
10461
- return error_mark_node;
10462
go_assert(FUNCTION_POINTER_TYPE_P(fnfield_type));
10463
tree rettype = TREE_TYPE(TREE_TYPE(fnfield_type));
10464
if (rettype == error_mark_node)
10465
@@ -9763,7 +9845,7 @@
10468
Named_object* no = func->named_object();
10469
- fn = Func_expression::get_code_pointer(gogo, no, location);
10470
+ fn = expr_to_tree(Func_expression::get_code_pointer(gogo, no, location));
10472
closure_tree = NULL_TREE;
10474
@@ -10817,11 +10899,20 @@
10476
String_index_expression::do_check_types(Gogo*)
10478
- if (this->start_->type()->integer_type() == NULL)
10479
+ Numeric_constant nc;
10481
+ if (this->start_->type()->integer_type() == NULL
10482
+ && !this->start_->type()->is_error()
10483
+ && (!this->start_->numeric_constant_value(&nc)
10484
+ || nc.to_unsigned_long(&v) == Numeric_constant::NC_UL_NOTINT))
10485
this->report_error(_("index must be integer"));
10486
if (this->end_ != NULL
10487
&& this->end_->type()->integer_type() == NULL
10488
- && !this->end_->is_nil_expression())
10489
+ && !this->end_->type()->is_error()
10490
+ && !this->end_->is_nil_expression()
10491
+ && !this->end_->is_error_expression()
10492
+ && (!this->end_->numeric_constant_value(&nc)
10493
+ || nc.to_unsigned_long(&v) == Numeric_constant::NC_UL_NOTINT))
10494
this->report_error(_("slice end must be integer"));
10498
===================================================================
10499
--- a/src/gcc/recog.c (.../tags/gcc_4_8_2_release)
10500
+++ b/src/gcc/recog.c (.../branches/gcc-4_8-branch)
10501
@@ -3061,6 +3061,9 @@
10505
+/* Regno offset to be used in the register search. */
10506
+static int search_ofs;
10508
/* Try to find a hard register of mode MODE, matching the register class in
10509
CLASS_STR, which is available at the beginning of insn CURRENT_INSN and
10510
remains available until the end of LAST_INSN. LAST_INSN may be NULL_RTX,
10511
@@ -3076,7 +3079,6 @@
10512
peep2_find_free_register (int from, int to, const char *class_str,
10513
enum machine_mode mode, HARD_REG_SET *reg_set)
10515
- static int search_ofs;
10519
@@ -3541,6 +3543,7 @@
10520
/* Initialize the regsets we're going to use. */
10521
for (i = 0; i < MAX_INSNS_PER_PEEP2 + 1; ++i)
10522
peep2_insn_data[i].live_before = BITMAP_ALLOC (®_obstack);
10524
live = BITMAP_ALLOC (®_obstack);
10526
FOR_EACH_BB_REVERSE (bb)
10527
Index: gcc/ada/ChangeLog
10528
===================================================================
10529
--- a/src/gcc/ada/ChangeLog (.../tags/gcc_4_8_2_release)
10530
+++ b/src/gcc/ada/ChangeLog (.../branches/gcc-4_8-branch)
10532
+2013-10-19 Eric Botcazou <ebotcazou@adacore.com>
10534
+ * gcc-interface/utils.c (scale_by_factor_of): New function.
10535
+ (rest_of_record_type_compilation): Use scale_by_factor_of in order to
10536
+ scale the original offset for both rounding cases; in the second case,
10537
+ take into accout the addend to compute the alignment. Tidy up.
10539
+2013-10-19 Eric Botcazou <ebotcazou@adacore.com>
10541
+ * gcc-interface/utils.c (gnat_set_type_context): New function.
10542
+ (gnat_pushdecl): Use it to set the context of the type.
10544
2013-10-16 Release Manager
10546
* GCC 4.8.2 released.
10547
Index: gcc/ada/gcc-interface/utils.c
10548
===================================================================
10549
--- a/src/gcc/ada/gcc-interface/utils.c (.../tags/gcc_4_8_2_release)
10550
+++ b/src/gcc/ada/gcc-interface/utils.c (.../branches/gcc-4_8-branch)
10551
@@ -232,6 +232,7 @@
10552
static tree split_plus (tree, tree *);
10553
static tree float_type_for_precision (int, enum machine_mode);
10554
static tree convert_to_fat_pointer (tree, tree);
10555
+static unsigned int scale_by_factor_of (tree, unsigned int);
10556
static bool potential_alignment_gap (tree, tree, tree);
10557
static void process_attributes (tree, struct attrib *);
10559
@@ -532,6 +533,22 @@
10560
free_binding_level = level;
10563
+/* Set the context of TYPE and its parallel types (if any) to CONTEXT. */
10566
+gnat_set_type_context (tree type, tree context)
10568
+ tree decl = TYPE_STUB_DECL (type);
10570
+ TYPE_CONTEXT (type) = context;
10572
+ while (decl && DECL_PARALLEL_TYPE (decl))
10574
+ TYPE_CONTEXT (DECL_PARALLEL_TYPE (decl)) = context;
10575
+ decl = TYPE_STUB_DECL (DECL_PARALLEL_TYPE (decl));
10579
/* Record DECL as belonging to the current lexical scope and use GNAT_NODE
10580
for location information and flag propagation. */
10582
@@ -613,7 +630,7 @@
10583
if (TREE_CODE (t) == POINTER_TYPE)
10584
TYPE_NEXT_PTR_TO (t) = tt;
10585
TYPE_NAME (tt) = DECL_NAME (decl);
10586
- TYPE_CONTEXT (tt) = DECL_CONTEXT (decl);
10587
+ gnat_set_type_context (tt, DECL_CONTEXT (decl));
10588
TYPE_STUB_DECL (tt) = TYPE_STUB_DECL (t);
10589
DECL_ORIGINAL_TYPE (decl) = tt;
10591
@@ -623,7 +640,7 @@
10592
/* We need a variant for the placeholder machinery to work. */
10593
tree tt = build_variant_type_copy (t);
10594
TYPE_NAME (tt) = decl;
10595
- TYPE_CONTEXT (tt) = DECL_CONTEXT (decl);
10596
+ gnat_set_type_context (tt, DECL_CONTEXT (decl));
10597
TREE_USED (tt) = TREE_USED (t);
10598
TREE_TYPE (decl) = tt;
10599
if (DECL_ORIGINAL_TYPE (TYPE_NAME (t)))
10600
@@ -645,7 +662,7 @@
10601
if (!(TYPE_NAME (t) && TREE_CODE (TYPE_NAME (t)) == TYPE_DECL))
10603
TYPE_NAME (t) = decl;
10604
- TYPE_CONTEXT (t) = DECL_CONTEXT (decl);
10605
+ gnat_set_type_context (t, DECL_CONTEXT (decl));
10609
@@ -1692,93 +1709,74 @@
10610
TYPE_SIZE_UNIT (new_record_type)
10611
= size_int (TYPE_ALIGN (record_type) / BITS_PER_UNIT);
10613
- /* Now scan all the fields, replacing each field with a new
10614
- field corresponding to the new encoding. */
10615
+ /* Now scan all the fields, replacing each field with a new field
10616
+ corresponding to the new encoding. */
10617
for (old_field = TYPE_FIELDS (record_type); old_field;
10618
old_field = DECL_CHAIN (old_field))
10620
tree field_type = TREE_TYPE (old_field);
10621
tree field_name = DECL_NAME (old_field);
10623
tree curpos = bit_position (old_field);
10624
+ tree pos, new_field;
10626
unsigned int align = 0;
10629
+ /* We're going to do some pattern matching below so remove as many
10630
+ conversions as possible. */
10631
+ curpos = remove_conversions (curpos, true);
10633
/* See how the position was modified from the last position.
10635
- There are two basic cases we support: a value was added
10636
- to the last position or the last position was rounded to
10637
- a boundary and they something was added. Check for the
10638
- first case first. If not, see if there is any evidence
10639
- of rounding. If so, round the last position and try
10641
+ There are two basic cases we support: a value was added
10642
+ to the last position or the last position was rounded to
10643
+ a boundary and they something was added. Check for the
10644
+ first case first. If not, see if there is any evidence
10645
+ of rounding. If so, round the last position and retry.
10647
- If this is a union, the position can be taken as zero. */
10649
- /* Some computations depend on the shape of the position expression,
10650
- so strip conversions to make sure it's exposed. */
10651
- curpos = remove_conversions (curpos, true);
10653
+ If this is a union, the position can be taken as zero. */
10654
if (TREE_CODE (new_record_type) == UNION_TYPE)
10655
- pos = bitsize_zero_node, align = 0;
10656
+ pos = bitsize_zero_node;
10658
pos = compute_related_constant (curpos, last_pos);
10660
- if (!pos && TREE_CODE (curpos) == MULT_EXPR
10662
+ && TREE_CODE (curpos) == MULT_EXPR
10663
&& host_integerp (TREE_OPERAND (curpos, 1), 1))
10665
tree offset = TREE_OPERAND (curpos, 0);
10666
align = tree_low_cst (TREE_OPERAND (curpos, 1), 1);
10668
- /* An offset which is a bitwise AND with a mask increases the
10669
- alignment according to the number of trailing zeros. */
10670
- offset = remove_conversions (offset, true);
10671
- if (TREE_CODE (offset) == BIT_AND_EXPR
10672
- && TREE_CODE (TREE_OPERAND (offset, 1)) == INTEGER_CST)
10674
- unsigned HOST_WIDE_INT mask
10675
- = TREE_INT_CST_LOW (TREE_OPERAND (offset, 1));
10678
- for (i = 0; i < HOST_BITS_PER_WIDE_INT; i++)
10687
- pos = compute_related_constant (curpos,
10688
- round_up (last_pos, align));
10689
+ align = scale_by_factor_of (offset, align);
10690
+ last_pos = round_up (last_pos, align);
10691
+ pos = compute_related_constant (curpos, last_pos);
10693
- else if (!pos && TREE_CODE (curpos) == PLUS_EXPR
10694
- && TREE_CODE (TREE_OPERAND (curpos, 1)) == INTEGER_CST
10696
+ && TREE_CODE (curpos) == PLUS_EXPR
10697
+ && host_integerp (TREE_OPERAND (curpos, 1), 1)
10698
&& TREE_CODE (TREE_OPERAND (curpos, 0)) == MULT_EXPR
10699
- && host_integerp (TREE_OPERAND
10700
- (TREE_OPERAND (curpos, 0), 1),
10703
+ (TREE_OPERAND (TREE_OPERAND (curpos, 0), 1), 1))
10705
+ tree offset = TREE_OPERAND (TREE_OPERAND (curpos, 0), 0);
10706
+ unsigned HOST_WIDE_INT addend
10707
+ = tree_low_cst (TREE_OPERAND (curpos, 1), 1);
10710
- (TREE_OPERAND (TREE_OPERAND (curpos, 0), 1), 1);
10711
- pos = compute_related_constant (curpos,
10712
- round_up (last_pos, align));
10713
+ = tree_low_cst (TREE_OPERAND (TREE_OPERAND (curpos, 0), 1), 1);
10714
+ align = scale_by_factor_of (offset, align);
10715
+ align = MIN (align, addend & -addend);
10716
+ last_pos = round_up (last_pos, align);
10717
+ pos = compute_related_constant (curpos, last_pos);
10719
- else if (potential_alignment_gap (prev_old_field, old_field,
10721
+ else if (potential_alignment_gap (prev_old_field, old_field, pos))
10723
align = TYPE_ALIGN (field_type);
10724
- pos = compute_related_constant (curpos,
10725
- round_up (last_pos, align));
10726
+ last_pos = round_up (last_pos, align);
10727
+ pos = compute_related_constant (curpos, last_pos);
10730
/* If we can't compute a position, set it to zero.
10732
- ??? We really should abort here, but it's too much work
10733
- to get this correct for all cases. */
10735
+ ??? We really should abort here, but it's too much work
10736
+ to get this correct for all cases. */
10738
pos = bitsize_zero_node;
10740
@@ -2553,6 +2551,32 @@
10744
+/* Return VALUE scaled by the biggest power-of-2 factor of EXPR. */
10746
+static unsigned int
10747
+scale_by_factor_of (tree expr, unsigned int value)
10749
+ expr = remove_conversions (expr, true);
10751
+ /* An expression which is a bitwise AND with a mask has a power-of-2 factor
10752
+ corresponding to the number of trailing zeros of the mask. */
10753
+ if (TREE_CODE (expr) == BIT_AND_EXPR
10754
+ && TREE_CODE (TREE_OPERAND (expr, 1)) == INTEGER_CST)
10756
+ unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (TREE_OPERAND (expr, 1));
10757
+ unsigned int i = 0;
10759
+ while ((mask & 1) == 0 && i < HOST_BITS_PER_WIDE_INT)
10770
/* Given two consecutive field decls PREV_FIELD and CURR_FIELD, return true
10771
unless we can prove these 2 fields are laid out in such a way that no gap
10772
exist between the end of PREV_FIELD and the beginning of CURR_FIELD. OFFSET
10773
Index: gcc/fortran/interface.c
10774
===================================================================
10775
--- a/src/gcc/fortran/interface.c (.../tags/gcc_4_8_2_release)
10776
+++ b/src/gcc/fortran/interface.c (.../branches/gcc-4_8-branch)
10777
@@ -1245,7 +1245,8 @@
10781
- if (r1->ts.u.cl->length)
10782
+ if (s1->ts.u.cl && s1->ts.u.cl->length
10783
+ && s2->ts.u.cl && s2->ts.u.cl->length)
10785
int compval = gfc_dep_compare_expr (r1->ts.u.cl->length,
10786
r2->ts.u.cl->length);
10787
@@ -1367,8 +1368,8 @@
10788
if (s1->attr.function && s2->attr.function)
10790
/* If both are functions, check result characteristics. */
10791
- if (check_result_characteristics (s1, s2, errmsg, err_len)
10793
+ if (check_result_characteristics (s1, s2, errmsg, err_len) == FAILURE
10794
+ || check_result_characteristics (s2, s1, errmsg, err_len) == FAILURE)
10798
Index: gcc/fortran/decl.c
10799
===================================================================
10800
--- a/src/gcc/fortran/decl.c (.../tags/gcc_4_8_2_release)
10801
+++ b/src/gcc/fortran/decl.c (.../branches/gcc-4_8-branch)
10802
@@ -7384,6 +7384,7 @@
10805
/* Check a derived type that is being extended. */
10808
check_extended_derived_type (char *name)
10810
@@ -7395,14 +7396,15 @@
10814
+ extended = gfc_find_dt_in_generic (extended);
10819
- gfc_error ("No such symbol in TYPE definition at %C");
10820
+ gfc_error ("Symbol '%s' at %C has not been previously defined", name);
10824
- extended = gfc_find_dt_in_generic (extended);
10826
if (extended->attr.flavor != FL_DERIVED)
10828
gfc_error ("'%s' in EXTENDS expression at %C is not a "
10829
Index: gcc/fortran/ChangeLog
10830
===================================================================
10831
--- a/src/gcc/fortran/ChangeLog (.../tags/gcc_4_8_2_release)
10832
+++ b/src/gcc/fortran/ChangeLog (.../branches/gcc-4_8-branch)
10834
+2013-11-17 Janus Weil <janus@gcc.gnu.org>
10836
+ Backport from mainline
10837
+ 2013-11-07 Janus Weil <janus@gcc.gnu.org>
10840
+ * primary.c (gfc_expr_attr): Check for result symbol.
10842
+2013-11-16 Janus Weil <janus@gcc.gnu.org>
10844
+ Backport from mainline
10845
+ 2013-09-20 Janus Weil <janus@gcc.gnu.org>
10848
+ * expr.c (gfc_check_pointer_assign): Remove second call to
10849
+ 'gfc_compare_interfaces' with swapped arguments.
10850
+ * interface.c (gfc_compare_interfaces): Symmetrize the call to
10851
+ 'check_result_characteristics' by calling it with swapped arguments.
10853
+2013-11-16 Paul Thomas <pault@gcc.gnu.org>
10856
+ * trans-io.c (transfer_expr): If the backend_decl for a derived
10857
+ type is missing, build it with gfc_typenode_for_spec.
10859
+2013-11-05 Steven G. Kargl <kargl@gcc.gnu.org>
10862
+ * check.c (gfc_check_reshape): ensure that shape is a constant
10865
+2013-11-02 Janus Weil <janus@gcc.gnu.org>
10867
+ Backport from mainline
10868
+ 2013-09-23 Janus Weil <janus@gcc.gnu.org>
10871
+ * decl.c (check_extended_derived_type): Prevent segfault, modify error
10874
2013-10-16 Release Manager
10876
* GCC 4.8.2 released.
10877
Index: gcc/fortran/expr.c
10878
===================================================================
10879
--- a/src/gcc/fortran/expr.c (.../tags/gcc_4_8_2_release)
10880
+++ b/src/gcc/fortran/expr.c (.../branches/gcc-4_8-branch)
10881
@@ -3555,14 +3555,6 @@
10885
- if (!gfc_compare_interfaces (s2, s1, name, 0, 1,
10886
- err, sizeof(err), NULL, NULL))
10888
- gfc_error ("Interface mismatch in procedure pointer assignment "
10889
- "at %L: %s", &rvalue->where, err);
10896
Index: gcc/fortran/trans-io.c
10897
===================================================================
10898
--- a/src/gcc/fortran/trans-io.c (.../tags/gcc_4_8_2_release)
10899
+++ b/src/gcc/fortran/trans-io.c (.../branches/gcc-4_8-branch)
10900
@@ -243,16 +243,16 @@
10902
/* The code to generate the error. */
10903
gfc_start_block (&block);
10906
arg1 = gfc_build_addr_expr (NULL_TREE, var);
10909
arg2 = build_int_cst (integer_type_node, error_code),
10912
asprintf (&message, "%s", _(msgid));
10913
arg3 = gfc_build_addr_expr (pchar_type_node,
10914
gfc_build_localized_cstring_const (message));
10918
tmp = build_call_expr_loc (input_location,
10919
gfor_fndecl_generate_error, 3, arg1, arg2, arg3);
10921
@@ -521,7 +521,7 @@
10922
gfc_trans_io_runtime_check (cond, var, LIBERROR_BAD_UNIT,
10923
"Unit number in I/O statement too small",
10927
/* UNIT numbers should be less than the max. */
10928
val = gfc_conv_mpz_to_tree (gfc_integer_kinds[i].huge, 4);
10929
cond = fold_build2_loc (input_location, GT_EXPR, boolean_type_node,
10930
@@ -1000,7 +1000,7 @@
10932
mask |= set_string (&block, &post_block, var, IOPARM_open_convert,
10937
mask |= set_parameter_ref (&block, &post_block, var, IOPARM_open_newunit,
10939
@@ -1234,7 +1234,7 @@
10941
mask |= set_parameter_ref (&block, &post_block, var, IOPARM_inquire_exist,
10945
if (p->unit && !p->iostat)
10947
p->iostat = create_dummy_iostat ();
10948
@@ -1322,7 +1322,7 @@
10950
mask |= set_string (&block, &post_block, var, IOPARM_inquire_pad,
10955
mask |= set_string (&block, &post_block, var, IOPARM_inquire_convert,
10957
@@ -1547,7 +1547,7 @@
10960
tree decl = NULL_TREE;
10966
@@ -2032,7 +2032,7 @@
10967
if (gfc_notification_std (GFC_STD_GNU) != SILENT)
10969
gfc_error_now ("Derived type '%s' at %L has PRIVATE components",
10970
- ts->u.derived->name, code != NULL ? &(code->loc) :
10971
+ ts->u.derived->name, code != NULL ? &(code->loc) :
10972
&gfc_current_locus);
10975
@@ -2041,7 +2041,7 @@
10976
ts->kind = ts->u.derived->ts.kind;
10977
ts->f90_type = ts->u.derived->ts.f90_type;
10984
@@ -2123,7 +2123,7 @@
10985
function = iocall[IOCALL_X_CHARACTER_WIDE];
10987
function = iocall[IOCALL_X_CHARACTER_WIDE_WRITE];
10990
tmp = gfc_build_addr_expr (NULL_TREE, dt_parm);
10991
tmp = build_call_expr_loc (input_location,
10992
function, 4, tmp, addr_expr, arg2, arg3);
10993
@@ -2158,6 +2158,12 @@
10994
expr = build_fold_indirect_ref_loc (input_location,
10997
+ /* Make sure that the derived type has been built. An external
10998
+ function, if only referenced in an io statement requires this
10999
+ check (see PR58771). */
11000
+ if (ts->u.derived->backend_decl == NULL_TREE)
11001
+ tmp = gfc_typenode_for_spec (ts);
11003
for (c = ts->u.derived->components; c; c = c->next)
11005
field = c->backend_decl;
11006
Index: gcc/fortran/check.c
11007
===================================================================
11008
--- a/src/gcc/fortran/check.c (.../tags/gcc_4_8_2_release)
11009
+++ b/src/gcc/fortran/check.c (.../branches/gcc-4_8-branch)
11010
@@ -3208,7 +3208,7 @@
11011
"than %d elements", &shape->where, GFC_MAX_DIMENSIONS);
11014
- else if (shape->expr_type == EXPR_ARRAY)
11015
+ else if (shape->expr_type == EXPR_ARRAY && gfc_is_constant_expr (shape))
11019
Index: gcc/fortran/primary.c
11020
===================================================================
11021
--- a/src/gcc/fortran/primary.c (.../tags/gcc_4_8_2_release)
11022
+++ b/src/gcc/fortran/primary.c (.../branches/gcc-4_8-branch)
11023
@@ -2252,7 +2252,7 @@
11024
case EXPR_FUNCTION:
11025
gfc_clear_attr (&attr);
11027
- if (e->value.function.esym != NULL)
11028
+ if (e->value.function.esym && e->value.function.esym->result)
11030
gfc_symbol *sym = e->value.function.esym->result;
11032
Index: gcc/configure.ac
11033
===================================================================
11034
--- a/src/gcc/configure.ac (.../tags/gcc_4_8_2_release)
11035
+++ b/src/gcc/configure.ac (.../branches/gcc-4_8-branch)
11036
@@ -3611,6 +3611,19 @@
11037
kasumi_fi_xor %f46, %f48, %f50, %f52],,
11038
[AC_DEFINE(HAVE_AS_SPARC4, 1,
11039
[Define if your assembler supports SPARC4 instructions.])])
11041
+ gcc_GAS_CHECK_FEATURE([LEON instructions],
11042
+ gcc_cv_as_sparc_leon,,
11045
+ .register %g2, #scratch
11046
+ .register %g3, #scratch
11048
+ smac %g2, %g3, %g1
11049
+ umac %g2, %g3, %g1
11050
+ cas [[%g2]], %g3, %g1],,
11051
+ [AC_DEFINE(HAVE_AS_LEON, 1,
11052
+ [Define if your assembler supports LEON instructions.])])
11056
@@ -5193,15 +5206,15 @@
11057
AC_MSG_CHECKING([for exported symbols])
11058
if test "x$export_sym_check" != x; then
11059
echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c
11060
- ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest > /dev/null 2>&1
11061
- if $export_sym_check conftest | grep foobar > /dev/null; then
11062
+ ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest$ac_exeext > /dev/null 2>&1
11063
+ if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then
11064
: # No need to use a flag
11065
AC_MSG_RESULT([yes])
11067
AC_MSG_RESULT([yes])
11068
AC_MSG_CHECKING([for -rdynamic])
11069
- ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1
11070
- if $export_sym_check conftest | grep foobar > /dev/null; then
11071
+ ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest$ac_exeext > /dev/null 2>&1
11072
+ if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then
11073
plugin_rdynamic=yes
11074
pluginlibs="-rdynamic"
11076
Index: gcc/print-rtl.c
11077
===================================================================
11078
--- a/src/gcc/print-rtl.c (.../tags/gcc_4_8_2_release)
11079
+++ b/src/gcc/print-rtl.c (.../branches/gcc-4_8-branch)
11080
@@ -582,6 +582,8 @@
11082
if (MEM_EXPR (in_rtx))
11083
print_mem_expr (outfile, MEM_EXPR (in_rtx));
11085
+ fputc (' ', outfile);
11087
if (MEM_OFFSET_KNOWN_P (in_rtx))
11088
fprintf (outfile, "+" HOST_WIDE_INT_PRINT_DEC, MEM_OFFSET (in_rtx));
11090
===================================================================
11091
--- a/src/gcc/alias.c (.../tags/gcc_4_8_2_release)
11092
+++ b/src/gcc/alias.c (.../branches/gcc-4_8-branch)
11093
@@ -2871,17 +2871,14 @@
11094
/* Wipe the reg_seen array clean. */
11095
bitmap_clear (reg_seen);
11097
- /* Mark all hard registers which may contain an address.
11098
- The stack, frame and argument pointers may contain an address.
11099
- An argument register which can hold a Pmode value may contain
11100
- an address even if it is not in BASE_REGS.
11101
+ /* Initialize the alias information for this pass. */
11102
+ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
11103
+ if (static_reg_base_value[i])
11105
+ new_reg_base_value[i] = static_reg_base_value[i];
11106
+ bitmap_set_bit (reg_seen, i);
11109
- The address expression is VOIDmode for an argument and
11110
- Pmode for other registers. */
11112
- memcpy (new_reg_base_value, static_reg_base_value,
11113
- FIRST_PSEUDO_REGISTER * sizeof (rtx));
11115
/* Walk the insns adding values to the new_reg_base_value array. */
11116
for (i = 0; i < rpo_cnt; i++)
11118
Index: gcc/tree-dfa.c
11119
===================================================================
11120
--- a/src/gcc/tree-dfa.c (.../tags/gcc_4_8_2_release)
11121
+++ b/src/gcc/tree-dfa.c (.../branches/gcc-4_8-branch)
11122
@@ -386,7 +386,6 @@
11123
double_int bit_offset = double_int_zero;
11124
HOST_WIDE_INT hbit_offset;
11125
bool seen_variable_array_ref = false;
11128
/* First get the final access size from just the outermost expression. */
11129
if (TREE_CODE (exp) == COMPONENT_REF)
11130
@@ -417,8 +416,6 @@
11131
and find the ultimate containing object. */
11134
- base_type = TREE_TYPE (exp);
11136
switch (TREE_CODE (exp))
11138
case BIT_FIELD_REF:
11139
@@ -543,7 +540,38 @@
11140
case VIEW_CONVERT_EXPR:
11143
+ case TARGET_MEM_REF:
11144
+ /* Via the variable index or index2 we can reach the
11145
+ whole object. Still hand back the decl here. */
11146
+ if (TREE_CODE (TMR_BASE (exp)) == ADDR_EXPR
11147
+ && (TMR_INDEX (exp) || TMR_INDEX2 (exp)))
11149
+ exp = TREE_OPERAND (TMR_BASE (exp), 0);
11150
+ bit_offset = double_int_zero;
11156
+ /* We need to deal with variable arrays ending structures such as
11157
+ struct { int length; int a[1]; } x; x.a[d]
11158
+ struct { struct { int a; int b; } a[1]; } x; x.a[d].a
11159
+ struct { struct { int a[1]; } a[1]; } x; x.a[0][d], x.a[d][0]
11160
+ struct { int len; union { int a[1]; struct X x; } u; } x; x.u.a[d]
11161
+ where we do not know maxsize for variable index accesses to
11162
+ the array. The simplest way to conservatively deal with this
11163
+ is to punt in the case that offset + maxsize reaches the
11164
+ base type boundary. This needs to include possible trailing
11165
+ padding that is there for alignment purposes. */
11166
+ if (seen_variable_array_ref
11168
+ && (!bit_offset.fits_shwi ()
11169
+ || !host_integerp (TYPE_SIZE (TREE_TYPE (exp)), 1)
11170
+ || (bit_offset.to_shwi () + maxsize
11171
+ == (HOST_WIDE_INT) TREE_INT_CST_LOW
11172
+ (TYPE_SIZE (TREE_TYPE (exp))))))
11175
/* Hand back the decl for MEM[&decl, off]. */
11176
if (TREE_CODE (TREE_OPERAND (exp, 0)) == ADDR_EXPR)
11178
@@ -565,45 +593,24 @@
11182
- case TARGET_MEM_REF:
11183
- /* Hand back the decl for MEM[&decl, off]. */
11184
- if (TREE_CODE (TMR_BASE (exp)) == ADDR_EXPR)
11186
- /* Via the variable index or index2 we can reach the
11188
- if (TMR_INDEX (exp) || TMR_INDEX2 (exp))
11190
- exp = TREE_OPERAND (TMR_BASE (exp), 0);
11191
- bit_offset = double_int_zero;
11195
- if (integer_zerop (TMR_OFFSET (exp)))
11196
- exp = TREE_OPERAND (TMR_BASE (exp), 0);
11199
- double_int off = mem_ref_offset (exp);
11200
- off = off.alshift (BITS_PER_UNIT == 8
11201
- ? 3 : exact_log2 (BITS_PER_UNIT),
11202
- HOST_BITS_PER_DOUBLE_INT);
11203
- off += bit_offset;
11204
- if (off.fits_shwi ())
11206
- bit_offset = off;
11207
- exp = TREE_OPERAND (TMR_BASE (exp), 0);
11217
exp = TREE_OPERAND (exp, 0);
11220
+ /* We need to deal with variable arrays ending structures. */
11221
+ if (seen_variable_array_ref
11223
+ && (!bit_offset.fits_shwi ()
11224
+ || !host_integerp (TYPE_SIZE (TREE_TYPE (exp)), 1)
11225
+ || (bit_offset.to_shwi () + maxsize
11226
+ == (HOST_WIDE_INT)
11227
+ TREE_INT_CST_LOW (TYPE_SIZE (TREE_TYPE (exp))))))
11232
if (!bit_offset.fits_shwi ())
11235
@@ -615,24 +622,6 @@
11237
hbit_offset = bit_offset.to_shwi ();
11239
- /* We need to deal with variable arrays ending structures such as
11240
- struct { int length; int a[1]; } x; x.a[d]
11241
- struct { struct { int a; int b; } a[1]; } x; x.a[d].a
11242
- struct { struct { int a[1]; } a[1]; } x; x.a[0][d], x.a[d][0]
11243
- struct { int len; union { int a[1]; struct X x; } u; } x; x.u.a[d]
11244
- where we do not know maxsize for variable index accesses to
11245
- the array. The simplest way to conservatively deal with this
11246
- is to punt in the case that offset + maxsize reaches the
11247
- base type boundary. This needs to include possible trailing padding
11248
- that is there for alignment purposes. */
11250
- if (seen_variable_array_ref
11252
- && (!host_integerp (TYPE_SIZE (base_type), 1)
11253
- || (hbit_offset + maxsize
11254
- == (signed) TREE_INT_CST_LOW (TYPE_SIZE (base_type)))))
11257
/* In case of a decl or constant base object we can do better. */
11260
Index: gcc/gimple-fold.c
11261
===================================================================
11262
--- a/src/gcc/gimple-fold.c (.../tags/gcc_4_8_2_release)
11263
+++ b/src/gcc/gimple-fold.c (.../branches/gcc-4_8-branch)
11264
@@ -178,7 +178,7 @@
11265
/* Make sure we create a cgraph node for functions we'll reference.
11266
They can be non-existent if the reference comes from an entry
11267
of an external vtable for example. */
11268
- cgraph_get_create_node (base);
11269
+ cgraph_get_create_real_symbol_node (base);
11271
/* Fixup types in global initializers. */
11272
if (TREE_TYPE (TREE_TYPE (cval)) != TREE_TYPE (TREE_OPERAND (cval, 0)))
11273
Index: gcc/cfgexpand.c
11274
===================================================================
11275
--- a/src/gcc/cfgexpand.c (.../tags/gcc_4_8_2_release)
11276
+++ b/src/gcc/cfgexpand.c (.../branches/gcc-4_8-branch)
11277
@@ -4707,14 +4707,18 @@
11280
rebuild_jump_labels_chain (e->insns.r);
11281
- /* Avoid putting insns before parm_birth_insn. */
11282
+ /* Put insns after parm birth, but before
11283
+ NOTE_INSNS_FUNCTION_BEG. */
11284
if (e->src == ENTRY_BLOCK_PTR
11285
- && single_succ_p (ENTRY_BLOCK_PTR)
11286
- && parm_birth_insn)
11287
+ && single_succ_p (ENTRY_BLOCK_PTR))
11289
rtx insns = e->insns.r;
11290
e->insns.r = NULL_RTX;
11291
- emit_insn_after_noloc (insns, parm_birth_insn, e->dest);
11292
+ if (NOTE_P (parm_birth_insn)
11293
+ && NOTE_KIND (parm_birth_insn) == NOTE_INSN_FUNCTION_BEG)
11294
+ emit_insn_before_noloc (insns, parm_birth_insn, e->dest);
11296
+ emit_insn_after_noloc (insns, parm_birth_insn, e->dest);
11299
commit_one_edge_insertion (e);
11300
Index: gcc/tree-ssa-pre.c
11301
===================================================================
11302
--- a/src/gcc/tree-ssa-pre.c (.../tags/gcc_4_8_2_release)
11303
+++ b/src/gcc/tree-ssa-pre.c (.../branches/gcc-4_8-branch)
11304
@@ -3664,6 +3664,12 @@
11305
if (dump_file && dump_flags & TDF_DETAILS)
11306
fprintf (dump_file, "Starting insert iteration %d\n", num_iterations);
11307
new_stuff = insert_aux (ENTRY_BLOCK_PTR);
11309
+ /* Clear the NEW sets before the next iteration. We have already
11310
+ fully propagated its contents. */
11313
+ bitmap_set_free (NEW_SETS (bb));
11315
statistics_histogram_event (cfun, "insert iterations", num_iterations);
11317
Index: gcc/tree-predcom.c
11318
===================================================================
11319
--- a/src/gcc/tree-predcom.c (.../tags/gcc_4_8_2_release)
11320
+++ b/src/gcc/tree-predcom.c (.../branches/gcc-4_8-branch)
11321
@@ -1323,90 +1323,43 @@
11322
gsi_insert_after (&bsi, new_stmt, GSI_NEW_STMT);
11325
-/* Returns the reference to the address of REF in the ITER-th iteration of
11326
- LOOP, or NULL if we fail to determine it (ITER may be negative). We
11327
- try to preserve the original shape of the reference (not rewrite it
11328
- as an indirect ref to the address), to make tree_could_trap_p in
11329
- prepare_initializers_chain return false more often. */
11330
+/* Returns a memory reference to DR in the ITER-th iteration of
11331
+ the loop it was analyzed in. Append init stmts to STMTS. */
11334
-ref_at_iteration (struct loop *loop, tree ref, int iter)
11336
+ref_at_iteration (data_reference_p dr, int iter, gimple_seq *stmts)
11338
- tree idx, *idx_p, type, val, op0 = NULL_TREE, ret;
11342
- if (handled_component_p (ref))
11343
+ tree off = DR_OFFSET (dr);
11344
+ tree coff = DR_INIT (dr);
11347
+ else if (TREE_CODE (DR_STEP (dr)) == INTEGER_CST)
11348
+ coff = size_binop (PLUS_EXPR, coff,
11349
+ size_binop (MULT_EXPR, DR_STEP (dr), ssize_int (iter)));
11351
+ off = size_binop (PLUS_EXPR, off,
11352
+ size_binop (MULT_EXPR, DR_STEP (dr), ssize_int (iter)));
11353
+ tree addr = fold_build_pointer_plus (DR_BASE_ADDRESS (dr), off);
11354
+ addr = force_gimple_operand_1 (addr, stmts, is_gimple_mem_ref_addr,
11356
+ tree alias_ptr = fold_convert (reference_alias_ptr_type (DR_REF (dr)), coff);
11357
+ /* While data-ref analysis punts on bit offsets it still handles
11358
+ bitfield accesses at byte boundaries. Cope with that. Note that
11359
+ we cannot simply re-apply the outer COMPONENT_REF because the
11360
+ byte-granular portion of it is already applied via DR_INIT and
11361
+ DR_OFFSET, so simply build a BIT_FIELD_REF knowing that the bits
11362
+ start at offset zero. */
11363
+ if (TREE_CODE (DR_REF (dr)) == COMPONENT_REF
11364
+ && DECL_BIT_FIELD (TREE_OPERAND (DR_REF (dr), 1)))
11366
- op0 = ref_at_iteration (loop, TREE_OPERAND (ref, 0), iter);
11368
- return NULL_TREE;
11369
+ tree field = TREE_OPERAND (DR_REF (dr), 1);
11370
+ return build3 (BIT_FIELD_REF, TREE_TYPE (DR_REF (dr)),
11371
+ build2 (MEM_REF, DECL_BIT_FIELD_TYPE (field),
11372
+ addr, alias_ptr),
11373
+ DECL_SIZE (field), bitsize_zero_node);
11375
- else if (!INDIRECT_REF_P (ref)
11376
- && TREE_CODE (ref) != MEM_REF)
11377
- return unshare_expr (ref);
11379
- if (TREE_CODE (ref) == MEM_REF)
11381
- ret = unshare_expr (ref);
11382
- idx = TREE_OPERAND (ref, 0);
11383
- idx_p = &TREE_OPERAND (ret, 0);
11385
- else if (TREE_CODE (ref) == COMPONENT_REF)
11387
- /* Check that the offset is loop invariant. */
11388
- if (TREE_OPERAND (ref, 2)
11389
- && !expr_invariant_in_loop_p (loop, TREE_OPERAND (ref, 2)))
11390
- return NULL_TREE;
11392
- return build3 (COMPONENT_REF, TREE_TYPE (ref), op0,
11393
- unshare_expr (TREE_OPERAND (ref, 1)),
11394
- unshare_expr (TREE_OPERAND (ref, 2)));
11396
- else if (TREE_CODE (ref) == ARRAY_REF)
11398
- /* Check that the lower bound and the step are loop invariant. */
11399
- if (TREE_OPERAND (ref, 2)
11400
- && !expr_invariant_in_loop_p (loop, TREE_OPERAND (ref, 2)))
11401
- return NULL_TREE;
11402
- if (TREE_OPERAND (ref, 3)
11403
- && !expr_invariant_in_loop_p (loop, TREE_OPERAND (ref, 3)))
11404
- return NULL_TREE;
11406
- ret = build4 (ARRAY_REF, TREE_TYPE (ref), op0, NULL_TREE,
11407
- unshare_expr (TREE_OPERAND (ref, 2)),
11408
- unshare_expr (TREE_OPERAND (ref, 3)));
11409
- idx = TREE_OPERAND (ref, 1);
11410
- idx_p = &TREE_OPERAND (ret, 1);
11413
- return NULL_TREE;
11415
- ok = simple_iv (loop, loop, idx, &iv, true);
11417
- return NULL_TREE;
11418
- iv.base = expand_simple_operations (iv.base);
11419
- if (integer_zerop (iv.step))
11420
- *idx_p = unshare_expr (iv.base);
11423
- type = TREE_TYPE (iv.base);
11424
- if (POINTER_TYPE_P (type))
11426
- val = fold_build2 (MULT_EXPR, sizetype, iv.step,
11427
- size_int (iter));
11428
- val = fold_build_pointer_plus (iv.base, val);
11432
- val = fold_build2 (MULT_EXPR, type, iv.step,
11433
- build_int_cst_type (type, iter));
11434
- val = fold_build2 (PLUS_EXPR, type, iv.base, val);
11436
- *idx_p = unshare_expr (val);
11440
+ return fold_build2 (MEM_REF, TREE_TYPE (DR_REF (dr)), addr, alias_ptr);
11443
/* Get the initialization expression for the INDEX-th temporary variable
11444
@@ -2068,7 +2021,11 @@
11446
stmt = find_common_use_stmt (&name1, &name2);
11450
+ /* A simple post-dominance check - make sure the combination
11451
+ is executed under the same condition as the references. */
11452
+ || (gimple_bb (stmt) != gimple_bb (r1->stmt)
11453
+ && gimple_bb (stmt) != gimple_bb (r2->stmt)))
11456
acode = gimple_assign_rhs_code (stmt);
11457
@@ -2365,14 +2322,10 @@
11458
if (chain->inits[i] != NULL_TREE)
11461
- init = ref_at_iteration (loop, DR_REF (dr), (int) i - n);
11465
+ init = ref_at_iteration (dr, (int) i - n, &stmts);
11466
if (!chain->all_always_accessed && tree_could_trap_p (init))
11469
- init = force_gimple_operand (init, &stmts, false, NULL_TREE);
11471
gsi_insert_seq_on_edge_immediate (entry, stmts);
11473
Index: gcc/loop-iv.c
11474
===================================================================
11475
--- a/src/gcc/loop-iv.c (.../tags/gcc_4_8_2_release)
11476
+++ b/src/gcc/loop-iv.c (.../branches/gcc-4_8-branch)
11477
@@ -425,7 +425,9 @@
11478
&& !iv->first_special)
11480
rtx val = get_iv_value (iv, const0_rtx);
11481
- val = lowpart_subreg (mode, val, iv->extend_mode);
11482
+ val = lowpart_subreg (mode, val,
11483
+ iv->extend == IV_UNKNOWN_EXTEND
11484
+ ? iv->mode : iv->extend_mode);
11487
iv->extend = IV_UNKNOWN_EXTEND;
11488
@@ -465,8 +467,14 @@
11489
&& !iv->first_special)
11491
rtx val = get_iv_value (iv, const0_rtx);
11492
+ if (iv->extend_mode != iv->mode
11493
+ && iv->extend != IV_UNKNOWN_EXTEND
11494
+ && iv->extend != extend)
11495
+ val = lowpart_subreg (iv->mode, val, iv->extend_mode);
11496
val = simplify_gen_unary (iv_extend_to_rtx_code (extend), mode,
11497
- val, iv->extend_mode);
11499
+ iv->extend == extend
11500
+ ? iv->extend_mode : iv->mode);
11502
iv->extend = IV_UNKNOWN_EXTEND;
11503
iv->mode = iv->extend_mode = mode;
11504
Index: gcc/ipa-prop.c
11505
===================================================================
11506
--- a/src/gcc/ipa-prop.c (.../tags/gcc_4_8_2_release)
11507
+++ b/src/gcc/ipa-prop.c (.../branches/gcc-4_8-branch)
11508
@@ -740,7 +740,7 @@
11509
ipa_load_from_parm_agg_1 (vec<ipa_param_descriptor_t> descriptors,
11510
struct param_analysis_info *parms_ainfo, gimple stmt,
11511
tree op, int *index_p, HOST_WIDE_INT *offset_p,
11513
+ HOST_WIDE_INT *size_p, bool *by_ref_p)
11516
HOST_WIDE_INT size, max_size;
11517
@@ -758,6 +758,8 @@
11526
@@ -800,6 +802,8 @@
11535
@@ -814,7 +818,7 @@
11538
return ipa_load_from_parm_agg_1 (info->descriptors, NULL, stmt, op, index_p,
11539
- offset_p, by_ref_p);
11540
+ offset_p, NULL, by_ref_p);
11543
/* Given that an actual argument is an SSA_NAME (given in NAME) and is a result
11544
@@ -1646,7 +1650,7 @@
11545
if (gimple_assign_single_p (def)
11546
&& ipa_load_from_parm_agg_1 (info->descriptors, parms_ainfo, def,
11547
gimple_assign_rhs1 (def), &index, &offset,
11551
struct cgraph_edge *cs = ipa_note_param_call (node, index, call);
11552
cs->indirect_info->offset = offset;
11553
@@ -2126,7 +2130,6 @@
11554
we may create the first reference to the object in the unit. */
11555
if (!callee || callee->global.inlined_to)
11557
- struct cgraph_node *first_clone = callee;
11559
/* We are better to ensure we can refer to it.
11560
In the case of static functions we are out of luck, since we already
11561
@@ -2142,31 +2145,7 @@
11562
xstrdup (cgraph_node_name (ie->callee)), ie->callee->uid);
11566
- /* Create symbol table node. Even if inline clone exists, we can not take
11567
- it as a target of non-inlined call. */
11568
- callee = cgraph_create_node (target);
11570
- /* OK, we previously inlined the function, then removed the offline copy and
11571
- now we want it back for external call. This can happen when devirtualizing
11572
- while inlining function called once that happens after extern inlined and
11573
- virtuals are already removed. In this case introduce the external node
11574
- and make it available for call. */
11577
- first_clone->clone_of = callee;
11578
- callee->clones = first_clone;
11579
- symtab_prevail_in_asm_name_hash ((symtab_node)callee);
11580
- symtab_insert_node_to_hashtable ((symtab_node)callee);
11582
- fprintf (dump_file, "ipa-prop: Introduced new external node "
11583
- "(%s/%i) and turned into root of the clone tree.\n",
11584
- xstrdup (cgraph_node_name (callee)), callee->uid);
11586
- else if (dump_file)
11587
- fprintf (dump_file, "ipa-prop: Introduced new external node "
11589
- xstrdup (cgraph_node_name (callee)), callee->uid);
11590
+ callee = cgraph_get_create_real_symbol_node (target);
11592
ipa_check_create_node_params ();
11594
@@ -3902,7 +3881,7 @@
11595
struct ipa_agg_replacement_value *v;
11596
gimple stmt = gsi_stmt (gsi);
11598
- HOST_WIDE_INT offset;
11599
+ HOST_WIDE_INT offset, size;
11603
@@ -3929,13 +3908,15 @@
11606
if (!ipa_load_from_parm_agg_1 (descriptors, parms_ainfo, stmt,
11607
- rhs, &index, &offset, &by_ref))
11608
+ rhs, &index, &offset, &size, &by_ref))
11610
for (v = aggval; v; v = v->next)
11611
if (v->index == index
11612
&& v->offset == offset)
11614
- if (!v || v->by_ref != by_ref)
11616
+ || v->by_ref != by_ref
11617
+ || tree_low_cst (TYPE_SIZE (TREE_TYPE (v->value)), 0) != size)
11620
gcc_checking_assert (is_gimple_ip_invariant (v->value));
11621
Index: gcc/combine.c
11622
===================================================================
11623
--- a/src/gcc/combine.c (.../tags/gcc_4_8_2_release)
11624
+++ b/src/gcc/combine.c (.../branches/gcc-4_8-branch)
11625
@@ -5798,8 +5798,15 @@
11629
- /* If the code changed, return a whole new comparison. */
11630
- if (new_code != code)
11631
+ /* If the code changed, return a whole new comparison.
11632
+ We also need to avoid using SUBST in cases where
11633
+ simplify_comparison has widened a comparison with a CONST_INT,
11634
+ since in that case the wider CONST_INT may fail the sanity
11635
+ checks in do_SUBST. */
11636
+ if (new_code != code
11637
+ || (CONST_INT_P (op1)
11638
+ && GET_MODE (op0) != GET_MODE (XEXP (x, 0))
11639
+ && GET_MODE (op0) != GET_MODE (XEXP (x, 1))))
11640
return gen_rtx_fmt_ee (new_code, mode, op0, op1);
11642
/* Otherwise, keep this operation, but maybe change its operands.
11643
Index: gcc/config.gcc
11644
===================================================================
11645
--- a/src/gcc/config.gcc (.../tags/gcc_4_8_2_release)
11646
+++ b/src/gcc/config.gcc (.../branches/gcc-4_8-branch)
11647
@@ -2963,11 +2963,18 @@
11655
- with_cpu="`echo ${target} | sed 's/-.*$//'`"
11656
+ case ${target} in
11664
+ with_cpu="`echo ${target} | sed 's/-.*$//'`"
11670
@@ -3587,7 +3594,7 @@
11672
"" | sparc | sparcv9 | sparc64 \
11674
- | v8 | supersparc | hypersparc | leon \
11675
+ | v8 | supersparc | hypersparc | leon | leon3 \
11676
| sparclite | f930 | f934 | sparclite86x \
11677
| sparclet | tsc701 \
11678
| v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
11679
@@ -3745,15 +3752,6 @@
11680
cxx_target_objs="${cxx_target_objs} sh-c.o"
11684
- if test x$with_tune = x ; then
11688
- # The SPARC port checks this value at compile-time.
11689
- target_cpu_default2="TARGET_CPU_$with_cpu"
11693
# Some standard aliases.
11695
@@ -3765,6 +3763,17 @@
11699
+ if test x$with_tune = x ; then
11700
+ case ${target} in
11710
# The SPARC port checks this value at compile-time.
11711
target_cpu_default2="TARGET_CPU_$with_cpu"
11713
Index: gcc/Makefile.in
11714
===================================================================
11715
--- a/src/gcc/Makefile.in (.../tags/gcc_4_8_2_release)
11716
+++ b/src/gcc/Makefile.in (.../branches/gcc-4_8-branch)
11717
@@ -3037,7 +3037,7 @@
11718
$(TM_H) coretypes.h $(GIMPLE_H) \
11719
$(TREE_PASS_H) $(FLAGS_H) $(EXPR_H) $(BASIC_BLOCK_H) \
11720
$(GGC_H) $(OBSTACK_H) $(PARAMS_H) $(CPPLIB_H) $(PARAMS_H) \
11721
- $(GIMPLE_PRETTY_PRINT_H) langhooks.h
11722
+ $(GIMPLE_PRETTY_PRINT_H) langhooks.h $(OPTABS_H)
11723
tree-complex.o : tree-complex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \
11724
$(TM_H) $(FLAGS_H) $(TREE_FLOW_H) $(GIMPLE_H) \
11725
tree-iterator.h $(TREE_PASS_H) tree-ssa-propagate.h
11726
@@ -3276,12 +3276,12 @@
11727
$(TM_H) $(RTL_H) $(REGS_H) insn-config.h insn-codes.h $(DF_H) \
11728
$(RECOG_H) output.h addresses.h $(REGS_H) hard-reg-set.h $(FLAGS_H) \
11729
$(FUNCTION_H) $(EXPR_H) $(BASIC_BLOCK_H) $(TM_P_H) $(EXCEPT_H) \
11730
- ira.h rtl-error.h $(LRA_INT_H)
11731
+ ira.h rtl-error.h $(LRA_INT_H) $(OPTABS_H)
11732
lra-eliminations.o : lra-eliminations.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
11733
$(TM_H) $(RTL_H) $(REGS_H) insn-config.h $(DF_H) \
11734
$(RECOG_H) output.h $(REGS_H) hard-reg-set.h $(FLAGS_H) $(FUNCTION_H) \
11735
$(EXPR_H) $(BASIC_BLOCK_H) $(TM_P_H) $(EXCEPT_H) ira.h \
11736
- rtl-error.h $(LRA_INT_H)
11737
+ rtl-error.h $(LRA_INT_H) $(OPTABS_H)
11738
lra-lives.o : lra-lives.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
11739
$(RTL_H) $(REGS_H) insn-config.h $(DF_H) \
11740
$(RECOG_H) output.h $(REGS_H) hard-reg-set.h $(FLAGS_H) $(FUNCTION_H) \
11741
Index: gcc/config/s390/s390.c
11742
===================================================================
11743
--- a/src/gcc/config/s390/s390.c (.../tags/gcc_4_8_2_release)
11744
+++ b/src/gcc/config/s390/s390.c (.../branches/gcc-4_8-branch)
11745
@@ -883,7 +883,8 @@
11747
/* For CCRAWmode put the required cc mask into the second
11749
- if (GET_MODE (XVECEXP (*op0, 0, 0)) == CCRAWmode)
11750
+ if (GET_MODE (XVECEXP (*op0, 0, 0)) == CCRAWmode
11751
+ && INTVAL (*op1) >= 0 && INTVAL (*op1) <= 3)
11752
*op1 = gen_rtx_CONST_INT (VOIDmode, 1 << (3 - INTVAL (*op1)));
11753
*op0 = XVECEXP (*op0, 0, 0);
11755
@@ -7846,6 +7847,9 @@
11757
bb = BASIC_BLOCK (bb_index);
11762
FOR_BB_INSNS (bb, insn)
11764
rtx ite, cc, pat, target;
11765
@@ -7959,7 +7963,10 @@
11769
- PATTERN (tbegin_insn) = XVECEXP (PATTERN (tbegin_insn), 0, 0);
11770
+ PATTERN (tbegin_insn) = gen_rtx_PARALLEL (VOIDmode,
11772
+ XVECEXP (PATTERN (tbegin_insn), 0, 0),
11773
+ XVECEXP (PATTERN (tbegin_insn), 0, 1)));
11774
INSN_CODE (tbegin_insn) = -1;
11775
df_insn_rescan (tbegin_insn);
11777
@@ -9573,6 +9580,7 @@
11778
const int CC3 = 1 << 0;
11779
rtx abort_label = gen_label_rtx ();
11780
rtx leave_label = gen_label_rtx ();
11781
+ rtx retry_plus_two = gen_reg_rtx (SImode);
11782
rtx retry_reg = gen_reg_rtx (SImode);
11783
rtx retry_label = NULL_RTX;
11785
@@ -9581,16 +9589,17 @@
11786
if (retry != NULL_RTX)
11788
emit_move_insn (retry_reg, retry);
11789
+ emit_insn (gen_addsi3 (retry_plus_two, retry_reg, const2_rtx));
11790
+ emit_insn (gen_addsi3 (retry_reg, retry_reg, const1_rtx));
11791
retry_label = gen_label_rtx ();
11792
emit_label (retry_label);
11795
if (clobber_fprs_p)
11796
- emit_insn (gen_tbegin_1 (tdb,
11797
- gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK)));
11798
+ emit_insn (gen_tbegin_1 (gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK), tdb));
11800
- emit_insn (gen_tbegin_nofloat_1 (tdb,
11801
- gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK)));
11802
+ emit_insn (gen_tbegin_nofloat_1 (gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK),
11805
jump = s390_emit_jump (abort_label,
11806
gen_rtx_NE (VOIDmode,
11807
@@ -9611,6 +9620,10 @@
11808
/* Abort handler code. */
11810
emit_label (abort_label);
11811
+ emit_move_insn (dest, gen_rtx_UNSPEC (SImode,
11812
+ gen_rtvec (1, gen_rtx_REG (CCRAWmode,
11814
+ UNSPEC_CC_TO_INT));
11815
if (retry != NULL_RTX)
11817
rtx count = gen_reg_rtx (SImode);
11818
@@ -9622,7 +9635,7 @@
11819
add_reg_note (jump, REG_BR_PROB, very_unlikely);
11821
/* CC2 - transient failure. Perform retry with ppa. */
11822
- emit_move_insn (count, retry);
11823
+ emit_move_insn (count, retry_plus_two);
11824
emit_insn (gen_subsi3 (count, count, retry_reg));
11825
emit_insn (gen_tx_assist (count));
11826
jump = emit_jump_insn (gen_doloop_si64 (retry_label,
11827
@@ -9632,10 +9645,6 @@
11828
LABEL_NUSES (retry_label) = 1;
11831
- emit_move_insn (dest, gen_rtx_UNSPEC (SImode,
11832
- gen_rtvec (1, gen_rtx_REG (CCRAWmode,
11834
- UNSPEC_CC_TO_INT));
11835
emit_label (leave_label);
11838
@@ -9674,6 +9683,9 @@
11839
s390_init_builtins (void)
11841
tree ftype, uint64_type;
11842
+ tree returns_twice_attr = tree_cons (get_identifier ("returns_twice"),
11844
+ tree noreturn_attr = tree_cons (get_identifier ("noreturn"), NULL, NULL);
11846
/* void foo (void) */
11847
ftype = build_function_type_list (void_type_node, NULL_TREE);
11848
@@ -9684,17 +9696,17 @@
11849
ftype = build_function_type_list (void_type_node, integer_type_node,
11851
add_builtin_function ("__builtin_tabort", ftype,
11852
- S390_BUILTIN_TABORT, BUILT_IN_MD, NULL, NULL_TREE);
11853
+ S390_BUILTIN_TABORT, BUILT_IN_MD, NULL, noreturn_attr);
11854
add_builtin_function ("__builtin_tx_assist", ftype,
11855
S390_BUILTIN_TX_ASSIST, BUILT_IN_MD, NULL, NULL_TREE);
11857
/* int foo (void *) */
11858
ftype = build_function_type_list (integer_type_node, ptr_type_node, NULL_TREE);
11859
add_builtin_function ("__builtin_tbegin", ftype, S390_BUILTIN_TBEGIN,
11860
- BUILT_IN_MD, NULL, NULL_TREE);
11861
+ BUILT_IN_MD, NULL, returns_twice_attr);
11862
add_builtin_function ("__builtin_tbegin_nofloat", ftype,
11863
S390_BUILTIN_TBEGIN_NOFLOAT,
11864
- BUILT_IN_MD, NULL, NULL_TREE);
11865
+ BUILT_IN_MD, NULL, returns_twice_attr);
11867
/* int foo (void *, int) */
11868
ftype = build_function_type_list (integer_type_node, ptr_type_node,
11869
@@ -9702,11 +9714,11 @@
11870
add_builtin_function ("__builtin_tbegin_retry", ftype,
11871
S390_BUILTIN_TBEGIN_RETRY,
11873
- NULL, NULL_TREE);
11874
+ NULL, returns_twice_attr);
11875
add_builtin_function ("__builtin_tbegin_retry_nofloat", ftype,
11876
S390_BUILTIN_TBEGIN_RETRY_NOFLOAT,
11878
- NULL, NULL_TREE);
11879
+ NULL, returns_twice_attr);
11881
/* int foo (void) */
11882
ftype = build_function_type_list (integer_type_node, NULL_TREE);
11883
Index: gcc/config/s390/s390.md
11884
===================================================================
11885
--- a/src/gcc/config/s390/s390.md (.../tags/gcc_4_8_2_release)
11886
+++ b/src/gcc/config/s390/s390.md (.../branches/gcc-4_8-branch)
11887
@@ -147,6 +147,7 @@
11889
; Transactional Execution support
11891
+ UNSPECV_TBEGIN_TDB
11895
@@ -9896,9 +9897,10 @@
11897
(define_insn "tbegin_1"
11898
[(set (reg:CCRAW CC_REGNUM)
11899
- (unspec_volatile:CCRAW [(match_operand:BLK 0 "memory_operand" "=Q")
11900
- (match_operand 1 "const_int_operand" " D")]
11901
+ (unspec_volatile:CCRAW [(match_operand 0 "const_int_operand" "D")]
11903
+ (set (match_operand:BLK 1 "memory_operand" "=Q")
11904
+ (unspec_volatile:BLK [(match_dup 0)] UNSPECV_TBEGIN_TDB))
11905
(clobber (reg:DF 16))
11906
(clobber (reg:DF 17))
11907
(clobber (reg:DF 18))
11908
@@ -9917,18 +9919,19 @@
11909
(clobber (reg:DF 31))]
11910
; CONST_OK_FOR_CONSTRAINT_P does not work with D constraint since D is
11911
; not supposed to be used for immediates (see genpreds.c).
11912
- "TARGET_HTM && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 0xffff"
11914
+ "TARGET_HTM && INTVAL (operands[0]) >= 0 && INTVAL (operands[0]) <= 0xffff"
11916
[(set_attr "op_type" "SIL")])
11918
; Same as above but without the FPR clobbers
11919
(define_insn "tbegin_nofloat_1"
11920
[(set (reg:CCRAW CC_REGNUM)
11921
- (unspec_volatile:CCRAW [(match_operand:BLK 0 "memory_operand" "=Q")
11922
- (match_operand 1 "const_int_operand" " D")]
11923
- UNSPECV_TBEGIN))]
11924
- "TARGET_HTM && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 0xffff"
11926
+ (unspec_volatile:CCRAW [(match_operand 0 "const_int_operand" "D")]
11928
+ (set (match_operand:BLK 1 "memory_operand" "=Q")
11929
+ (unspec_volatile:BLK [(match_dup 0)] UNSPECV_TBEGIN_TDB))]
11930
+ "TARGET_HTM && INTVAL (operands[0]) >= 0 && INTVAL (operands[0]) <= 0xffff"
11932
[(set_attr "op_type" "SIL")])
11935
@@ -10012,15 +10015,12 @@
11936
; Transaction perform processor assist
11938
(define_expand "tx_assist"
11939
- [(set (match_dup 1) (const_int 0))
11940
- (unspec_volatile [(match_operand:SI 0 "register_operand" "")
11942
+ [(unspec_volatile [(match_operand:SI 0 "register_operand" "")
11943
+ (reg:SI GPR0_REGNUM)
11948
- operands[1] = gen_reg_rtx (SImode);
11952
(define_insn "*ppa"
11953
[(unspec_volatile [(match_operand:SI 0 "register_operand" "d")
11954
@@ -10028,5 +10028,5 @@
11955
(match_operand 2 "const_int_operand" "I")]
11957
"TARGET_HTM && INTVAL (operands[2]) < 16"
11960
[(set_attr "op_type" "RRF")])
11961
Index: gcc/config/s390/htmxlintrin.h
11962
===================================================================
11963
--- a/src/gcc/config/s390/htmxlintrin.h (.../tags/gcc_4_8_2_release)
11964
+++ b/src/gcc/config/s390/htmxlintrin.h (.../branches/gcc-4_8-branch)
11965
@@ -33,13 +33,20 @@
11966
the IBM XL compiler. For documentation please see the "z/OS XL
11967
C/C++ Programming Guide" publically available on the web. */
11969
-extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
11970
+/* FIXME: __TM_simple_begin and __TM_begin should be marked
11971
+ __always_inline__ as well but this currently produces an error
11972
+ since the tbegin builtins are "returns_twice" and setjmp_call_p
11973
+ (calls.c) therefore identifies the functions as calling setjmp.
11974
+ The tree inliner currently refuses to inline functions calling
11978
__TM_simple_begin ()
11980
return __builtin_tbegin_nofloat (0);
11983
-extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
11985
__TM_begin (void* const tdb)
11987
return __builtin_tbegin_nofloat (tdb);
11992
- if (tdb->format == 0)
11993
+ if (tdb->format != 1)
11995
return tdb->nesting_depth;
11999
struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
12001
- if (tdb->format == 0)
12002
+ if (tdb->format != 1)
12005
return !!(tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE);
12006
@@ -101,7 +108,7 @@
12008
struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
12010
- if (tdb->format == 0)
12011
+ if (tdb->format != 1)
12014
if (tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE)
12015
@@ -117,7 +124,7 @@
12017
struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
12019
- return (tdb->format == 0
12020
+ return (tdb->format == 1
12021
&& (tdb->abort_code == 4 /* unfiltered program interruption */
12022
|| tdb->abort_code == 11 /* restricted instruction */));
12024
@@ -127,7 +134,7 @@
12026
struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
12028
- return (tdb->format == 0
12029
+ return (tdb->format == 1
12030
&& (tdb->abort_code == 7 /* fetch overflow */
12031
|| tdb->abort_code == 8 /* store overflow */));
12033
@@ -137,7 +144,7 @@
12035
struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
12037
- return tdb->format == 0 && tdb->abort_code == 13; /* depth exceeded */
12038
+ return tdb->format == 1 && tdb->abort_code == 13; /* depth exceeded */
12041
extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
12042
@@ -145,7 +152,7 @@
12044
struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
12046
- return (tdb->format == 0
12047
+ return (tdb->format == 1
12048
&& (tdb->abort_code == 9 /* fetch conflict */
12049
|| tdb->abort_code == 10 /* store conflict */));
12051
Index: gcc/config/sparc/t-rtems
12052
===================================================================
12053
--- a/src/gcc/config/sparc/t-rtems (.../tags/gcc_4_8_2_release)
12054
+++ b/src/gcc/config/sparc/t-rtems (.../branches/gcc-4_8-branch)
12056
# <http://www.gnu.org/licenses/>.
12059
-MULTILIB_OPTIONS = msoft-float mcpu=v8
12060
-MULTILIB_DIRNAMES = soft v8
12061
+MULTILIB_OPTIONS = msoft-float mcpu=v8/mcpu=leon3
12062
+MULTILIB_DIRNAMES = soft v8 leon3
12063
MULTILIB_MATCHES = msoft-float=mno-fpu
12064
Index: gcc/config/sparc/sparc.md
12065
===================================================================
12066
--- a/src/gcc/config/sparc/sparc.md (.../tags/gcc_4_8_2_release)
12067
+++ b/src/gcc/config/sparc/sparc.md (.../branches/gcc-4_8-branch)
12068
@@ -206,7 +206,7 @@
12069
;; 'f' for all DF/TFmode values, including those that are specific to the v8.
12071
;; Attribute for cpu type.
12072
-;; These must match the values for enum processor_type in sparc.h.
12073
+;; These must match the values of the enum processor_type in sparc-opts.h.
12077
@@ -214,6 +214,7 @@
12085
@@ -5548,7 +5549,7 @@
12086
[(set (match_operand:DF 0 "register_operand" "=e")
12087
(mult:DF (float_extend:DF (match_operand:SF 1 "register_operand" "f"))
12088
(float_extend:DF (match_operand:SF 2 "register_operand" "f"))))]
12089
- "(TARGET_V8 || TARGET_V9) && TARGET_FPU"
12090
+ "(TARGET_V8 || TARGET_V9) && TARGET_FPU && !sparc_fix_ut699"
12091
"fsmuld\t%1, %2, %0"
12092
[(set_attr "type" "fpmul")
12093
(set_attr "fptype" "double")])
12094
@@ -5577,20 +5578,37 @@
12095
"fdivq\t%1, %2, %0"
12096
[(set_attr "type" "fpdivd")])
12098
-(define_insn "divdf3"
12099
+(define_expand "divdf3"
12100
[(set (match_operand:DF 0 "register_operand" "=e")
12101
(div:DF (match_operand:DF 1 "register_operand" "e")
12102
(match_operand:DF 2 "register_operand" "e")))]
12106
+(define_insn "*divdf3_nofix"
12107
+ [(set (match_operand:DF 0 "register_operand" "=e")
12108
+ (div:DF (match_operand:DF 1 "register_operand" "e")
12109
+ (match_operand:DF 2 "register_operand" "e")))]
12110
+ "TARGET_FPU && !sparc_fix_ut699"
12111
"fdivd\t%1, %2, %0"
12112
[(set_attr "type" "fpdivd")
12113
(set_attr "fptype" "double")])
12115
+(define_insn "*divdf3_fix"
12116
+ [(set (match_operand:DF 0 "register_operand" "=e")
12117
+ (div:DF (match_operand:DF 1 "register_operand" "e")
12118
+ (match_operand:DF 2 "register_operand" "e")))]
12119
+ "TARGET_FPU && sparc_fix_ut699"
12120
+ "fdivd\t%1, %2, %0\n\tstd\t%0, [%%sp-8]"
12121
+ [(set_attr "type" "fpdivd")
12122
+ (set_attr "fptype" "double")
12123
+ (set_attr "length" "2")])
12125
(define_insn "divsf3"
12126
[(set (match_operand:SF 0 "register_operand" "=f")
12127
(div:SF (match_operand:SF 1 "register_operand" "f")
12128
(match_operand:SF 2 "register_operand" "f")))]
12130
+ "TARGET_FPU && !sparc_fix_ut699"
12131
"fdivs\t%1, %2, %0"
12132
[(set_attr "type" "fpdivs")])
12134
@@ -5791,18 +5809,33 @@
12136
[(set_attr "type" "fpsqrtd")])
12138
-(define_insn "sqrtdf2"
12139
+(define_expand "sqrtdf2"
12140
[(set (match_operand:DF 0 "register_operand" "=e")
12141
(sqrt:DF (match_operand:DF 1 "register_operand" "e")))]
12145
+(define_insn "*sqrtdf2_nofix"
12146
+ [(set (match_operand:DF 0 "register_operand" "=e")
12147
+ (sqrt:DF (match_operand:DF 1 "register_operand" "e")))]
12148
+ "TARGET_FPU && !sparc_fix_ut699"
12150
[(set_attr "type" "fpsqrtd")
12151
(set_attr "fptype" "double")])
12153
+(define_insn "*sqrtdf2_fix"
12154
+ [(set (match_operand:DF 0 "register_operand" "=e")
12155
+ (sqrt:DF (match_operand:DF 1 "register_operand" "e")))]
12156
+ "TARGET_FPU && sparc_fix_ut699"
12157
+ "fsqrtd\t%1, %0\n\tstd\t%0, [%%sp-8]"
12158
+ [(set_attr "type" "fpsqrtd")
12159
+ (set_attr "fptype" "double")
12160
+ (set_attr "length" "2")])
12162
(define_insn "sqrtsf2"
12163
[(set (match_operand:SF 0 "register_operand" "=f")
12164
(sqrt:SF (match_operand:SF 1 "register_operand" "f")))]
12166
+ "TARGET_FPU && !sparc_fix_ut699"
12168
[(set_attr "type" "fpsqrts")])
12170
Index: gcc/config/sparc/t-sparc
12171
===================================================================
12172
--- a/src/gcc/config/sparc/t-sparc (.../tags/gcc_4_8_2_release)
12173
+++ b/src/gcc/config/sparc/t-sparc (.../branches/gcc-4_8-branch)
12175
insn-codes.h conditions.h output.h $(INSN_ATTR_H) $(FLAGS_H) \
12176
$(FUNCTION_H) $(EXCEPT_H) $(EXPR_H) $(OPTABS_H) $(RECOG_H) \
12177
$(DIAGNOSTIC_CORE_H) $(GGC_H) $(TM_P_H) debug.h $(TARGET_H) \
12178
- $(TARGET_DEF_H) $(COMMON_TARGET_H) $(GIMPLE_H) \
12179
+ $(TARGET_DEF_H) $(COMMON_TARGET_H) $(GIMPLE_H) $(TREE_PASS_H) \
12180
langhooks.h reload.h $(PARAMS_H) $(DF_H) $(OPTS_H) \
12183
Index: gcc/config/sparc/sparc.opt
12184
===================================================================
12185
--- a/src/gcc/config/sparc/sparc.opt (.../tags/gcc_4_8_2_release)
12186
+++ b/src/gcc/config/sparc/sparc.opt (.../branches/gcc-4_8-branch)
12187
@@ -146,6 +146,9 @@
12188
Enum(sparc_processor_type) String(leon) Value(PROCESSOR_LEON)
12191
+Enum(sparc_processor_type) String(leon3) Value(PROCESSOR_LEON3)
12194
Enum(sparc_processor_type) String(sparclite) Value(PROCESSOR_SPARCLITE)
12197
@@ -201,9 +204,19 @@
12198
Enable workaround for single erratum of AT697F processor
12199
(corresponding to erratum #13 of AT697E processor)
12202
+Target Report RejectNegative Var(sparc_fix_ut699)
12203
+Enable workarounds for the errata of the UT699 processor
12205
Mask(LONG_DOUBLE_128)
12206
;; Use 128-bit long double
12209
+;; Generate code for LEON
12212
+;; Generate code for LEON3
12215
;; Generate code for SPARClite
12217
Index: gcc/config/sparc/sync.md
12218
===================================================================
12219
--- a/src/gcc/config/sparc/sync.md (.../tags/gcc_4_8_2_release)
12220
+++ b/src/gcc/config/sparc/sync.md (.../branches/gcc-4_8-branch)
12221
@@ -161,7 +161,8 @@
12222
(match_operand:SI 5 "const_int_operand" "") ;; is_weak
12223
(match_operand:SI 6 "const_int_operand" "") ;; mod_s
12224
(match_operand:SI 7 "const_int_operand" "")] ;; mod_f
12225
- "TARGET_V9 && (<MODE>mode != DImode || TARGET_ARCH64 || TARGET_V8PLUS)"
12226
+ "(TARGET_V9 || TARGET_LEON3)
12227
+ && (<MODE>mode != DImode || TARGET_ARCH64 || TARGET_V8PLUS)"
12229
sparc_expand_compare_and_swap (operands);
12231
@@ -176,7 +177,7 @@
12232
[(match_operand:I48MODE 2 "register_operand" "")
12233
(match_operand:I48MODE 3 "register_operand" "")]
12236
+ "TARGET_V9 || TARGET_LEON3"
12239
(define_insn "*atomic_compare_and_swap<mode>_1"
12240
@@ -187,7 +188,7 @@
12241
[(match_operand:I48MODE 2 "register_operand" "r")
12242
(match_operand:I48MODE 3 "register_operand" "0")]
12244
- "TARGET_V9 && (<MODE>mode == SImode || TARGET_ARCH64)"
12245
+ "(TARGET_V9 || TARGET_LEON3) && (<MODE>mode != DImode || TARGET_ARCH64)"
12246
"cas<modesuffix>\t%1, %2, %0"
12247
[(set_attr "type" "multi")])
12249
@@ -220,7 +221,7 @@
12250
(match_operand:SI 1 "memory_operand" "")
12251
(match_operand:SI 2 "register_operand" "")
12252
(match_operand:SI 3 "const_int_operand" "")]
12253
- "TARGET_V8 || TARGET_V9"
12254
+ "(TARGET_V8 || TARGET_V9) && !sparc_fix_ut699"
12256
enum memmodel model = (enum memmodel) INTVAL (operands[3]);
12258
@@ -236,7 +237,7 @@
12261
(match_operand:SI 2 "register_operand" "0"))]
12262
- "TARGET_V8 || TARGET_V9"
12263
+ "(TARGET_V8 || TARGET_V9) && !sparc_fix_ut699"
12265
[(set_attr "type" "multi")])
12267
@@ -244,7 +245,7 @@
12268
[(match_operand:QI 0 "register_operand" "")
12269
(match_operand:QI 1 "memory_operand" "")
12270
(match_operand:SI 2 "const_int_operand" "")]
12272
+ "!sparc_fix_ut699"
12274
enum memmodel model = (enum memmodel) INTVAL (operands[2]);
12276
@@ -268,6 +269,6 @@
12277
(unspec_volatile:QI [(match_operand:QI 1 "memory_operand" "+m")]
12279
(set (match_dup 1) (const_int -1))]
12281
+ "!sparc_fix_ut699"
12283
[(set_attr "type" "multi")])
12284
Index: gcc/config/sparc/sparc-opts.h
12285
===================================================================
12286
--- a/src/gcc/config/sparc/sparc-opts.h (.../tags/gcc_4_8_2_release)
12287
+++ b/src/gcc/config/sparc/sparc-opts.h (.../branches/gcc-4_8-branch)
12289
PROCESSOR_SUPERSPARC,
12290
PROCESSOR_HYPERSPARC,
12293
PROCESSOR_SPARCLITE,
12296
Index: gcc/config/sparc/sparc.c
12297
===================================================================
12298
--- a/src/gcc/config/sparc/sparc.c (.../tags/gcc_4_8_2_release)
12299
+++ b/src/gcc/config/sparc/sparc.c (.../branches/gcc-4_8-branch)
12301
#include "params.h"
12304
+#include "tree-pass.h"
12306
/* Processor costs */
12308
@@ -226,6 +227,30 @@
12312
+struct processor_costs leon3_costs = {
12313
+ COSTS_N_INSNS (1), /* int load */
12314
+ COSTS_N_INSNS (1), /* int signed load */
12315
+ COSTS_N_INSNS (1), /* int zeroed load */
12316
+ COSTS_N_INSNS (1), /* float load */
12317
+ COSTS_N_INSNS (1), /* fmov, fneg, fabs */
12318
+ COSTS_N_INSNS (1), /* fadd, fsub */
12319
+ COSTS_N_INSNS (1), /* fcmp */
12320
+ COSTS_N_INSNS (1), /* fmov, fmovr */
12321
+ COSTS_N_INSNS (1), /* fmul */
12322
+ COSTS_N_INSNS (14), /* fdivs */
12323
+ COSTS_N_INSNS (15), /* fdivd */
12324
+ COSTS_N_INSNS (22), /* fsqrts */
12325
+ COSTS_N_INSNS (23), /* fsqrtd */
12326
+ COSTS_N_INSNS (5), /* imul */
12327
+ COSTS_N_INSNS (5), /* imulX */
12328
+ 0, /* imul bit factor */
12329
+ COSTS_N_INSNS (35), /* idiv */
12330
+ COSTS_N_INSNS (35), /* idivX */
12331
+ COSTS_N_INSNS (1), /* movcc/movr */
12332
+ 0, /* shift penalty */
12336
struct processor_costs sparclet_costs = {
12337
COSTS_N_INSNS (3), /* int load */
12338
COSTS_N_INSNS (3), /* int signed load */
12339
@@ -538,7 +563,6 @@
12340
HOST_WIDE_INT, tree);
12341
static bool sparc_can_output_mi_thunk (const_tree, HOST_WIDE_INT,
12342
HOST_WIDE_INT, const_tree);
12343
-static void sparc_reorg (void);
12344
static struct machine_function * sparc_init_machine_status (void);
12345
static bool sparc_cannot_force_const_mem (enum machine_mode, rtx);
12346
static rtx sparc_tls_get_addr (void);
12347
@@ -680,9 +704,6 @@
12348
#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
12349
#define TARGET_ASM_CAN_OUTPUT_MI_THUNK sparc_can_output_mi_thunk
12351
-#undef TARGET_MACHINE_DEPENDENT_REORG
12352
-#define TARGET_MACHINE_DEPENDENT_REORG sparc_reorg
12354
#undef TARGET_RTX_COSTS
12355
#define TARGET_RTX_COSTS sparc_rtx_costs
12356
#undef TARGET_ADDRESS_COST
12357
@@ -804,6 +825,206 @@
12359
struct gcc_target targetm = TARGET_INITIALIZER;
12361
+/* Return the memory reference contained in X if any, zero otherwise. */
12366
+ if (GET_CODE (x) == SIGN_EXTEND || GET_CODE (x) == ZERO_EXTEND)
12375
+/* We use a machine specific pass to enable workarounds for errata.
12376
+ We need to have the (essentially) final form of the insn stream in order
12377
+ to properly detect the various hazards. Therefore, this machine specific
12378
+ pass runs as late as possible. The pass is inserted in the pass pipeline
12379
+ at the end of sparc_option_override. */
12382
+sparc_gate_work_around_errata (void)
12384
+ /* The only errata we handle are those of the AT697F and UT699. */
12385
+ return sparc_fix_at697f != 0 || sparc_fix_ut699 != 0;
12388
+static unsigned int
12389
+sparc_do_work_around_errata (void)
12393
+ /* Force all instructions to be split into their final form. */
12394
+ split_all_insns_noflow ();
12396
+ /* Now look for specific patterns in the insn stream. */
12397
+ for (insn = get_insns (); insn; insn = next)
12399
+ bool insert_nop = false;
12402
+ /* Look into the instruction in a delay slot. */
12403
+ if (NONJUMP_INSN_P (insn) && GET_CODE (PATTERN (insn)) == SEQUENCE)
12404
+ insn = XVECEXP (PATTERN (insn), 0, 1);
12406
+ /* Look for a single-word load into an odd-numbered FP register. */
12407
+ if (sparc_fix_at697f
12408
+ && NONJUMP_INSN_P (insn)
12409
+ && (set = single_set (insn)) != NULL_RTX
12410
+ && GET_MODE_SIZE (GET_MODE (SET_SRC (set))) == 4
12411
+ && MEM_P (SET_SRC (set))
12412
+ && REG_P (SET_DEST (set))
12413
+ && REGNO (SET_DEST (set)) > 31
12414
+ && REGNO (SET_DEST (set)) % 2 != 0)
12416
+ /* The wrong dependency is on the enclosing double register. */
12417
+ unsigned int x = REGNO (SET_DEST (set)) - 1;
12418
+ unsigned int src1, src2, dest;
12421
+ /* If the insn has a delay slot, then it cannot be problematic. */
12422
+ next = next_active_insn (insn);
12425
+ if (NONJUMP_INSN_P (next) && GET_CODE (PATTERN (next)) == SEQUENCE)
12428
+ extract_insn (next);
12429
+ code = INSN_CODE (next);
12433
+ case CODE_FOR_adddf3:
12434
+ case CODE_FOR_subdf3:
12435
+ case CODE_FOR_muldf3:
12436
+ case CODE_FOR_divdf3:
12437
+ dest = REGNO (recog_data.operand[0]);
12438
+ src1 = REGNO (recog_data.operand[1]);
12439
+ src2 = REGNO (recog_data.operand[2]);
12440
+ if (src1 != src2)
12443
+ ld [address], %fx+1
12444
+ FPOPd %f{x,y}, %f{y,x}, %f{x,y} */
12445
+ if ((src1 == x || src2 == x)
12446
+ && (dest == src1 || dest == src2))
12447
+ insert_nop = true;
12452
+ ld [address], %fx+1
12453
+ FPOPd %fx, %fx, %fx */
12456
+ && (code == CODE_FOR_adddf3 || code == CODE_FOR_muldf3))
12457
+ insert_nop = true;
12461
+ case CODE_FOR_sqrtdf2:
12462
+ dest = REGNO (recog_data.operand[0]);
12463
+ src1 = REGNO (recog_data.operand[1]);
12465
+ ld [address], %fx+1
12466
+ fsqrtd %fx, %fx */
12467
+ if (src1 == x && dest == src1)
12468
+ insert_nop = true;
12476
+ /* Look for a single-word load into an integer register. */
12477
+ else if (sparc_fix_ut699
12478
+ && NONJUMP_INSN_P (insn)
12479
+ && (set = single_set (insn)) != NULL_RTX
12480
+ && GET_MODE_SIZE (GET_MODE (SET_SRC (set))) <= 4
12481
+ && mem_ref (SET_SRC (set)) != NULL_RTX
12482
+ && REG_P (SET_DEST (set))
12483
+ && REGNO (SET_DEST (set)) < 32)
12485
+ /* There is no problem if the second memory access has a data
12486
+ dependency on the first single-cycle load. */
12487
+ rtx x = SET_DEST (set);
12489
+ /* If the insn has a delay slot, then it cannot be problematic. */
12490
+ next = next_active_insn (insn);
12493
+ if (NONJUMP_INSN_P (next) && GET_CODE (PATTERN (next)) == SEQUENCE)
12496
+ /* Look for a second memory access to/from an integer register. */
12497
+ if ((set = single_set (next)) != NULL_RTX)
12499
+ rtx src = SET_SRC (set);
12500
+ rtx dest = SET_DEST (set);
12503
+ /* LDD is affected. */
12504
+ if ((mem = mem_ref (src)) != NULL_RTX
12506
+ && REGNO (dest) < 32
12507
+ && !reg_mentioned_p (x, XEXP (mem, 0)))
12508
+ insert_nop = true;
12510
+ /* STD is *not* affected. */
12511
+ else if ((mem = mem_ref (dest)) != NULL_RTX
12512
+ && GET_MODE_SIZE (GET_MODE (mem)) <= 4
12513
+ && (src == const0_rtx
12515
+ && REGNO (src) < 32
12516
+ && REGNO (src) != REGNO (x)))
12517
+ && !reg_mentioned_p (x, XEXP (mem, 0)))
12518
+ insert_nop = true;
12523
+ next = NEXT_INSN (insn);
12526
+ emit_insn_before (gen_nop (), next);
12532
+struct rtl_opt_pass pass_work_around_errata =
12536
+ "errata", /* name */
12537
+ OPTGROUP_NONE, /* optinfo_flags */
12538
+ sparc_gate_work_around_errata, /* gate */
12539
+ sparc_do_work_around_errata, /* execute */
12542
+ 0, /* static_pass_number */
12543
+ TV_MACH_DEP, /* tv_id */
12544
+ 0, /* properties_required */
12545
+ 0, /* properties_provided */
12546
+ 0, /* properties_destroyed */
12547
+ 0, /* todo_flags_start */
12548
+ TODO_verify_rtl_sharing, /* todo_flags_finish */
12552
+struct register_pass_info insert_pass_work_around_errata =
12554
+ &pass_work_around_errata.pass, /* pass */
12555
+ "dbr", /* reference_pass_name */
12556
+ 1, /* ref_pass_instance_number */
12557
+ PASS_POS_INSERT_AFTER /* po_op */
12560
+/* Helpers for TARGET_DEBUG_OPTIONS. */
12562
dump_target_flag_bits (const int flags)
12564
@@ -888,6 +1109,7 @@
12565
{ TARGET_CPU_supersparc, PROCESSOR_SUPERSPARC },
12566
{ TARGET_CPU_hypersparc, PROCESSOR_HYPERSPARC },
12567
{ TARGET_CPU_leon, PROCESSOR_LEON },
12568
+ { TARGET_CPU_leon3, PROCESSOR_LEON3 },
12569
{ TARGET_CPU_sparclite, PROCESSOR_F930 },
12570
{ TARGET_CPU_sparclite86x, PROCESSOR_SPARCLITE86X },
12571
{ TARGET_CPU_sparclet, PROCESSOR_TSC701 },
12572
@@ -902,7 +1124,7 @@
12574
const struct cpu_default *def;
12575
/* Table of values for -m{cpu,tune}=. This must match the order of
12576
- the PROCESSOR_* enumeration. */
12577
+ the enum processor_type in sparc-opts.h. */
12578
static struct cpu_table {
12579
const char *const name;
12581
@@ -914,8 +1136,8 @@
12582
/* TI TMS390Z55 supersparc */
12583
{ "supersparc", MASK_ISA, MASK_V8 },
12584
{ "hypersparc", MASK_ISA, MASK_V8|MASK_FPU },
12586
- { "leon", MASK_ISA, MASK_V8|MASK_FPU },
12587
+ { "leon", MASK_ISA, MASK_V8|MASK_LEON|MASK_FPU },
12588
+ { "leon3", MASK_ISA, MASK_V8|MASK_LEON3|MASK_FPU },
12589
{ "sparclite", MASK_ISA, MASK_SPARCLITE },
12590
/* The Fujitsu MB86930 is the original sparclite chip, with no FPU. */
12591
{ "f930", MASK_ISA|MASK_FPU, MASK_SPARCLITE },
12592
@@ -1075,6 +1297,9 @@
12593
#ifndef HAVE_AS_SPARC4
12596
+#ifndef HAVE_AS_LEON
12597
+ & ~(MASK_LEON | MASK_LEON3)
12601
/* If -mfpu or -mno-fpu was explicitly used, don't override with
12602
@@ -1164,6 +1389,9 @@
12603
case PROCESSOR_LEON:
12604
sparc_costs = &leon_costs;
12606
+ case PROCESSOR_LEON3:
12607
+ sparc_costs = &leon3_costs;
12609
case PROCESSOR_SPARCLET:
12610
case PROCESSOR_TSC701:
12611
sparc_costs = &sparclet_costs;
12612
@@ -1200,6 +1428,10 @@
12613
/* Choose the most relaxed model for the processor. */
12614
else if (TARGET_V9)
12615
sparc_memory_model = SMM_RMO;
12616
+ else if (TARGET_LEON3)
12617
+ sparc_memory_model = SMM_TSO;
12618
+ else if (TARGET_LEON)
12619
+ sparc_memory_model = SMM_SC;
12620
else if (TARGET_V8)
12621
sparc_memory_model = SMM_PSO;
12623
@@ -1241,6 +1473,13 @@
12624
pessimizes for double floating-point registers. */
12625
if (!global_options_set.x_flag_ira_share_save_slots)
12626
flag_ira_share_save_slots = 0;
12628
+ /* We register a machine specific pass to work around errata, if any.
12629
+ The pass mut be scheduled as late as possible so that we have the
12630
+ (essentially) final form of the insn stream to work on.
12631
+ Registering the pass must be done at start up. It's convenient to
12633
+ register_pass (&insert_pass_work_around_errata);
12636
/* Miscellaneous utilities. */
12637
@@ -10355,7 +10594,8 @@
12638
tmp = e0.add_with_sign (tmp, false, &add1_ovf);
12639
if (tmp.is_negative ())
12640
tmp = tmp.neg_with_overflow (&neg2_ovf);
12643
+ neg2_ovf = false;
12644
result = result.add_with_sign (tmp, false, &add2_ovf);
12645
overflow |= neg1_ovf | neg2_ovf | add1_ovf | add2_ovf;
12647
@@ -10897,107 +11137,6 @@
12648
return (vcall_offset >= -32768 || ! fixed_regs[5]);
12651
-/* We use the machine specific reorg pass to enable workarounds for errata. */
12654
-sparc_reorg (void)
12658
- /* The only erratum we handle for now is that of the AT697F processor. */
12659
- if (!sparc_fix_at697f)
12662
- /* We need to have the (essentially) final form of the insn stream in order
12663
- to properly detect the various hazards. Run delay slot scheduling. */
12664
- if (optimize > 0 && flag_delayed_branch)
12666
- cleanup_barriers ();
12667
- dbr_schedule (get_insns ());
12670
- /* Now look for specific patterns in the insn stream. */
12671
- for (insn = get_insns (); insn; insn = next)
12673
- bool insert_nop = false;
12676
- /* Look for a single-word load into an odd-numbered FP register. */
12677
- if (NONJUMP_INSN_P (insn)
12678
- && (set = single_set (insn)) != NULL_RTX
12679
- && GET_MODE_SIZE (GET_MODE (SET_SRC (set))) == 4
12680
- && MEM_P (SET_SRC (set))
12681
- && REG_P (SET_DEST (set))
12682
- && REGNO (SET_DEST (set)) > 31
12683
- && REGNO (SET_DEST (set)) % 2 != 0)
12685
- /* The wrong dependency is on the enclosing double register. */
12686
- unsigned int x = REGNO (SET_DEST (set)) - 1;
12687
- unsigned int src1, src2, dest;
12690
- /* If the insn has a delay slot, then it cannot be problematic. */
12691
- next = next_active_insn (insn);
12692
- if (NONJUMP_INSN_P (next) && GET_CODE (PATTERN (next)) == SEQUENCE)
12696
- extract_insn (next);
12697
- code = INSN_CODE (next);
12702
- case CODE_FOR_adddf3:
12703
- case CODE_FOR_subdf3:
12704
- case CODE_FOR_muldf3:
12705
- case CODE_FOR_divdf3:
12706
- dest = REGNO (recog_data.operand[0]);
12707
- src1 = REGNO (recog_data.operand[1]);
12708
- src2 = REGNO (recog_data.operand[2]);
12709
- if (src1 != src2)
12712
- ld [address], %fx+1
12713
- FPOPd %f{x,y}, %f{y,x}, %f{x,y} */
12714
- if ((src1 == x || src2 == x)
12715
- && (dest == src1 || dest == src2))
12716
- insert_nop = true;
12721
- ld [address], %fx+1
12722
- FPOPd %fx, %fx, %fx */
12725
- && (code == CODE_FOR_adddf3 || code == CODE_FOR_muldf3))
12726
- insert_nop = true;
12730
- case CODE_FOR_sqrtdf2:
12731
- dest = REGNO (recog_data.operand[0]);
12732
- src1 = REGNO (recog_data.operand[1]);
12734
- ld [address], %fx+1
12735
- fsqrtd %fx, %fx */
12736
- if (src1 == x && dest == src1)
12737
- insert_nop = true;
12745
- next = NEXT_INSN (insn);
12748
- emit_insn_after (gen_nop (), insn);
12752
/* How to allocate a 'struct machine_function'. */
12754
static struct machine_function *
12755
Index: gcc/config/sparc/leon.md
12756
===================================================================
12757
--- a/src/gcc/config/sparc/leon.md (.../tags/gcc_4_8_2_release)
12758
+++ b/src/gcc/config/sparc/leon.md (.../branches/gcc-4_8-branch)
12759
@@ -17,40 +17,48 @@
12760
;; along with GCC; see the file COPYING3. If not see
12761
;; <http://www.gnu.org/licenses/>.
12763
+;; Leon is a single-issue processor.
12765
(define_automaton "leon")
12767
-(define_cpu_unit "leon_memory, leon_fpalu" "leon")
12768
-(define_cpu_unit "leon_fpmds" "leon")
12769
-(define_cpu_unit "write_buf" "leon")
12770
+(define_cpu_unit "leon_memory" "leon")
12772
(define_insn_reservation "leon_load" 1
12773
- (and (eq_attr "cpu" "leon")
12774
- (eq_attr "type" "load,sload,fpload"))
12775
+ (and (eq_attr "cpu" "leon") (eq_attr "type" "load,sload"))
12778
-(define_insn_reservation "leon_store" 1
12779
- (and (eq_attr "cpu" "leon")
12780
- (eq_attr "type" "store,fpstore"))
12781
- "leon_memory+write_buf")
12783
-(define_insn_reservation "leon_fp_alu" 1
12784
- (and (eq_attr "cpu" "leon")
12785
- (eq_attr "type" "fp,fpmove"))
12786
- "leon_fpalu, nothing")
12787
+;; Use a double reservation to work around the load pipeline hazard on UT699.
12788
+(define_insn_reservation "leon3_load" 1
12789
+ (and (eq_attr "cpu" "leon3") (eq_attr "type" "load,sload"))
12792
-(define_insn_reservation "leon_fp_mult" 1
12793
- (and (eq_attr "cpu" "leon")
12794
- (eq_attr "type" "fpmul"))
12795
- "leon_fpmds, nothing")
12796
+(define_insn_reservation "leon_store" 2
12797
+ (and (eq_attr "cpu" "leon,leon3") (eq_attr "type" "store"))
12800
-(define_insn_reservation "leon_fp_div" 16
12801
- (and (eq_attr "cpu" "leon")
12802
- (eq_attr "type" "fpdivs,fpdivd"))
12803
- "leon_fpmds, nothing*15")
12804
+;; This describes Gaisler Research's FPU
12806
-(define_insn_reservation "leon_fp_sqrt" 23
12807
- (and (eq_attr "cpu" "leon")
12808
- (eq_attr "type" "fpsqrts,fpsqrtd"))
12809
- "leon_fpmds, nothing*21")
12810
+(define_automaton "grfpu")
12812
+(define_cpu_unit "grfpu_alu" "grfpu")
12813
+(define_cpu_unit "grfpu_ds" "grfpu")
12815
+(define_insn_reservation "leon_fp_alu" 4
12816
+ (and (eq_attr "cpu" "leon,leon3") (eq_attr "type" "fp,fpcmp,fpmul"))
12817
+ "grfpu_alu, nothing*3")
12819
+(define_insn_reservation "leon_fp_divs" 16
12820
+ (and (eq_attr "cpu" "leon,leon3") (eq_attr "type" "fpdivs"))
12821
+ "grfpu_ds*14, nothing*2")
12823
+(define_insn_reservation "leon_fp_divd" 17
12824
+ (and (eq_attr "cpu" "leon,leon3") (eq_attr "type" "fpdivd"))
12825
+ "grfpu_ds*15, nothing*2")
12827
+(define_insn_reservation "leon_fp_sqrts" 24
12828
+ (and (eq_attr "cpu" "leon,leon3") (eq_attr "type" "fpsqrts"))
12829
+ "grfpu_ds*22, nothing*2")
12831
+(define_insn_reservation "leon_fp_sqrtd" 25
12832
+ (and (eq_attr "cpu" "leon,leon3") (eq_attr "type" "fpsqrtd"))
12833
+ "grfpu_ds*23, nothing*2")
12834
Index: gcc/config/sparc/sparc.h
12835
===================================================================
12836
--- a/src/gcc/config/sparc/sparc.h (.../tags/gcc_4_8_2_release)
12837
+++ b/src/gcc/config/sparc/sparc.h (.../branches/gcc-4_8-branch)
12838
@@ -136,21 +136,22 @@
12839
#define TARGET_CPU_supersparc 2
12840
#define TARGET_CPU_hypersparc 3
12841
#define TARGET_CPU_leon 4
12842
-#define TARGET_CPU_sparclite 5
12843
-#define TARGET_CPU_f930 5 /* alias */
12844
-#define TARGET_CPU_f934 5 /* alias */
12845
-#define TARGET_CPU_sparclite86x 6
12846
-#define TARGET_CPU_sparclet 7
12847
-#define TARGET_CPU_tsc701 7 /* alias */
12848
-#define TARGET_CPU_v9 8 /* generic v9 implementation */
12849
-#define TARGET_CPU_sparcv9 8 /* alias */
12850
-#define TARGET_CPU_sparc64 8 /* alias */
12851
-#define TARGET_CPU_ultrasparc 9
12852
-#define TARGET_CPU_ultrasparc3 10
12853
-#define TARGET_CPU_niagara 11
12854
-#define TARGET_CPU_niagara2 12
12855
-#define TARGET_CPU_niagara3 13
12856
-#define TARGET_CPU_niagara4 14
12857
+#define TARGET_CPU_leon3 5
12858
+#define TARGET_CPU_sparclite 6
12859
+#define TARGET_CPU_f930 6 /* alias */
12860
+#define TARGET_CPU_f934 6 /* alias */
12861
+#define TARGET_CPU_sparclite86x 7
12862
+#define TARGET_CPU_sparclet 8
12863
+#define TARGET_CPU_tsc701 8 /* alias */
12864
+#define TARGET_CPU_v9 9 /* generic v9 implementation */
12865
+#define TARGET_CPU_sparcv9 9 /* alias */
12866
+#define TARGET_CPU_sparc64 9 /* alias */
12867
+#define TARGET_CPU_ultrasparc 10
12868
+#define TARGET_CPU_ultrasparc3 11
12869
+#define TARGET_CPU_niagara 12
12870
+#define TARGET_CPU_niagara2 13
12871
+#define TARGET_CPU_niagara3 14
12872
+#define TARGET_CPU_niagara4 15
12874
#if TARGET_CPU_DEFAULT == TARGET_CPU_v9 \
12875
|| TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc \
12876
@@ -232,9 +233,10 @@
12877
#define ASM_CPU32_DEFAULT_SPEC ""
12880
-#if TARGET_CPU_DEFAULT == TARGET_CPU_leon
12881
+#if TARGET_CPU_DEFAULT == TARGET_CPU_leon \
12882
+ || TARGET_CPU_DEFAULT == TARGET_CPU_leon3
12883
#define CPP_CPU32_DEFAULT_SPEC "-D__leon__ -D__sparc_v8__"
12884
-#define ASM_CPU32_DEFAULT_SPEC ""
12885
+#define ASM_CPU32_DEFAULT_SPEC AS_LEON_FLAG
12889
@@ -282,6 +284,7 @@
12890
%{mcpu=supersparc:-D__supersparc__ -D__sparc_v8__} \
12891
%{mcpu=hypersparc:-D__hypersparc__ -D__sparc_v8__} \
12892
%{mcpu=leon:-D__leon__ -D__sparc_v8__} \
12893
+%{mcpu=leon3:-D__leon__ -D__sparc_v8__} \
12894
%{mcpu=v9:-D__sparc_v9__} \
12895
%{mcpu=ultrasparc:-D__sparc_v9__} \
12896
%{mcpu=ultrasparc3:-D__sparc_v9__} \
12897
@@ -329,7 +332,8 @@
12899
%{mcpu=supersparc:-Av8} \
12900
%{mcpu=hypersparc:-Av8} \
12901
-%{mcpu=leon:-Av8} \
12902
+%{mcpu=leon:" AS_LEON_FLAG "} \
12903
+%{mcpu=leon3:" AS_LEON_FLAG "} \
12904
%{mv8plus:-Av8plus} \
12906
%{mcpu=ultrasparc:%{!mv8plus:-Av9a}} \
12907
@@ -1754,6 +1758,12 @@
12908
#define AS_NIAGARA4_FLAG "-Av9" AS_NIAGARA3_FLAG
12911
+#ifdef HAVE_AS_LEON
12912
+#define AS_LEON_FLAG "-Aleon"
12914
+#define AS_LEON_FLAG "-Av8"
12917
/* We use gcc _mcount for profiling. */
12918
#define NO_PROFILE_COUNTERS 0
12920
Index: gcc/config/i386/i386.md
12921
===================================================================
12922
--- a/src/gcc/config/i386/i386.md (.../tags/gcc_4_8_2_release)
12923
+++ b/src/gcc/config/i386/i386.md (.../branches/gcc-4_8-branch)
12924
@@ -1570,7 +1570,7 @@
12925
split_double_mode (DImode, &operands[1], 1, &operands[2], &operands[3]);
12927
operands[1] = gen_lowpart (DImode, operands[2]);
12928
- operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (DImode, stack_pointer_rtx,
12929
+ operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (Pmode, stack_pointer_rtx,
12933
@@ -1587,7 +1587,7 @@
12934
split_double_mode (DImode, &operands[1], 1, &operands[2], &operands[3]);
12936
operands[1] = gen_lowpart (DImode, operands[2]);
12937
- operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (DImode, stack_pointer_rtx,
12938
+ operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (Pmode, stack_pointer_rtx,
12942
@@ -6589,7 +6589,7 @@
12943
(set_attr "use_carry" "1")
12944
(set_attr "mode" "<MODE>")])
12946
-;; Overflow setting add and subtract instructions
12947
+;; Overflow setting add instructions
12949
(define_insn "*add<mode>3_cconly_overflow"
12950
[(set (reg:CCC FLAGS_REG)
12951
@@ -6604,43 +6604,31 @@
12952
[(set_attr "type" "alu")
12953
(set_attr "mode" "<MODE>")])
12955
-(define_insn "*sub<mode>3_cconly_overflow"
12956
+(define_insn "*add<mode>3_cc_overflow"
12957
[(set (reg:CCC FLAGS_REG)
12960
- (match_operand:SWI 0 "nonimmediate_operand" "<r>m,<r>")
12961
- (match_operand:SWI 1 "<general_operand>" "<r><i>,<r>m"))
12964
- "cmp{<imodesuffix>}\t{%1, %0|%0, %1}"
12965
- [(set_attr "type" "icmp")
12966
- (set_attr "mode" "<MODE>")])
12968
-(define_insn "*<plusminus_insn><mode>3_cc_overflow"
12969
- [(set (reg:CCC FLAGS_REG)
12972
- (match_operand:SWI 1 "nonimmediate_operand" "<comm>0,0")
12974
+ (match_operand:SWI 1 "nonimmediate_operand" "%0,0")
12975
(match_operand:SWI 2 "<general_operand>" "<r><i>,<r>m"))
12977
(set (match_operand:SWI 0 "nonimmediate_operand" "=<r>m,<r>")
12978
- (plusminus:SWI (match_dup 1) (match_dup 2)))]
12979
- "ix86_binary_operator_ok (<CODE>, <MODE>mode, operands)"
12980
- "<plusminus_mnemonic>{<imodesuffix>}\t{%2, %0|%0, %2}"
12981
+ (plus:SWI (match_dup 1) (match_dup 2)))]
12982
+ "ix86_binary_operator_ok (PLUS, <MODE>mode, operands)"
12983
+ "add{<imodesuffix>}\t{%2, %0|%0, %2}"
12984
[(set_attr "type" "alu")
12985
(set_attr "mode" "<MODE>")])
12987
-(define_insn "*<plusminus_insn>si3_zext_cc_overflow"
12988
+(define_insn "*addsi3_zext_cc_overflow"
12989
[(set (reg:CCC FLAGS_REG)
12992
- (match_operand:SI 1 "nonimmediate_operand" "<comm>0")
12994
+ (match_operand:SI 1 "nonimmediate_operand" "%0")
12995
(match_operand:SI 2 "x86_64_general_operand" "rme"))
12997
(set (match_operand:DI 0 "register_operand" "=r")
12998
- (zero_extend:DI (plusminus:SI (match_dup 1) (match_dup 2))))]
12999
- "TARGET_64BIT && ix86_binary_operator_ok (<CODE>, SImode, operands)"
13000
- "<plusminus_mnemonic>{l}\t{%2, %k0|%k0, %2}"
13001
+ (zero_extend:DI (plus:SI (match_dup 1) (match_dup 2))))]
13002
+ "TARGET_64BIT && ix86_binary_operator_ok (PLUS, SImode, operands)"
13003
+ "add{l}\t{%2, %k0|%k0, %2}"
13004
[(set_attr "type" "alu")
13005
(set_attr "mode" "SI")])
13007
@@ -8012,7 +8000,18 @@
13009
(set (match_operand:DI 0 "nonimmediate_operand" "=r,r,rm")
13010
(and:DI (match_dup 1) (match_dup 2)))]
13011
- "TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
13013
+ && ix86_match_ccmode
13015
+ /* If we are going to emit andl instead of andq, and the operands[2]
13016
+ constant might have the SImode sign bit set, make sure the sign
13017
+ flag isn't tested, because the instruction will set the sign flag
13018
+ based on bit 31 rather than bit 63. If it isn't CONST_INT,
13019
+ conservatively assume it might have bit 31 set. */
13020
+ (satisfies_constraint_Z (operands[2])
13021
+ && (!CONST_INT_P (operands[2])
13022
+ || val_signbit_known_set_p (SImode, INTVAL (operands[2]))))
13023
+ ? CCZmode : CCNOmode)
13024
&& ix86_binary_operator_ok (AND, DImode, operands)"
13026
and{l}\t{%k2, %k0|%k0, %k2}
13027
Index: gcc/config/i386/t-rtems
13028
===================================================================
13029
--- a/src/gcc/config/i386/t-rtems (.../tags/gcc_4_8_2_release)
13030
+++ b/src/gcc/config/i386/t-rtems (.../branches/gcc-4_8-branch)
13031
@@ -17,11 +17,10 @@
13032
# <http://www.gnu.org/licenses/>.
13035
-MULTILIB_OPTIONS = mtune=i486/mtune=pentium/mtune=pentiumpro \
13037
+MULTILIB_OPTIONS = mtune=i486/mtune=pentium/mtune=pentiumpro msoft-float
13038
MULTILIB_DIRNAMES= m486 mpentium mpentiumpro soft-float
13039
-MULTILIB_MATCHES = msoft-float=mno-m80387
13040
-MULTILIB_MATCHES += mtune?pentium=mtune?k6 mtune?pentiumpro=mtune?mathlon
13041
+MULTILIB_MATCHES = msoft-float=mno-80387
13042
+MULTILIB_MATCHES += mtune?pentium=mtune?k6 mtune?pentiumpro=mtune?athlon
13043
MULTILIB_EXCEPTIONS = \
13044
mtune=pentium/*msoft-float* \
13045
mtune=pentiumpro/*msoft-float*
13046
Index: gcc/config/i386/sse.md
13047
===================================================================
13048
--- a/src/gcc/config/i386/sse.md (.../tags/gcc_4_8_2_release)
13049
+++ b/src/gcc/config/i386/sse.md (.../branches/gcc-4_8-branch)
13050
@@ -10213,7 +10213,6 @@
13051
[(set_attr "type" "ssecvt1")
13052
(set_attr "mode" "<MODE>")])
13055
(define_expand "xop_vmfrcz<mode>2"
13056
[(set (match_operand:VF_128 0 "register_operand")
13058
@@ -10223,11 +10222,9 @@
13063
- operands[3] = CONST0_RTX (<MODE>mode);
13065
+ "operands[3] = CONST0_RTX (<MODE>mode);")
13067
-(define_insn "*xop_vmfrcz_<mode>"
13068
+(define_insn "*xop_vmfrcz<mode>2"
13069
[(set (match_operand:VF_128 0 "register_operand" "=x")
13072
Index: gcc/config/i386/xopintrin.h
13073
===================================================================
13074
--- a/src/gcc/config/i386/xopintrin.h (.../tags/gcc_4_8_2_release)
13075
+++ b/src/gcc/config/i386/xopintrin.h (.../branches/gcc-4_8-branch)
13076
@@ -745,13 +745,17 @@
13077
extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
13078
_mm_frcz_ss (__m128 __A, __m128 __B)
13080
- return (__m128) __builtin_ia32_vfrczss ((__v4sf)__A, (__v4sf)__B);
13081
+ return (__m128) __builtin_ia32_movss ((__v4sf)__A,
13083
+ __builtin_ia32_vfrczss ((__v4sf)__B));
13086
extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
13087
_mm_frcz_sd (__m128d __A, __m128d __B)
13089
- return (__m128d) __builtin_ia32_vfrczsd ((__v2df)__A, (__v2df)__B);
13090
+ return (__m128d) __builtin_ia32_movsd ((__v2df)__A,
13092
+ __builtin_ia32_vfrczsd ((__v2df)__B));
13095
extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
13096
Index: gcc/config/i386/i386.c
13097
===================================================================
13098
--- a/src/gcc/config/i386/i386.c (.../tags/gcc_4_8_2_release)
13099
+++ b/src/gcc/config/i386/i386.c (.../branches/gcc-4_8-branch)
13100
@@ -1894,10 +1894,10 @@
13101
m_PPRO | m_P4_NOCONA | m_CORE_ALL | m_ATOM | m_AMDFAM10 | m_BDVER | m_GENERIC,
13103
/* X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL */
13104
- m_COREI7 | m_AMDFAM10 | m_BDVER | m_BTVER,
13105
+ m_COREI7 | m_HASWELL | m_AMDFAM10 | m_BDVER | m_BTVER,
13107
/* X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL */
13108
- m_COREI7 | m_BDVER,
13109
+ m_COREI7 | m_HASWELL| m_BDVER,
13111
/* X86_TUNE_SSE_PACKED_SINGLE_INSN_OPTIMAL */
13113
@@ -2983,7 +2983,7 @@
13114
{"bdver3", PROCESSOR_BDVER3, CPU_BDVER3,
13115
PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
13116
| PTA_SSE4A | PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1
13117
- | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX
13118
+ | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX | PTA_FMA4
13119
| PTA_XOP | PTA_LWP | PTA_BMI | PTA_TBM | PTA_F16C
13120
| PTA_FMA | PTA_PRFCHW | PTA_FXSR | PTA_XSAVE
13122
@@ -7235,9 +7235,15 @@
13130
+ return TARGET_64BIT && ix86_abi != MS_ABI;
13132
- case FIRST_FLOAT_REG:
13133
+ /* Complex values are returned in %st(0)/%st(1) pair. */
13136
/* TODO: The function should depend on current function ABI but
13137
builtins.c would need updating then. Therefore we use the
13139
@@ -7245,10 +7251,12 @@
13141
return TARGET_FLOAT_RETURNS_IN_80387;
13143
- case FIRST_SSE_REG:
13144
+ /* Complex values are returned in %xmm0/%xmm1 pair. */
13149
- case FIRST_MMX_REG:
13151
if (TARGET_MACHO || TARGET_64BIT)
13154
@@ -11561,30 +11569,6 @@
13158
-/* Determine if op is suitable SUBREG RTX for address. */
13161
-ix86_address_subreg_operand (rtx op)
13163
- enum machine_mode mode;
13168
- mode = GET_MODE (op);
13170
- if (GET_MODE_CLASS (mode) != MODE_INT)
13173
- /* Don't allow SUBREGs that span more than a word. It can lead to spill
13174
- failures when the register is one word out of a two word structure. */
13175
- if (GET_MODE_SIZE (mode) > UNITS_PER_WORD)
13178
- /* Allow only SUBREGs of non-eliminable hard registers. */
13179
- return register_no_elim_operand (op, mode);
13182
/* Extract the parts of an RTL expression that is a valid memory address
13183
for an instruction. Return 0 if the structure of the address is
13184
grossly off. Return -1 if the address contains ASHIFT, so it is not
13185
@@ -11641,7 +11625,7 @@
13187
else if (GET_CODE (addr) == SUBREG)
13189
- if (ix86_address_subreg_operand (SUBREG_REG (addr)))
13190
+ if (REG_P (SUBREG_REG (addr)))
13194
@@ -11705,7 +11689,7 @@
13198
- if (!ix86_address_subreg_operand (SUBREG_REG (op)))
13199
+ if (!REG_P (SUBREG_REG (op)))
13203
@@ -11750,19 +11734,6 @@
13204
scale = 1 << scale;
13207
- else if (CONST_INT_P (addr))
13209
- if (!x86_64_immediate_operand (addr, VOIDmode))
13212
- /* Constant addresses are sign extended to 64bit, we have to
13213
- prevent addresses from 0x80000000 to 0xffffffff in x32 mode. */
13215
- && val_signbit_known_set_p (SImode, INTVAL (addr)))
13221
disp = addr; /* displacement */
13223
@@ -11771,18 +11742,12 @@
13226
else if (GET_CODE (index) == SUBREG
13227
- && ix86_address_subreg_operand (SUBREG_REG (index)))
13228
+ && REG_P (SUBREG_REG (index)))
13234
-/* Address override works only on the (%reg) part of %fs:(%reg). */
13235
- if (seg != SEG_DEFAULT
13236
- && ((base && GET_MODE (base) != word_mode)
13237
- || (index && GET_MODE (index) != word_mode)))
13240
/* Extract the integral value of scale. */
13243
@@ -12258,6 +12223,45 @@
13247
+/* Determine if op is suitable RTX for an address register.
13248
+ Return naked register if a register or a register subreg is
13249
+ found, otherwise return NULL_RTX. */
13252
+ix86_validate_address_register (rtx op)
13254
+ enum machine_mode mode = GET_MODE (op);
13256
+ /* Only SImode or DImode registers can form the address. */
13257
+ if (mode != SImode && mode != DImode)
13262
+ else if (GET_CODE (op) == SUBREG)
13264
+ rtx reg = SUBREG_REG (op);
13266
+ if (!REG_P (reg))
13269
+ mode = GET_MODE (reg);
13271
+ /* Don't allow SUBREGs that span more than a word. It can
13272
+ lead to spill failures when the register is one word out
13273
+ of a two word structure. */
13274
+ if (GET_MODE_SIZE (mode) > UNITS_PER_WORD)
13277
+ /* Allow only SUBREGs of non-eliminable hard registers. */
13278
+ if (register_no_elim_operand (reg, mode))
13282
+ /* Op is not a register. */
13286
/* Recognizes RTL expressions that are valid memory addresses for an
13287
instruction. The MODE argument is the machine mode for the MEM
13288
expression that wants to use this address.
13289
@@ -12273,6 +12277,7 @@
13290
struct ix86_address parts;
13291
rtx base, index, disp;
13292
HOST_WIDE_INT scale;
13293
+ enum ix86_address_seg seg;
13295
if (ix86_decompose_address (addr, &parts) <= 0)
13296
/* Decomposition failed. */
13297
@@ -12282,23 +12287,16 @@
13298
index = parts.index;
13300
scale = parts.scale;
13303
/* Validate base register. */
13307
+ rtx reg = ix86_validate_address_register (base);
13309
- if (REG_P (base))
13311
- else if (GET_CODE (base) == SUBREG && REG_P (SUBREG_REG (base)))
13312
- reg = SUBREG_REG (base);
13314
- /* Base is not a register. */
13315
+ if (reg == NULL_RTX)
13318
- if (GET_MODE (base) != SImode && GET_MODE (base) != DImode)
13321
if ((strict && ! REG_OK_FOR_BASE_STRICT_P (reg))
13322
|| (! strict && ! REG_OK_FOR_BASE_NONSTRICT_P (reg)))
13323
/* Base is not valid. */
13324
@@ -12308,19 +12306,11 @@
13325
/* Validate index register. */
13329
+ rtx reg = ix86_validate_address_register (index);
13331
- if (REG_P (index))
13333
- else if (GET_CODE (index) == SUBREG && REG_P (SUBREG_REG (index)))
13334
- reg = SUBREG_REG (index);
13336
- /* Index is not a register. */
13337
+ if (reg == NULL_RTX)
13340
- if (GET_MODE (index) != SImode && GET_MODE (index) != DImode)
13343
if ((strict && ! REG_OK_FOR_INDEX_STRICT_P (reg))
13344
|| (! strict && ! REG_OK_FOR_INDEX_NONSTRICT_P (reg)))
13345
/* Index is not valid. */
13346
@@ -12332,6 +12322,12 @@
13347
&& GET_MODE (base) != GET_MODE (index))
13350
+ /* Address override works only on the (%reg) part of %fs:(%reg). */
13351
+ if (seg != SEG_DEFAULT
13352
+ && ((base && GET_MODE (base) != word_mode)
13353
+ || (index && GET_MODE (index) != word_mode)))
13356
/* Validate scale factor. */
13359
@@ -12453,6 +12449,12 @@
13360
&& !x86_64_immediate_operand (disp, VOIDmode))
13361
/* Displacement is out of range. */
13363
+ /* In x32 mode, constant addresses are sign extended to 64bit, so
13364
+ we have to prevent addresses from 0x80000000 to 0xffffffff. */
13365
+ else if (TARGET_X32 && !(index || base)
13366
+ && CONST_INT_P (disp)
13367
+ && val_signbit_known_set_p (SImode, INTVAL (disp)))
13371
/* Everything looks valid. */
13372
@@ -13817,8 +13819,6 @@
13373
Those same assemblers have the same but opposite lossage on cmov. */
13374
if (mode == CCmode)
13375
suffix = fp ? "nbe" : "a";
13376
- else if (mode == CCCmode)
13379
gcc_unreachable ();
13381
@@ -13840,8 +13840,12 @@
13385
- gcc_assert (mode == CCmode || mode == CCCmode);
13387
+ if (mode == CCmode)
13389
+ else if (mode == CCCmode)
13392
+ gcc_unreachable ();
13396
@@ -13861,20 +13865,20 @@
13400
- /* ??? As above. */
13401
- gcc_assert (mode == CCmode || mode == CCCmode);
13402
- suffix = fp ? "nb" : "ae";
13403
+ if (mode == CCmode)
13404
+ suffix = fp ? "nb" : "ae";
13405
+ else if (mode == CCCmode)
13408
+ gcc_unreachable ();
13411
gcc_assert (mode == CCmode || mode == CCGCmode || mode == CCNOmode);
13415
- /* ??? As above. */
13416
if (mode == CCmode)
13418
- else if (mode == CCCmode)
13419
- suffix = fp ? "nb" : "ae";
13421
gcc_unreachable ();
13423
@@ -15340,7 +15344,7 @@
13424
rtx arg = XEXP (XEXP (link, 0), 0);
13426
if (ix86_check_avx256_register (&arg, NULL))
13427
- return AVX_U128_ANY;
13428
+ return AVX_U128_DIRTY;
13432
@@ -15460,8 +15464,8 @@
13434
bool avx_reg256_found = false;
13435
note_stores (pat, ix86_check_avx256_stores, &avx_reg256_found);
13436
- if (!avx_reg256_found)
13437
- return AVX_U128_CLEAN;
13439
+ return avx_reg256_found ? AVX_U128_DIRTY : AVX_U128_CLEAN;
13442
/* Otherwise, return current mode. Remember that if insn
13443
@@ -18486,12 +18490,7 @@
13445
case GTU: /* CF=0 & ZF=0 */
13446
case LEU: /* CF=1 | ZF=1 */
13447
- /* Detect overflow checks. They need just the carry flag. */
13448
- if (GET_CODE (op0) == MINUS
13449
- && rtx_equal_p (op1, XEXP (op0, 0)))
13454
/* Codes possibly doable only with sign flag when
13455
comparing against zero. */
13456
case GE: /* SF=OF or SF=0 */
13457
@@ -21740,6 +21739,21 @@
13461
+/* Copy the address to a Pmode register. This is used for x32 to
13462
+ truncate DImode TLS address to a SImode register. */
13465
+ix86_copy_addr_to_reg (rtx addr)
13467
+ if (GET_MODE (addr) == Pmode)
13468
+ return copy_addr_to_reg (addr);
13471
+ gcc_assert (GET_MODE (addr) == DImode && Pmode == SImode);
13472
+ return gen_rtx_SUBREG (SImode, copy_to_mode_reg (DImode, addr), 0);
13476
/* When SRCPTR is non-NULL, output simple loop to move memory
13477
pointer to SRCPTR to DESTPTR via chunks of MODE unrolled UNROLL times,
13478
overall size is COUNT specified in bytes. When SRCPTR is NULL, output the
13479
@@ -22728,8 +22742,8 @@
13480
gcc_assert (alg != no_stringop);
13482
count_exp = copy_to_mode_reg (GET_MODE (count_exp), count_exp);
13483
- destreg = copy_addr_to_reg (XEXP (dst, 0));
13484
- srcreg = copy_addr_to_reg (XEXP (src, 0));
13485
+ destreg = ix86_copy_addr_to_reg (XEXP (dst, 0));
13486
+ srcreg = ix86_copy_addr_to_reg (XEXP (src, 0));
13490
@@ -23119,7 +23133,7 @@
13491
gcc_assert (alg != no_stringop);
13493
count_exp = copy_to_mode_reg (counter_mode (count_exp), count_exp);
13494
- destreg = copy_addr_to_reg (XEXP (dst, 0));
13495
+ destreg = ix86_copy_addr_to_reg (XEXP (dst, 0));
13499
@@ -27984,8 +27998,8 @@
13500
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_shlv8hi3, "__builtin_ia32_vpshlw", IX86_BUILTIN_VPSHLW, UNKNOWN, (int)MULTI_ARG_2_HI },
13501
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_shlv16qi3, "__builtin_ia32_vpshlb", IX86_BUILTIN_VPSHLB, UNKNOWN, (int)MULTI_ARG_2_QI },
13503
- { OPTION_MASK_ISA_XOP, CODE_FOR_xop_vmfrczv4sf2, "__builtin_ia32_vfrczss", IX86_BUILTIN_VFRCZSS, UNKNOWN, (int)MULTI_ARG_2_SF },
13504
- { OPTION_MASK_ISA_XOP, CODE_FOR_xop_vmfrczv2df2, "__builtin_ia32_vfrczsd", IX86_BUILTIN_VFRCZSD, UNKNOWN, (int)MULTI_ARG_2_DF },
13505
+ { OPTION_MASK_ISA_XOP, CODE_FOR_xop_vmfrczv4sf2, "__builtin_ia32_vfrczss", IX86_BUILTIN_VFRCZSS, UNKNOWN, (int)MULTI_ARG_1_SF },
13506
+ { OPTION_MASK_ISA_XOP, CODE_FOR_xop_vmfrczv2df2, "__builtin_ia32_vfrczsd", IX86_BUILTIN_VFRCZSD, UNKNOWN, (int)MULTI_ARG_1_DF },
13507
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_frczv4sf2, "__builtin_ia32_vfrczps", IX86_BUILTIN_VFRCZPS, UNKNOWN, (int)MULTI_ARG_1_SF },
13508
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_frczv2df2, "__builtin_ia32_vfrczpd", IX86_BUILTIN_VFRCZPD, UNKNOWN, (int)MULTI_ARG_1_DF },
13509
{ OPTION_MASK_ISA_XOP, CODE_FOR_xop_frczv8sf2, "__builtin_ia32_vfrczps256", IX86_BUILTIN_VFRCZPS256, UNKNOWN, (int)MULTI_ARG_1_SF2 },
13510
Index: gcc/config/sh/sh.opt
13511
===================================================================
13512
--- a/src/gcc/config/sh/sh.opt (.../tags/gcc_4_8_2_release)
13513
+++ b/src/gcc/config/sh/sh.opt (.../branches/gcc-4_8-branch)
13515
;; Used for various architecture options.
13518
-;; Set if the default precision of th FPU is single.
13519
+;; Set if the default precision of the FPU is single.
13522
;; Set if the a double-precision FPU is present but is restricted to
13523
Index: gcc/config/rs6000/rs6000.md
13524
===================================================================
13525
--- a/src/gcc/config/rs6000/rs6000.md (.../tags/gcc_4_8_2_release)
13526
+++ b/src/gcc/config/rs6000/rs6000.md (.../branches/gcc-4_8-branch)
13527
@@ -2412,7 +2412,7 @@
13528
(match_operand:SI 2 "gpc_reg_operand" "r,r"))
13530
(clobber (match_scratch:SI 3 "=r,r"))]
13536
@@ -2425,7 +2425,7 @@
13537
(match_operand:SI 2 "gpc_reg_operand" ""))
13539
(clobber (match_scratch:SI 3 ""))]
13540
- "reload_completed"
13541
+ "TARGET_32BIT && reload_completed"
13542
[(set (match_dup 3)
13543
(mult:SI (match_dup 1) (match_dup 2)))
13545
@@ -2440,7 +2440,7 @@
13547
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
13548
(mult:SI (match_dup 1) (match_dup 2)))]
13554
@@ -2454,7 +2454,7 @@
13556
(set (match_operand:SI 0 "gpc_reg_operand" "")
13557
(mult:SI (match_dup 1) (match_dup 2)))]
13558
- "reload_completed"
13559
+ "TARGET_32BIT && reload_completed"
13560
[(set (match_dup 0)
13561
(mult:SI (match_dup 1) (match_dup 2)))
13563
Index: gcc/config/arm/arm.c
13564
===================================================================
13565
--- a/src/gcc/config/arm/arm.c (.../tags/gcc_4_8_2_release)
13566
+++ b/src/gcc/config/arm/arm.c (.../branches/gcc-4_8-branch)
13567
@@ -5425,7 +5425,8 @@
13568
if (!crtl->uses_pic_offset_table)
13570
gcc_assert (can_create_pseudo_p ());
13571
- if (arm_pic_register != INVALID_REGNUM)
13572
+ if (arm_pic_register != INVALID_REGNUM
13573
+ && !(TARGET_THUMB1 && arm_pic_register > LAST_LO_REGNUM))
13575
if (!cfun->machine->pic_reg)
13576
cfun->machine->pic_reg = gen_rtx_REG (Pmode, arm_pic_register);
13577
@@ -5451,7 +5452,12 @@
13578
crtl->uses_pic_offset_table = 1;
13581
- arm_load_pic_register (0UL);
13582
+ if (TARGET_THUMB1 && arm_pic_register != INVALID_REGNUM
13583
+ && arm_pic_register > LAST_LO_REGNUM)
13584
+ emit_move_insn (cfun->machine->pic_reg,
13585
+ gen_rtx_REG (Pmode, arm_pic_register));
13587
+ arm_load_pic_register (0UL);
13589
seq = get_insns ();
13591
@@ -5709,6 +5715,14 @@
13592
emit_insn (gen_movsi (pic_offset_table_rtx, pic_tmp));
13593
emit_insn (gen_pic_add_dot_plus_four (pic_reg, pic_reg, labelno));
13595
+ else if (arm_pic_register != INVALID_REGNUM
13596
+ && arm_pic_register > LAST_LO_REGNUM
13597
+ && REGNO (pic_reg) <= LAST_LO_REGNUM)
13599
+ emit_insn (gen_pic_load_addr_unified (pic_reg, pic_rtx, labelno));
13600
+ emit_move_insn (gen_rtx_REG (Pmode, arm_pic_register), pic_reg);
13601
+ emit_use (gen_rtx_REG (Pmode, arm_pic_register));
13604
emit_insn (gen_pic_load_addr_unified (pic_reg, pic_rtx, labelno));
13606
@@ -23555,6 +23569,7 @@
13607
num_regs = bit_count (saved_regs_mask);
13608
if ((offsets->outgoing_args != (1 + num_regs)) || cfun->calls_alloca)
13610
+ emit_insn (gen_blockage ());
13611
/* Unwind the stack to just below the saved registers. */
13612
emit_insn (gen_addsi3 (stack_pointer_rtx,
13613
hard_frame_pointer_rtx,
13614
Index: gcc/config/arm/vfp.md
13615
===================================================================
13616
--- a/src/gcc/config/arm/vfp.md (.../tags/gcc_4_8_2_release)
13617
+++ b/src/gcc/config/arm/vfp.md (.../branches/gcc-4_8-branch)
13618
@@ -1264,6 +1264,7 @@
13619
"TARGET_HARD_FLOAT && TARGET_FPU_ARMV8 <vfp_double_cond>"
13620
"vrint<vrint_variant>%?.<V_if_elem>\\t%<V_reg>0, %<V_reg>1"
13621
[(set_attr "predicable" "<vrint_predicable>")
13622
+ (set_attr "conds" "<vrint_conds>")
13623
(set_attr "type" "f_rint<vfp_type>")]
13626
@@ -1280,7 +1281,8 @@
13627
(match_operand:SDF 2 "register_operand" "<F_constraint>")))]
13628
"TARGET_HARD_FLOAT && TARGET_FPU_ARMV8 <vfp_double_cond>"
13629
"vmaxnm.<V_if_elem>\\t%<V_reg>0, %<V_reg>1, %<V_reg>2"
13630
- [(set_attr "type" "f_minmax<vfp_type>")]
13631
+ [(set_attr "type" "f_minmax<vfp_type>")
13632
+ (set_attr "conds" "unconditional")]
13635
(define_insn "smin<mode>3"
13636
@@ -1289,7 +1291,8 @@
13637
(match_operand:SDF 2 "register_operand" "<F_constraint>")))]
13638
"TARGET_HARD_FLOAT && TARGET_FPU_ARMV8 <vfp_double_cond>"
13639
"vminnm.<V_if_elem>\\t%<V_reg>0, %<V_reg>1, %<V_reg>2"
13640
- [(set_attr "type" "f_minmax<vfp_type>")]
13641
+ [(set_attr "type" "f_minmax<vfp_type>")
13642
+ (set_attr "conds" "unconditional")]
13645
;; Unimplemented insns:
13646
Index: gcc/config/arm/iterators.md
13647
===================================================================
13648
--- a/src/gcc/config/arm/iterators.md (.../tags/gcc_4_8_2_release)
13649
+++ b/src/gcc/config/arm/iterators.md (.../branches/gcc-4_8-branch)
13650
@@ -493,6 +493,10 @@
13651
(UNSPEC_VRINTA "no") (UNSPEC_VRINTM "no")
13652
(UNSPEC_VRINTR "yes") (UNSPEC_VRINTX "yes")])
13654
+(define_int_attr vrint_conds [(UNSPEC_VRINTZ "nocond") (UNSPEC_VRINTP "unconditional")
13655
+ (UNSPEC_VRINTA "unconditional") (UNSPEC_VRINTM "unconditional")
13656
+ (UNSPEC_VRINTR "nocond") (UNSPEC_VRINTX "nocond")])
13658
(define_int_attr nvrint_variant [(UNSPEC_NVRINTZ "z") (UNSPEC_NVRINTP "p")
13659
(UNSPEC_NVRINTA "a") (UNSPEC_NVRINTM "m")
13660
(UNSPEC_NVRINTX "x") (UNSPEC_NVRINTN "n")])
13661
Index: libgo/configure
13662
===================================================================
13663
--- a/src/libgo/configure (.../tags/gcc_4_8_2_release)
13664
+++ b/src/libgo/configure (.../branches/gcc-4_8-branch)
13665
@@ -14700,7 +14700,7 @@
13669
-for ac_func in accept4 epoll_create1 faccessat fallocate fchmodat fchownat futimesat inotify_add_watch inotify_init inotify_init1 inotify_rm_watch mkdirat mknodat openat pipe2 renameat sync_file_range splice tee unlinkat unshare utimensat
13670
+for ac_func in accept4 dup3 epoll_create1 faccessat fallocate fchmodat fchownat futimesat getxattr inotify_add_watch inotify_init inotify_init1 inotify_rm_watch listxattr mkdirat mknodat openat pipe2 removexattr renameat setxattr sync_file_range splice tee unlinkat unshare utimensat
13672
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
13673
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
13674
Index: libgo/Makefile.in
13675
===================================================================
13676
--- a/src/libgo/Makefile.in (.../tags/gcc_4_8_2_release)
13677
+++ b/src/libgo/Makefile.in (.../branches/gcc-4_8-branch)
13678
@@ -195,7 +195,7 @@
13679
@LIBGO_IS_LINUX_TRUE@am__objects_5 = getncpu-linux.lo
13680
am__objects_6 = go-append.lo go-assert.lo go-assert-interface.lo \
13681
go-byte-array-to-string.lo go-breakpoint.lo go-caller.lo \
13682
- go-callers.lo go-can-convert-interface.lo go-cgo.lo \
13683
+ go-callers.lo go-can-convert-interface.lo go-cdiv.lo go-cgo.lo \
13684
go-check-interface.lo go-construct-map.lo \
13685
go-convert-interface.lo go-copy.lo go-defer.lo \
13686
go-deferred-recover.lo go-eface-compare.lo \
13687
@@ -757,6 +757,7 @@
13688
runtime/go-caller.c \
13689
runtime/go-callers.c \
13690
runtime/go-can-convert-interface.c \
13691
+ runtime/go-cdiv.c \
13693
runtime/go-check-interface.c \
13694
runtime/go-construct-map.c \
13695
@@ -1446,7 +1447,7 @@
13696
go/go/build/build.go \
13697
go/go/build/doc.go \
13698
go/go/build/read.go \
13700
+ go/go/build/syslist.go
13702
go_go_doc_files = \
13703
go/go/doc/comment.go \
13704
@@ -2368,6 +2369,7 @@
13705
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-caller.Plo@am__quote@
13706
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-callers.Plo@am__quote@
13707
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-can-convert-interface.Plo@am__quote@
13708
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-cdiv.Plo@am__quote@
13709
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-cgo.Plo@am__quote@
13710
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-check-interface.Plo@am__quote@
13711
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-construct-map.Plo@am__quote@
13712
@@ -2554,6 +2556,13 @@
13713
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
13714
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o go-can-convert-interface.lo `test -f 'runtime/go-can-convert-interface.c' || echo '$(srcdir)/'`runtime/go-can-convert-interface.c
13716
+go-cdiv.lo: runtime/go-cdiv.c
13717
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT go-cdiv.lo -MD -MP -MF $(DEPDIR)/go-cdiv.Tpo -c -o go-cdiv.lo `test -f 'runtime/go-cdiv.c' || echo '$(srcdir)/'`runtime/go-cdiv.c
13718
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/go-cdiv.Tpo $(DEPDIR)/go-cdiv.Plo
13719
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/go-cdiv.c' object='go-cdiv.lo' libtool=yes @AMDEPBACKSLASH@
13720
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
13721
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o go-cdiv.lo `test -f 'runtime/go-cdiv.c' || echo '$(srcdir)/'`runtime/go-cdiv.c
13723
go-cgo.lo: runtime/go-cgo.c
13724
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT go-cgo.lo -MD -MP -MF $(DEPDIR)/go-cgo.Tpo -c -o go-cgo.lo `test -f 'runtime/go-cgo.c' || echo '$(srcdir)/'`runtime/go-cgo.c
13725
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/go-cgo.Tpo $(DEPDIR)/go-cgo.Plo
13726
@@ -5062,15 +5071,6 @@
13728
.PHONY: go/build/check
13730
-syslist.go: s-syslist; @true
13731
-s-syslist: Makefile
13732
- echo '// Generated automatically by make.' >syslist.go.tmp
13733
- echo 'package build' >>syslist.go.tmp
13734
- echo 'const goosList = "$(GOOS)"' >>syslist.go.tmp
13735
- echo 'const goarchList = "$(GOARCH)"' >>syslist.go.tmp
13736
- $(SHELL) $(srcdir)/../move-if-change syslist.go.tmp syslist.go
13739
@go_include@ go/doc.lo.dep
13740
go/doc.lo.dep: $(go_go_doc_files)
13742
Index: libgo/runtime/go-int-array-to-string.c
13743
===================================================================
13744
--- a/src/libgo/runtime/go-int-array-to-string.c (.../tags/gcc_4_8_2_release)
13745
+++ b/src/libgo/runtime/go-int-array-to-string.c (.../branches/gcc-4_8-branch)
13748
if (v < 0 || v > 0x10ffff)
13750
+ else if (0xd800 <= v && v <= 0xdfff)
13757
if (v < 0 || v > 0x10ffff)
13759
+ else if (0xd800 <= v && v <= 0xdfff)
13764
Index: libgo/runtime/go-nosys.c
13765
===================================================================
13766
--- a/src/libgo/runtime/go-nosys.c (.../tags/gcc_4_8_2_release)
13767
+++ b/src/libgo/runtime/go-nosys.c (.../branches/gcc-4_8-branch)
13774
+dup3 (int oldfd __attribute__ ((unused)),
13775
+ int newfd __attribute__ ((unused)),
13776
+ int flags __attribute__ ((unused)))
13783
#ifndef HAVE_EPOLL_CREATE1
13785
epoll_create1 (int flags __attribute__ ((unused)))
13786
@@ -112,6 +123,18 @@
13790
+#ifndef HAVE_GETXATTR
13792
+getxattr (const char *path __attribute__ ((unused)),
13793
+ const char *name __attribute__ ((unused)),
13794
+ void *value __attribute__ ((unused)),
13795
+ size_t size __attribute__ ((unused)))
13802
#ifndef HAVE_INOTIFY_ADD_WATCH
13804
inotify_add_watch (int fd __attribute__ ((unused)),
13805
@@ -151,6 +174,17 @@
13809
+#ifndef HAVE_LISTXATTR
13811
+listxattr (const char *path __attribute__ ((unused)),
13812
+ char *list __attribute__ ((unused)),
13813
+ size_t size __attribute__ ((unused)))
13820
#ifndef HAVE_MKDIRAT
13822
mkdirat (int dirfd __attribute__ ((unused)),
13823
@@ -196,6 +230,16 @@
13827
+#ifndef HAVE_REMOVEXATTR
13829
+removexattr (const char *path __attribute__ ((unused)),
13830
+ const char *name __attribute__ ((unused)))
13837
#ifndef HAVE_RENAMEAT
13839
renameat (int olddirfd __attribute__ ((unused)),
13840
@@ -208,6 +252,19 @@
13844
+#ifndef HAVE_SETXATTR
13846
+setxattr (const char *path __attribute__ ((unused)),
13847
+ const char *name __attribute__ ((unused)),
13848
+ const void *value __attribute__ ((unused)),
13849
+ size_t size __attribute__ ((unused)),
13850
+ int flags __attribute__ ((unused)))
13857
#ifndef HAVE_SPLICE
13859
splice (int fd __attribute__ ((unused)),
13860
Index: libgo/runtime/go-signal.c
13861
===================================================================
13862
--- a/src/libgo/runtime/go-signal.c (.../tags/gcc_4_8_2_release)
13863
+++ b/src/libgo/runtime/go-signal.c (.../branches/gcc-4_8-branch)
13864
@@ -399,6 +399,9 @@
13868
+#ifdef USING_SPLIT_STACK
13869
+ void *stack_context[10];
13872
/* We are now running on the stack registered via sigaltstack.
13873
(Actually there is a small span of time between runtime_siginit
13874
@@ -409,7 +412,7 @@
13877
#ifdef USING_SPLIT_STACK
13878
- __splitstack_getcontext (&gp->stack_context[0]);
13879
+ __splitstack_getcontext (&stack_context[0]);
13883
@@ -432,7 +435,7 @@
13886
#ifdef USING_SPLIT_STACK
13887
- __splitstack_setcontext (&gp->stack_context[0]);
13888
+ __splitstack_setcontext (&stack_context[0]);
13892
Index: libgo/runtime/go-cdiv.c
13893
===================================================================
13894
--- a/src/libgo/runtime/go-cdiv.c (.../tags/gcc_4_8_2_release)
13895
+++ b/src/libgo/runtime/go-cdiv.c (.../branches/gcc-4_8-branch)
13897
+/* go-cdiv.c -- complex division routines
13899
+ Copyright 2013 The Go Authors. All rights reserved.
13900
+ Use of this source code is governed by a BSD-style
13901
+ license that can be found in the LICENSE file. */
13903
+/* Calls to these functions are generated by the Go frontend for
13904
+ division of complex64 or complex128. We use these because Go's
13905
+ complex division expects slightly different results from the GCC
13906
+ default. When dividing NaN+1.0i / 0+0i, Go expects NaN+NaNi but
13907
+ GCC generates NaN+Infi. NaN+Infi seems wrong seems the rules of
13908
+ C99 Annex G specify that if either side of a complex number is Inf,
13909
+ the the whole number is Inf, but an operation involving NaN ought
13910
+ to result in NaN, not Inf. */
13913
+__go_complex64_div (__complex float a, __complex float b)
13915
+ if (__builtin_expect (b == 0+0i, 0))
13917
+ if (!__builtin_isinff (__real__ a)
13918
+ && !__builtin_isinff (__imag__ a)
13919
+ && (__builtin_isnanf (__real__ a) || __builtin_isnanf (__imag__ a)))
13921
+ /* Pass "1" to nanf to match math/bits.go. */
13922
+ return __builtin_nanf("1") + __builtin_nanf("1")*1i;
13929
+__go_complex128_div (__complex double a, __complex double b)
13931
+ if (__builtin_expect (b == 0+0i, 0))
13933
+ if (!__builtin_isinf (__real__ a)
13934
+ && !__builtin_isinf (__imag__ a)
13935
+ && (__builtin_isnan (__real__ a) || __builtin_isnan (__imag__ a)))
13937
+ /* Pass "1" to nan to match math/bits.go. */
13938
+ return __builtin_nan("1") + __builtin_nan("1")*1i;
13943
Index: libgo/runtime/go-make-slice.c
13944
===================================================================
13945
--- a/src/libgo/runtime/go-make-slice.c (.../tags/gcc_4_8_2_release)
13946
+++ b/src/libgo/runtime/go-make-slice.c (.../branches/gcc-4_8-branch)
13948
std = (const struct __go_slice_type *) td;
13950
ilen = (intgo) len;
13951
- if (ilen < 0 || (uintptr_t) ilen != len)
13953
+ || (uintptr_t) ilen != len
13954
+ || (std->__element_type->__size > 0
13955
+ && len > MaxMem / std->__element_type->__size))
13956
runtime_panicstring ("makeslice: len out of range");
13958
icap = (intgo) cap;
13959
Index: libgo/mksysinfo.sh
13960
===================================================================
13961
--- a/src/libgo/mksysinfo.sh (.../tags/gcc_4_8_2_release)
13962
+++ b/src/libgo/mksysinfo.sh (.../branches/gcc-4_8-branch)
13963
@@ -1035,6 +1035,10 @@
13964
grep '^const _LOCK_' gen-sysinfo.go |
13965
sed -e 's/^\(const \)_\(LOCK_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}
13967
+# The PRIO constants.
13968
+grep '^const _PRIO_' gen-sysinfo.go | \
13969
+ sed -e 's/^\(const \)_\(PRIO_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}
13971
# The GNU/Linux LINUX_REBOOT flags.
13972
grep '^const _LINUX_REBOOT_' gen-sysinfo.go |
13973
sed -e 's/^\(const \)_\(LINUX_REBOOT_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}
13974
Index: libgo/config.h.in
13975
===================================================================
13976
--- a/src/libgo/config.h.in (.../tags/gcc_4_8_2_release)
13977
+++ b/src/libgo/config.h.in (.../branches/gcc-4_8-branch)
13979
/* Define to 1 if you have the `dl_iterate_phdr' function. */
13980
#undef HAVE_DL_ITERATE_PHDR
13982
+/* Define to 1 if you have the `dup3' function. */
13985
/* Define to 1 if you have the `epoll_create1' function. */
13986
#undef HAVE_EPOLL_CREATE1
13989
/* Define if _Unwind_GetIPInfo is available. */
13990
#undef HAVE_GETIPINFO
13992
+/* Define to 1 if you have the `getxattr' function. */
13993
+#undef HAVE_GETXATTR
13995
/* Define to 1 if you have the `inotify_add_watch' function. */
13996
#undef HAVE_INOTIFY_ADD_WATCH
13998
@@ -111,6 +117,9 @@
13999
/* Define to 1 if you have the <linux/rtnetlink.h> header file. */
14000
#undef HAVE_LINUX_RTNETLINK_H
14002
+/* Define to 1 if you have the `listxattr' function. */
14003
+#undef HAVE_LISTXATTR
14005
/* Define to 1 if the system has the type `loff_t'. */
14008
@@ -171,6 +180,9 @@
14009
/* Define to 1 if you have the `pipe2' function. */
14012
+/* Define to 1 if you have the `removexattr' function. */
14013
+#undef HAVE_REMOVEXATTR
14015
/* Define to 1 if you have the `renameat' function. */
14016
#undef HAVE_RENAMEAT
14018
@@ -180,6 +192,9 @@
14019
/* Define to 1 if you have the `setenv' function. */
14022
+/* Define to 1 if you have the `setxattr' function. */
14023
+#undef HAVE_SETXATTR
14025
/* Define to 1 if you have the `sinl' function. */
14028
Index: libgo/configure.ac
14029
===================================================================
14030
--- a/src/libgo/configure.ac (.../tags/gcc_4_8_2_release)
14031
+++ b/src/libgo/configure.ac (.../branches/gcc-4_8-branch)
14032
@@ -503,7 +503,7 @@
14033
AM_CONDITIONAL(HAVE_STRERROR_R, test "$ac_cv_func_strerror_r" = yes)
14034
AM_CONDITIONAL(HAVE_WAIT4, test "$ac_cv_func_wait4" = yes)
14036
-AC_CHECK_FUNCS(accept4 epoll_create1 faccessat fallocate fchmodat fchownat futimesat inotify_add_watch inotify_init inotify_init1 inotify_rm_watch mkdirat mknodat openat pipe2 renameat sync_file_range splice tee unlinkat unshare utimensat)
14037
+AC_CHECK_FUNCS(accept4 dup3 epoll_create1 faccessat fallocate fchmodat fchownat futimesat getxattr inotify_add_watch inotify_init inotify_init1 inotify_rm_watch listxattr mkdirat mknodat openat pipe2 removexattr renameat setxattr sync_file_range splice tee unlinkat unshare utimensat)
14039
AC_CHECK_TYPES([loff_t])
14041
Index: libgo/go/go/build/syslist.go
14042
===================================================================
14043
--- a/src/libgo/go/go/build/syslist.go (.../tags/gcc_4_8_2_release)
14044
+++ b/src/libgo/go/go/build/syslist.go (.../branches/gcc-4_8-branch)
14046
+// Copyright 2011 The Go Authors. All rights reserved.
14047
+// Use of this source code is governed by a BSD-style
14048
+// license that can be found in the LICENSE file.
14052
+const goosList = "darwin dragonfly freebsd linux netbsd openbsd plan9 windows solaris "
14053
+const goarchList = "386 amd64 arm alpha m68k mipso32 mipsn32 mipsn64 mipso64 ppc ppc64 sparc sparc64 "
14054
Index: libgo/go/syscall/libcall_linux.go
14055
===================================================================
14056
--- a/src/libgo/go/syscall/libcall_linux.go (.../tags/gcc_4_8_2_release)
14057
+++ b/src/libgo/go/syscall/libcall_linux.go (.../branches/gcc-4_8-branch)
14058
@@ -190,6 +190,9 @@
14059
//sys Adjtimex(buf *Timex) (state int, err error)
14060
//adjtimex(buf *Timex) _C_int
14062
+//sysnb Dup3(oldfd int, newfd int, flags int) (err error)
14063
+//dup3(oldfd _C_int, newfd _C_int, flags _C_int) _C_int
14065
//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error)
14066
//faccessat(dirfd _C_int, pathname *byte, mode _C_int, flags _C_int) _C_int
14068
@@ -268,6 +271,9 @@
14069
return origlen - len(buf), count, names
14072
+//sys Getxattr(path string, attr string, dest []byte) (sz int, err error)
14073
+//getxattr(path *byte, attr *byte, buf *byte, count Size_t) Ssize_t
14075
//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error)
14076
//inotify_add_watch(fd _C_int, pathname *byte, mask uint32) _C_int
14078
@@ -283,6 +289,9 @@
14079
//sys Klogctl(typ int, buf []byte) (n int, err error)
14080
//klogctl(typ _C_int, bufp *byte, len _C_int) _C_int
14082
+//sys Listxattr(path string, dest []byte) (sz int, err error)
14083
+//listxattr(path *byte, list *byte, size Size_t) Ssize_t
14085
//sys Mkdirat(dirfd int, path string, mode uint32) (err error)
14086
//mkdirat(dirfd _C_int, path *byte, mode Mode_t) _C_int
14088
@@ -305,6 +314,9 @@
14089
//sys PivotRoot(newroot string, putold string) (err error)
14090
//pivot_root(newroot *byte, putold *byte) _C_int
14092
+//sys Removexattr(path string, attr string) (err error)
14093
+//removexattr(path *byte, name *byte) _C_int
14095
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
14096
//renameat(olddirfd _C_int, oldpath *byte, newdirfd _C_int, newpath *byte) _C_int
14098
@@ -338,6 +350,9 @@
14099
//sysnb Setresuid(ruid int, eguid int, suid int) (err error)
14100
//setresuid(ruid Uid_t, euid Uid_t, suid Uid_t) _C_int
14102
+//sys Setxattr(path string, attr string, data []byte, flags int) (err error)
14103
+//setxattr(path *byte, name *byte, value *byte, size Size_t, flags _C_int) _C_int
14105
//sys splice(rfd int, roff *_loff_t, wfd int, woff *_loff_t, len int, flags int) (n int64, err error)
14106
//splice(rfd _C_int, roff *_loff_t, wfd _C_int, woff *_loff_t, len Size_t, flags _C_uint) Ssize_t
14107
func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
14108
Index: libgo/go/syscall/socket.go
14109
===================================================================
14110
--- a/src/libgo/go/syscall/socket.go (.../tags/gcc_4_8_2_release)
14111
+++ b/src/libgo/go/syscall/socket.go (.../branches/gcc-4_8-branch)
14116
-const SizeofSockaddrAny = 0x1c
14117
+const SizeofSockaddrAny = 0x6c
14119
type SockaddrInet4 struct {
14121
Index: libgo/go/syscall/libcall_posix.go
14122
===================================================================
14123
--- a/src/libgo/go/syscall/libcall_posix.go (.../tags/gcc_4_8_2_release)
14124
+++ b/src/libgo/go/syscall/libcall_posix.go (.../branches/gcc-4_8-branch)
14125
@@ -238,6 +238,9 @@
14126
//sysnb Getppid() (ppid int)
14129
+//sys Getpriority(which int, who int) (prio int, err error)
14130
+//getpriority(which _C_int, who _C_int) _C_int
14132
//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
14133
//getrlimit(resource _C_int, rlim *Rlimit) _C_int
14135
@@ -307,6 +310,9 @@
14136
//sysnb Setpgid(pid int, pgid int) (err error)
14137
//setpgid(pid Pid_t, pgid Pid_t) _C_int
14139
+//sys Setpriority(which int, who int, prio int) (err error)
14140
+//setpriority(which _C_int, who _C_int, prio _C_int) _C_int
14142
//sysnb Setreuid(ruid int, euid int) (err error)
14143
//setreuid(ruid Uid_t, euid Uid_t) _C_int
14145
Index: libgo/Makefile.am
14146
===================================================================
14147
--- a/src/libgo/Makefile.am (.../tags/gcc_4_8_2_release)
14148
+++ b/src/libgo/Makefile.am (.../branches/gcc-4_8-branch)
14149
@@ -424,6 +424,7 @@
14150
runtime/go-caller.c \
14151
runtime/go-callers.c \
14152
runtime/go-can-convert-interface.c \
14153
+ runtime/go-cdiv.c \
14155
runtime/go-check-interface.c \
14156
runtime/go-construct-map.c \
14157
@@ -1254,7 +1255,7 @@
14158
go/go/build/build.go \
14159
go/go/build/doc.go \
14160
go/go/build/read.go \
14162
+ go/go/build/syslist.go
14163
go_go_doc_files = \
14164
go/go/doc/comment.go \
14166
@@ -2712,15 +2713,6 @@
14168
.PHONY: go/build/check
14170
-syslist.go: s-syslist; @true
14171
-s-syslist: Makefile
14172
- echo '// Generated automatically by make.' >syslist.go.tmp
14173
- echo 'package build' >>syslist.go.tmp
14174
- echo 'const goosList = "$(GOOS)"' >>syslist.go.tmp
14175
- echo 'const goarchList = "$(GOARCH)"' >>syslist.go.tmp
14176
- $(SHELL) $(srcdir)/../move-if-change syslist.go.tmp syslist.go
14179
@go_include@ go/doc.lo.dep
14180
go/doc.lo.dep: $(go_go_doc_files)
14182
Index: libcpp/po/ChangeLog
14183
===================================================================
14184
--- a/src/libcpp/po/ChangeLog (.../tags/gcc_4_8_2_release)
14185
+++ b/src/libcpp/po/ChangeLog (.../branches/gcc-4_8-branch)
14187
+2013-11-01 Joseph Myers <joseph@codesourcery.com>
14191
2013-10-16 Release Manager
14193
* GCC 4.8.2 released.
14194
Index: libcpp/po/tr.po
14195
===================================================================
14196
--- a/src/libcpp/po/tr.po (.../tags/gcc_4_8_2_release)
14197
+++ b/src/libcpp/po/tr.po (.../branches/gcc-4_8-branch)
14199
# Turkish translations for cpplib messages.
14200
# Copyright (C) 2007 Free Software Foundation, Inc.
14201
+# This file is distributed under the same license as the gcc package.
14203
# Nilgün Belma Bugüner <nilgun@buguner.name.tr>, 2001, ..., 2007.
14204
+# Volkan Gezer <vlkngzr@gmail.com>, 2013.
14207
-"Project-Id-Version: cpplib 4.2.0\n"
14208
+"Project-Id-Version: cpplib 4.8.0\n"
14209
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
14210
-"POT-Creation-Date: 2013-02-24 01:05+0000\n"
14211
-"PO-Revision-Date: 2007-05-23 01:17+0300\n"
14212
-"Last-Translator: Nilgün Belma Bugüner <nilgun@buguner.name.tr>\n"
14213
+"POT-Creation-Date: 2013-03-15 17:42+0000\n"
14214
+"PO-Revision-Date: 2013-11-01 22:29+0100\n"
14215
+"Last-Translator: Volkan Gezer <vlkngzr@gmail.com>\n"
14216
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
14218
"MIME-Version: 1.0\n"
14219
"Content-Type: text/plain; charset=UTF-8\n"
14220
"Content-Transfer-Encoding: 8bit\n"
14221
-"X-Generator: KBabel 1.11.4\n"
14222
+"X-Generator: Lokalize 1.5\n"
14223
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
14226
@@ -121,10 +123,9 @@
14227
msgstr "ISO standardı olmayan önceleme dizgesi, '\\%c'"
14230
-#, fuzzy, c-format
14231
-#| msgid "unknown escape sequence '\\%c'"
14233
msgid "unknown escape sequence: '\\%c'"
14234
-msgstr "bilinmeyen önceleme dizgesi '\\%c'"
14235
+msgstr "bilinmeyen kaçış dizgesi: '\\%c'"
14239
@@ -163,10 +164,9 @@
14240
msgstr "#%s bir GCC uzantısıdır"
14242
#: directives.c:362
14243
-#, fuzzy, c-format
14244
-#| msgid "#%s is a GCC extension"
14246
msgid "#%s is a deprecated GCC extension"
14247
-msgstr "#%s bir GCC uzantısıdır"
14248
+msgstr "#%s eskimiş bir GCC uzantısıdır"
14250
#: directives.c:375
14251
msgid "suggest not using #elif in traditional C"
14252
@@ -247,7 +247,7 @@
14254
#: directives.c:909
14255
msgid "unexpected end of file after #line"
14257
+msgstr "#line satırından sonra beklenmeyen dosya sonu"
14259
#: directives.c:912
14261
@@ -271,7 +271,7 @@
14262
#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
14268
#: directives.c:1096
14270
@@ -312,16 +312,12 @@
14271
msgstr "main dosyasında '#pragma once'"
14273
#: directives.c:1462
14275
-#| msgid "invalid #pragma GCC poison directive"
14276
msgid "invalid #pragma push_macro directive"
14277
-msgstr "geçersiz #pragma GCC poison yönergesi"
14278
+msgstr "geçersiz #pragma güdümlü_makro yönergesi"
14280
#: directives.c:1517
14282
-#| msgid "invalid #pragma GCC poison directive"
14283
msgid "invalid #pragma pop_macro directive"
14284
-msgstr "geçersiz #pragma GCC poison yönergesi"
14285
+msgstr "geçersiz #pragma güdümlü_makro yönergesi"
14287
#: directives.c:1572
14288
msgid "invalid #pragma GCC poison directive"
14289
@@ -347,10 +343,9 @@
14290
msgstr "mevcut dosya %s den daha eski"
14292
#: directives.c:1653
14293
-#, fuzzy, c-format
14294
-#| msgid "invalid #pragma GCC poison directive"
14296
msgid "invalid \"#pragma GCC %s\" directive"
14297
-msgstr "geçersiz #pragma GCC poison yönergesi"
14298
+msgstr "geçersiz \"#pragma GCC %s\" yönergesi"
14300
#: directives.c:1847
14301
msgid "_Pragma takes a parenthesized string literal"
14302
@@ -405,7 +400,7 @@
14303
msgid "\"%s\" re-asserted"
14304
msgstr "\"%s\" tekrar olumlanmış"
14306
-#: directives.c:2566
14307
+#: directives.c:2567
14309
msgid "unterminated #%s"
14310
msgstr "sonlandırılmamış #%s"
14311
@@ -424,16 +419,12 @@
14314
#: expr.c:479 expr.c:577
14316
-#| msgid "imaginary constants are a GCC extension"
14317
msgid "fixed-point constants are a GCC extension"
14318
-msgstr "sanal sabitler bir GCC genişletmesidir"
14319
+msgstr "sabit noktalı sabitler bir GCC uzantısıdır"
14323
-#| msgid "invalid suffix \"%.*s\" on floating constant"
14324
msgid "invalid prefix \"0b\" for floating constant"
14325
-msgstr "gerçel sabitin \"%.*s\" soneki geçersiz"
14326
+msgstr "kayan nokta için geçerisz \"0b\" öntakısı"
14329
msgid "use of C99 hexadecimal floating constant"
14330
@@ -450,10 +441,8 @@
14331
msgstr "geleneksel C \"%.*s\" sonekini kullanmaz"
14335
-#| msgid "imaginary constants are a GCC extension"
14336
msgid "suffix for double constant is a GCC extension"
14337
-msgstr "sanal sabitler bir GCC genişletmesidir"
14338
+msgstr "çift sabit için öntakı bir GCC uzantısıdır"
14342
@@ -461,10 +450,8 @@
14343
msgstr "onaltılık kayan sabitli \"%.*s\" soneki geçersiz"
14347
-#| msgid "imaginary constants are a GCC extension"
14348
msgid "decimal float constants are a GCC extension"
14349
-msgstr "sanal sabitler bir GCC genişletmesidir"
14350
+msgstr "onluk kayan sabitler bir GCC uzantısıdır"
14354
@@ -472,10 +459,8 @@
14355
msgstr "tamsayı sabitte sonek \"%.*s\" soneki geçersiz"
14359
-#| msgid "use of C99 long long integer constant"
14360
msgid "use of C++0x long long integer constant"
14361
-msgstr "ISO C99 long long tamsayı sabitleri yasaklar"
14362
+msgstr "ISO C++0x long long tamsayı sabitlerinin kullanımı"
14365
msgid "use of C99 long long integer constant"
14366
@@ -486,10 +471,8 @@
14367
msgstr "sanal sabitler bir GCC genişletmesidir"
14371
-#| msgid "imaginary constants are a GCC extension"
14372
msgid "binary constants are a GCC extension"
14373
-msgstr "sanal sabitler bir GCC genişletmesidir"
14374
+msgstr "ikili sabitler bir GCC uzantısıdır"
14377
msgid "integer constant is too large for its type"
14378
@@ -517,10 +500,8 @@
14379
msgstr "\"defined\" bu kullanımıyla uyarlanabilir olmayabilir"
14383
-#| msgid "integer overflow in preprocessor expression"
14384
msgid "user-defined literal in preprocessor expression"
14385
-msgstr "önişlemci ifadesinde tamsayı taşması"
14386
+msgstr "önişleyici ifadesinde kullanıcı tanımlı bağımlı"
14389
msgid "floating constant in preprocessor expression"
14390
@@ -536,20 +517,17 @@
14391
msgstr "\"%s\" tanımlı değil"
14395
-#| msgid "#%s is a GCC extension"
14396
msgid "assertions are a GCC extension"
14397
-msgstr "#%s bir GCC uzantısıdır"
14398
+msgstr "belirteçler bir GCC uzantısıdır"
14401
msgid "assertions are a deprecated extension"
14403
+msgstr "belirteçler artık kullanılmayan bir ifadedir"
14406
-#, fuzzy, c-format
14407
-#| msgid "unbalanced stack in #if"
14409
msgid "unbalanced stack in %s"
14410
-msgstr "#if ifadesinde karşılıksız yığın"
14411
+msgstr "%s içinde dengelenmemiş yığın"
14415
@@ -594,39 +572,39 @@
14416
msgid "division by zero in #if"
14417
msgstr "#if içinde sıfırla bölme"
14421
msgid "NULL directory in find_file"
14422
msgstr "find_file içinde boş dizin"
14426
msgid "one or more PCH files were found, but they were invalid"
14427
msgstr "bir veya daha fazla PCH dosyası bulundu ama bunlar geçersiz"
14431
msgid "use -Winvalid-pch for more information"
14432
msgstr "daha fazla bilgi almak için -Winvalid-pch kullanın"
14437
msgid "%s is a block device"
14438
msgstr "%s bir blok aygıtıdır"
14443
msgid "%s is too large"
14444
msgstr "%s çok büyük"
14449
msgid "%s is shorter than expected"
14450
msgstr "%s beklenenden daha kısa"
14455
msgid "no include path in which to search for %s"
14456
msgstr "%s için aranacaklar içinde başlık dosyaları yolu yok"
14460
msgid "Multiple include guards may be useful for:\n"
14461
msgstr "Çoklu include önlemleri aşağıdakiler için kullanışlı olabilir:\n"
14463
@@ -717,27 +695,24 @@
14464
#: lex.c:1178 lex.c:1255
14466
msgid "identifier \"%s\" is a special operator name in C++"
14468
+msgstr "\"%s\" belirteci, C++'da özel bir işleç adıdır"
14471
msgid "raw string delimiter longer than 16 characters"
14473
+msgstr "ham dizge ayracı 16 karakterden uzun"
14476
-#, fuzzy, c-format
14477
-#| msgid "universal character %.*s is not valid in an identifier"
14479
msgid "invalid character '%c' in raw string delimiter"
14480
-msgstr "evrensel karakter %.*s bir belirteç içinde geçerli değil"
14481
+msgstr "ham dizge ayracında geçersiz karakter '%c'"
14483
#: lex.c:1525 lex.c:1547
14485
-#| msgid "unterminated #%s"
14486
msgid "unterminated raw string"
14487
-msgstr "sonlandırılmamış #%s"
14488
+msgstr "bitirilmemiş ham dizge"
14490
#: lex.c:1573 lex.c:1706
14491
msgid "invalid suffix on literal; C++11 requires a space between literal and identifier"
14493
+msgstr "geçersiz ifade soneki; C++11 ifade ve tanımlayıcı arasında bir boşluk gerektirir"
14496
msgid "null character(s) preserved in literal"
14497
@@ -785,7 +760,7 @@
14500
msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
14502
+msgstr "__COUNTER__ -fdirectives-only ile talimat içerisinde genişletildi"
14505
msgid "invalid string literal, ignoring final '\\'"
14506
@@ -823,7 +798,7 @@
14509
msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
14511
+msgstr "%s makrosu %d argümanı uygulanıyor: ISO C90 ve ISO C++98 içerisinde boş makro argümanları tanımsızdır"
14515
@@ -890,38 +865,36 @@
14516
msgid "invalid hash type %d in cpp_macro_definition"
14517
msgstr "cpp_macro_definition içindeki isimli yapı türü %d geçersiz"
14519
-#: pch.c:87 pch.c:335 pch.c:347 pch.c:365 pch.c:371 pch.c:380 pch.c:387
14520
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
14521
msgid "while writing precompiled header"
14522
msgstr "önderlemeli başlık yazılırken"
14525
-#, fuzzy, c-format
14526
-#| msgid "%s: not used because `%s' is defined"
14529
msgid "%s: not used because `%.*s' is poisoned"
14530
-msgstr "%s: `%s' tanımlı olduğundan kullanılmadı"
14531
+msgstr "%s: `%.*s' zehirli olduğu için kullanılmadı"
14536
msgid "%s: not used because `%.*s' not defined"
14537
msgstr "%s: `%.*s' tanımlı olmadığından kullanılmadı"
14542
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
14543
msgstr "%s: `%.*s' kullanılmadı çünkü `%s' olarak tanımlı, `%.*s' değil"
14548
msgid "%s: not used because `%s' is defined"
14549
msgstr "%s: `%s' tanımlı olduğundan kullanılmadı"
14552
-#, fuzzy, c-format
14553
-#| msgid "%s: not used because `%s' is defined"
14556
msgid "%s: not used because `__COUNTER__' is invalid"
14557
-msgstr "%s: `%s' tanımlı olduğundan kullanılmadı"
14558
+msgstr "%s: `__COUNTER__' geçersiz olduğundan kullanılmadı"
14560
-#: pch.c:711 pch.c:886
14561
+#: pch.c:723 pch.c:898
14562
msgid "while reading precompiled header"
14563
msgstr "önderlemeli başlık okunurken"
14566
===================================================================
14567
--- a/src/. (.../tags/gcc_4_8_2_release)
14568
+++ b/src/. (.../branches/gcc-4_8-branch)
14570
Property changes on: .
14571
___________________________________________________________________
14572
Modified: svn:mergeinfo
14573
Merged /trunk:r202766,204547