~ubuntu-branches/debian/sid/gcc-4.8/sid

« back to all changes in this revision

Viewing changes to .svn/pristine/1e/1e9e8155714a77b5cf366b90396ebcdf8e0b3419.svn-base

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2014-12-19 19:48:34 UTC
  • Revision ID: package-import@ubuntu.com-20141219194834-4dz1q7rrn5pad823
Tags: 4.8.4-1
* GCC 4.8.4 release.
  - Fix PR target/61407 (darwin), PR middle-end/58624 (ice),
    PR sanitizer/64265 (wrong code).
* Require recent binutils to pass go test failures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# DP: updates from the 4.8 branch upto 20131129 (r205535).
 
2
 
 
3
last_updated()
 
4
{
 
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)
 
8
EOF
 
9
}
 
10
 
 
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'
 
14
 
 
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 @@
 
20
 fi
 
21
 
 
22
 # For libtool versioning info, format is CURRENT:REVISION:AGE
 
23
-libtool_VERSION=6:18:0
 
24
+libtool_VERSION=6:19:0
 
25
 
 
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)
 
32
@@ -203,6 +203,7 @@
 
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>
 
37
     </itemizedlist>
 
38
     </listitem>
 
39
 
 
40
@@ -261,6 +262,7 @@
 
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>
 
45
     </itemizedlist>
 
46
     <para>
 
47
       Note 1: Error should be libstdc++.so.3.0.3.
 
48
@@ -324,6 +326,7 @@
 
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>
 
53
     </itemizedlist>
 
54
     </listitem>
 
55
 
 
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)
 
60
@@ -877,10 +877,11 @@
 
61
       <entry/>
 
62
     </row>
 
63
     <row>
 
64
+      <?dbhtml bgcolor="#B0B0B0" ?>
 
65
       <entry>20.9.7.6</entry>
 
66
       <entry>Other transformations</entry>
 
67
-      <entry>Y</entry>
 
68
-      <entry/>
 
69
+      <entry>Partial</entry>
 
70
+      <entry>Missing <code>aligned_union</code>.</entry>
 
71
     </row>
 
72
     <row>
 
73
       <entry>20.10</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)
 
78
@@ -20,6 +20,7 @@
 
79
     <year>2010</year>
 
80
     <year>2011</year>
 
81
     <year>2012</year>
 
82
+    <year>2013</year>
 
83
     <holder>
 
84
       <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.fsf.org">FSF</link>
 
85
     </holder>
 
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)
 
90
@@ -1,2 +1,2 @@
 
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)
 
100
@@ -1,2 +1,2 @@
 
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)
 
110
@@ -1,9 +1,9 @@
 
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 © 
 
114
       2008, 2010
 
115
      
 
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">
 
119
       What is libstdc++?
 
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)
 
126
@@ -1,5 +1,5 @@
 
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
 
132
       </a>
 
133
@@ -20,7 +20,7 @@
 
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. 
 
139
   Introduction
 
140
   
 
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. 
 
142
@@ -34,13 +34,13 @@
 
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. 
 
144
   Utilities
 
145
   
 
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. 
 
148
   Strings
 
149
   
 
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. 
 
151
   Localization
 
152
   
 
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. 
 
155
   Containers
 
156
   
 
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)
 
162
@@ -1,12 +1,12 @@
 
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 © 
 
166
       2008
 
167
     , 
 
168
       2010
 
169
      
 
170
       <a class="link" href="http://www.fsf.org/" target="_top">FSF
 
171
       </a>
 
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
 
175
       </a>
 
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)
 
181
@@ -1,5 +1,5 @@
 
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. 
 
185
   Support
 
186
   
 
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)
 
192
@@ -1,13 +1,13 @@
 
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. 
 
196
   Iterators
 
197
   
 
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. 
 
199
     Standard Contents
 
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. 
 
201
   Iterators
 
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>
 
206
      The following
 
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)
 
213
@@ -1,5 +1,5 @@
 
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)
 
224
@@ -1,5 +1,5 @@
 
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. 
 
228
   Numerics
 
229
   
 
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)
 
235
@@ -1,8 +1,8 @@
 
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. 
 
239
   Extensions
 
240
   
 
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)
 
250
@@ -1,5 +1,5 @@
 
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. 
 
254
   Containers
 
255
   
 
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)
 
261
@@ -1,5 +1,5 @@
 
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)
 
272
@@ -1,13 +1,13 @@
 
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. 
 
276
   Introduction
 
277
   
 
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.
 
281
 </p><p>
 
282
 This page describes the C++ support in mainline GCC SVN, not in any
 
283
 particular release.
 
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>
 
289
@@ -157,7 +157,7 @@
 
290
 </p><p>
 
291
 This page describes the C++11 support in mainline GCC SVN, not in any
 
292
 particular release.
 
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>
 
298
@@ -183,7 +183,7 @@
 
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">&lt;ratio&gt;</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">&lt;scoped_allocator&gt;</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">&lt;ratio&gt;</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">&lt;scoped_allocator&gt;</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>
 
307
@@ -302,7 +302,7 @@
 
308
 </p><p>
 
309
 This page describes the TR1 support in mainline GCC SVN, not in any particular
 
310
 release.
 
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">&lt;functional&gt;</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">&lt;memory&gt;</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">&lt;functional&gt;</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">&lt;memory&gt;</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">
 
313
        <p>
 
314
          Uses code from
 
315
          <a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">boost::shared_ptr</a>.
 
316
@@ -323,7 +323,7 @@
 
317
 </p><p>
 
318
 This page describes the TR 24733 support in mainline GCC SVN, not in any
 
319
 particular release.
 
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)
 
329
@@ -1,5 +1,5 @@
 
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)
 
340
@@ -1,5 +1,5 @@
 
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
 
347
@@ -391,7 +391,7 @@
 
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)
 
360
@@ -1,5 +1,5 @@
 
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
 
367
@@ -170,7 +170,7 @@
 
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
 
376
@@ -252,7 +252,7 @@
 
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
 
385
@@ -305,7 +305,7 @@
 
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
 
394
@@ -344,7 +344,7 @@
 
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
 
403
@@ -428,7 +428,7 @@
 
404
        </p><p>
 
405
          This library contains a container tag hierarchy corresponding to the
 
406
          diagram below.
 
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>.
 
412
@@ -487,7 +487,7 @@
 
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 -
 
421
@@ -504,7 +504,7 @@
 
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
 
430
@@ -524,7 +524,7 @@
 
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">
 
436
                g(r, m) = r mod m
 
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
 
439
@@ -535,9 +535,9 @@
 
440
            implement using the low
 
441
            level % (modulo) operation (for any m), or the
 
442
            low level &amp; (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">
 
445
                g(r, m) = r % m
 
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 &amp; 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
 
451
@@ -563,7 +563,7 @@
 
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 =
 
460
@@ -575,7 +575,7 @@
 
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>
 
481
                Probing tables
 
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>,
 
484
@@ -634,7 +634,7 @@
 
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">
 
505
                p<sub>1</sub> = 
 
506
@@ -684,7 +684,7 @@
 
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>)
 
509
            . Let
 
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 ) = 
 
515
@@ -723,7 +723,7 @@
 
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>
 
524
@@ -732,8 +732,8 @@
 
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>
 
535
@@ -876,7 +876,7 @@
 
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,
 
544
@@ -890,7 +890,7 @@
 
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>
 
553
@@ -919,7 +919,7 @@
 
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>.
 
562
@@ -938,7 +938,7 @@
 
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
 
571
@@ -946,7 +946,7 @@
 
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?
 
580
@@ -988,7 +988,7 @@
 
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
 
619
          D.
 
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&lt;Cntnr&gt;</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)
 
647
@@ -1,8 +1,8 @@
 
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. 
 
651
   Introduction
 
652
   
 
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
 
656
       by
 
657
       several <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Invoking-GCC.html" target="_top">GCC
 
658
@@ -10,5 +10,5 @@
 
659
       enumerated and detailed in the table below.
 
660
     </p><p>
 
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 &lt;thread&gt;, &lt;future&gt;,
 
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 &lt;thread&gt;, &lt;future&gt;,
 
664
       &lt;mutex&gt;, or &lt;condition_variable&gt;.</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)
 
670
@@ -1,5 +1,5 @@
 
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)
 
681
@@ -1,8 +1,8 @@
 
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. 
 
685
   Extensions
 
686
   
 
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
 
691
     with bits:
 
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)
 
696
@@ -1,5 +1,5 @@
 
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 &lt;ext/concurrence.h&gt;
 
702
 
 
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)
 
707
@@ -1,8 +1,8 @@
 
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. 
 
711
   Extensions
 
712
   
 
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)
 
722
@@ -1,5 +1,5 @@
 
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. 
 
726
   Support
 
727
   
 
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)
 
733
@@ -1,5 +1,5 @@
 
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>.
 
738
    </p><p>
 
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)
 
744
@@ -1,13 +1,13 @@
 
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. 
 
748
   Concurrency
 
749
   
 
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. 
 
751
     Standard Contents
 
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. 
 
753
   Concurrency
 
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)
 
765
@@ -1,5 +1,5 @@
 
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. 
 
769
   Extensions
 
770
   
 
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)
 
776
@@ -1,8 +1,8 @@
 
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. 
 
780
   Extensions
 
781
   
 
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
 
787
@@ -248,7 +248,7 @@
 
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
 
796
@@ -256,7 +256,7 @@
 
797
          </p><p>
 
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
 
805
@@ -375,7 +375,7 @@
 
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
 
808
              label B.
 
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
 
814
@@ -426,7 +426,7 @@
 
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
 
817
              complicated.
 
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.
 
823
@@ -442,7 +442,7 @@
 
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.
 
832
@@ -678,7 +678,7 @@
 
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
 
848
        </a>
 
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
 
856
        </a>
 
857
       </em>. </span><span class="date">
 
858
        January 1996
 
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)
 
863
@@ -1,5 +1,5 @@
 
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. 
 
867
   Extensions
 
868
   
 
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)
 
874
@@ -1,5 +1,5 @@
 
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
 
881
@@ -75,7 +75,7 @@
 
882
   </p><p>
 
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 -&gt; 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 -&gt; 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)
 
894
@@ -1,13 +1,13 @@
 
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. 
 
898
   Contributing
 
899
   
 
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. 
 
901
   Appendices
 
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>
 
903
   Contributing
 
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
 
911
@@ -36,7 +36,7 @@
 
912
           for this group is quite useful.
 
913
       </p></li><li class="listitem"><p>
 
914
          Peruse
 
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)
 
924
@@ -1,5 +1,5 @@
 
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.
 
930
   </p><p>
 
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)
 
935
@@ -1,8 +1,8 @@
 
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. 
 
939
   Extensions
 
940
   
 
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.
 
945
   </p><p>
 
946
@@ -137,7 +137,7 @@
 
947
    call context.
 
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)
 
959
@@ -1,5 +1,5 @@
 
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. 
 
963
   Input and Output
 
964
   
 
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)
 
970
@@ -1,5 +1,5 @@
 
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. 
 
974
   Utilities
 
975
   
 
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)
 
981
@@ -1,10 +1,9 @@
 
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).
 
987
     </p><p>
 
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)
 
998
@@ -1,5 +1,5 @@
 
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. 
 
1002
   Containers
 
1003
   
 
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)
 
1009
@@ -1,8 +1,8 @@
 
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. 
 
1013
   Extensions
 
1014
   
 
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">&lt;ext/concurrence.h&gt;</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">&lt;ext/concurrence.h&gt;</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)
 
1024
@@ -1,13 +1,13 @@
 
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. 
 
1028
   Support
 
1029
   
 
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. 
 
1031
     Standard Contents
 
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. 
 
1033
   Support
 
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.
 
1040
   </p><p>
 
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)
 
1045
@@ -1,8 +1,8 @@
 
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. 
 
1049
   Extensions
 
1050
   
 
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)
 
1060
@@ -1,5 +1,5 @@
 
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.
 
1066
     </p><p>
 
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)
 
1071
@@ -1,13 +1,13 @@
 
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. 
 
1075
   Numerics
 
1076
   
 
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. 
 
1078
     Standard Contents
 
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. 
 
1080
   Numerics
 
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&lt;&gt;</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)
 
1092
@@ -1,5 +1,5 @@
 
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.
 
1099
@@ -265,7 +265,7 @@
 
1100
   }
 
1101
   catch(...)
 
1102
   { this-&gt;_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)
 
1107
        </a>
 
1108
@@ -274,39 +274,39 @@
 
1109
     . </span><span class="copyright">Copyright © 2008 
 
1110
        The Open Group/The Institute of Electrical and Electronics
 
1111
        Engineers, Inc.
 
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
 
1116
        </a>
 
1117
       </em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams </span>. </span><span class="publisher"><span class="publishername">
 
1118
        Boost
 
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
 
1123
        </a>
 
1124
       </em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams</span>. </span><span class="publisher"><span class="publishername">
 
1125
        Boost
 
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
 
1130
        </a>
 
1131
       </em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
 
1132
        WG21 N1077
 
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
 
1137
        </a>
 
1138
       </em>. </span><span class="author"><span class="firstname">Richard</span> <span class="surname">Henderson</span>. </span><span class="publisher"><span class="publishername">
 
1139
        GNU
 
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
 
1144
        </a>
 
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">
 
1147
       Exceptional C++
 
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
 
1154
        </a>
 
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)
 
1159
@@ -1,5 +1,5 @@
 
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)
 
1170
@@ -1,5 +1,5 @@
 
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)
 
1181
@@ -1,5 +1,5 @@
 
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
 
1186
   
 
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">
 
1190
          C++ ABI Summary
 
1191
        </a>
 
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
 
1196
        </a>
 
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)
 
1201
        </a>
 
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)
 
1206
        </a>
 
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
 
1211
        </a>
 
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
 
1216
        </a>
 
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
 
1221
        </a>
 
1222
       </em>. </span><span class="subtitle">
 
1223
       ISO C++ J16/06-0046
 
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
 
1228
        </a>
 
1229
       </em>. </span><span class="subtitle">
 
1230
       ISO C++ J16/06-0083
 
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)
 
1240
@@ -1,8 +1,8 @@
 
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. 
 
1244
   Introduction
 
1245
   
 
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. 
 
1247
   Introduction
 
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)
 
1258
@@ -1,5 +1,5 @@
 
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)
 
1269
@@ -1,13 +1,13 @@
 
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. 
 
1273
   Atomics
 
1274
   
 
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. 
 
1276
     Standard Contents
 
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. 
 
1278
   Atomics
 
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)
 
1290
@@ -1,5 +1,5 @@
 
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
 
1295
   
 
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)
 
1301
@@ -1,5 +1,5 @@
 
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
 
1308
@@ -61,7 +61,7 @@
 
1309
        In addition, there are the following diagnostics classes,
 
1310
        used to report errors specific to this library's data
 
1311
        structures.
 
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)
 
1321
@@ -1,5 +1,5 @@
 
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)
 
1332
@@ -1,5 +1,5 @@
 
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
 
1339
@@ -62,4 +62,4 @@
 
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)
 
1351
@@ -1,5 +1,5 @@
 
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. 
 
1355
   Extensions
 
1356
   
 
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)
 
1362
@@ -1,5 +1,5 @@
 
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)
 
1373
@@ -1,9 +1,9 @@
 
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. 
 
1377
     Standard Contents
 
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. 
 
1379
     Standard Contents
 
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. 
 
1382
   Support
 
1383
   
 
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. 
 
1385
@@ -12,13 +12,13 @@
 
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. 
 
1387
   Utilities
 
1388
   
 
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. 
 
1391
   Strings
 
1392
   
 
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. 
 
1394
   Localization
 
1395
   
 
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. 
 
1398
   Containers
 
1399
   
 
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)
 
1405
@@ -1,9 +1,9 @@
 
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. 
 
1409
   Appendices
 
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. 
 
1411
   Appendices
 
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. 
 
1414
   Contributing
 
1415
   
 
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)
 
1421
@@ -1,5 +1,5 @@
 
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. 
 
1425
   Utilities
 
1426
   
 
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>
 
1428
@@ -92,7 +92,7 @@
 
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
 
1437
@@ -105,7 +105,7 @@
 
1438
    </p><p>
 
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
 
1446
@@ -142,7 +142,7 @@
 
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++
 
1462
     </em>. </span>
 
1463
       isoc++_1998
 
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?
 
1469
        </a>
 
1470
       </em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
 
1471
        C/C++ Users Journal
 
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
 
1476
        </a>
 
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
 
1481
        </a>
 
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">
 
1485
       Allocator Types
 
1486
        </a>
 
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">
 
1488
        C/C++ Users Journal
 
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">
 
1491
        Addison Wesley
 
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>
 
1497
@@ -445,7 +445,7 @@
 
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&lt;T&gt;</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
 
1506
@@ -492,9 +492,9 @@
 
1507
 aliasing constructor, make_shared &amp; 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>
 
1512
 The
 
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
 
1518
@@ -537,7 +537,7 @@
 
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>
 
1524
     </p><p>
 
1525
 There is a single <code class="classname">_Sp_counted_base</code> class,
 
1526
 which is a template parameterized on the enum
 
1527
@@ -578,7 +578,7 @@
 
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
 
1539
 be private.
 
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>
 
1545
       and
 
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.
 
1551
     </p><p>
 
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
 
1560
        </a>
 
1561
       </em>. </span><span class="subtitle">
 
1562
       N2351
 
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
 
1567
        </a>
 
1568
       </em>. </span><span class="subtitle">
 
1569
       N2456
 
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++
 
1574
        </a>
 
1575
       </em>. </span><span class="subtitle">
 
1576
       N2461
 
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
 
1581
        </a>
 
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)
 
1586
@@ -1,5 +1,5 @@
 
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
 
1591
   
 
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>
 
1593
@@ -77,11 +77,11 @@
 
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&lt;T&gt;</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&lt;T&gt;</code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="classname">std::__malloc_alloc_template&lt;int&gt;</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::debug_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="classname">std::debug_alloc&lt;T&gt;</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__pool_alloc&lt;T&gt;</code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="classname">std::__default_alloc_template&lt;bool,int&gt;</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__mt_alloc&lt;T&gt;</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&lt;T&gt;</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&lt;T&gt;</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&lt;T&gt;</code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="classname">std::__malloc_alloc_template&lt;int&gt;</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::debug_allocator&lt;T&gt;</code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="classname">std::debug_alloc&lt;T&gt;</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__pool_alloc&lt;T&gt;</code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="classname">std::__default_alloc_template&lt;bool,int&gt;</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__mt_alloc&lt;T&gt;</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&lt;T&gt;</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&lt;T&gt;</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&lt;T&gt;</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&lt;T&gt;</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&lt;T&gt;</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.
 
1605
 </p><p>
 
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)
 
1611
@@ -1,5 +1,5 @@
 
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. 
 
1615
   Contributing
 
1616
   
 
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)
 
1622
@@ -1,5 +1,5 @@
 
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. 
 
1626
   Input and Output
 
1627
   
 
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)
 
1633
@@ -1,5 +1,5 @@
 
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. 
 
1637
   Extensions
 
1638
   
 
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)
 
1644
@@ -1,8 +1,8 @@
 
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. 
 
1648
   Extensions
 
1649
   
 
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)
 
1659
@@ -1,5 +1,5 @@
 
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. 
 
1663
   Diagnostics
 
1664
   
 
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)
 
1670
@@ -1,5 +1,5 @@
 
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.
 
1676
 </p><p>
 
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)
 
1681
@@ -1,5 +1,5 @@
 
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. 
 
1685
   Extensions
 
1686
   
 
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)
 
1692
@@ -1,13 +1,13 @@
 
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. 
 
1696
   Strings
 
1697
   
 
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. 
 
1699
     Standard Contents
 
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. 
 
1701
   Strings
 
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)
 
1713
@@ -1,5 +1,5 @@
 
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. 
 
1717
   Containers
 
1718
   
 
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)
 
1724
@@ -1,5 +1,5 @@
 
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_&lt;diagnostic&gt;</code>.
 
1731
@@ -17,7 +17,7 @@
 
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">
 
1740
@@ -374,7 +374,7 @@
 
1741
   Quick Sort for a particular call context.
 
1742
   </p></li><li class="listitem"><p><span class="emphasis"><em>Fundamentals:</em></span>
 
1743
   See papers:
 
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>.
 
1749
@@ -500,7 +500,7 @@
 
1750
   Keep a shadow for each container.  Record iterator dereferences and
 
1751
   container member accesses.  Issue advice for elements referenced by
 
1752
   multiple threads.
 
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)
 
1762
@@ -1,5 +1,5 @@
 
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)
 
1773
@@ -1,5 +1,5 @@
 
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. 
 
1777
   Input and Output
 
1778
   
 
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)
 
1784
@@ -1,5 +1,5 @@
 
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
 
1789
   
 
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>
 
1791
@@ -112,7 +112,7 @@
 
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
 
1800
@@ -232,9 +232,8 @@
 
1801
        member functions.
 
1802
       </p><p>
 
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>
 
1812
@@ -310,7 +309,7 @@
 
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">&lt;i&gt;</td><td align="left">@a word</td></tr><tr><td align="left">&lt;b&gt;</td><td align="left">@b word</td></tr><tr><td align="left">&lt;code&gt;</td><td align="left">@c word</td></tr><tr><td align="left">&lt;em&gt;</td><td align="left">@a word</td></tr><tr><td align="left">&lt;em&gt;</td><td align="left">&lt;em&gt;two words or more&lt;/em&gt;</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">&lt;i&gt;</td><td align="left">@a word</td></tr><tr><td align="left">&lt;b&gt;</td><td align="left">@b word</td></tr><tr><td align="left">&lt;code&gt;</td><td align="left">@c word</td></tr><tr><td align="left">&lt;em&gt;</td><td align="left">@a word</td></tr><tr><td align="left">&lt;em&gt;</td><td align="left">&lt;em&gt;two words or more&lt;/em&gt;</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">&lt;p&gt;</td><td align="left">&lt;para&gt;</td></tr><tr><td align="left">&lt;pre&gt;</td><td align="left">&lt;computeroutput&gt;, &lt;programlisting&gt;,
 
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">&lt;p&gt;</td><td align="left">&lt;para&gt;</td></tr><tr><td align="left">&lt;pre&gt;</td><td align="left">&lt;computeroutput&gt;, &lt;programlisting&gt;,
 
1827
        &lt;literallayout&gt;</td></tr><tr><td align="left">&lt;ul&gt;</td><td align="left">&lt;itemizedlist&gt;</td></tr><tr><td align="left">&lt;ol&gt;</td><td align="left">&lt;orderedlist&gt;</td></tr><tr><td align="left">&lt;il&gt;</td><td align="left">&lt;listitem&gt;</td></tr><tr><td align="left">&lt;dl&gt;</td><td align="left">&lt;variablelist&gt;</td></tr><tr><td align="left">&lt;dt&gt;</td><td align="left">&lt;term&gt;</td></tr><tr><td align="left">&lt;dd&gt;</td><td align="left">&lt;listitem&gt;</td></tr><tr><td align="left">&lt;a href=""&gt;</td><td align="left">&lt;ulink url=""&gt;</td></tr><tr><td align="left">&lt;code&gt;</td><td align="left">&lt;literal&gt;, &lt;programlisting&gt;</td></tr><tr><td align="left">&lt;strong&gt;</td><td align="left">&lt;emphasis&gt;</td></tr><tr><td align="left">&lt;em&gt;</td><td align="left">&lt;emphasis&gt;</td></tr><tr><td align="left">"</td><td align="left">&lt;quote&gt;</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">&lt;structname&gt;</td><td align="left">&lt;structname&gt;char_traits&lt;/structname&gt;</td></tr><tr><td align="left">&lt;classname&gt;</td><td align="left">&lt;classname&gt;string&lt;/classname&gt;</td></tr><tr><td align="left">&lt;function&gt;</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">&lt;structname&gt;</td><td align="left">&lt;structname&gt;char_traits&lt;/structname&gt;</td></tr><tr><td align="left">&lt;classname&gt;</td><td align="left">&lt;classname&gt;string&lt;/classname&gt;</td></tr><tr><td align="left">&lt;function&gt;</td><td align="left">
 
1832
        <p>&lt;function&gt;clear()&lt;/function&gt;</p>
 
1833
        <p>&lt;function&gt;fs.clear()&lt;/function&gt;</p>
 
1834
       </td></tr><tr><td align="left">&lt;type&gt;</td><td align="left">&lt;type&gt;long long&lt;/type&gt;</td></tr><tr><td align="left">&lt;varname&gt;</td><td align="left">&lt;varname&gt;fs&lt;/varname&gt;</td></tr><tr><td align="left">&lt;literal&gt;</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)
 
1839
@@ -1,11 +1,11 @@
 
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. 
 
1843
   Extensions
 
1844
   
 
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. 
 
1846
   Extensions
 
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)
 
1858
@@ -1,5 +1,5 @@
 
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
 
1865
@@ -18,6 +18,6 @@
 
1866
   mode or with debug mode. The
 
1867
   following table provides the names and headers of the debugging
 
1868
   containers:
 
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">&lt;debug/bitset&gt;</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">&lt;debug/deque&gt;</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">&lt;debug/list&gt;</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">&lt;debug/map&gt;</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">&lt;debug/map&gt;</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">&lt;debug/set&gt;</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">&lt;debug/set&gt;</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">&lt;debug/string&gt;</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">&lt;debug/string&gt;</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">&lt;debug/string&gt;</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">&lt;debug/vector&gt;</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">&lt;debug/bitset&gt;</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">&lt;debug/deque&gt;</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">&lt;debug/list&gt;</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">&lt;debug/map&gt;</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">&lt;debug/map&gt;</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">&lt;debug/set&gt;</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">&lt;debug/set&gt;</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">&lt;debug/string&gt;</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">&lt;debug/string&gt;</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">&lt;debug/string&gt;</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">&lt;debug/vector&gt;</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">&lt;debug/unordered_map&gt;</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">&lt;debug/unordered_map&gt;</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">&lt;debug/unordered_set&gt;</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">&lt;debug/unordered_set&gt;</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">&lt;debug/unordered_map&gt;</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">&lt;debug/unordered_map&gt;</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">&lt;debug/unordered_set&gt;</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">&lt;debug/unordered_set&gt;</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)
 
1880
@@ -1,8 +1,8 @@
 
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. 
 
1884
   Extensions
 
1885
   
 
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.
 
1889
 </p><p>
 
1890
 Several of the standard algorithms, for instance
 
1891
@@ -12,11 +12,11 @@
 
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)
 
1909
@@ -1,5 +1,5 @@
 
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)
 
1920
@@ -1,8 +1,8 @@
 
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. 
 
1924
   Introduction
 
1925
   
 
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)
 
1935
@@ -1,5 +1,5 @@
 
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
 
1940
   
 
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
 
1950
        </a>
 
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
 
1955
        </a>
 
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
 
1960
        </a>
 
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)
 
1965
@@ -1,5 +1,5 @@
 
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. 
 
1969
   Contributing
 
1970
   
 
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)
 
1976
@@ -1,5 +1,5 @@
 
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)
 
1987
@@ -1,8 +1,8 @@
 
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. 
 
1991
   Localization
 
1992
   
 
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&lt;wchar_t, char, mbstate_t&gt; ,
 
1996
 conversions are made between the internal character set (always UCS4
 
1997
 on GNU/Linux) and whatever the currently selected locale for the
 
1998
@@ -49,24 +49,24 @@
 
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">
 
2004
       The GNU C Library
 
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">
 
2007
       Correspondence
 
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)
 
2018
        </a>
 
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">
 
2024
        Addison Wesley
 
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">
 
2036
       The GNU C Library
 
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">
 
2041
       Correspondence
 
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)
 
2052
        </a>
 
2053
       </em>. </span><span class="copyright">Copyright © 2008 
 
2054
        The Open Group/The Institute of Electrical and Electronics
 
2055
        Engineers, Inc.
 
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">
 
2060
        Addison Wesley
 
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
 
2072
        </a>
 
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">
 
2076
          The Unicode HOWTO
 
2077
        </a>
 
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
 
2082
        </a>
 
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
 
2086
    package.
 
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">
 
2089
       The GNU C Library
 
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">
 
2093
       Correspondence
 
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)
 
2104
        </a>
 
2105
       </em>. </span><span class="copyright">Copyright © 2008 
 
2106
        The Open Group/The Institute of Electrical and Electronics
 
2107
        Engineers, Inc.
 
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">
 
2112
        Addison Wesley
 
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
 
2125
        </a>
 
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
 
2132
       Library and Tools.
 
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)
 
2137
@@ -1,13 +1,13 @@
 
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. 
 
2141
   Diagnostics
 
2142
   
 
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. 
 
2144
     Standard Contents
 
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. 
 
2146
   Diagnostics
 
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)
 
2158
@@ -1,5 +1,5 @@
 
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)
 
2169
@@ -1,12 +1,12 @@
 
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
 
2174
   
 
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. 
 
2176
   Appendices
 
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)
 
2188
@@ -1,13 +1,13 @@
 
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. 
 
2192
   Algorithms
 
2193
   
 
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. 
 
2195
     Standard Contents
 
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. 
 
2197
   Algorithms
 
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
 
2204
   important things:
 
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)
 
2209
@@ -1,13 +1,13 @@
 
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
 
2214
   
 
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. 
 
2216
   Appendices
 
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
 
2224
   
 
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">
 
2226
@@ -61,7 +61,7 @@
 
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
 
2234
     directory.
 
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)
 
2239
@@ -1,5 +1,5 @@
 
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)
 
2250
@@ -1,5 +1,5 @@
 
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)
 
2261
@@ -1,5 +1,5 @@
 
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. 
 
2265
   Utilities
 
2266
   
 
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&lt;T1,T2&gt;</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)
 
2272
@@ -1,5 +1,5 @@
 
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
 
2277
   
 
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>
 
2279
@@ -492,7 +492,7 @@
 
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)
 
2292
@@ -1,5 +1,5 @@
 
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)
 
2303
@@ -1,5 +1,5 @@
 
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
 
2310
@@ -18,19 +18,19 @@
 
2311
      the 1998 standard as updated for 2003, and the current 2011 standard.
 
2312
    </p><p>
 
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)
 
2340
@@ -1,5 +1,5 @@
 
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)
 
2351
@@ -1,5 +1,5 @@
 
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
 
2357
   are some of them.
 
2358
@@ -161,7 +161,7 @@
 
2359
   DRD</a>,
 
2360
   <a class="link" href="http://valgrind.org/docs/manual/hg-manual.html" target="_top"> 
 
2361
   Helgrind</a>, and
 
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>.
 
2365
 </p><p>
 
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)
 
2371
@@ -1,13 +1,13 @@
 
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. 
 
2375
   Localization
 
2376
   
 
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. 
 
2378
     Standard Contents
 
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. 
 
2380
   Localization
 
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,
 
2387
 class _Impl.
 
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">
 
2394
       The GNU C Library
 
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">
 
2400
       Correspondence
 
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)
 
2411
        </a>
 
2412
       </em>. </span><span class="copyright">Copyright © 2008 
 
2413
        The Open Group/The Institute of Electrical and Electronics
 
2414
        Engineers, Inc.
 
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">
 
2419
        Addison Wesley
 
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)
 
2429
@@ -1,5 +1,5 @@
 
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. 
 
2433
   Extensions
 
2434
   
 
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)
 
2440
@@ -1,8 +1,8 @@
 
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. 
 
2444
   Extensions
 
2445
   
 
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)
 
2455
@@ -1,6 +1,6 @@
 
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)
 
2468
@@ -1,5 +1,5 @@
 
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)
 
2479
@@ -1,5 +1,5 @@
 
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)
 
2490
@@ -1,5 +1,5 @@
 
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. 
 
2494
   Appendices
 
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)
 
2501
@@ -1,13 +1,13 @@
 
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. 
 
2505
   Containers
 
2506
   
 
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. 
 
2508
     Standard Contents
 
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. 
 
2510
   Containers
 
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)
 
2522
@@ -1,13 +1,13 @@
 
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. 
 
2526
   Input and Output
 
2527
   
 
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. 
 
2529
     Standard Contents
 
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. 
 
2531
   Input and Output
 
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
       &lt;iostream&gt; 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)
 
2543
@@ -1,7 +1,7 @@
 
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. 
 
2550
   Introduction
 
2551
   
 
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. 
 
2553
@@ -15,13 +15,13 @@
 
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. 
 
2555
   Utilities
 
2556
   
 
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. 
 
2559
   Strings
 
2560
   
 
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. 
 
2562
   Localization
 
2563
   
 
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. 
 
2566
   Containers
 
2567
   
 
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 @@
 
2570
   
 
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. 
 
2596
   Introduction
 
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)
 
2601
@@ -1,5 +1,5 @@
 
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. 
 
2605
   Numerics
 
2606
   
 
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)
 
2612
@@ -1,5 +1,5 @@
 
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. 
 
2618
   Appendices
 
2619
@@ -77,7 +77,7 @@
 
2620
   </p><p>
 
2621
     The precise terms and conditions for copying, distribution and modification
 
2622
     follow.
 
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>
 
2627
     0. Definitions.
 
2628
@@ -618,7 +618,7 @@
 
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
 
2631
     return for a fee.
 
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)
 
2641
@@ -1,5 +1,5 @@
 
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. 
 
2645
   Contributing
 
2646
   
 
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)
 
2652
@@ -1,5 +1,5 @@
 
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. 
 
2656
   Input and Output
 
2657
   
 
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)
 
2663
@@ -1,13 +1,13 @@
 
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. 
 
2667
   Utilities
 
2668
   
 
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. 
 
2670
     Standard Contents
 
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. 
 
2672
   Utilities
 
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());
 
2686
    }
 
2687
 
 
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>
 
2692
     inline bool
 
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)
 
2698
     {
 
2699
       while (__first != __last && *__first < __value)
 
2700
        ++__first;
 
2701
@@ -362,38 +364,11 @@
 
2702
       return __first == __last;
 
2703
     }
 
2704
 
 
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>
 
2708
-    inline bool
 
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)
 
2714
-    {
 
2715
-      return __check_partitioned_lower_aux(__first.base(), __last.base(),
 
2716
-                                          __value, __tag);
 
2717
-    }
 
2718
-
 
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>
 
2723
     inline bool
 
2724
-    __check_partitioned_lower(_ForwardIterator __first,
 
2725
+    __check_partitioned_upper(_ForwardIterator __first,
 
2726
                              _ForwardIterator __last, const _Tp& __value)
 
2727
     {
 
2728
-      return __check_partitioned_lower_aux(__first, __last, __value,
 
2729
-                                          std::__iterator_category(__first));
 
2730
-    }
 
2731
-
 
2732
-  template<typename _ForwardIterator, typename _Tp>
 
2733
-    inline bool
 
2734
-    __check_partitioned_upper_aux(_ForwardIterator __first,
 
2735
-                                 _ForwardIterator __last, const _Tp& __value,
 
2736
-                                 std::forward_iterator_tag)
 
2737
-    {
 
2738
       while (__first != __last && !(__value < *__first))
 
2739
        ++__first;
 
2740
       if (__first != __last)
 
2741
@@ -405,35 +380,12 @@
 
2742
       return __first == __last;
 
2743
     }
 
2744
 
 
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>
 
2748
-    inline bool
 
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)
 
2754
-    {
 
2755
-      return __check_partitioned_upper_aux(__first.base(), __last.base(),
 
2756
-                                          __value, __tag);
 
2757
-    }
 
2758
-
 
2759
-  template<typename _ForwardIterator, typename _Tp>
 
2760
-    inline bool
 
2761
-    __check_partitioned_upper(_ForwardIterator __first,
 
2762
-                             _ForwardIterator __last, const _Tp& __value)
 
2763
-    {
 
2764
-      return __check_partitioned_upper_aux(__first, __last, __value,
 
2765
-                                          std::__iterator_category(__first));
 
2766
-    }
 
2767
-
 
2768
+  // Determine if a sequence is partitioned w.r.t. this element.
 
2769
   template<typename _ForwardIterator, typename _Tp, typename _Pred>
 
2770
     inline bool
 
2771
-    __check_partitioned_lower_aux(_ForwardIterator __first,
 
2772
-                                 _ForwardIterator __last, const _Tp& __value,
 
2773
-                                 _Pred __pred,
 
2774
-                                 std::forward_iterator_tag)
 
2775
+    __check_partitioned_lower(_ForwardIterator __first,
 
2776
+                             _ForwardIterator __last, const _Tp& __value,
 
2777
+                             _Pred __pred)
 
2778
     {
 
2779
       while (__first != __last && bool(__pred(*__first, __value)))
 
2780
        ++__first;
 
2781
@@ -446,39 +398,12 @@
 
2782
       return __first == __last;
 
2783
     }
 
2784
 
 
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>
 
2789
-    inline bool
 
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)
 
2795
-    {
 
2796
-      return __check_partitioned_lower_aux(__first.base(), __last.base(),
 
2797
-                                          __value, __pred, __tag);
 
2798
-    }
 
2799
-
 
2800
-  // Determine if a sequence is partitioned w.r.t. this element.
 
2801
   template<typename _ForwardIterator, typename _Tp, typename _Pred>
 
2802
     inline bool
 
2803
-    __check_partitioned_lower(_ForwardIterator __first,
 
2804
+    __check_partitioned_upper(_ForwardIterator __first,
 
2805
                              _ForwardIterator __last, const _Tp& __value,
 
2806
                              _Pred __pred)
 
2807
     {
 
2808
-      return __check_partitioned_lower_aux(__first, __last, __value, __pred,
 
2809
-                                          std::__iterator_category(__first));
 
2810
-    }
 
2811
-
 
2812
-  template<typename _ForwardIterator, typename _Tp, typename _Pred>
 
2813
-    inline bool
 
2814
-    __check_partitioned_upper_aux(_ForwardIterator __first,
 
2815
-                                 _ForwardIterator __last, const _Tp& __value,
 
2816
-                                 _Pred __pred,
 
2817
-                                 std::forward_iterator_tag)
 
2818
-    {
 
2819
       while (__first != __last && !bool(__pred(__value, *__first)))
 
2820
        ++__first;
 
2821
       if (__first != __last)
 
2822
@@ -490,31 +415,6 @@
 
2823
       return __first == __last;
 
2824
     }
 
2825
 
 
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>
 
2830
-    inline bool
 
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)
 
2836
-    {
 
2837
-      return __check_partitioned_upper_aux(__first.base(), __last.base(),
 
2838
-                                          __value, __pred, __tag);
 
2839
-    }
 
2840
-
 
2841
-  template<typename _ForwardIterator, typename _Tp, typename _Pred>
 
2842
-    inline bool
 
2843
-    __check_partitioned_upper(_ForwardIterator __first,
 
2844
-                             _ForwardIterator __last, const _Tp& __value,
 
2845
-                             _Pred __pred)
 
2846
-    {
 
2847
-      return __check_partitioned_upper_aux(__first, __last, __value, __pred,
 
2848
-                                          std::__iterator_category(__first));
 
2849
-    }
 
2850
-
 
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)
 
2858
@@ -261,8 +261,9 @@
 
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, \
 
2863
-                                                           _Value),    \
 
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)                       \
 
2870
@@ -270,8 +271,9 @@
 
2871
 
 
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, \
 
2875
-                                                           _Value),    \
 
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)                       \
 
2882
@@ -281,8 +283,9 @@
 
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, \
 
2887
-                                                        _Value, _Pred), \
 
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)                       \
 
2894
@@ -293,8 +296,9 @@
 
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, \
 
2899
-                                                        _Value, _Pred), \
 
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)
 
2912
     {
 
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);
 
2917
     }
 
2918
 
 
2919
@@ -2291,7 +2291,7 @@
 
2920
                                _RandomAccessIterator __last, _Compare __comp)
 
2921
     {
 
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,
 
2925
                                  __comp);
 
2926
       return std::__unguarded_partition(__first + 1, __last, *__first, __comp);
 
2927
     }
 
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)
 
2932
@@ -391,7 +391,7 @@
 
2933
     public:
 
2934
       template<typename... _Args>
 
2935
        _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
 
2936
-       : _M_impl(__a), _M_storage()
 
2937
+       : _M_impl(__a)
 
2938
        {
 
2939
          _M_impl._M_ptr = static_cast<_Tp*>(static_cast<void*>(&_M_storage));
 
2940
          // _GLIBCXX_RESOLVE_LIB_DEFECTS
 
2941
@@ -819,7 +819,7 @@
 
2942
        : _M_ptr(__r.get()), _M_refcount()
 
2943
        {
 
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);
 
2949
        }
 
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)
 
2954
@@ -69,6 +69,7 @@
 
2955
 #undef ftell
 
2956
 #undef fwrite
 
2957
 #undef getc
 
2958
+#undef getchar
 
2959
 #undef gets
 
2960
 #undef perror
 
2961
 #undef printf
 
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)
 
2966
@@ -1,3 +1,62 @@
 
2967
+2013-11-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
2968
+
 
2969
+       * acinclude.m4 (libtool_VERSION): Bump.
 
2970
+       * configure: Regenerate.
 
2971
+       * doc/xml/manual/abi.xml: Update version information.
 
2972
+
 
2973
+2013-11-05  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
2974
+
 
2975
+       * doc/xml/manual/status_cxx2011.xml: Document aligned_union as
 
2976
+       missing.
 
2977
+
 
2978
+       * doc/xml/manual/spine.xml: Update copyright years.
 
2979
+       * doc/html/*: Regenerate.
 
2980
+
 
2981
+2013-11-01  Paolo Carlini  <paolo.carlini@oracle.com>
 
2982
+
 
2983
+       PR libstdc++/58952
 
2984
+       * include/c_global/cstdio: Undef getchar.
 
2985
+
 
2986
+2013-10-31  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
2987
+
 
2988
+       * testsuite/20_util/shared_ptr/cons/58839.cc: Do not use
 
2989
+       default_delete<void>.
 
2990
+
 
2991
+2013-10-30  Chris Studholme  <cvs@cs.utoronto.ca>
 
2992
+
 
2993
+       PR libstdc++/58912
 
2994
+       * include/bits/shared_ptr_base.h (_Sp_counted_ptr_inplace): Remove
 
2995
+       unnecessary initialization of storage buffer.
 
2996
+
 
2997
+2013-10-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
2998
+
 
2999
+       PR libstdc++/58839
 
3000
+       * include/bits/shared_ptr_base.h
 
3001
+       (__shared_ptr<T>::__shared_ptr(unique_ptr<U,D>&&)): Do not dereference
 
3002
+       pointer.
 
3003
+       * testsuite/20_util/shared_ptr/cons/58839.cc: New.
 
3004
+
 
3005
+2013-10-20  Chris Jefferson  <chris@bubblescope.net>
 
3006
+           Paolo Carlini  <paolo.carlini@oracle.com>
 
3007
+
 
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
 
3012
+
 
3013
+2013-10-16  François Dumont  <fdumont@gcc.gnu.org>
 
3014
+
 
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
 
3018
+       check.
 
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.
 
3025
+
 
3026
 2013-10-16  Release Manager
 
3027
 
 
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)
 
3033
@@ -0,0 +1,52 @@
 
3034
+// Copyright (C) 2013 Free Software Foundation, Inc.
 
3035
+//
 
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.
 
3041
+
 
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.
 
3046
+
 
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/>.
 
3050
+
 
3051
+// 25.3.2 [lib.alg.nth.element]
 
3052
+
 
3053
+// { dg-options "-std=gnu++11" }
 
3054
+
 
3055
+#include <algorithm>
 
3056
+#include <testsuite_hooks.h>
 
3057
+#include <testsuite_iterators.h>
 
3058
+
 
3059
+using __gnu_test::test_container;
 
3060
+using __gnu_test::random_access_iterator_wrapper;
 
3061
+
 
3062
+typedef test_container<int, random_access_iterator_wrapper> Container;
 
3063
+
 
3064
+void test01()
 
3065
+{
 
3066
+  std::vector<int> v = {
 
3067
+    207089,
 
3068
+    202585,
 
3069
+    180067,
 
3070
+    157549,
 
3071
+    211592,
 
3072
+    216096,
 
3073
+    207089
 
3074
+  };
 
3075
+
 
3076
+  Container con(v.data(), v.data() + 7);
 
3077
+
 
3078
+  std::nth_element(con.begin(), con.begin() + 3, con.end());
 
3079
+}
 
3080
+
 
3081
+int main()
 
3082
+{
 
3083
+  test01();
 
3084
+  return 0;
 
3085
+}
 
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)
 
3090
@@ -0,0 +1,33 @@
 
3091
+// { dg-options "-std=gnu++11" }
 
3092
+// { dg-do compile }
 
3093
+
 
3094
+// Copyright (C) 2013 Free Software Foundation, Inc.
 
3095
+//
 
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.
 
3101
+
 
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.
 
3106
+
 
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/>.
 
3110
+
 
3111
+#include <memory>
 
3112
+
 
3113
+// libstdc++/58839
 
3114
+
 
3115
+struct D {
 
3116
+  void operator()(void*) const noexcept { }
 
3117
+};
 
3118
+
 
3119
+void test01()
 
3120
+{
 
3121
+  std::unique_ptr<void, D> y;
 
3122
+  std::shared_ptr<void> x = std::move(y);
 
3123
+}
 
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 @@
 
3129
 fi
 
3130
 
 
3131
 # For libtool versioning info, format is CURRENT:REVISION:AGE
 
3132
-libtool_VERSION=6:18:0
 
3133
+libtool_VERSION=6:19:0
 
3134
 
 
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)
 
3141
@@ -1,3 +1,7 @@
 
3142
+2013-10-21  Mike Stump  <mikestump@comcast.net>
 
3143
+
 
3144
+       * gcc_update (configure): Update to handle svn 1.8.1.
 
3145
+
 
3146
 2013-10-16  Release Manager
 
3147
 
 
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)
 
3153
@@ -382,7 +382,7 @@
 
3154
        fi
 
3155
 
 
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:/ {
 
3159
            s,.*/trunk,trunk,
 
3160
            s,.*/branches/,,
 
3161
            s,.*/tags/,,
 
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)
 
3166
@@ -39,10 +39,11 @@
 
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)
 
3186
@@ -42,8 +42,9 @@
 
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
 
3195
 #include "jcl.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)
 
3202
@@ -1,3 +1,9 @@
 
3203
+2013-11-29  Matthias Klose  <doko@ubuntu.com>
 
3204
+
 
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.
 
3208
+
 
3209
 2013-03-22  Jakub Jelinek  <jakub@redhat.com>
 
3210
 
 
3211
        PR other/43620
 
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)
 
3216
@@ -1,3 +1,21 @@
 
3217
+2013-11-10  Kai Tietz  <ktietz@redhat.com>
 
3218
+
 
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.
 
3226
+
 
3227
+2013-11-07  Uros Bizjak  <ubizjak@gmail.com>
 
3228
+
 
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.
 
3234
+
 
3235
 2013-10-16  Release Manager
 
3236
 
 
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)
 
3242
@@ -48,20 +48,32 @@
 
3243
     {
 
3244
       float f = 0.0f;
 
3245
 #ifdef __x86_64__
 
3246
+      volatile float r __attribute__ ((unused));
 
3247
       asm volatile ("%vdivss\t{%0, %d0|%d0, %0}" : "+x" (f));
 
3248
+      r = f; /* Needed to trigger exception.   */
 
3249
 #else
 
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.  */
 
3253
 #endif
 
3254
     }
 
3255
+  if (_fex & FP_EX_DENORM)
 
3256
+    {
 
3257
+      struct fenv temp;
 
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");
 
3262
+    }
 
3263
   if (_fex & FP_EX_DIVZERO)
 
3264
     {
 
3265
       float f = 1.0f, g = 0.0f;
 
3266
 #ifdef __x86_64__
 
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.   */
 
3270
 #else
 
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.  */
 
3274
 #endif
 
3275
     }
 
3276
   if (_fex & FP_EX_OVERFLOW)
 
3277
@@ -82,11 +94,15 @@
 
3278
     }
 
3279
   if (_fex & FP_EX_INEXACT)
 
3280
     {
 
3281
-      struct fenv temp;
 
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;
 
3287
+#ifdef __x86_64__
 
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.   */
 
3291
+#else
 
3292
+      asm volatile ("fdivs\t%1" : "+t" (f) : "m" (g));
 
3293
+      /* No need for fwait, exception is triggered by emitted fstp.  */
 
3294
+#endif
 
3295
     }
 
3296
 };
 
3297
 #endif
 
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)
 
3302
@@ -69,6 +69,9 @@
 
3303
   = { };
 
3304
 
 
3305
 static struct object obj;
 
3306
+
 
3307
+/* Handle of libgcc's DLL reference.  */
 
3308
+HANDLE hmod_libgcc;
 
3309
 #endif
 
3310
 
 
3311
 #if TARGET_USE_JCR_SECTION
 
3312
@@ -93,9 +96,14 @@
 
3313
 
 
3314
   void (*register_frame_fn) (const void *, struct object *);
 
3315
   HANDLE h = GetModuleHandle (LIBGCC_SONAME);
 
3316
+
 
3317
   if (h)
 
3318
-    register_frame_fn = (void (*) (const void *, struct object *))
 
3319
-                       GetProcAddress (h, "__register_frame_info");
 
3320
+    {
 
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");
 
3325
+    }
 
3326
   else 
 
3327
     register_frame_fn = __register_frame_info;
 
3328
   if (register_frame_fn)
 
3329
@@ -132,5 +140,7 @@
 
3330
     deregister_frame_fn = __deregister_frame_info;
 
3331
   if (deregister_frame_fn)
 
3332
      deregister_frame_fn (__EH_FRAME_BEGIN__);
 
3333
+  if (hmod_libgcc)
 
3334
+    FreeLibrary (hmod_libgcc);
 
3335
 #endif
 
3336
 }
 
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 @@
 
3342
     }
 
3343
   else if (CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (op_def)))
 
3344
     {
 
3345
-      /* Recurse through the type conversion.  */
 
3346
-      retval |= register_edge_assert_for_1 (gimple_assign_rhs1 (op_def),
 
3347
-                                           code, e, bsi);
 
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);
 
3355
     }
 
3356
 
 
3357
   return retval;
 
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)
 
3362
@@ -191,6 +191,7 @@
 
3363
   if (!test)
 
3364
     return NULL_RTX;
 
3365
 
 
3366
+  mode = VOIDmode;
 
3367
   for (i = 0; i < 2; i++)
 
3368
     {
 
3369
       op[i] = XEXP (test, i);
 
3370
@@ -205,11 +206,15 @@
 
3371
        return NULL_RTX;
 
3372
 
 
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)
 
3378
+       mode = iv.mode;
 
3379
+      else
 
3380
+       gcc_assert (mode == iv.mode);
 
3381
     }
 
3382
 
 
3383
-  mode = GET_MODE (op[0]);
 
3384
-  if (mode == VOIDmode)
 
3385
-    mode = GET_MODE (op[1]);
 
3386
   if (GET_MODE_CLASS (mode) == MODE_CC)
 
3387
     {
 
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);
 
3395
 }
 
3396
 
 
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.  */
 
3400
+
 
3401
+static bool
 
3402
+arith_code_with_undefined_signed_overflow (tree_code code)
 
3403
+{
 
3404
+  switch (code)
 
3405
+    {
 
3406
+    case PLUS_EXPR:
 
3407
+    case MINUS_EXPR:
 
3408
+    case MULT_EXPR:
 
3409
+    case NEGATE_EXPR:
 
3410
+    case POINTER_PLUS_EXPR:
 
3411
+      return true;
 
3412
+    default:
 
3413
+      return false;
 
3414
+    }
 
3415
+}
 
3416
+
 
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.
 
3421
+
 
3422
+   Returns a sequence of statements that replace STMT and also contain
 
3423
+   a modified form of STMT itself.  */
 
3424
+
 
3425
+static gimple_seq
 
3426
+rewrite_to_defined_overflow (gimple stmt)
 
3427
+{
 
3428
+  if (dump_file && (dump_flags & TDF_DETAILS))
 
3429
+    {
 
3430
+      fprintf (dump_file, "rewriting stmt with undefined signed "
 
3431
+              "overflow ");
 
3432
+      print_gimple_stmt (dump_file, stmt, 0, TDF_SLIM);
 
3433
+    }
 
3434
+
 
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)
 
3439
+    {
 
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);
 
3446
+    }
 
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);
 
3454
+
 
3455
+  return stmts;
 
3456
+}
 
3457
+
 
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 @@
 
3462
            }
 
3463
        }
 
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));
 
3479
+      else
 
3480
+       gsi_insert_on_edge (e, stmt);
 
3481
     }
 
3482
 }
 
3483
 
 
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)
 
3488
@@ -297,7 +297,8 @@
 
3489
   tree val;
 
3490
   def_operand_p def_p;
 
3491
 
 
3492
-  if (gimple_has_side_effects (stmt))
 
3493
+  if (gimple_has_side_effects (stmt)
 
3494
+      || gimple_vdef (stmt) != NULL_TREE)
 
3495
     return false;
 
3496
 
 
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)
 
3502
@@ -73,7 +73,7 @@
 
3503
       decl = get_base_var (*tp);
 
3504
       if (TREE_CODE (decl) == FUNCTION_DECL)
 
3505
        {
 
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,
 
3511
@@ -143,7 +143,7 @@
 
3512
     {
 
3513
       struct cgraph_node *per_node;
 
3514
 
 
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);
 
3519
     }
 
3520
@@ -223,7 +223,7 @@
 
3521
   addr = get_base_address (addr);
 
3522
   if (TREE_CODE (addr) == FUNCTION_DECL)
 
3523
     {
 
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,
 
3528
                            (symtab_node)node,
 
3529
@@ -252,7 +252,7 @@
 
3530
     {
 
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,
 
3537
                            (symtab_node)node,
 
3538
@@ -330,7 +330,7 @@
 
3539
            {
 
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);
 
3545
            }
 
3546
          if (gimple_code (stmt) == GIMPLE_OMP_TASK)
 
3547
@@ -338,12 +338,12 @@
 
3548
              tree fn = gimple_omp_task_child_fn (stmt);
 
3549
              if (fn)
 
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);
 
3555
              if (fn)
 
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);
 
3560
            }
 
3561
        }
 
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)
 
3566
@@ -1,3 +1,18 @@
 
3567
+2013-11-29  Jakub Jelinek  <jakub@redhat.com>
 
3568
+
 
3569
+       PR c/59280
 
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
 
3572
+       diagnostics.
 
3573
+
 
3574
+2013-11-04  Marek Polacek  <polacek@redhat.com>
 
3575
+
 
3576
+       Backport from mainline
 
3577
+       2013-11-04  Marek Polacek  <polacek@redhat.com>
 
3578
+
 
3579
+       PR c++/58979
 
3580
+       * c-common.c (invalid_indirection_error): Handle RO_ARROW_STAR case.
 
3581
+
 
3582
 2013-10-16  Release Manager
 
3583
 
 
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 @@
 
3590
     }
 
3591
 
 
3592
   arg = TREE_VALUE (args);
 
3593
+  if (TREE_CODE (arg) == IDENTIFIER_NODE)
 
3594
+    goto invalid;
 
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)",
 
3602
                type);
 
3603
       break;
 
3604
+    case RO_ARROW_STAR:
 
3605
+      error_at (loc,
 
3606
+               "invalid type argument of %<->*%> (have %qT)",
 
3607
+               type);
 
3608
+      break;
 
3609
     case RO_IMPLICIT_CONVERSION:
 
3610
       error_at (loc,
 
3611
                "invalid type argument of implicit conversion (have %qT)",
 
3612
Index: gcc/cgraph.c
 
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);
 
3619
 }
 
3620
+
 
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
 
3627
+   hash.  */
 
3628
+
 
3629
+struct cgraph_node *
 
3630
+cgraph_get_create_real_symbol_node (tree decl)
 
3631
+{
 
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)
 
3638
+    return node;
 
3639
+
 
3640
+  node = cgraph_create_node (decl);
 
3641
+
 
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.  */
 
3647
+  if (first_clone)
 
3648
+    {
 
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);
 
3653
+      if (dump_file)
 
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);
 
3657
+    }
 
3658
+  else if (dump_file)
 
3659
+    fprintf (dump_file, "Introduced new external node "
 
3660
+            "(%s/%i).\n", xstrdup (cgraph_node_name (node)), node->uid);
 
3661
+  return node;
 
3662
+}
 
3663
 #include "gt-cgraph.h"
 
3664
Index: gcc/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)
 
3668
@@ -575,6 +575,7 @@
 
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);
 
3676
Index: gcc/optabs.c
 
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 @@
 
3681
 
 
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;
 
3699
     }
 
3700
@@ -7118,8 +7116,6 @@
 
3701
     {
 
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))
 
3707
        return target;
 
3708
     }
 
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 @@
 
3721
 
 
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))
 
3729
        return false;
 
3730
 
 
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)
 
3735
@@ -1 +1 @@
 
3736
-20131016
 
3737
+20131129
 
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
 
3744
 
 
3745
 fi
 
3746
+
 
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
 
3751
+else
 
3752
+  gcc_cv_as_sparc_leon=no
 
3753
+  if test x$gcc_cv_as != x; then
 
3754
+    $as_echo '.text
 
3755
+       .register %g2, #scratch
 
3756
+       .register %g3, #scratch
 
3757
+       .align 4
 
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
 
3764
+  ac_status=$?
 
3765
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 
3766
+  test $ac_status = 0; }; }
 
3767
+    then
 
3768
+       gcc_cv_as_sparc_leon=yes
 
3769
+    else
 
3770
+      echo "configure: failed program was" >&5
 
3771
+      cat conftest.s >&5
 
3772
+    fi
 
3773
+    rm -f conftest.o conftest.s
 
3774
+  fi
 
3775
+fi
 
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
 
3779
+
 
3780
+$as_echo "#define HAVE_AS_LEON 1" >>confdefs.h
 
3781
+
 
3782
+fi
 
3783
     ;;
 
3784
 
 
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
 
3805
         plugin_rdynamic=yes
 
3806
         pluginlibs="-rdynamic"
 
3807
       else
 
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;
 
3817
   tree arg;
 
3818
 
 
3819
   if (!validate_arglist (exp, REAL_TYPE, VOID_TYPE))
 
3820
@@ -1969,6 +1970,7 @@
 
3821
     {
 
3822
     CASE_FLT_FN (BUILT_IN_SQRT):
 
3823
       errno_set = ! tree_expr_nonnegative_p (arg);
 
3824
+      try_widening = true;
 
3825
       builtin_optab = sqrt_optab;
 
3826
       break;
 
3827
     CASE_FLT_FN (BUILT_IN_EXP):
 
3828
@@ -2025,8 +2027,10 @@
 
3829
   if (! flag_errno_math || ! HONOR_NANS (mode))
 
3830
     errno_set = false;
 
3831
 
 
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 ()))
 
3839
     {
 
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 @@
 
3846
        case COMPONENT_REF:
 
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)
 
3851
+             || !OP_SAME (1))
 
3852
            return 0;
 
3853
          flags &= ~OEP_CONSTANT_ADDRESS_OF;
 
3854
-         return OP_SAME (1) && OP_SAME_WITH_NULL (2);
 
3855
+         return OP_SAME_WITH_NULL (2);
 
3856
 
 
3857
        case BIT_FIELD_REF:
 
3858
          if (!OP_SAME (0))
 
3859
@@ -10927,6 +10928,13 @@
 
3860
                                fold_build2_loc (loc, MULT_EXPR, type,
 
3861
                                             build_int_cst (type, 2) , arg1));
 
3862
 
 
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));
 
3869
+
 
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)
 
3877
@@ -1,3 +1,503 @@
 
3878
+2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
3879
+
 
3880
+       Backport from mainline
 
3881
+       2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
3882
+
 
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.
 
3887
+
 
3888
+2013-11-19  Uros Bizjak  <ubizjak@gmail.com>
 
3889
+
 
3890
+       Backport from mainline
 
3891
+       2013-11-27  Uros Bizjak  <ubizjak@gmail.com>
 
3892
+                   Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
 
3893
+
 
3894
+       PR target/56788
 
3895
+       * gcc.target/i386/xop-frczX.c: New test.
 
3896
+
 
3897
+2013-11-28  Terry Guo  <terry.guo@arm.com>
 
3898
+
 
3899
+       Backport mainline r205391
 
3900
+       2013-11-26  Terry Guo  <terry.guo@arm.com>
 
3901
+
 
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.
 
3906
+
 
3907
+2013-11-27  Jakub Jelinek  <jakub@redhat.com>
 
3908
+
 
3909
+       Backported from mainline
 
3910
+       2013-11-26  Jakub Jelinek  <jakub@redhat.com>
 
3911
+
 
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.
 
3916
+
 
3917
+2013-11-27  Eric Botcazou  <ebotcazou@adacore.com>
 
3918
+
 
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.
 
3922
+
 
3923
+2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
3924
+
 
3925
+       Backport from mainline
 
3926
+       2013-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
3927
+
 
3928
+       * config/sparc/t-rtems: Add leon3 multilibs.
 
3929
+
 
3930
+2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
3931
+
 
3932
+       Backport from mainline
 
3933
+       2013-08-09  Eric Botcazou  <ebotcazou@adacore.com>
 
3934
+
 
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
 
3939
+       sparc*-*-* block.
 
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.
 
3951
+
 
3952
+2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
3953
+
 
3954
+       Backport from mainline
 
3955
+       2013-07-23  Eric Botcazou  <ebotcazou@adacore.com>
 
3956
+
 
3957
+       * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
 
3958
+
 
3959
+2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
3960
+
 
3961
+       Backport from mainline
 
3962
+       2013-07-22  Eric Botcazou  <ebotcazou@adacore.com>
 
3963
+
 
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.
 
3996
+
 
3997
+2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
3998
+
 
3999
+       Backport from mainline
 
4000
+       2013-04-10  Steven Bosscher  <steven@gcc.gnu.org>
 
4001
+
 
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.
 
4012
+
 
4013
+2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
4014
+
 
4015
+       Backport from mainline
 
4016
+       2013-05-28  Eric Botcazou  <ebotcazou@adacore.com>
 
4017
+
 
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.
 
4031
+
 
4032
+2013-11-22  Eric Botcazou  <ebotcazou@adacore.com>
 
4033
+
 
4034
+       * print-rtl.c (print_rtx) <case MEM>: Output a space if no MEM_EXPR.
 
4035
+
 
4036
+2013-11-21  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
 
4037
+
 
4038
+       PR bootstrap/57683
 
4039
+       Backport from mainline: r197467 and r198999.
 
4040
+       2013-04-03  Jeff Law  <law@redhat.com>
 
4041
+
 
4042
+       * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
 
4043
+       (lra-eliminations.o): Likewise.
 
4044
+
 
4045
+       2013-05-16  Jeff Law  <law@redhat.com>
 
4046
+
 
4047
+       * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
 
4048
+
 
4049
+2013-11-20  Eric Botcazou  <ebotcazou@adacore.com>
 
4050
+
 
4051
+       PR target/59207
 
4052
+       * config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>:
 
4053
+       Make sure neg2_ovf is set before being used.
 
4054
+
 
4055
+2013-11-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
4056
+           Dominik Vogt  <vogt@linux.vnet.ibm.com>
 
4057
+
 
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
 
4063
+       two SETs).
 
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
 
4067
+       "noreturn".
 
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
 
4078
+       check.
 
4079
+
 
4080
+2013-11-19  Uros Bizjak  <ubizjak@gmail.com>
 
4081
+
 
4082
+       Backport from mainline
 
4083
+       2013-11-18  Uros Bizjak  <ubizjak@gmail.com>
 
4084
+
 
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.
 
4094
+
 
4095
+       Backport from mainline
 
4096
+       2013-11-17  Uros Bizjak  <ubizjak@gmail.com>
 
4097
+
 
4098
+       PR target/59153
 
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.
 
4104
+
 
4105
+2013-11-19  Richard Biener  <rguenther@suse.de>
 
4106
+
 
4107
+       Backport from mainline
 
4108
+       2013-11-07  Richard Biener  <rguenther@suse.de>
 
4109
+
 
4110
+       * tree-dfa.c (get_ref_base_and_extent): Fix casting.
 
4111
+
 
4112
+2013-11-19  Richard Biener  <rguenther@suse.de>
 
4113
+
 
4114
+       PR tree-optimization/57517
 
4115
+       * tree-predcom.c (combinable_refs_p): Verify the combination
 
4116
+       is always executed when the refs are.
 
4117
+
 
4118
+2013-11-19  Richard Biener  <rguenther@suse.de>
 
4119
+
 
4120
+       Backport from mainline
 
4121
+       2013-11-05  Richard Biener  <rguenther@suse.de>
 
4122
+
 
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).
 
4128
+
 
4129
+2013-11-18  Richard Biener  <rguenther@suse.de>
 
4130
+
 
4131
+       Backport from mainline
 
4132
+       2013-10-21  Richard Biener  <rguenther@suse.de>
 
4133
+
 
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.
 
4137
+
 
4138
+       2013-10-21  Richard Biener  <rguenther@suse.de>
 
4139
+
 
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).
 
4143
+
 
4144
+       2013-11-06  Richard Biener  <rguenther@suse.de>
 
4145
+
 
4146
+       PR tree-optimization/58653
 
4147
+       * tree-predcom.c (ref_at_iteration): Rewrite to generate
 
4148
+       a MEM_REF.
 
4149
+       (prepare_initializers_chain): Adjust.
 
4150
+
 
4151
+       PR tree-optimization/59047
 
4152
+       * tree-predcom.c (ref_at_iteration): Handle bitfield accesses
 
4153
+       properly.
 
4154
+
 
4155
+       2013-10-15  Richard Biener  <rguenther@suse.de>
 
4156
+
 
4157
+       PR tree-optimization/58143
 
4158
+       * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
 
4159
+       New function.
 
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.
 
4164
+
 
4165
+2013-11-14  Uros Bizjak  <ubizjak@gmail.com>
 
4166
+
 
4167
+       Backport from mainline
 
4168
+       2013-11-10  Uros Bizjak  <ubizjak@gmail.com>
 
4169
+
 
4170
+       * mode-switching.c (optimize_mode_switching): Mark block as
 
4171
+       nontransparent, if last_mode at block exit is different from no_mode.
 
4172
+
 
4173
+       Backport from mainline
 
4174
+       2013-11-06  Uros Bizjak  <ubizjak@gmail.com>
 
4175
+
 
4176
+       PR target/59021
 
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.
 
4181
+
 
4182
+2013-11-14  Jakub Jelinek  <jakub@redhat.com>
 
4183
+           Uros Bizjak  <ubizjak@gmail.com>
 
4184
+
 
4185
+       PR target/59101
 
4186
+       * config/i386/i386.md (*anddi_2): Only allow CCZmode if
 
4187
+       operands[2] satisfies_constraint_Z that might have bit 31 set.
 
4188
+
 
4189
+2013-11-12  H.J. Lu  <hongjiu.lu@intel.com>
 
4190
+
 
4191
+       Backported from mainline
 
4192
+       2013-11-12  H.J. Lu  <hongjiu.lu@intel.com>
 
4193
+
 
4194
+       PR target/59088
 
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.
 
4198
+
 
4199
+2013-11-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
4200
+
 
4201
+       Backported from mainline
 
4202
+       2013-10-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
4203
+
 
4204
+       PR target/58854
 
4205
+       * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage
 
4206
+
 
4207
+2013-11-11  Jakub Jelinek  <jakub@redhat.com>
 
4208
+
 
4209
+       Backported from mainline
 
4210
+       2013-11-06  Jakub Jelinek  <jakub@redhat.com>
 
4211
+
 
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.
 
4216
+
 
4217
+       2013-11-05  Jakub Jelinek  <jakub@redhat.com>
 
4218
+
 
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
 
4225
+       mode.
 
4226
+
 
4227
+2013-11-10  Karlson2k  <k2k@narod.ru>
 
4228
+           Kai Tietz  <ktietz@redhat.com>
 
4229
+
 
4230
+       Merged from trunk
 
4231
+       PR plugins/52872
 
4232
+       * configure.ac: Adding for exported symbols check
 
4233
+       and for rdynamic-check executable-extension.
 
4234
+       * configure: Regenerated.
 
4235
+
 
4236
+2013-11-07  H.J. Lu  <hongjiu.lu@intel.com>
 
4237
+
 
4238
+       PR target/59034
 
4239
+       * config/i386/i386.md (push peepholer/splitter): Use Pmode
 
4240
+       with stack_pointer_rtx.
 
4241
+
 
4242
+2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
 
4243
+
 
4244
+       * config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos.
 
4245
+
 
4246
+2013-11-05  Jakub Jelinek  <jakub@redhat.com>
 
4247
+
 
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
 
4252
+       callers.
 
4253
+       (ipcp_transform_function): Likewise.  Punt if size of access
 
4254
+       is different from TYPE_SIZE on v->value's type.
 
4255
+
 
4256
+2013-11-03  H.J. Lu  <hongjiu.lu@intel.com>
 
4257
+
 
4258
+       Backport from mainline
 
4259
+       2013-10-12  H.J. Lu  <hongjiu.lu@intel.com>
 
4260
+
 
4261
+       PR target/58690
 
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.
 
4266
+
 
4267
+2013-10-29  Uros Bizjak  <ubizjak@gmail.com>
 
4268
+
 
4269
+       Backport from mainline
 
4270
+       2013-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
 
4271
+
 
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.
 
4275
+
 
4276
+2013-10-29  Martin Jambor  <mjambor@suse.cz>
 
4277
+
 
4278
+       PR middle-end/58789
 
4279
+       Backport from mainline
 
4280
+       2013-05-09  Martin Jambor  <mjambor@suse.cz>
 
4281
+
 
4282
+       PR lto/57084
 
4283
+       * gimple-fold.c (canonicalize_constructor_val): Call
 
4284
+       cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
 
4285
+
 
4286
+       Backport from mainline
 
4287
+       2013-03-16  Jan Hubicka  <jh@suse.cz>
 
4288
+
 
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.
 
4294
+
 
4295
+2013-10-28  Tom de Vries  <tom@codesourcery.com>
 
4296
+
 
4297
+       * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn.
 
4298
+       Don't commit insertions after NOTE_INSN_FUNCTION_BEG.
 
4299
+
 
4300
+2013-10-26  Uros Bizjak  <ubizjak@gmail.com>
 
4301
+
 
4302
+       Backport from mainline
 
4303
+       2013-10-22  Uros Bizjak  <ubizjak@gmail.com>
 
4304
+
 
4305
+       PR target/58779
 
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.
 
4314
+
 
4315
+2013-10-26  Uros Bizjak  <ubizjak@gmail.com>
 
4316
+
 
4317
+       Backport from mainline
 
4318
+       2013-10-19  Uros Bizjak  <ubizjak@gmail.com>
 
4319
+
 
4320
+       PR target/58792
 
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.
 
4324
+
 
4325
+2013-08-25  Richard Henderson  <rth@twiddle.net>
 
4326
+
 
4327
+       PR rtl/58542
 
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.
 
4333
+
 
4334
+2013-10-25  Eric Botcazou  <ebotcazou@adacore.com>
 
4335
+
 
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.
 
4339
+
 
4340
+2013-10-25  Eric Botcazou  <ebotcazou@adacore.com>
 
4341
+
 
4342
+       * recog.c (search_ofs): New static variable moved from...
 
4343
+       (peep2_find_free_register): ...here.
 
4344
+       (peephole2_optimize): Initialize it.
 
4345
+
 
4346
+2013-10-24  David Edelsohn  <dje.gcc@gmail.com>
 
4347
+
 
4348
+       Backport from mainline
 
4349
+       2013-10-23  David Edelsohn  <dje.gcc@gmail.com>
 
4350
+
 
4351
+       PR target/58838
 
4352
+       * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add
 
4353
+       TARGET_32BIT final condition.
 
4354
+       (mulsi3_internal2 and splitter): Same.
 
4355
+
 
4356
+2013-10-23  Tom de Vries  <tom@codesourcery.com>
 
4357
+
 
4358
+       PR tree-optimization/58805
 
4359
+       * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check.
 
4360
+
 
4361
+2013-10-23  Richard Biener  <rguenther@suse.de>
 
4362
+
 
4363
+       Backport from mainline
 
4364
+       2013-06-24  Richard Biener  <rguenther@suse.de>
 
4365
+
 
4366
+       PR tree-optimization/57488
 
4367
+       * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
 
4368
+
 
4369
+2013-10-16  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
 
4370
+
 
4371
+       Backport from mainline
 
4372
+       2013-10-16  Ganesh Gopalasubramanian
 
4373
+                   <Ganesh.Gopalasubramanian@amd.com>
 
4374
+
 
4375
+       * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
 
4376
+       for AMD bdver3.
 
4377
+
 
4378
 2013-10-16  Release Manager
 
4379
 
 
4380
        * GCC 4.8.2 released.
 
4381
@@ -639,7 +1144,7 @@
 
4382
 2013-07-31  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
4383
 
 
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>
 
4387
 
 
4388
        * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
 
4389
 
 
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)
 
4394
@@ -0,0 +1,11 @@
 
4395
+/* { dg-do compile } */
 
4396
+/* { dg-require-effective-target arm_thumb1_ok } */
 
4397
+/* { dg-options "-mthumb -fpic -msingle-pic-base" } */
 
4398
+
 
4399
+int g_test;
 
4400
+
 
4401
+int
 
4402
+foo (int par)
 
4403
+{
 
4404
+    g_test = par;
 
4405
+}
 
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)
 
4410
@@ -0,0 +1,11 @@
 
4411
+/* { dg-do compile } */
 
4412
+/* { dg-require-effective-target arm_thumb1_ok } */
 
4413
+/* { dg-options "-mthumb -fpic -mpic-register=9" } */
 
4414
+
 
4415
+int g_test;
 
4416
+
 
4417
+int
 
4418
+foo (int par)
 
4419
+{
 
4420
+    g_test = par;
 
4421
+}
 
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)
 
4426
@@ -0,0 +1,29 @@
 
4427
+/* { dg-do compile } */
 
4428
+/* { dg-options "-g -fPIC" } */
 
4429
+
 
4430
+void *v;
 
4431
+void a (void *x) { }
 
4432
+void b (void) { }
 
4433
+                       /* line 7.  */
 
4434
+int                    /* line 8.  */
 
4435
+main (int argc)        /* line 9.  */
 
4436
+{                      /* line 10.  */
 
4437
+  if (argc == 12345)   /* line 11.  */
 
4438
+    {
 
4439
+      a (v);
 
4440
+      return 1;
 
4441
+    }
 
4442
+  b ();
 
4443
+
 
4444
+  return 0;
 
4445
+}
 
4446
+
 
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" } } */
 
4450
+
 
4451
+/* The loc at the start of the prologue.  */
 
4452
+/* { dg-final { scan-assembler-times "\.loc 1 10 0" 1 } } */
 
4453
+
 
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)
 
4460
@@ -0,0 +1,15 @@
 
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 } */
 
4465
+
 
4466
+double foo (double a)
 
4467
+{
 
4468
+  if (a > 3.0)
 
4469
+    return  __builtin_round (a);
 
4470
+
 
4471
+  return 0.0;
 
4472
+}
 
4473
+
 
4474
+/* { dg-final { scan-assembler-times "vrinta.f64\td\[0-9\]+" 1 } } */
 
4475
+
 
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)
 
4480
@@ -0,0 +1,10 @@
 
4481
+/* { dg-do compile { target { ! { ia32 } } } } */
 
4482
+/* { dg-require-effective-target maybe_x32 } */
 
4483
+/* { dg-options "-O -mx32 -mtune=corei7 -maddress-mode=short" } */
 
4484
+
 
4485
+extern int foo(int, ...);
 
4486
+int bar(void) {
 
4487
+  long double l = 1.2345E6;
 
4488
+  foo(0, l);
 
4489
+  return 0;
 
4490
+}
 
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)
 
4495
@@ -0,0 +1,14 @@
 
4496
+/* { dg-do compile { target { ! { ia32 } } } } */
 
4497
+/* { dg-require-effective-target maybe_x32 } */
 
4498
+/* { dg-options "-O2 -mx32 -maddress-mode=short" } */
 
4499
+
 
4500
+struct gomp_thread
 
4501
+{
 
4502
+  char foo[41];
 
4503
+};
 
4504
+extern __thread struct gomp_thread gomp_tls_data;
 
4505
+void
 
4506
+foo (void)
 
4507
+{
 
4508
+  __builtin_memset (&gomp_tls_data, '\0', sizeof (gomp_tls_data));
 
4509
+}
 
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)
 
4514
@@ -0,0 +1,23 @@
 
4515
+/* { dg-do compile } */
 
4516
+/* { dg-options "-O2 -mavx -mvzeroupper" } */
 
4517
+
 
4518
+extern void abort (void);
 
4519
+
 
4520
+struct S {
 
4521
+  int i1;
 
4522
+  int i2;
 
4523
+  int i3;
 
4524
+};
 
4525
+
 
4526
+typedef double v4df  __attribute__ ((vector_size (32)));
 
4527
+
 
4528
+extern int foo (v4df, int i1, int i2, int i3, int i4, int i5, struct S s);
 
4529
+
 
4530
+void bar (v4df v, struct S s)
 
4531
+{
 
4532
+  int r = foo (v, 1, 2, 3, 4, 5, s);
 
4533
+  if (r)
 
4534
+    abort ();
 
4535
+}
 
4536
+
 
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)
 
4542
@@ -0,0 +1,10 @@
 
4543
+/* { dg-do compile { target { ! { ia32 } } } } */
 
4544
+/* { dg-require-effective-target maybe_x32 } */
 
4545
+/* { dg-options "-O -mx32 -mtune=corei7 -maddress-mode=long" } */
 
4546
+
 
4547
+extern int foo(int, ...);
 
4548
+int bar(void) {
 
4549
+  long double l = 1.2345E6;
 
4550
+  foo(0, l);
 
4551
+  return 0;
 
4552
+}
 
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)
 
4557
@@ -0,0 +1,60 @@
 
4558
+/* { dg-do run } */
 
4559
+/* { dg-require-effective-target xop } */
 
4560
+/* { dg-options "-O2 -mxop" } */
 
4561
+
 
4562
+#include "xop-check.h"
 
4563
+
 
4564
+#include <x86intrin.h>
 
4565
+
 
4566
+void
 
4567
+check_mm_vmfrcz_sd (__m128d __A, __m128d __B)
 
4568
+{
 
4569
+  union128d a, b, c;
 
4570
+  double d[2];
 
4571
+
 
4572
+  a.x = __A;
 
4573
+  b.x = __B;
 
4574
+  c.x = _mm_frcz_sd (__A, __B);
 
4575
+  d[0] = b.a[0] - (int)b.a[0] ;
 
4576
+  d[1] = a.a[1];
 
4577
+  if (check_union128d (c, d))
 
4578
+    abort ();
 
4579
+}
 
4580
+
 
4581
+void
 
4582
+check_mm_vmfrcz_ss (__m128 __A, __m128 __B)
 
4583
+{
 
4584
+  union128 a, b, c;
 
4585
+  float f[4];
 
4586
+
 
4587
+  a.x = __A;
 
4588
+  b.x = __B;
 
4589
+  c.x = _mm_frcz_ss (__A, __B);
 
4590
+  f[0] = b.a[0] - (int)b.a[0] ;
 
4591
+  f[1] = a.a[1];
 
4592
+  f[2] = a.a[2];
 
4593
+  f[3] = a.a[3];
 
4594
+  if (check_union128 (c, f))
 
4595
+    abort ();
 
4596
+}
 
4597
+
 
4598
+static void
 
4599
+xop_test (void)
 
4600
+{
 
4601
+  union128 a, b;
 
4602
+  union128d c,d;
 
4603
+  int i;
 
4604
+
 
4605
+  for (i = 0; i < 4; i++)
 
4606
+    {
 
4607
+       a.a[i] = i + 3.5;
 
4608
+       b.a[i] = i + 7.9;
 
4609
+    }
 
4610
+  for (i = 0; i < 2; i++)
 
4611
+    {
 
4612
+       c.a[i] = i + 3.5;
 
4613
+       d.a[i] = i + 7.987654321;
 
4614
+    }
 
4615
+  check_mm_vmfrcz_ss (a.x, b.x);
 
4616
+  check_mm_vmfrcz_sd (c.x, d.x);
 
4617
+}
 
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)
 
4622
@@ -1,6 +1,6 @@
 
4623
 /* { dg-do compile } */
 
4624
 /* { dg-options "-O2" } */
 
4625
-/* { dg-final { scan-assembler-times "cmp" 4 } } */
 
4626
+/* { dg-final { scan-assembler-not "cmp" } } */
 
4627
 
 
4628
 extern void abort (void);
 
4629
 int c;
 
4630
@@ -34,39 +34,10 @@
 
4631
 }
 
4632
 #define PLUSCCONLY(T, t) PLUSCCONLY1(T, t, a) PLUSCCONLY1(T, t, b)
 
4633
 
 
4634
-#define MINUSCC(T, t)  \
 
4635
-T minuscc##t (T a, T b)        \
 
4636
-{      \
 
4637
-  T difference = a - b;        \
 
4638
-  if (difference > a)  \
 
4639
-    abort ();          \
 
4640
-  return difference;   \
 
4641
-}
 
4642
-
 
4643
-#define DECCC(T, t)    \
 
4644
-T deccc##t (T a, T b)  \
 
4645
-{      \
 
4646
-  T difference = a - b;        \
 
4647
-  if (difference > a)  \
 
4648
-    c --;              \
 
4649
-  return difference;   \
 
4650
-}
 
4651
-
 
4652
-#define MINUSCCONLY(T, t)      \
 
4653
-void minuscconly##t (T a, T b) \
 
4654
-{      \
 
4655
-  T difference = a - b;        \
 
4656
-  if (difference > a)  \
 
4657
-    abort ();          \
 
4658
-}
 
4659
-
 
4660
 #define TEST(T, t)     \
 
4661
   PLUSCC(T, t)         \
 
4662
   PLUSCCONLY(T, t)     \
 
4663
-  INCCC(T, t)          \
 
4664
-  MINUSCC(T, t)                \
 
4665
-  MINUSCCONLY(T, t)    \
 
4666
-  DECCC(T, t)
 
4667
+  INCCC(T, t)
 
4668
 
 
4669
 TEST (unsigned long,  l)
 
4670
 TEST (unsigned int,   i)
 
4671
@@ -84,14 +55,3 @@
 
4672
 
 
4673
 PLUSCCZEXT(a)
 
4674
 PLUSCCZEXT(b)
 
4675
-
 
4676
-#define MINUSCCZEXT    \
 
4677
-unsigned long minuscczext (unsigned int a, unsigned int b)     \
 
4678
-{      \
 
4679
-  unsigned int difference = a - b;     \
 
4680
-  if (difference > a)          \
 
4681
-    abort ();                  \
 
4682
-  return difference;           \
 
4683
-}
 
4684
-
 
4685
-MINUSCCZEXT
 
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)
 
4690
@@ -1,37 +0,0 @@
 
4691
-/* This checks the availability of the XL compiler intrinsics for
 
4692
-   transactional execution with the expected prototypes.  */
 
4693
-
 
4694
-/* { dg-do compile } */
 
4695
-/* { dg-options "-O3 -march=zEC12 -mzarch" } */
 
4696
-
 
4697
-#include <htmxlintrin.h>
 
4698
-
 
4699
-int a = 0;
 
4700
-unsigned long g;
 
4701
-
 
4702
-int
 
4703
-foo ()
 
4704
-{
 
4705
-  struct __htm_tdb *tdb_struct;
 
4706
-  void * const tdb = tdb_struct;
 
4707
-  long result;
 
4708
-  unsigned char code;
 
4709
-
 
4710
-  result = __TM_simple_begin ();
 
4711
-  result = __TM_begin (tdb);
 
4712
-  result = __TM_end ();
 
4713
-  __TM_abort ();
 
4714
-  __TM_named_abort (42);
 
4715
-  __TM_non_transactional_store (&g, 42);
 
4716
-  result = __TM_nesting_depth (tdb);
 
4717
-
 
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);
 
4727
-}
 
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)
 
4732
@@ -1,73 +0,0 @@
 
4733
-/* This checks the availability of the low-level builtins introduced
 
4734
-   for transactional execution.  */
 
4735
-
 
4736
-/* { dg-do compile } */
 
4737
-/* { dg-options "-O3 -march=zEC12 -mzarch" } */
 
4738
-
 
4739
-#include <stdint.h>
 
4740
-#include <htmintrin.h>
 
4741
-
 
4742
-int global = 0;
 
4743
-uint64_t g;
 
4744
-struct __htm_tdb global_tdb;
 
4745
-
 
4746
-int
 
4747
-foo (struct __htm_tdb* tdb, int reg, int *mem, uint64_t *mem64)
 
4748
-{
 
4749
-
 
4750
-  int cc;
 
4751
-  int n;
 
4752
-
 
4753
-  cc = __builtin_tbegin (0);
 
4754
-  cc = __builtin_tbegin (tdb);
 
4755
-  cc = __builtin_tbegin (&global_tdb);
 
4756
-
 
4757
-  cc = __builtin_tbegin_nofloat (0);
 
4758
-  cc = __builtin_tbegin_nofloat (&global_tdb);
 
4759
-
 
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);
 
4766
-
 
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);
 
4772
-
 
4773
-  __builtin_tbeginc ();
 
4774
-
 
4775
-  n = __builtin_tx_nesting_depth();
 
4776
-
 
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);
 
4782
-
 
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
 
4791
-     arithmetic.  */
 
4792
-  __builtin_tabort (*mem + 255);
 
4793
-  __builtin_tabort (global + 255);
 
4794
-
 
4795
-  __builtin_tend();
 
4796
-
 
4797
-  __builtin_tx_assist (23);
 
4798
-  __builtin_tx_assist (reg);
 
4799
-  __builtin_tx_assist (*mem);
 
4800
-  __builtin_tx_assist (global);
 
4801
-}
 
4802
-
 
4803
-/* Make sure the tdb NULL argument ends up as immediate value in the
 
4804
-   instruction.  */
 
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)
 
4810
@@ -0,0 +1,165 @@
 
4811
+/* This checks the availability of the low-level builtins introduced
 
4812
+   for transactional execution.  */
 
4813
+
 
4814
+/* { dg-do compile } */
 
4815
+/* { dg-require-effective-target htm } */
 
4816
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
 
4817
+
 
4818
+#include <stdint.h>
 
4819
+#include <htmintrin.h>
 
4820
+
 
4821
+int global = 0;
 
4822
+uint64_t g;
 
4823
+struct __htm_tdb global_tdb;
 
4824
+
 
4825
+int
 
4826
+foo (struct __htm_tdb* tdb, int reg, int *mem, uint64_t *mem64)
 
4827
+{
 
4828
+
 
4829
+  int cc;
 
4830
+  int n;
 
4831
+
 
4832
+  __builtin_tbegin ((void *)0);
 
4833
+  __builtin_tbegin ((void *)-99999);
 
4834
+  __builtin_tbegin ((void *)99999);
 
4835
+  while (__builtin_tbegin ((void *)0) != 0)
 
4836
+  {
 
4837
+  }
 
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));
 
4843
+
 
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));
 
4852
+
 
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);
 
4867
+
 
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);
 
4882
+
 
4883
+  __builtin_tbeginc ();
 
4884
+
 
4885
+  __builtin_tx_nesting_depth ();
 
4886
+  n = __builtin_tx_nesting_depth ();
 
4887
+
 
4888
+  __builtin_non_tx_store (mem64, 0);
 
4889
+  {
 
4890
+         const uint64_t val_var = 0x1122334455667788;
 
4891
+
 
4892
+         __builtin_non_tx_store (mem64, val_var);
 
4893
+  }
 
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);
 
4902
+
 
4903
+  __builtin_tend();
 
4904
+
 
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);
 
4910
+}
 
4911
+
 
4912
+/* The taborts must go into separate function since they are
 
4913
+   "noreturn".  */
 
4914
+
 
4915
+void
 
4916
+tabort1 ()
 
4917
+{
 
4918
+  __builtin_tabort (256);
 
4919
+}
 
4920
+
 
4921
+void
 
4922
+tabort2 (int reg)
 
4923
+{
 
4924
+  __builtin_tabort (reg);
 
4925
+}
 
4926
+
 
4927
+void
 
4928
+tabort3 (int reg)
 
4929
+{
 
4930
+  /* { dg-final { scan-assembler-times "tabort\t255" 1 } } */
 
4931
+  __builtin_tabort (reg + 255);
 
4932
+}
 
4933
+
 
4934
+void
 
4935
+tabort4 (int *mem)
 
4936
+{
 
4937
+  __builtin_tabort (*mem);
 
4938
+}
 
4939
+
 
4940
+void
 
4941
+tabort5 ()
 
4942
+{
 
4943
+  __builtin_tabort (global);
 
4944
+}
 
4945
+
 
4946
+void
 
4947
+tabort6 (int *mem)
 
4948
+{
 
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
 
4951
+     arithmetic.  */
 
4952
+  __builtin_tabort (*mem + 255);
 
4953
+}
 
4954
+
 
4955
+void
 
4956
+tabort7 ()
 
4957
+{
 
4958
+  __builtin_tabort (global + 255);
 
4959
+}
 
4960
+
 
4961
+void
 
4962
+tabort8 ()
 
4963
+{
 
4964
+  __builtin_tabort (-1);
 
4965
+}
 
4966
+
 
4967
+
 
4968
+/* Make sure the tdb NULL argument ends up as immediate value in the
 
4969
+   instruction.  */
 
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)
 
4980
@@ -0,0 +1,13 @@
 
4981
+/* { dg-do compile } */
 
4982
+/* { dg-require-effective-target htm } */
 
4983
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
 
4984
+
 
4985
+void must_not_compile1 (void)
 
4986
+{
 
4987
+  __builtin_tabort (0); /* { dg-error "Invalid transaction abort code:" } */
 
4988
+}
 
4989
+
 
4990
+void must_not_compile2 (void)
 
4991
+{
 
4992
+  __builtin_tabort (255); /* { dg-error "Invalid transaction abort code:" } */
 
4993
+}
 
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)
 
4998
@@ -0,0 +1,37 @@
 
4999
+/* This checks the availability of the XL compiler intrinsics for
 
5000
+   transactional execution with the expected prototypes.  */
 
5001
+
 
5002
+/* { dg-do compile } */
 
5003
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
 
5004
+
 
5005
+#include <htmxlintrin.h>
 
5006
+
 
5007
+int a = 0;
 
5008
+unsigned long g;
 
5009
+
 
5010
+int
 
5011
+foo ()
 
5012
+{
 
5013
+  struct __htm_tdb *tdb_struct;
 
5014
+  void * const tdb = tdb_struct;
 
5015
+  long result;
 
5016
+  unsigned char code;
 
5017
+
 
5018
+  result = __TM_simple_begin ();
 
5019
+  result = __TM_begin (tdb);
 
5020
+  result = __TM_end ();
 
5021
+  __TM_abort ();
 
5022
+  __TM_named_abort (42);
 
5023
+  __TM_non_transactional_store (&g, 42);
 
5024
+  result = __TM_nesting_depth (tdb);
 
5025
+
 
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);
 
5035
+}
 
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)
 
5040
@@ -24,6 +24,19 @@
 
5041
 # Load support procs.
 
5042
 load_lib gcc-dg.exp
 
5043
 
 
5044
+# Return 1 if htm (etnd - extract nesting depth) instructions can be
 
5045
+# compiled.
 
5046
+proc check_effective_target_htm { } {
 
5047
+    if { ![check_runtime s390_check_htm [subst {
 
5048
+       int main (void)
 
5049
+       {
 
5050
+           unsigned int nd = 77;
 
5051
+           asm (".insn rre,0xb2ec0000,%0,0" : "=d" (nd));
 
5052
+           return nd;
 
5053
+       }
 
5054
+    }]] } { return 0 } else { return 1 }
 
5055
+}
 
5056
+
 
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)
 
5064
@@ -0,0 +1,1073 @@
 
5065
+/* Functional tests of the htm __builtin_... macros.  */
 
5066
+
 
5067
+/* { dg-do run } */
 
5068
+/* { dg-require-effective-target htm } */
 
5069
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
 
5070
+
 
5071
+/* ---------------------------- included header files ---------------------- */
 
5072
+
 
5073
+#include <stdio.h>
 
5074
+#include <string.h>
 
5075
+#include <stdint.h>
 
5076
+#include <htmintrin.h>
 
5077
+
 
5078
+/* ---------------------------- local definitions -------------------------- */
 
5079
+
 
5080
+#define DEFAULT_MAX_REPETITIONS 5
 
5081
+#define DEFAULT_REQUIRED_QUORUM ((DEFAULT_MAX_REPETITIONS) - 1)
 
5082
+#define NUM_WARMUP_RUNS 10
 
5083
+
 
5084
+/* ---------------------------- local macros ------------------------------- */
 
5085
+
 
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 }
 
5089
+
 
5090
+/* ---------------------------- local types -------------------------------- */
 
5091
+
 
5092
+typedef int (*test_func_t)(void);
 
5093
+
 
5094
+typedef struct
 
5095
+{
 
5096
+  const char *name;
 
5097
+  test_func_t test_func;
 
5098
+  int max_repetitions;
 
5099
+  int required_quorum;
 
5100
+} test_table_entry_t;
 
5101
+
 
5102
+/* ---------------------------- local variables ---------------------------- */
 
5103
+
 
5104
+__attribute__ ((aligned(256))) static struct __htm_tdb local_tdb256;
 
5105
+static struct __htm_tdb local_tdb;
 
5106
+static int do_dump_tdb = 0;
 
5107
+
 
5108
+/* ---------------------------- exported variables (globals) --------------- */
 
5109
+
 
5110
+__attribute__ ((aligned(256))) struct
 
5111
+{
 
5112
+  float float_1;
 
5113
+  float float_2;
 
5114
+  float float_3;
 
5115
+} global = { 1.0, 2.5, 0.0 };
 
5116
+
 
5117
+__attribute__ ((aligned(256))) struct
 
5118
+{
 
5119
+  volatile uint64_t c1;
 
5120
+  volatile uint64_t c2;
 
5121
+  volatile uint64_t c3;
 
5122
+} counters = { 0, 0, 0 };
 
5123
+
 
5124
+/* ---------------------------- local helper functions --------------------- */
 
5125
+
 
5126
+static void dump_tdb (struct __htm_tdb *tdb)
 
5127
+{
 
5128
+  unsigned char *p;
 
5129
+  int i;
 
5130
+  int j;
 
5131
+
 
5132
+  if (do_dump_tdb == 0)
 
5133
+    {
 
5134
+      return;
 
5135
+    }
 
5136
+  p = (unsigned char *)tdb;
 
5137
+  for (i = 0; i < 16; i++)
 
5138
+    {
 
5139
+      fprintf (stderr, "0x%02x  ", i * 16);
 
5140
+      for (j = 0; j < 16; j++)
 
5141
+       {
 
5142
+         fprintf (stderr, "%02x", (int)p[i * 16 + j]);
 
5143
+         if (j < 15)
 
5144
+           {
 
5145
+             fprintf (stderr, " ");
 
5146
+           }
 
5147
+         if (j == 7)
 
5148
+           {
 
5149
+             fprintf (stderr, " ");
 
5150
+           }
 
5151
+       }
 
5152
+      fprintf (stderr, "\n");
 
5153
+    }
 
5154
+
 
5155
+  return;
 
5156
+}
 
5157
+
 
5158
+/* ---------------------------- local test functions ----------------------- */
 
5159
+
 
5160
+/* Check values of the constants defined in htmintrin.h.  */
 
5161
+static int test_constants (void)
 
5162
+{
 
5163
+  if (_HTM_TBEGIN_STARTED != 0)
 
5164
+    {
 
5165
+      return 100 * _HTM_TBEGIN_STARTED + 1;
 
5166
+    }
 
5167
+  if (_HTM_TBEGIN_INDETERMINATE != 1)
 
5168
+    {
 
5169
+      return 100 * _HTM_TBEGIN_INDETERMINATE + 2;
 
5170
+    }
 
5171
+  if (_HTM_TBEGIN_TRANSIENT != 2)
 
5172
+    {
 
5173
+      return 100 * _HTM_TBEGIN_TRANSIENT + 3;
 
5174
+    }
 
5175
+  if (_HTM_TBEGIN_PERSISTENT != 3)
 
5176
+    {
 
5177
+      return 100 * _HTM_TBEGIN_PERSISTENT + 4;
 
5178
+    }
 
5179
+
 
5180
+  return 0;
 
5181
+}
 
5182
+
 
5183
+static int test_tbegin_ntstg_tend (void)
 
5184
+{
 
5185
+  int rc;
 
5186
+
 
5187
+  counters.c1 = 0;
 
5188
+  counters.c2 = 0;
 
5189
+  if ((rc = __builtin_tbegin ((void *)0)) == 0)
 
5190
+    {
 
5191
+      __builtin_non_tx_store ((uint64_t *)&counters.c1, 1);
 
5192
+      counters.c2 = 2;
 
5193
+      rc = __builtin_tend ();
 
5194
+      if (rc != 0)
 
5195
+       {
 
5196
+         return 100 * rc + 5;
 
5197
+       }
 
5198
+      if (counters.c1 != 1)
 
5199
+       {
 
5200
+         return 100 * counters.c1 + 2;
 
5201
+       }
 
5202
+      if (counters.c2 != 2)
 
5203
+       {
 
5204
+         return 100 * counters.c2 + 3;
 
5205
+       }
 
5206
+    }
 
5207
+  else
 
5208
+    {
 
5209
+      return 100 * rc + 4;
 
5210
+    }
 
5211
+
 
5212
+  return 0;
 
5213
+}
 
5214
+
 
5215
+static int test_tbegin_ntstg_tabort (void)
 
5216
+{
 
5217
+  float f;
 
5218
+
 
5219
+  counters.c1 = 0;
 
5220
+  counters.c2 = 0;
 
5221
+  f = 0;
 
5222
+  if (__builtin_tbegin ((void *)0) == 0)
 
5223
+    {
 
5224
+      __builtin_non_tx_store ((uint64_t *)&counters.c1, 1);
 
5225
+      counters.c2 = 2;
 
5226
+      f = 1;
 
5227
+      __builtin_tabort (256);
 
5228
+      return 1;
 
5229
+    }
 
5230
+  if (counters.c1 != 1)
 
5231
+    {
 
5232
+      return 100 * counters.c1 + 2;
 
5233
+    }
 
5234
+  if (counters.c2 != 0)
 
5235
+    {
 
5236
+      return 100 * counters.c2 + 3;
 
5237
+    }
 
5238
+  if (f != 0)
 
5239
+    {
 
5240
+      return 100 * f + 4;
 
5241
+    }
 
5242
+
 
5243
+  return 0;
 
5244
+}
 
5245
+
 
5246
+static int test_tbegin_nofloat (void)
 
5247
+{
 
5248
+  int rc;
 
5249
+
 
5250
+  counters.c1 = 0;
 
5251
+  counters.c2 = 0;
 
5252
+  if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
 
5253
+    {
 
5254
+      __builtin_non_tx_store ((uint64_t *)&counters.c1, 1);
 
5255
+      counters.c2 = 2;
 
5256
+      rc = __builtin_tend ();
 
5257
+      if (rc != 0)
 
5258
+       {
 
5259
+         return 100 * rc + 5;
 
5260
+       }
 
5261
+      if (counters.c1 != 1)
 
5262
+       {
 
5263
+         return 100 * counters.c1 + 2;
 
5264
+       }
 
5265
+      if (counters.c2 != 2)
 
5266
+       {
 
5267
+         return 100 * counters.c2 + 3;
 
5268
+       }
 
5269
+    }
 
5270
+  else
 
5271
+    {
 
5272
+      return 100 * rc + 4;
 
5273
+    }
 
5274
+
 
5275
+  return 0;
 
5276
+}
 
5277
+
 
5278
+static int test_tbegin_retry (void)
 
5279
+{
 
5280
+  int rc;
 
5281
+
 
5282
+  counters.c1 = 0;
 
5283
+  counters.c2 = 0;
 
5284
+  counters.c3 = 0;
 
5285
+  if ((rc = __builtin_tbegin_retry ((void *)0, 5)) == 0)
 
5286
+    {
 
5287
+      int do_abort;
 
5288
+
 
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)
 
5293
+       {
 
5294
+         __builtin_tabort (256);
 
5295
+       }
 
5296
+      counters.c2 = counters.c2 + 10;
 
5297
+      __builtin_non_tx_store ((uint64_t *)&counters.c3, 3);
 
5298
+      rc = __builtin_tend ();
 
5299
+      if (rc != 0)
 
5300
+       {
 
5301
+         return 100 * rc + 5;
 
5302
+       }
 
5303
+      if (counters.c1 != 2)
 
5304
+       {
 
5305
+         return 100 * counters.c1 + 2;
 
5306
+       }
 
5307
+      if (counters.c2 != 10)
 
5308
+       {
 
5309
+         return 100 * counters.c2 + 3;
 
5310
+       }
 
5311
+      if (counters.c3 != 3)
 
5312
+       {
 
5313
+         return 100 * counters.c3 + 6;
 
5314
+       }
 
5315
+    }
 
5316
+  else
 
5317
+    {
 
5318
+      return 100 * rc + 4;
 
5319
+    }
 
5320
+
 
5321
+  return 0;
 
5322
+}
 
5323
+
 
5324
+static int test_tbegin_retry_nofloat (void)
 
5325
+{
 
5326
+  int rc;
 
5327
+
 
5328
+  counters.c1 = 0;
 
5329
+  counters.c2 = 0;
 
5330
+  counters.c3 = 0;
 
5331
+  if ((rc = __builtin_tbegin_retry_nofloat ((void *)0, 5)) == 0)
 
5332
+    {
 
5333
+      int do_abort;
 
5334
+
 
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)
 
5339
+       {
 
5340
+         __builtin_tabort (256);
 
5341
+       }
 
5342
+      counters.c2 = counters.c2 + 10;
 
5343
+      __builtin_non_tx_store ((uint64_t *)&counters.c3, 3);
 
5344
+      rc = __builtin_tend ();
 
5345
+      if (rc != 0)
 
5346
+       {
 
5347
+         return 100 * rc + 5;
 
5348
+       }
 
5349
+      if (counters.c1 != 2)
 
5350
+       {
 
5351
+         return 100 * counters.c1 + 2;
 
5352
+       }
 
5353
+      if (counters.c2 != 10)
 
5354
+       {
 
5355
+         return 100 * counters.c2 + 3;
 
5356
+       }
 
5357
+      if (counters.c3 != 3)
 
5358
+       {
 
5359
+         return 100 * counters.c3 + 6;
 
5360
+       }
 
5361
+    }
 
5362
+  else
 
5363
+    {
 
5364
+      return 100 * rc + 4;
 
5365
+    }
 
5366
+
 
5367
+  return 0;
 
5368
+}
 
5369
+
 
5370
+static int test_tbegin_aborts (void)
 
5371
+{
 
5372
+  float f;
 
5373
+  int rc;
 
5374
+
 
5375
+  f = 77;
 
5376
+  if ((rc = __builtin_tbegin ((void *)0)) == 0)
 
5377
+    {
 
5378
+      f = 88;
 
5379
+      __builtin_tabort (256);
 
5380
+      return 2;
 
5381
+    }
 
5382
+  else if (rc != 2)
 
5383
+    {
 
5384
+      return 3;
 
5385
+    }
 
5386
+  if (f != 77)
 
5387
+    {
 
5388
+      return 4;
 
5389
+    }
 
5390
+  f = 66;
 
5391
+  if ((rc = __builtin_tbegin ((void *)0)) == 0)
 
5392
+    {
 
5393
+      f = 99;
 
5394
+      __builtin_tabort (257);
 
5395
+      return 5;
 
5396
+    }
 
5397
+  else if (rc != 3)
 
5398
+    {
 
5399
+      return 100 * rc + 6;
 
5400
+    }
 
5401
+  if (f != 66)
 
5402
+    {
 
5403
+      return 100 * f + 7;
 
5404
+    }
 
5405
+  if ((rc = __builtin_tbegin ((void *)0)) == 0)
 
5406
+    {
 
5407
+      global.float_3 = global.float_1 + global.float_2;
 
5408
+      rc = __builtin_tend ();
 
5409
+      if (rc != 0)
 
5410
+       {
 
5411
+         return 100 * rc + 8;
 
5412
+       }
 
5413
+    }
 
5414
+  else
 
5415
+    {
 
5416
+      return 100 * rc + 9;
 
5417
+    }
 
5418
+  if (global.float_3 != global.float_1 + global.float_2)
 
5419
+    {
 
5420
+      return 100 * rc + 10;
 
5421
+    }
 
5422
+
 
5423
+  return 0;
 
5424
+}
 
5425
+
 
5426
+static __attribute__((noinline)) void indirect_abort(int abort_code)
 
5427
+{
 
5428
+  __builtin_tabort (abort_code);
 
5429
+
 
5430
+  return;
 
5431
+}
 
5432
+
 
5433
+static int test_tbegin_indirect_aborts (void)
 
5434
+{
 
5435
+  float f;
 
5436
+  int rc;
 
5437
+
 
5438
+  f = 77;
 
5439
+  if ((rc = __builtin_tbegin ((void *)0)) == 0)
 
5440
+    {
 
5441
+      f = 88;
 
5442
+      indirect_abort(256);
 
5443
+      return 2;
 
5444
+    }
 
5445
+  else if (rc != 2)
 
5446
+    {
 
5447
+      return 100 * rc + 3;
 
5448
+    }
 
5449
+  if (f != 77)
 
5450
+    {
 
5451
+      return 100 * rc + 4;
 
5452
+    }
 
5453
+  f = 66;
 
5454
+  if ((rc = __builtin_tbegin ((void *)0)) == 0)
 
5455
+    {
 
5456
+      f = 99;
 
5457
+      indirect_abort(257);
 
5458
+      return 5;
 
5459
+    }
 
5460
+  else if (rc != 3)
 
5461
+    {
 
5462
+      return 100 * rc + 6;
 
5463
+    }
 
5464
+  if (f != 66)
 
5465
+    {
 
5466
+      return 100 * f + 7;
 
5467
+    }
 
5468
+
 
5469
+  return 0;
 
5470
+}
 
5471
+
 
5472
+static int test_tbegin_nofloat_aborts (void)
 
5473
+{
 
5474
+  int rc;
 
5475
+
 
5476
+  if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
 
5477
+    {
 
5478
+      __builtin_tabort (256);
 
5479
+      return 2;
 
5480
+    }
 
5481
+  if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
 
5482
+    {
 
5483
+      __builtin_tabort (257);
 
5484
+      return 1005;
 
5485
+    }
 
5486
+  else if (rc != 3)
 
5487
+    {
 
5488
+      return 1000 * rc + 6;
 
5489
+    }
 
5490
+
 
5491
+  return 0;
 
5492
+}
 
5493
+
 
5494
+static int test_tbegin_nofloat_indirect_aborts (void)
 
5495
+{
 
5496
+  int rc;
 
5497
+
 
5498
+  if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
 
5499
+    {
 
5500
+      indirect_abort (256);
 
5501
+      return 2;
 
5502
+    }
 
5503
+  if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
 
5504
+    {
 
5505
+      indirect_abort (257);
 
5506
+      return 1005;
 
5507
+    }
 
5508
+  else if (rc != 3)
 
5509
+    {
 
5510
+      return 1000 * rc + 6;
 
5511
+    }
 
5512
+
 
5513
+  return 0;
 
5514
+}
 
5515
+
 
5516
+static
 
5517
+int _test_tbegin_retry_aborts (int retries, uint64_t abort_code)
 
5518
+{
 
5519
+  int rc;
 
5520
+
 
5521
+  counters.c1 = 0;
 
5522
+  if ((rc = __builtin_tbegin_retry ((void *)0, retries)) == 0)
 
5523
+    {
 
5524
+      __builtin_non_tx_store ((uint64_t *)&counters.c1, counters.c1 + 1);
 
5525
+      __builtin_tabort (abort_code);
 
5526
+      return 2;
 
5527
+    }
 
5528
+  else
 
5529
+    {
 
5530
+      if ((abort_code & 1) == 0)
 
5531
+       {
 
5532
+         if (rc != 2)
 
5533
+           {
 
5534
+             return 100 * rc + 2003;
 
5535
+           }
 
5536
+         else if (counters.c1 != (uint64_t)retries + 1)
 
5537
+           {
 
5538
+             return 1000 * counters.c1 + 100 * retries + 4;
 
5539
+           }
 
5540
+       }
 
5541
+      else
 
5542
+       {
 
5543
+         if (rc != 3)
 
5544
+           {
 
5545
+             return 100 * rc + 3005;
 
5546
+           }
 
5547
+         else if (counters.c1 != 1)
 
5548
+           {
 
5549
+             return 1000 * counters.c1 + 100 * retries + 6;
 
5550
+           }
 
5551
+       }
 
5552
+    }
 
5553
+
 
5554
+  return 0;
 
5555
+}
 
5556
+
 
5557
+static int test_tbegin_retry_aborts (void)
 
5558
+{
 
5559
+  int rc;
 
5560
+  int retries;
 
5561
+
 
5562
+  for (retries = 1; retries <= 3; retries++)
 
5563
+    {
 
5564
+      rc = _test_tbegin_retry_aborts (retries, 256);
 
5565
+      if (rc != 0)
 
5566
+       {
 
5567
+         return 10000 + rc;
 
5568
+       }
 
5569
+    }
 
5570
+  for (retries = 1; retries <= 3; retries++)
 
5571
+    {
 
5572
+      rc = _test_tbegin_retry_aborts (retries, 257);
 
5573
+      if (rc != 0)
 
5574
+       {
 
5575
+         return 20000 + rc;
 
5576
+       }
 
5577
+    }
 
5578
+  if ((rc = __builtin_tbegin_retry ((void *)0, 5)) == 0)
 
5579
+    {
 
5580
+      global.float_3 = global.float_1 + global.float_2;
 
5581
+      rc = __builtin_tend ();
 
5582
+      if (rc != 0)
 
5583
+       {
 
5584
+         return 30000 + 100 * rc + 6;
 
5585
+       }
 
5586
+    }
 
5587
+  else
 
5588
+    {
 
5589
+      return 30000 + 100 * rc + 7;
 
5590
+    }
 
5591
+
 
5592
+  return 0;
 
5593
+}
 
5594
+
 
5595
+static int _test_tbegin_retry_nofloat_aborts (int retries, uint64_t abort_code)
 
5596
+{
 
5597
+  int rc;
 
5598
+
 
5599
+  counters.c1 = 0;
 
5600
+  if ((rc = __builtin_tbegin_retry_nofloat ((void *)0, retries)) == 0)
 
5601
+    {
 
5602
+      __builtin_non_tx_store ((uint64_t *)&counters.c1, counters.c1 + 1);
 
5603
+      __builtin_tabort (abort_code);
 
5604
+      return 2;
 
5605
+    }
 
5606
+  else
 
5607
+    {
 
5608
+      if ((abort_code & 1) == 0)
 
5609
+       {
 
5610
+         if (rc != 2)
 
5611
+           {
 
5612
+             return 100 * rc + 2003;
 
5613
+           }
 
5614
+         else if (counters.c1 != (uint64_t)retries + 1)
 
5615
+           {
 
5616
+             return 1000 * counters.c1 + 100 * retries + 4;
 
5617
+           }
 
5618
+       }
 
5619
+      else
 
5620
+       {
 
5621
+         if (rc != 3)
 
5622
+           {
 
5623
+             return 100 * rc + 3005;
 
5624
+           }
 
5625
+         else if (counters.c1 != 1)
 
5626
+           {
 
5627
+             return 1000 * counters.c1 + 100 * retries + 6;
 
5628
+           }
 
5629
+       }
 
5630
+    }
 
5631
+
 
5632
+  return 0;
 
5633
+}
 
5634
+
 
5635
+static int test_tbegin_retry_nofloat_aborts (void)
 
5636
+{
 
5637
+  int rc;
 
5638
+  int retries;
 
5639
+
 
5640
+  for (retries = 1; retries <= 3; retries++)
 
5641
+    {
 
5642
+      rc = _test_tbegin_retry_nofloat_aborts (retries, 256);
 
5643
+      if (rc != 0)
 
5644
+       {
 
5645
+         return 10 * retries + rc;
 
5646
+       }
 
5647
+    }
 
5648
+  for (retries = 1; retries <= 3; retries++)
 
5649
+    {
 
5650
+      rc = _test_tbegin_retry_nofloat_aborts (retries, 257);
 
5651
+      if (rc != 0)
 
5652
+       {
 
5653
+         return 10000 + 10 * retries + rc;
 
5654
+       }
 
5655
+    }
 
5656
+
 
5657
+  return 0;
 
5658
+}
 
5659
+
 
5660
+static int test_tbegin_tdb (void)
 
5661
+{
 
5662
+  int rc;
 
5663
+
 
5664
+  local_tdb.format = 0;
 
5665
+  if ((rc = __builtin_tbegin (&local_tdb)) == 0)
 
5666
+    {
 
5667
+      rc = __builtin_tend ();
 
5668
+      if (rc != 0)
 
5669
+       {
 
5670
+         return 100 * rc + 1;
 
5671
+       }
 
5672
+      if (local_tdb.format != 0)
 
5673
+       {
 
5674
+         dump_tdb (&local_tdb);
 
5675
+         return 100 * local_tdb.format + 2;
 
5676
+       }
 
5677
+    }
 
5678
+  else
 
5679
+    {
 
5680
+      return 100 * rc + 3;
 
5681
+    }
 
5682
+  local_tdb.format = 0;
 
5683
+  if ((rc = __builtin_tbegin (&local_tdb)) == 0)
 
5684
+    {
 
5685
+      __builtin_tabort (257);
 
5686
+      return 4;
 
5687
+    }
 
5688
+  else
 
5689
+    {
 
5690
+      if (rc != 3)
 
5691
+       {
 
5692
+         return 100 * rc + 5;
 
5693
+       }
 
5694
+      if (local_tdb.format != 1)
 
5695
+       {
 
5696
+         dump_tdb (&local_tdb);
 
5697
+         return 100 * local_tdb.format + 6;
 
5698
+       }
 
5699
+    }
 
5700
+  local_tdb256.format = 0;
 
5701
+  if ((rc = __builtin_tbegin (&local_tdb256)) == 0)
 
5702
+    {
 
5703
+      rc = __builtin_tend ();
 
5704
+      if (rc != 0)
 
5705
+       {
 
5706
+         return 1100 * rc + 1;
 
5707
+       }
 
5708
+      if (local_tdb256.format != 0)
 
5709
+       {
 
5710
+         dump_tdb (&local_tdb256);
 
5711
+         return 1100 * local_tdb256.format + 2;
 
5712
+       }
 
5713
+    }
 
5714
+  else
 
5715
+    {
 
5716
+      return 1100 * rc + 3;
 
5717
+    }
 
5718
+  local_tdb256.format = 0;
 
5719
+  if ((rc = __builtin_tbegin (&local_tdb256)) == 0)
 
5720
+    {
 
5721
+      __builtin_tabort (257);
 
5722
+      return 2004;
 
5723
+    }
 
5724
+  else
 
5725
+    {
 
5726
+      if (rc != 3)
 
5727
+       {
 
5728
+         return 2100 * rc + 5;
 
5729
+       }
 
5730
+      if (local_tdb256.format != 1)
 
5731
+       {
 
5732
+         dump_tdb (&local_tdb256);
 
5733
+         return 2100 * local_tdb256.format + 6;
 
5734
+       }
 
5735
+    }
 
5736
+
 
5737
+  return 0;
 
5738
+}
 
5739
+
 
5740
+static int test_tbegin_nofloat_tdb (void)
 
5741
+{
 
5742
+  int rc;
 
5743
+
 
5744
+  local_tdb.format = 0;
 
5745
+  if ((rc = __builtin_tbegin_nofloat (&local_tdb)) == 0)
 
5746
+    {
 
5747
+      rc = __builtin_tend ();
 
5748
+      if (rc != 0)
 
5749
+       {
 
5750
+         return 100 * rc + 1;
 
5751
+       }
 
5752
+      if (local_tdb.format != 0)
 
5753
+       {
 
5754
+         dump_tdb (&local_tdb);
 
5755
+         return 100 * local_tdb.format + 2;
 
5756
+       }
 
5757
+    }
 
5758
+  else
 
5759
+    {
 
5760
+      return 3;
 
5761
+    }
 
5762
+  local_tdb.format = 0;
 
5763
+  if ((rc = __builtin_tbegin_nofloat (&local_tdb)) == 0)
 
5764
+    {
 
5765
+      __builtin_tabort (257);
 
5766
+      return 4;
 
5767
+    }
 
5768
+  else
 
5769
+    {
 
5770
+      if (rc != 3)
 
5771
+       {
 
5772
+         return 100 * rc + 5;
 
5773
+       }
 
5774
+      if (local_tdb.format != 1)
 
5775
+       {
 
5776
+         dump_tdb (&local_tdb);
 
5777
+         return 100 * local_tdb.format + 6;
 
5778
+       }
 
5779
+    }
 
5780
+  local_tdb256.format = 0;
 
5781
+  if ((rc = __builtin_tbegin_nofloat (&local_tdb256)) == 0)
 
5782
+    {
 
5783
+      rc = __builtin_tend ();
 
5784
+      if (rc != 0)
 
5785
+       {
 
5786
+         return 1100 * rc + 1;
 
5787
+       }
 
5788
+      if (local_tdb256.format != 0)
 
5789
+       {
 
5790
+         dump_tdb (&local_tdb256);
 
5791
+         return 1100 * local_tdb256.format + 2;
 
5792
+       }
 
5793
+    }
 
5794
+  else
 
5795
+    {
 
5796
+      return 1003;
 
5797
+    }
 
5798
+  local_tdb256.format = 0;
 
5799
+  if ((rc = __builtin_tbegin_nofloat (&local_tdb256)) == 0)
 
5800
+    {
 
5801
+      __builtin_tabort (257);
 
5802
+      return 2004;
 
5803
+    }
 
5804
+  else
 
5805
+    {
 
5806
+      if (rc != 3)
 
5807
+       {
 
5808
+         return 2100 * rc + 5;
 
5809
+       }
 
5810
+      if (local_tdb256.format != 1)
 
5811
+       {
 
5812
+         dump_tdb (&local_tdb256);
 
5813
+         return 2100 * local_tdb256.format + 6;
 
5814
+       }
 
5815
+    }
 
5816
+
 
5817
+  return 0;
 
5818
+}
 
5819
+
 
5820
+static int test_tbegin_retry_tdb (void)
 
5821
+{
 
5822
+  int rc;
 
5823
+
 
5824
+  local_tdb256.format = 0;
 
5825
+  if ((rc = __builtin_tbegin_retry (&local_tdb256, 2)) == 0)
 
5826
+    {
 
5827
+      rc = __builtin_tend ();
 
5828
+      if (rc != 0)
 
5829
+       {
 
5830
+         return 1100 * rc + 1;
 
5831
+       }
 
5832
+      if (local_tdb256.format != 0)
 
5833
+       {
 
5834
+         dump_tdb (&local_tdb256);
 
5835
+         return 1100 * local_tdb256.format + 2;
 
5836
+       }
 
5837
+    }
 
5838
+  else
 
5839
+    {
 
5840
+      return 1003;
 
5841
+    }
 
5842
+  local_tdb256.format = 0;
 
5843
+  if ((rc = __builtin_tbegin_retry (&local_tdb256, 2)) == 0)
 
5844
+    {
 
5845
+      __builtin_tabort (257);
 
5846
+      return 2004;
 
5847
+    }
 
5848
+  else
 
5849
+    {
 
5850
+      if (rc != 3)
 
5851
+       {
 
5852
+         return 2100 * rc + 5;
 
5853
+       }
 
5854
+      if (local_tdb256.format != 1)
 
5855
+       {
 
5856
+         dump_tdb (&local_tdb256);
 
5857
+         return 2100 * local_tdb256.format + 6;
 
5858
+       }
 
5859
+    }
 
5860
+
 
5861
+  return 0;
 
5862
+}
 
5863
+
 
5864
+static int test_tbegin_retry_nofloat_tdb (void)
 
5865
+{
 
5866
+  int rc;
 
5867
+
 
5868
+  local_tdb.format = 0;
 
5869
+  if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb, 2)) == 0)
 
5870
+    {
 
5871
+      rc = __builtin_tend ();
 
5872
+      if (rc != 0)
 
5873
+       {
 
5874
+         return 100 * rc + 1;
 
5875
+       }
 
5876
+      if (local_tdb.format != 0)
 
5877
+       {
 
5878
+         dump_tdb (&local_tdb);
 
5879
+         return 100 * local_tdb.format + 2;
 
5880
+       }
 
5881
+    }
 
5882
+  else
 
5883
+    {
 
5884
+      return 100 * rc + 3;
 
5885
+    }
 
5886
+  local_tdb.format = 0;
 
5887
+  if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb, 2)) == 0)
 
5888
+    {
 
5889
+      __builtin_tabort (257);
 
5890
+      return 4;
 
5891
+    }
 
5892
+  else
 
5893
+    {
 
5894
+      if (rc != 3)
 
5895
+       {
 
5896
+         return 100 * rc + 5;
 
5897
+       }
 
5898
+      if (local_tdb.format != 1)
 
5899
+       {
 
5900
+         dump_tdb (&local_tdb);
 
5901
+         return 100 * local_tdb.format + 6;
 
5902
+       }
 
5903
+    }
 
5904
+  local_tdb256.format = 0;
 
5905
+  if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb256, 2)) == 0)
 
5906
+    {
 
5907
+      rc = __builtin_tend ();
 
5908
+      if (rc != 0)
 
5909
+       {
 
5910
+         return 1100 * rc + 1;
 
5911
+       }
 
5912
+      if (local_tdb256.format != 0)
 
5913
+       {
 
5914
+         dump_tdb (&local_tdb256);
 
5915
+         return 1100 * local_tdb256.format + 2;
 
5916
+       }
 
5917
+    }
 
5918
+  else
 
5919
+    {
 
5920
+      return 1100 * rc + 3;
 
5921
+    }
 
5922
+  local_tdb256.format = 0;
 
5923
+  if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb256, 2)) == 0)
 
5924
+    {
 
5925
+      __builtin_tabort (257);
 
5926
+      return 2004;
 
5927
+    }
 
5928
+  else
 
5929
+    {
 
5930
+      if (rc != 3)
 
5931
+       {
 
5932
+         return 2100 * rc + 5;
 
5933
+       }
 
5934
+      if (local_tdb256.format != 1)
 
5935
+       {
 
5936
+         dump_tdb (&local_tdb256);
 
5937
+         return 2100 * local_tdb256.format + 6;
 
5938
+       }
 
5939
+    }
 
5940
+
 
5941
+  return 0;
 
5942
+}
 
5943
+
 
5944
+static int test_etnd (void)
 
5945
+{
 
5946
+  int rc;
 
5947
+
 
5948
+  counters.c1 = 0;
 
5949
+  counters.c2 = 0;
 
5950
+  counters.c3 = 0;
 
5951
+  if ((rc = __builtin_tbegin ((void *)0)) == 0)
 
5952
+    {
 
5953
+      counters.c1 = __builtin_tx_nesting_depth ();
 
5954
+      if (__builtin_tbegin ((void *)0) == 0)
 
5955
+       {
 
5956
+         counters.c2 = __builtin_tx_nesting_depth ();
 
5957
+         if (__builtin_tbegin ((void *)0) == 0)
 
5958
+           {
 
5959
+             counters.c3 = __builtin_tx_nesting_depth ();
 
5960
+             __builtin_tend ();
 
5961
+           }
 
5962
+         __builtin_tend ();
 
5963
+       }
 
5964
+      __builtin_tend ();
 
5965
+    }
 
5966
+  else
 
5967
+    {
 
5968
+      return 100 * rc + 1;
 
5969
+    }
 
5970
+  if (counters.c1 != 1)
 
5971
+    {
 
5972
+      return 100 * counters.c1 + 2;
 
5973
+    }
 
5974
+  if (counters.c2 != 2)
 
5975
+    {
 
5976
+      return 100 * counters.c2 + 3;
 
5977
+    }
 
5978
+  if (counters.c3 != 3)
 
5979
+    {
 
5980
+      return 100 * counters.c3 + 4;
 
5981
+    }
 
5982
+
 
5983
+  return 0;
 
5984
+}
 
5985
+
 
5986
+static int test_tbeginc (void)
 
5987
+{
 
5988
+  int rc;
 
5989
+
 
5990
+  counters.c1 = 0;
 
5991
+  __builtin_tbeginc ();
 
5992
+  counters.c1 = 1;
 
5993
+  rc = __builtin_tend ();
 
5994
+  if (rc != 0)
 
5995
+    {
 
5996
+      return 10000 * rc + 1;
 
5997
+    }
 
5998
+  if (counters.c1 != 1)
 
5999
+    {
 
6000
+      return 100000 * counters.c1 + 3;
 
6001
+    }
 
6002
+
 
6003
+  return 0;
 
6004
+}
 
6005
+
 
6006
+/* ---------------------------- local testing framework functions ---------- */
 
6007
+
 
6008
+static int run_one_test (const test_table_entry_t *test_entry)
 
6009
+{
 
6010
+  int do_print_passes;
 
6011
+  int succeeded;
 
6012
+  int rc;
 
6013
+  int i;
 
6014
+
 
6015
+  /* Warmup run to get all necessary data and instruction pages into the page
 
6016
+   * tables.  */
 
6017
+  {
 
6018
+    int run;
 
6019
+
 
6020
+    do_dump_tdb = 0;
 
6021
+    for (run = 0; run < NUM_WARMUP_RUNS; run++)
 
6022
+      {
 
6023
+       test_entry->test_func ();
 
6024
+      }
 
6025
+    do_dump_tdb = 1;
 
6026
+  }
 
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)
 
6032
+    {
 
6033
+      printf (
 
6034
+            "         (requires %d successful out of %d runs)\n",
 
6035
+            test_entry->required_quorum,
 
6036
+            test_entry->max_repetitions);
 
6037
+    }
 
6038
+  succeeded = 0;
 
6039
+  rc = 0;
 
6040
+  for (rc = 0, i = 0; i < test_entry->max_repetitions; i++)
 
6041
+    {
 
6042
+      if (do_print_passes == 1)
 
6043
+       {
 
6044
+         if (i == 0)
 
6045
+           {
 
6046
+             printf ("        ");
 
6047
+           }
 
6048
+         else
 
6049
+           {
 
6050
+             printf (",");
 
6051
+           }
 
6052
+       }
 
6053
+      rc = test_entry->test_func ();
 
6054
+      if (rc == 0)
 
6055
+       {
 
6056
+         if (do_print_passes == 1)
 
6057
+           {
 
6058
+             printf (" success");
 
6059
+           }
 
6060
+         succeeded++;
 
6061
+         if (succeeded >= test_entry->required_quorum)
 
6062
+           {
 
6063
+             break;
 
6064
+           }
 
6065
+       }
 
6066
+      else
 
6067
+       {
 
6068
+         printf (" failed (rc = %d)", rc);
 
6069
+       }
 
6070
+    }
 
6071
+  if (do_print_passes == 1 || rc != 0)
 
6072
+    {
 
6073
+      printf ("\n");
 
6074
+    }
 
6075
+  if (succeeded >= test_entry->required_quorum)
 
6076
+    {
 
6077
+      printf ("+++ OK   %s\n", test_entry->name);
 
6078
+
 
6079
+      return 0;
 
6080
+    }
 
6081
+  else
 
6082
+    {
 
6083
+      printf ("--- FAIL %s\n", test_entry->name);
 
6084
+
 
6085
+      return (rc != 0) ? rc : -1;
 
6086
+    }
 
6087
+}
 
6088
+
 
6089
+static int run_all_tests (const test_table_entry_t *test_table)
 
6090
+{
 
6091
+  const test_table_entry_t *test;
 
6092
+  int rc;
 
6093
+
 
6094
+  for (
 
6095
+       rc = 0, test = &test_table[0];
 
6096
+       test->test_func != NULL && rc == 0; test++)
 
6097
+    {
 
6098
+      rc = run_one_test (test);
 
6099
+    }
 
6100
+
 
6101
+  return rc;
 
6102
+}
 
6103
+
 
6104
+/* ---------------------------- interface functions ------------------------ */
 
6105
+
 
6106
+int main (void)
 
6107
+{
 
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 }
 
6128
+  };
 
6129
+
 
6130
+  {
 
6131
+    int rc;
 
6132
+
 
6133
+    rc = run_all_tests (test_table);
 
6134
+
 
6135
+    return rc;
 
6136
+  }
 
6137
+}
 
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)
 
6142
@@ -0,0 +1,682 @@
 
6143
+/* Functional tests of the htm __TM_... macros.  */
 
6144
+
 
6145
+/* { dg-do run } */
 
6146
+/* { dg-require-effective-target htm } */
 
6147
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
 
6148
+
 
6149
+/* ---------------------------- included header files ---------------------- */
 
6150
+
 
6151
+#include <stdio.h>
 
6152
+#include <string.h>
 
6153
+#include <inttypes.h>
 
6154
+#include <htmxlintrin.h>
 
6155
+
 
6156
+/* ---------------------------- local definitions -------------------------- */
 
6157
+
 
6158
+#define DEFAULT_MAX_REPETITIONS 5
 
6159
+#define DEFAULT_REQUIRED_QUORUM ((DEFAULT_MAX_REPETITIONS) - 1)
 
6160
+#define DEFAULT_ABORT_ADDRESS (0x12345678u)
 
6161
+
 
6162
+/* ---------------------------- local macros ------------------------------- */
 
6163
+
 
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 }
 
6167
+
 
6168
+/* ---------------------------- local types -------------------------------- */
 
6169
+
 
6170
+typedef int (*test_func_t)(void);
 
6171
+
 
6172
+typedef struct
 
6173
+{
 
6174
+  const char *name;
 
6175
+  test_func_t test_func;
 
6176
+  int max_repetitions;
 
6177
+  int required_quorum;
 
6178
+} test_table_entry_t;
 
6179
+
 
6180
+typedef enum
 
6181
+{
 
6182
+  ABORT_T_SYSTEM = 0,
 
6183
+  ABORT_T_USER = 1,
 
6184
+} abort_user_t;
 
6185
+
 
6186
+typedef enum
 
6187
+{
 
6188
+  ABORT_T_NONE = 0,
 
6189
+  ABORT_T_ILLEGAL,
 
6190
+  ABORT_T_FOOTPRINT_EXCEEDED,
 
6191
+  ABORT_T_NESTED_TOO_DEEP,
 
6192
+  ABORT_T_CONFLICT,
 
6193
+
 
6194
+  ABORT_T_INVALID_ABORT_CODE
 
6195
+} abort_t;
 
6196
+
 
6197
+/* ---------------------------- local variables ---------------------------- */
 
6198
+
 
6199
+__attribute__ ((aligned(256))) static struct __htm_tdb local_tdb256;
 
6200
+static struct __htm_tdb local_tdb;
 
6201
+
 
6202
+static abort_t const abort_classes[] =
 
6203
+{
 
6204
+  ABORT_T_INVALID_ABORT_CODE,
 
6205
+  ABORT_T_NONE,
 
6206
+  ABORT_T_NONE,
 
6207
+  ABORT_T_NONE,
 
6208
+
 
6209
+  ABORT_T_ILLEGAL,
 
6210
+  ABORT_T_NONE,
 
6211
+  ABORT_T_NONE,
 
6212
+  ABORT_T_FOOTPRINT_EXCEEDED,
 
6213
+
 
6214
+  ABORT_T_FOOTPRINT_EXCEEDED,
 
6215
+  ABORT_T_CONFLICT,
 
6216
+  ABORT_T_CONFLICT,
 
6217
+  ABORT_T_ILLEGAL,
 
6218
+
 
6219
+  ABORT_T_NONE,
 
6220
+  ABORT_T_NESTED_TOO_DEEP,
 
6221
+  ABORT_T_NONE,
 
6222
+  ABORT_T_NONE,
 
6223
+
 
6224
+  ABORT_T_NONE
 
6225
+};
 
6226
+
 
6227
+static size_t num_abort_classes = sizeof(abort_classes) / sizeof(abort_t);
 
6228
+
 
6229
+/* ---------------------------- exported variables (globals) --------------- */
 
6230
+
 
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
 
6237
+{
 
6238
+  volatile uint64_t c1;
 
6239
+  volatile uint64_t c2;
 
6240
+  volatile uint64_t c3;
 
6241
+} counters = { 0, 0, 0 };
 
6242
+
 
6243
+/* ---------------------------- local helper functions --------------------- */
 
6244
+
 
6245
+static void dump_tdb(struct __htm_tdb *tdb)
 
6246
+{
 
6247
+  unsigned char *p;
 
6248
+  int i;
 
6249
+  int j;
 
6250
+
 
6251
+  p = (unsigned char *)tdb;
 
6252
+  for (i = 0; i < 16; i++)
 
6253
+    {
 
6254
+      fprintf(stderr, "0x%02x  ", i * 16);
 
6255
+      for (j = 0; j < 16; j++)
 
6256
+       {
 
6257
+         fprintf(stderr, "%02x", (int)p[i * 16 + j]);
 
6258
+         if (j < 15)
 
6259
+           {
 
6260
+             fprintf(stderr, " ");
 
6261
+           }
 
6262
+         if (j == 7)
 
6263
+           {
 
6264
+             fprintf(stderr, " ");
 
6265
+           }
 
6266
+       }
 
6267
+      fprintf(stderr, "\n");
 
6268
+    }
 
6269
+
 
6270
+  return;
 
6271
+}
 
6272
+
 
6273
+static void make_fake_tdb(struct __htm_tdb *tdb)
 
6274
+{
 
6275
+  memset(tdb, 0, sizeof(*tdb));
 
6276
+  tdb->format = 1;
 
6277
+  tdb->nesting_depth = 1;
 
6278
+  tdb->atia = DEFAULT_ABORT_ADDRESS;
 
6279
+  tdb->abort_code = 11;
 
6280
+
 
6281
+  return;
 
6282
+}
 
6283
+
 
6284
+static int check_abort_code_in_tdb(struct __htm_tdb *tdb, uint64_t abort_code)
 
6285
+{
 
6286
+  long expect_rc;
 
6287
+  long rc;
 
6288
+
 
6289
+  if (abort_code != 0)
 
6290
+    {
 
6291
+      long addr;
 
6292
+
 
6293
+      addr = __TM_failure_address(&local_tdb);
 
6294
+      if (addr != DEFAULT_ABORT_ADDRESS)
 
6295
+       {
 
6296
+         return 11;
 
6297
+       }
 
6298
+    }
 
6299
+  {
 
6300
+    long long tdb_abort_code;
 
6301
+
 
6302
+    tdb_abort_code = __TM_failure_code(tdb);
 
6303
+    if ((uint64_t)tdb_abort_code != abort_code)
 
6304
+      {
 
6305
+       fprintf(
 
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);
 
6310
+       return 10;
 
6311
+      }
 
6312
+  }
 
6313
+  expect_rc = (abort_code >= 256) ? 1 : 0;
 
6314
+  rc = __TM_is_user_abort(tdb);
 
6315
+  if (rc != expect_rc)
 
6316
+    {
 
6317
+      fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
 
6318
+      return 1;
 
6319
+    }
 
6320
+  {
 
6321
+    unsigned char code;
 
6322
+
 
6323
+    code = 0xffu;
 
6324
+    rc = __TM_is_named_user_abort(tdb, &code);
 
6325
+    if (rc != expect_rc)
 
6326
+      {
 
6327
+       fprintf(
 
6328
+               stderr, "rc %ld, expect_rc %ld\n", rc,
 
6329
+               expect_rc);
 
6330
+       return 2;
 
6331
+      }
 
6332
+    if (expect_rc == 1 && code != abort_code - 256)
 
6333
+      {
 
6334
+       return 3;
 
6335
+      }
 
6336
+  }
 
6337
+  if (abort_code > (uint64_t)num_abort_classes)
 
6338
+    {
 
6339
+      abort_code = (uint64_t)num_abort_classes;
 
6340
+    }
 
6341
+  expect_rc = (abort_classes[abort_code] == ABORT_T_ILLEGAL) ? 1 : 0;
 
6342
+  rc = __TM_is_illegal(tdb);
 
6343
+  if (rc != expect_rc)
 
6344
+    {
 
6345
+      dump_tdb(tdb);
 
6346
+      fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
 
6347
+      return 4;
 
6348
+    }
 
6349
+  expect_rc =
 
6350
+    (abort_classes[abort_code] == ABORT_T_FOOTPRINT_EXCEEDED) ?
 
6351
+    1 : 0;
 
6352
+  rc = __TM_is_footprint_exceeded(tdb);
 
6353
+  if (rc != expect_rc)
 
6354
+    {
 
6355
+      dump_tdb(tdb);
 
6356
+      fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
 
6357
+      return 5;
 
6358
+    }
 
6359
+  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)
 
6363
+    {
 
6364
+      dump_tdb(tdb);
 
6365
+      fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
 
6366
+      return 6;
 
6367
+    }
 
6368
+  expect_rc = (abort_classes[abort_code] == ABORT_T_CONFLICT) ? 1 : 0;
 
6369
+  rc = __TM_is_conflict(tdb);
 
6370
+  if (rc != expect_rc)
 
6371
+    {
 
6372
+      dump_tdb(tdb);
 
6373
+      fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
 
6374
+      return 7;
 
6375
+    }
 
6376
+
 
6377
+  return 0;
 
6378
+}
 
6379
+
 
6380
+/* ---------------------------- local test functions ----------------------- */
 
6381
+
 
6382
+/* Not a test; make sure that the involved global cachelines are reserved for
 
6383
+ * writing.  */
 
6384
+static int init_cache(void)
 
6385
+{
 
6386
+  make_fake_tdb(&local_tdb);
 
6387
+  make_fake_tdb(&local_tdb256);
 
6388
+  global_int = 0;
 
6389
+  global_u64 = 0;
 
6390
+  global_float_1 = 1.0;
 
6391
+  global_float_2 = 2.5;
 
6392
+  global_float_3 = 0.0;
 
6393
+  counters.c1 = 0;
 
6394
+  counters.c2 = 0;
 
6395
+  counters.c3 = 0;
 
6396
+
 
6397
+  return 0;
 
6398
+}
 
6399
+
 
6400
+static int test_abort_classification(void)
 
6401
+{
 
6402
+  int i;
 
6403
+
 
6404
+  make_fake_tdb(&local_tdb);
 
6405
+  for (i = 0; i <= 256; i++)
 
6406
+    {
 
6407
+      int rc;
 
6408
+
 
6409
+      local_tdb.abort_code = (uint64_t)i;
 
6410
+      rc = check_abort_code_in_tdb(&local_tdb, (uint64_t)i);
 
6411
+      if (rc != 0)
 
6412
+       {
 
6413
+         return 100 * i + rc;
 
6414
+       }
 
6415
+    }
 
6416
+
 
6417
+  return 0;
 
6418
+}
 
6419
+
 
6420
+static int test_cc_classification(void)
 
6421
+{
 
6422
+  long rc;
 
6423
+
 
6424
+  rc = __TM_is_failure_persistent(0);
 
6425
+  if (rc != 0)
 
6426
+    {
 
6427
+      return 1;
 
6428
+    }
 
6429
+  rc = __TM_is_failure_persistent(1);
 
6430
+  if (rc != 0)
 
6431
+    {
 
6432
+      return 2;
 
6433
+    }
 
6434
+  rc = __TM_is_failure_persistent(2);
 
6435
+  if (rc != 0)
 
6436
+    {
 
6437
+      return 3;
 
6438
+    }
 
6439
+  rc = __TM_is_failure_persistent(3);
 
6440
+  if (rc != 1)
 
6441
+    {
 
6442
+      return 4;
 
6443
+    }
 
6444
+
 
6445
+  return 0;
 
6446
+}
 
6447
+
 
6448
+static int test_tbegin_ntstg_tend(void)
 
6449
+{
 
6450
+  long rc;
 
6451
+
 
6452
+  counters.c1 = 0;
 
6453
+  counters.c2 = 0;
 
6454
+  if ((rc = __TM_simple_begin()) == 0)
 
6455
+    {
 
6456
+      __TM_non_transactional_store((uint64_t *)&counters.c1, 1);
 
6457
+      counters.c2 = 2;
 
6458
+      rc = __TM_end();
 
6459
+      if (rc != 0)
 
6460
+       {
 
6461
+         return 100 * rc + 5;
 
6462
+       }
 
6463
+      if (counters.c1 != 1)
 
6464
+       {
 
6465
+         return 100 * counters.c1 + 2;
 
6466
+       }
 
6467
+      if (counters.c2 != 2)
 
6468
+       {
 
6469
+         return 100 * counters.c2 + 3;
 
6470
+       }
 
6471
+    }
 
6472
+  else
 
6473
+    {
 
6474
+      return 100 * rc + 4;
 
6475
+    }
 
6476
+
 
6477
+  return 0;
 
6478
+}
 
6479
+
 
6480
+static int test_tbegin_ntstg_tabort(void)
 
6481
+{
 
6482
+  register float f;
 
6483
+
 
6484
+  counters.c1 = 0;
 
6485
+  counters.c2 = 0;
 
6486
+  f = 0;
 
6487
+  if (__TM_simple_begin() == 0)
 
6488
+    {
 
6489
+      __TM_non_transactional_store((uint64_t *)&counters.c1, 1);
 
6490
+      counters.c2 = 2;
 
6491
+      f = 1;
 
6492
+      __TM_named_abort(0);
 
6493
+      return 1;
 
6494
+    }
 
6495
+  if (counters.c1 != 1)
 
6496
+    {
 
6497
+      return 100 * counters.c1 + 2;
 
6498
+    }
 
6499
+  if (counters.c2 != 0)
 
6500
+    {
 
6501
+      return 100 * counters.c2 + 3;
 
6502
+    }
 
6503
+  if (f != 0)
 
6504
+    {
 
6505
+      return 100 * f + 4;
 
6506
+    }
 
6507
+
 
6508
+  return 0;
 
6509
+}
 
6510
+
 
6511
+static int test_tbegin_aborts(void)
 
6512
+{
 
6513
+  float f;
 
6514
+  long rc;
 
6515
+
 
6516
+  f = 77;
 
6517
+  if ((rc = __TM_simple_begin()) == 0)
 
6518
+    {
 
6519
+      f = 88;
 
6520
+      __TM_abort();
 
6521
+      return 2;
 
6522
+    }
 
6523
+  else if (rc != 2)
 
6524
+    {
 
6525
+      return 3;
 
6526
+    }
 
6527
+  if (f != 77)
 
6528
+    {
 
6529
+      return 4;
 
6530
+    }
 
6531
+  f = 66;
 
6532
+  if ((rc = __TM_simple_begin()) == 0)
 
6533
+    {
 
6534
+      f = 99;
 
6535
+      __TM_named_abort(3);
 
6536
+      return 5;
 
6537
+    }
 
6538
+  else if (rc != 3)
 
6539
+    {
 
6540
+      return 100 * rc + 6;
 
6541
+    }
 
6542
+  if (f != 66)
 
6543
+    {
 
6544
+      return 100 * f + 7;
 
6545
+    }
 
6546
+  if ((rc = __TM_simple_begin()) == 0)
 
6547
+    {
 
6548
+      global_float_3 = global_float_1 + global_float_2;
 
6549
+      rc = __TM_end();
 
6550
+      if (rc != 0)
 
6551
+       {
 
6552
+         return 100 * rc + 8;
 
6553
+       }
 
6554
+    }
 
6555
+  else
 
6556
+    {
 
6557
+      return 100 * rc + 9;
 
6558
+    }
 
6559
+  if (global_float_3 != global_float_1 + global_float_2)
 
6560
+    {
 
6561
+      return 100 * rc + 10;
 
6562
+    }
 
6563
+
 
6564
+  return 0;
 
6565
+}
 
6566
+
 
6567
+static int test_tbegin_tdb(void)
 
6568
+{
 
6569
+  long rc;
 
6570
+
 
6571
+  local_tdb.format = 0;
 
6572
+  if ((rc = __TM_begin(&local_tdb)) == 0)
 
6573
+    {
 
6574
+      rc = __TM_end();
 
6575
+      if (rc != 0)
 
6576
+       {
 
6577
+         return 100 * rc + 1;
 
6578
+       }
 
6579
+      if (local_tdb.format != 0)
 
6580
+       {
 
6581
+         dump_tdb(&local_tdb);
 
6582
+         return 100 * local_tdb.format + 2;
 
6583
+       }
 
6584
+    }
 
6585
+  else
 
6586
+    {
 
6587
+      return 100 * rc + 3;
 
6588
+    }
 
6589
+  local_tdb.format = 0;
 
6590
+  if ((rc = __TM_begin(&local_tdb)) == 0)
 
6591
+    {
 
6592
+      __TM_named_abort(1);
 
6593
+      return 4;
 
6594
+    }
 
6595
+  else
 
6596
+    {
 
6597
+      if (rc != 3)
 
6598
+       {
 
6599
+         return 100 * rc + 5;
 
6600
+       }
 
6601
+      if (local_tdb.format != 1)
 
6602
+       {
 
6603
+         dump_tdb(&local_tdb);
 
6604
+         return 100 * local_tdb.format + 6;
 
6605
+       }
 
6606
+    }
 
6607
+  local_tdb256.format = 0;
 
6608
+  if ((rc = __TM_begin(&local_tdb256)) == 0)
 
6609
+    {
 
6610
+      rc = __TM_end();
 
6611
+      if (rc != 0)
 
6612
+       {
 
6613
+         return 1100 * rc + 1;
 
6614
+       }
 
6615
+      if (local_tdb256.format != 0)
 
6616
+       {
 
6617
+         dump_tdb(&local_tdb256);
 
6618
+         return 1100 * local_tdb256.format + 2;
 
6619
+       }
 
6620
+    }
 
6621
+  else
 
6622
+    {
 
6623
+      return 1100 * rc + 3;
 
6624
+    }
 
6625
+#if 1 /*!!!does not work*/
 
6626
+  local_tdb256.format = 0;
 
6627
+  if ((rc = __TM_begin(&local_tdb256)) == 0)
 
6628
+    {
 
6629
+      __TM_named_abort(1);
 
6630
+      return 2004;
 
6631
+    }
 
6632
+  else
 
6633
+    {
 
6634
+      if (rc != 3)
 
6635
+       {
 
6636
+         return 2100 * rc + 5;
 
6637
+       }
 
6638
+      if (local_tdb256.format != 1)
 
6639
+       {
 
6640
+         dump_tdb(&local_tdb256);
 
6641
+         return 2100 * local_tdb256.format + 6;
 
6642
+       }
 
6643
+    }
 
6644
+#endif
 
6645
+
 
6646
+  return 0;
 
6647
+}
 
6648
+
 
6649
+static int test_etnd(void)
 
6650
+{
 
6651
+  long rc;
 
6652
+
 
6653
+  {
 
6654
+    long nd;
 
6655
+
 
6656
+    make_fake_tdb(&local_tdb);
 
6657
+    local_tdb.nesting_depth = 0;
 
6658
+    nd = __TM_nesting_depth(&local_tdb);
 
6659
+    if (nd != 0)
 
6660
+      {
 
6661
+       return 1;
 
6662
+      }
 
6663
+    local_tdb.nesting_depth = 7;
 
6664
+    nd = __TM_nesting_depth(&local_tdb);
 
6665
+    if (nd != 7)
 
6666
+      {
 
6667
+       return 7;
 
6668
+      }
 
6669
+    local_tdb.format = 0;
 
6670
+    nd = __TM_nesting_depth(&local_tdb);
 
6671
+    if (nd != 0)
 
6672
+      {
 
6673
+       return 2;
 
6674
+      }
 
6675
+  }
 
6676
+  counters.c1 = 0;
 
6677
+  counters.c1 = 0;
 
6678
+  counters.c2 = 0;
 
6679
+  counters.c3 = 0;
 
6680
+  if ((rc = __TM_simple_begin()) == 0)
 
6681
+    {
 
6682
+      counters.c1 = __TM_nesting_depth(0);
 
6683
+      if (__TM_simple_begin() == 0)
 
6684
+       {
 
6685
+         counters.c2 = __TM_nesting_depth(0);
 
6686
+         if (__TM_simple_begin() == 0)
 
6687
+           {
 
6688
+             counters.c3 = __TM_nesting_depth(0);
 
6689
+             __TM_end();
 
6690
+           }
 
6691
+         __TM_end();
 
6692
+       }
 
6693
+      __TM_end();
 
6694
+    }
 
6695
+  else
 
6696
+    {
 
6697
+      return 100 * rc + 1;
 
6698
+    }
 
6699
+  if (counters.c1 != 1)
 
6700
+    {
 
6701
+      return 100 * counters.c1 + 2;
 
6702
+    }
 
6703
+  if (counters.c2 != 2)
 
6704
+    {
 
6705
+      return 100 * counters.c2 + 3;
 
6706
+    }
 
6707
+  if (counters.c3 != 3)
 
6708
+    {
 
6709
+      return 100 * counters.c3 + 4;
 
6710
+    }
 
6711
+
 
6712
+  return 0;
 
6713
+}
 
6714
+
 
6715
+/* ---------------------------- local testing framework functions ---------- */
 
6716
+
 
6717
+static int run_one_test(const test_table_entry_t *test_entry)
 
6718
+{
 
6719
+  int do_print_passes;
 
6720
+  int succeeded;
 
6721
+  int rc;
 
6722
+  int i;
 
6723
+
 
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)
 
6729
+    {
 
6730
+      printf(
 
6731
+            "         (requires %d successful out of %d runs)\n",
 
6732
+            test_entry->required_quorum,
 
6733
+            test_entry->max_repetitions);
 
6734
+    }
 
6735
+  succeeded = 0;
 
6736
+  rc = 0;
 
6737
+  for (rc = 0, i = 0; i < test_entry->max_repetitions; i++)
 
6738
+    {
 
6739
+      if (do_print_passes == 1)
 
6740
+       {
 
6741
+         if (i == 0)
 
6742
+           {
 
6743
+             printf("        ");
 
6744
+           }
 
6745
+         else
 
6746
+           {
 
6747
+             printf(",");
 
6748
+           }
 
6749
+       }
 
6750
+      rc = test_entry->test_func();
 
6751
+      if (rc == 0)
 
6752
+       {
 
6753
+         if (do_print_passes == 1)
 
6754
+           {
 
6755
+             printf(" success");
 
6756
+           }
 
6757
+         succeeded++;
 
6758
+         if (succeeded >= test_entry->required_quorum)
 
6759
+           {
 
6760
+             break;
 
6761
+           }
 
6762
+       }
 
6763
+      else
 
6764
+       {
 
6765
+         printf(" failed (rc = %d)", rc);
 
6766
+       }
 
6767
+    }
 
6768
+  if (do_print_passes == 1 || rc != 0)
 
6769
+    {
 
6770
+      printf("\n");
 
6771
+    }
 
6772
+  if (succeeded >= test_entry->required_quorum)
 
6773
+    {
 
6774
+      printf("+++ OK   %s\n", test_entry->name);
 
6775
+
 
6776
+      return 0;
 
6777
+    }
 
6778
+  else
 
6779
+    {
 
6780
+      printf("--- FAIL %s\n", test_entry->name);
 
6781
+
 
6782
+      return (rc != 0) ? rc : -1;
 
6783
+    }
 
6784
+}
 
6785
+
 
6786
+static int run_all_tests(const test_table_entry_t *test_table)
 
6787
+{
 
6788
+  const test_table_entry_t *test;
 
6789
+  int rc;
 
6790
+
 
6791
+  for (
 
6792
+       rc = 0, test = &test_table[0];
 
6793
+       test->test_func != NULL && rc == 0; test++)
 
6794
+    {
 
6795
+      rc = run_one_test(test);
 
6796
+    }
 
6797
+
 
6798
+  return rc;
 
6799
+}
 
6800
+
 
6801
+/* ---------------------------- interface functions ------------------------ */
 
6802
+
 
6803
+int main(void)
 
6804
+{
 
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 }
 
6815
+  };
 
6816
+
 
6817
+  {
 
6818
+    int rc;
 
6819
+
 
6820
+    rc = run_all_tests(test_table);
 
6821
+
 
6822
+    return rc;
 
6823
+  }
 
6824
+}
 
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)
 
6829
@@ -5,7 +5,7 @@
 
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" } } */
 
6835
 
 
6836
 int
 
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)
 
6842
@@ -0,0 +1,19 @@
 
6843
+! { dg-do compile }
 
6844
+! PR fortran/58989
 
6845
+!
 
6846
+program test
 
6847
+
 
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/)
 
6852
+
 
6853
+  fluxes = 1
 
6854
+
 
6855
+  dmmy = (/2,2,2/)
 
6856
+
 
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
 
6860
+
 
6861
+end program test
 
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)
 
6866
@@ -0,0 +1,27 @@
 
6867
+! { dg-do run }
 
6868
+!
 
6869
+! PR fortran/58771
 
6870
+!
 
6871
+! Contributed by Vittorio Secca  <zeccav@gmail.com>
 
6872
+!
 
6873
+! ICEd on the write statement with f() because the derived type backend
 
6874
+! declaration not built.
 
6875
+!
 
6876
+module m
 
6877
+  type t
 
6878
+    integer(4) g
 
6879
+  end type
 
6880
+end
 
6881
+
 
6882
+type(t) function f() result(ff)
 
6883
+  use m
 
6884
+  ff%g = 42
 
6885
+end
 
6886
+
 
6887
+  use m
 
6888
+  character (20) :: line1, line2
 
6889
+  type(t)  f
 
6890
+  write (line1, *) f()
 
6891
+  write (line2, *) 42_4
 
6892
+  if (line1 .ne. line2) call abort
 
6893
+end
 
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)
 
6898
@@ -0,0 +1,22 @@
 
6899
+! { dg-do compile }
 
6900
+! { dg-options "-Wall" }
 
6901
+!
 
6902
+! PR 58471: [4.8/4.9 Regression] ICE on invalid with missing type constructor and -Wall
 
6903
+!
 
6904
+! Contributed by Andrew Benson <abensonca@gmail.com>
 
6905
+
 
6906
+module cf
 
6907
+  implicit none
 
6908
+  type :: cfmde
 
6909
+  end type
 
6910
+  interface cfmde
 
6911
+     module procedure mdedc   ! { dg-error "is neither function nor subroutine" }
 
6912
+  end interface
 
6913
+contains
 
6914
+  subroutine cfi()
 
6915
+    type(cfmde), pointer :: cfd
 
6916
+    cfd=cfmde()                  ! { dg-error "Can't convert" }
 
6917
+  end subroutine
 
6918
+end module
 
6919
+
 
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)
 
6925
@@ -0,0 +1,19 @@
 
6926
+! { dg-do compile }
 
6927
+!
 
6928
+! PR 58099: [4.8/4.9 Regression] [F03] over-zealous procedure-pointer error checking
 
6929
+!
 
6930
+! Contributed by Daniel Price <daniel.price@monash.edu>
 
6931
+
 
6932
+  implicit none
 
6933
+  procedure(real), pointer :: wfunc
 
6934
+
 
6935
+  wfunc => w_cubic 
 
6936
 
6937
+contains
 
6938
+
 
6939
+  pure real function w_cubic(q2)
 
6940
+    real, intent(in) :: q2
 
6941
+    w_cubic = 0.
 
6942
+  end function
 
6943
+
 
6944
+end
 
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)
 
6949
@@ -0,0 +1,16 @@
 
6950
+! { dg-do compile }
 
6951
+!
 
6952
+! PR 58355: [4.7/4.8/4.9 Regression] [F03] ICE with TYPE, EXTENDS before parent TYPE defined
 
6953
+!
 
6954
+! Contributed by Andrew Benson <abensonca@gmail.com>
 
6955
+
 
6956
+module ct
 
6957
+  public :: t1
 
6958
+
 
6959
+  type, extends(t1) :: t2   ! { dg-error "has not been previously defined" }
 
6960
+
 
6961
+  type :: t1
 
6962
+  end type
 
6963
+end
 
6964
+
 
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)
 
6970
@@ -0,0 +1,57 @@
 
6971
+/* PR tree-optimization/58984 */
 
6972
+
 
6973
+struct S { int f0 : 8; int : 6; int f1 : 5; };
 
6974
+struct T { char f0; int : 6; int f1 : 5; };
 
6975
+
 
6976
+int a, *c = &a, e, n, b, m;
 
6977
+
 
6978
+static int
 
6979
+foo (struct S p)
 
6980
+{
 
6981
+  const unsigned short *f[36];
 
6982
+  for (; e < 2; e++)
 
6983
+    {
 
6984
+      const unsigned short **i = &f[0];
 
6985
+      *c ^= 1;
 
6986
+      if (p.f1)
 
6987
+       {
 
6988
+         *i = 0;
 
6989
+         return b;
 
6990
+       }
 
6991
+    }
 
6992
+  return 0;
 
6993
+}
 
6994
+
 
6995
+static int
 
6996
+bar (struct T p)
 
6997
+{
 
6998
+  const unsigned short *f[36];
 
6999
+  for (; e < 2; e++)
 
7000
+    {
 
7001
+      const unsigned short **i = &f[0];
 
7002
+      *c ^= 1;
 
7003
+      if (p.f1)
 
7004
+       {
 
7005
+         *i = 0;
 
7006
+         return b;
 
7007
+       }
 
7008
+    }
 
7009
+  return 0;
 
7010
+}
 
7011
+
 
7012
+int
 
7013
+main ()
 
7014
+{
 
7015
+  struct S o = { 1, 1 };
 
7016
+  foo (o);
 
7017
+  m = n || o.f0;
 
7018
+  if (a != 1)
 
7019
+    __builtin_abort ();
 
7020
+  e = 0;
 
7021
+  struct T p = { 1, 1 };
 
7022
+  bar (p);
 
7023
+  m |= n || p.f0;
 
7024
+  if (a != 0)
 
7025
+    __builtin_abort ();
 
7026
+  return 0;
 
7027
+}
 
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)
 
7032
@@ -0,0 +1,34 @@
 
7033
+/* PR middle-end/59138 */
 
7034
+/* Testcase by John Regehr <regehr@cs.utah.edu> */
 
7035
+
 
7036
+extern void abort (void);
 
7037
+
 
7038
+#pragma pack(1)
 
7039
+
 
7040
+struct S0 {
 
7041
+  int f0;
 
7042
+  int f1;
 
7043
+  int f2;
 
7044
+  short f3;
 
7045
+};
 
7046
+
 
7047
+short a = 1;
 
7048
+
 
7049
+struct S0 b = { 1 }, c, d, e;
 
7050
+
 
7051
+struct S0 fn1() { return c; }
 
7052
+
 
7053
+void fn2 (void)
 
7054
+{
 
7055
+  b = fn1 ();
 
7056
+  a = 0;
 
7057
+  d = e;
 
7058
+}
 
7059
+
 
7060
+int main (void)
 
7061
+{
 
7062
+  fn2 ();
 
7063
+  if (a != 0)
 
7064
+    abort ();
 
7065
+  return 0;
 
7066
+}
 
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)
 
7071
@@ -0,0 +1,23 @@
 
7072
+/* PR tree-optimization/59014 */
 
7073
+
 
7074
+__attribute__((noinline, noclone)) long long int
 
7075
+foo (long long int x, long long int y)
 
7076
+{
 
7077
+  if (((int) x | (int) y) != 0)
 
7078
+    return 6;
 
7079
+  return x + y;
 
7080
+}
 
7081
+
 
7082
+int
 
7083
+main ()
 
7084
+{
 
7085
+  if (sizeof (long long) == sizeof (int))
 
7086
+    return 0;
 
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 ();
 
7093
+  return 0;
 
7094
+}
 
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)
 
7099
@@ -0,0 +1,15 @@
 
7100
+/* PR target/59101 */
 
7101
+
 
7102
+__attribute__((noinline, noclone)) int
 
7103
+foo (int a)
 
7104
+{
 
7105
+  return (~a & 4102790424LL) > 0 | 6;
 
7106
+}
 
7107
+
 
7108
+int
 
7109
+main ()
 
7110
+{
 
7111
+  if (foo (0) != 7)
 
7112
+    __builtin_abort ();
 
7113
+  return 0;
 
7114
+}
 
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)
 
7119
@@ -0,0 +1,40 @@
 
7120
+#include <assert.h>
 
7121
+
 
7122
+int a, *b, c, d, f, **i, p, q, *r;
 
7123
+short o, j;
 
7124
+
 
7125
+static int __attribute__((noinline, noclone))
 
7126
+fn1 (int *p1, int **p2)
 
7127
+{
 
7128
+  int **e = &b;
 
7129
+  for (; p; p++)
 
7130
+    *p1 = 1;
 
7131
+  *e = *p2 = &d;
 
7132
+
 
7133
+  assert (r);
 
7134
+
 
7135
+  return c;
 
7136
+}
 
7137
+
 
7138
+static int ** __attribute__((noinline, noclone))
 
7139
+fn2 (void)
 
7140
+{
 
7141
+  for (f = 0; f != 42; f++)
 
7142
+    {
 
7143
+      int *g[3] = {0, 0, 0};
 
7144
+      for (o = 0; o; o--)
 
7145
+        for (; a > 1;)
 
7146
+          {
 
7147
+            int **h[1] = { &g[2] };
 
7148
+          }
 
7149
+    }
 
7150
+  return &r;
 
7151
+}
 
7152
+
 
7153
+int
 
7154
+main (void)
 
7155
+{
 
7156
+  i = fn2 ();
 
7157
+  fn1 (b, i);
 
7158
+  return 0;
 
7159
+}
 
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)
 
7164
@@ -0,0 +1,25 @@
 
7165
+/* PR tree-optimization/59014 */
 
7166
+
 
7167
+int a = 2, b, c, d;
 
7168
+
 
7169
+int
 
7170
+foo ()
 
7171
+{
 
7172
+  for (;; c++)
 
7173
+    if ((b > 0) | (a & 1))
 
7174
+      ;
 
7175
+    else
 
7176
+      {
 
7177
+       d = a;
 
7178
+       return 0;
 
7179
+      }
 
7180
+}
 
7181
+
 
7182
+int
 
7183
+main ()
 
7184
+{
 
7185
+  foo ();
 
7186
+  if (d != 2)
 
7187
+    __builtin_abort ();
 
7188
+  return 0;
 
7189
+}
 
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)
 
7194
@@ -0,0 +1,11 @@
 
7195
+/* PR middle-end/58970 */
 
7196
+
 
7197
+struct T { int b : 1; };
 
7198
+struct S { struct T t[1]; };
 
7199
+
 
7200
+void
 
7201
+foo (int x, struct S *s)
 
7202
+{
 
7203
+  if (x == -1)
 
7204
+    s->t[x].b = 0;
 
7205
+}
 
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)
 
7210
@@ -0,0 +1,19 @@
 
7211
+/* PR rtl-optimization/58997 */
 
7212
+
 
7213
+int a, b, c, e;
 
7214
+short d;
 
7215
+char h;
 
7216
+
 
7217
+void
 
7218
+foo ()
 
7219
+{
 
7220
+  while (b)
 
7221
+    {
 
7222
+      d = a ? c : 1 % a;
 
7223
+      c = d;
 
7224
+      h = d;
 
7225
+      if (!h)
 
7226
+       while (e)
 
7227
+         ;
 
7228
+    }
 
7229
+}
 
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)
 
7234
@@ -0,0 +1,11 @@
 
7235
+/* PR middle-end/58970 */
 
7236
+
 
7237
+struct T { char a : 8; char b : 1; };
 
7238
+struct S { char x; struct T t[1]; };
 
7239
+
 
7240
+void
 
7241
+foo (int x, struct S *s)
 
7242
+{
 
7243
+  if (x == -1)
 
7244
+    s->t[x].b = 0;
 
7245
+}
 
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)
 
7250
@@ -1,8 +1,8 @@
 
7251
-/* PR rtl-optimization/57130 */
 
7252
+/* PR rtl-optimization/57518 */
 
7253
 
 
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" } } */
 
7258
 
 
7259
 char ip[10];
 
7260
 int total;
 
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)
 
7265
@@ -4,7 +4,7 @@
 
7266
 /* { dg-do run } */
 
7267
 /* { dg-options "-O1 -std=c99" } */
 
7268
 
 
7269
-#include <stdlib.h>
 
7270
+extern void abort (void);
 
7271
 
 
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)
 
7278
@@ -0,0 +1,13 @@
 
7279
+/* { dg-do run } */
 
7280
+/* { dg-require-effective-target sync_int_128_runtime } */
 
7281
+/* { dg-options "-mcx16" { target { i?86-*-* x86_64-*-* } } } */
 
7282
+
 
7283
+__int128_t i;
 
7284
+
 
7285
+int main()
 
7286
+{
 
7287
+  __atomic_store_16(&i, -1, 0);
 
7288
+  if (i != -1)
 
7289
+    __builtin_abort();
 
7290
+  return 0;
 
7291
+}
 
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)
 
7296
@@ -4,7 +4,8 @@
 
7297
 /* { dg-do run } */
 
7298
 /* { dg-options "-O1 -std=c99" } */
 
7299
 
 
7300
-#include <stdlib.h>
 
7301
+extern void abort (void);
 
7302
+extern void exit (int);
 
7303
 
 
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)
 
7310
@@ -0,0 +1,24 @@
 
7311
+/* { dg-do compile } */
 
7312
+/* { dg-options "-O2 -ftree-tail-merge -fdump-tree-pre" } */
 
7313
+
 
7314
+/* Type that matches the 'p' constraint.  */
 
7315
+#define TYPE void *
 
7316
+
 
7317
+static inline
 
7318
+void bar (TYPE *r)
 
7319
+{
 
7320
+  TYPE t;
 
7321
+  __asm__ ("" : "=&p" (t), "=p" (*r));
 
7322
+}
 
7323
+
 
7324
+void
 
7325
+foo (int n, TYPE *x, TYPE *y)
 
7326
+{
 
7327
+  if (n == 0)
 
7328
+    bar (x);
 
7329
+  else
 
7330
+    bar (y);
 
7331
+}
 
7332
+
 
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)
 
7339
@@ -0,0 +1,39 @@
 
7340
+/* { dg-do run } */
 
7341
+
 
7342
+extern void abort (void);
 
7343
+
 
7344
+struct
 
7345
+{
 
7346
+  int f0;
 
7347
+  int f1:1;
 
7348
+  int f2:2;
 
7349
+} a = {0, 0, 1};
 
7350
+
 
7351
+int b, c, *d, e, f;
 
7352
+
 
7353
+int
 
7354
+fn1 ()
 
7355
+{
 
7356
+  for (; b < 1; ++b)
 
7357
+    {
 
7358
+      for (e = 0; e < 1; e = 1)
 
7359
+       {
 
7360
+         int **g = &d;
 
7361
+         *g = &c;
 
7362
+       } 
 
7363
+      *d = 0;
 
7364
+      f = a.f1;
 
7365
+      if (f)
 
7366
+       return 0;
 
7367
+    }
 
7368
+  return 0;
 
7369
+}
 
7370
+
 
7371
+int
 
7372
+main ()
 
7373
+{
 
7374
+  fn1 ();
 
7375
+  if (b != 1)
 
7376
+    abort ();
 
7377
+  return 0;
 
7378
+}
 
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)
 
7383
@@ -0,0 +1,16 @@
 
7384
+/* { dg-do compile } */
 
7385
+
 
7386
+int x[1024], y[1024], z[1024], w[1024];
 
7387
+void foo (void)
 
7388
+{
 
7389
+  int i;
 
7390
+  for (i = 1; i < 1024; ++i)
 
7391
+    {
 
7392
+      int a = x[i];
 
7393
+      int b = y[i];
 
7394
+      int c = x[i-1];
 
7395
+      int d = y[i-1];
 
7396
+      if (w[i])
 
7397
+       z[i] = (a + b) + (c + d);
 
7398
+    }
 
7399
+}
 
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)
 
7404
@@ -0,0 +1,12 @@
 
7405
+/* { dg-do run } */
 
7406
+
 
7407
+int a, c;
 
7408
+
 
7409
+int main ()
 
7410
+{
 
7411
+  int e = -1;
 
7412
+  short d = (c <= 0) ^ e;
 
7413
+  if ((unsigned int) a - (a || d) <= (unsigned int) a)
 
7414
+    __builtin_abort ();
 
7415
+  return 0;
 
7416
+}
 
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)
 
7421
@@ -0,0 +1,107 @@
 
7422
+/* { dg-options "-mlong-calls" { target mips*-*-* } } */
 
7423
+
 
7424
+typedef unsigned char u8;
 
7425
+typedef unsigned short u16;
 
7426
+typedef unsigned int __kernel_size_t;
 
7427
+typedef __kernel_size_t size_t;
 
7428
+struct list_head {
 
7429
+ struct list_head *next;
 
7430
+};
 
7431
+
 
7432
+struct dmx_ts_feed {
 
7433
+ int is_filtering;
 
7434
+};
 
7435
+struct dmx_section_feed {
 
7436
+ u16 secbufp;
 
7437
+ u16 seclen;
 
7438
+ u16 tsfeedp;
 
7439
+};
 
7440
+
 
7441
+typedef int (*dmx_ts_cb) (
 
7442
+       const u8 * buffer1,
 
7443
+      size_t buffer1_length,
 
7444
+      const u8 * buffer2,
 
7445
+      size_t buffer2_length
 
7446
+);
 
7447
+
 
7448
+struct dvb_demux_feed {
 
7449
+ union {
 
7450
+  struct dmx_ts_feed ts;
 
7451
+  struct dmx_section_feed sec;
 
7452
+ } feed;
 
7453
+ union {
 
7454
+  dmx_ts_cb ts;
 
7455
+ } cb;
 
7456
+ int type;
 
7457
+ u16 pid;
 
7458
+ int ts_type;
 
7459
+ struct list_head list_head;
 
7460
+};
 
7461
+
 
7462
+struct dvb_demux {
 
7463
+ int (*stop_feed)(struct dvb_demux_feed *feed);
 
7464
+ struct list_head feed_list;
 
7465
+};
 
7466
+
 
7467
+
 
7468
+static
 
7469
+inline
 
7470
+__attribute__((always_inline))
 
7471
+u8
 
7472
+payload(const u8 *tsp)
 
7473
+{
 
7474
+ if (tsp[3] & 0x20) {
 
7475
+   return 184 - 1 - tsp[4];
 
7476
+ }
 
7477
+ return 184;
 
7478
+}
 
7479
+
 
7480
+static
 
7481
+inline
 
7482
+__attribute__((always_inline))
 
7483
+int
 
7484
+dvb_dmx_swfilter_payload(struct dvb_demux_feed *feed, const u8 *buf)
 
7485
+{
 
7486
+ int count = payload(buf);
 
7487
+ int p;
 
7488
+ if (count == 0)
 
7489
+  return -1;
 
7490
+ return feed->cb.ts(&buf[p], count, ((void *)0), 0);
 
7491
+}
 
7492
+
 
7493
+static
 
7494
+inline
 
7495
+__attribute__((always_inline))
 
7496
+void
 
7497
+dvb_dmx_swfilter_packet_type(struct dvb_demux_feed *feed, const u8 *buf)
 
7498
+{
 
7499
+ switch (feed->type) {
 
7500
+ case 0:
 
7501
+  if (feed->ts_type & 1) {
 
7502
+    dvb_dmx_swfilter_payload(feed, buf);
 
7503
+  }
 
7504
+  if (dvb_dmx_swfilter_section_packet(feed, buf) < 0)
 
7505
+   feed->feed.sec.seclen = feed->feed.sec.secbufp = 0;
 
7506
+ }
 
7507
+}
 
7508
+
 
7509
+static
 
7510
+void
 
7511
+dvb_dmx_swfilter_packet(struct dvb_demux *demux, const u8 *buf)
 
7512
+{
 
7513
+ struct dvb_demux_feed *feed;
 
7514
+ int dvr_done = 0;
 
7515
+
 
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);
 
7521
+ }
 
7522
+}
 
7523
+void dvb_dmx_swfilter_packets(struct dvb_demux *demux, const u8 *buf, size_t count)
 
7524
+{
 
7525
+ while (count--) {
 
7526
+   dvb_dmx_swfilter_packet(demux, buf);
 
7527
+ }
 
7528
+}
 
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)
 
7533
@@ -0,0 +1,42 @@
 
7534
+/* { dg-do run } */
 
7535
+/* { dg-additional-options "-ftree-pre -ftree-partial-pre" } */
 
7536
+
 
7537
+extern void abort (void);
 
7538
+
 
7539
+int b, c, d, f, g, h, i, j[6], *l = &b, *m, n, *o, r; 
 
7540
+char k;
 
7541
+
 
7542
+static int
 
7543
+foo ()
 
7544
+{
 
7545
+  char *p = &k;
 
7546
+
 
7547
+  for (; d; d++)
 
7548
+    if (i)
 
7549
+      h = 0;
 
7550
+    else
 
7551
+      h = c || (r = 0);
 
7552
+
 
7553
+  for (f = 0; f < 2; f++)
 
7554
+    {
 
7555
+      unsigned int q;
 
7556
+      *l = 0;
 
7557
+      if (n)
 
7558
+       *m = g;
 
7559
+      if (g)
 
7560
+       o = 0;
 
7561
+      for (q = -8; q >= 5; q++)
 
7562
+       (*p)--;
 
7563
+    }
 
7564
+
 
7565
+  return 0;
 
7566
+}
 
7567
+
 
7568
+int
 
7569
+main ()
 
7570
+{
 
7571
+  foo ();
 
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)
 
7573
+    abort ();
 
7574
+  return 0;
 
7575
+}
 
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)
 
7580
@@ -0,0 +1,51 @@
 
7581
+/* { dg-do run } */
 
7582
+/* { dg-additional-options "-fstrict-overflow" } */
 
7583
+
 
7584
+extern void abort (void);
 
7585
+
 
7586
+int a, b, c, d, e, f, g, h = 1, i;
 
7587
+
 
7588
+int foo (int p)
 
7589
+{
 
7590
+  return p < 0 && a < - __INT_MAX__ - 1 - p ? 0 : 1;
 
7591
+}
 
7592
+
 
7593
+int *bar ()
 
7594
+{
 
7595
+  int j; 
 
7596
+  i = h ? 0 : 1 % h;
 
7597
+  for (j = 0; j < 1; j++)
 
7598
+    for (d = 0; d; d++)
 
7599
+      for (e = 1; e;)
 
7600
+       return 0;
 
7601
+  return 0;
 
7602
+}
 
7603
+
 
7604
+int baz ()
 
7605
+{
 
7606
+  for (; b >= 0; b--)
 
7607
+    for (c = 1; c >= 0; c--)
 
7608
+      {
 
7609
+       int *k = &c;
 
7610
+       for (;;)
 
7611
+         {
 
7612
+           for (f = 0; f < 1; f++)
 
7613
+             {
 
7614
+               g = foo (*k);
 
7615
+               bar ();
 
7616
+             }
 
7617
+           if (*k)
 
7618
+             break;
 
7619
+           return 0;
 
7620
+         }
 
7621
+      }
 
7622
+  return 0;
 
7623
+}
 
7624
+
 
7625
+int main ()
 
7626
+{
 
7627
+  baz ();
 
7628
+  if (b != 0)
 
7629
+    abort ();
 
7630
+  return 0;
 
7631
+}
 
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)
 
7636
@@ -0,0 +1,34 @@
 
7637
+/* { dg-do run } */
 
7638
+/* { dg-additional-options "-fstrict-overflow" } */
 
7639
+
 
7640
+int a, b, d, e, f, *g, h, i;
 
7641
+volatile int c;
 
7642
+
 
7643
+char foo (unsigned char p)
 
7644
+{
 
7645
+  return p + 1;
 
7646
+}
 
7647
+
 
7648
+int bar () 
 
7649
+{
 
7650
+  for (h = 0; h < 3; h = foo (h))
 
7651
+    {
 
7652
+      c;
 
7653
+      for (f = 0; f < 1; f++)
 
7654
+       {
 
7655
+         i = a && 0 < -__INT_MAX__ - h ? 0 : 1;
 
7656
+         if (e)
 
7657
+           for (; d;)
 
7658
+             b = 0;
 
7659
+         else
 
7660
+           g = 0;
 
7661
+       }
 
7662
+    }
 
7663
+  return 0;
 
7664
+}
 
7665
+
 
7666
+int main ()
 
7667
+{
 
7668
+  bar ();
 
7669
+  return 0;
 
7670
+}
 
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)
 
7675
@@ -0,0 +1,33 @@
 
7676
+/* { dg-do run } */
 
7677
+
 
7678
+extern void abort (void);
 
7679
+
 
7680
+typedef struct {
 
7681
+    int msgLength;
 
7682
+    unsigned char data[1000];
 
7683
+} SMsg;
 
7684
+
 
7685
+typedef struct {
 
7686
+    int dummy;
 
7687
+    int d[0];
 
7688
+} SData;
 
7689
+
 
7690
+int condition = 3;
 
7691
+
 
7692
+int main()
 
7693
+{
 
7694
+  SMsg msg;
 
7695
+  SData *pData = (SData*)(msg.data);
 
7696
+  unsigned int i = 0;
 
7697
+  for (i = 0; i < 1; i++)
 
7698
+    {
 
7699
+      pData->d[i] = 0;
 
7700
+      if(condition & 1)
 
7701
+       pData->d[i] |= 0x55;
 
7702
+      if(condition & 2)
 
7703
+       pData->d[i] |= 0xaa;
 
7704
+    }
 
7705
+  if (pData->d[0] != 0xff)
 
7706
+    abort ();
 
7707
+  return 0;
 
7708
+}
 
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)
 
7713
@@ -0,0 +1,58 @@
 
7714
+/* { dg-do run } */
 
7715
+
 
7716
+extern void abort (void);
 
7717
+
 
7718
+int i, j, *pj = &j, **ppj = &pj;
 
7719
+int x, *px = &x;
 
7720
+
 
7721
+short s, *ps = &s, k;
 
7722
+
 
7723
+unsigned short u, *pu = &u, **ppu = &pu;
 
7724
+
 
7725
+char c, *pc = &c;
 
7726
+
 
7727
+unsigned char v = 48;
 
7728
+
 
7729
+static int
 
7730
+bar (int p)
 
7731
+{
 
7732
+  p = k;
 
7733
+  *px = **ppu = i;
 
7734
+  *ppj = &p;
 
7735
+  if (**ppj)
 
7736
+    *pj = p;
 
7737
+  return p;
 
7738
+}
 
7739
+
 
7740
+void __attribute__((noinline))
 
7741
+foo ()
 
7742
+{
 
7743
+  for (; i <= 3; i++)
 
7744
+    for (; j; j--);
 
7745
+
 
7746
+  u ^= bar (*pj);
 
7747
+
 
7748
+  for (k = 1; k >= 0; k--)
 
7749
+    {
 
7750
+      int l;
 
7751
+      bar (0);
 
7752
+      for (l = 1; l < 5; l++)
 
7753
+       {
 
7754
+         int m;
 
7755
+         for (m = 6; m; m--)
 
7756
+           {
 
7757
+             v--;
 
7758
+             *ps = *pc;
 
7759
+           }
 
7760
+       }
 
7761
+    }
 
7762
+}
 
7763
+
 
7764
+int
 
7765
+main ()
 
7766
+{
 
7767
+  foo ();
 
7768
+  if (v != 0)
 
7769
+    abort ();
 
7770
+  return 0;
 
7771
+}
 
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)
 
7776
@@ -0,0 +1,18 @@
 
7777
+/* { dg-do run } */
 
7778
+/* { dg-additional-options "-fstrict-overflow" } */
 
7779
+
 
7780
+int a, b, c, d, e;
 
7781
+
 
7782
+int
 
7783
+main ()
 
7784
+{
 
7785
+  for (b = 4; b > -30; b--)
 
7786
+    for (; c;)
 
7787
+      for (;;)
 
7788
+       {
 
7789
+         e = a > __INT_MAX__ - b;
 
7790
+         if (d)
 
7791
+           break;
 
7792
+       }
 
7793
+  return 0;
 
7794
+}
 
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)
 
7799
@@ -0,0 +1,14 @@
 
7800
+/* { dg-do run } */
 
7801
+/* { dg-options "-O3" } */
 
7802
+
 
7803
+int a, c, e[5][2]; 
 
7804
+unsigned int d;
 
7805
+
 
7806
+int
 
7807
+main ()
 
7808
+{
 
7809
+  for (d = 0; d < 2; d++)
 
7810
+    if (a ? 0 : e[c + 3][d] & e[c + 4][d])
 
7811
+      break;
 
7812
+  return 0;
 
7813
+}
 
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)
 
7818
@@ -0,0 +1,18 @@
 
7819
+/* { dg-do run } */
 
7820
+/* { dg-options "-O3 -fdump-tree-pcom-details" } */
 
7821
+
 
7822
+int b, f, d[5][2];
 
7823
+unsigned int c;
 
7824
+
 
7825
+int
 
7826
+main ()
 
7827
+{
 
7828
+  for (c = 0; c < 2; c++)
 
7829
+    if (d[b + 3][c] & d[b + 4][c])
 
7830
+      if (f)
 
7831
+       break;
 
7832
+  return 0;
 
7833
+}
 
7834
+
 
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)
 
7841
@@ -1,3 +1,292 @@
 
7842
+2013-11-29  Jakub Jelinek  <jakub@redhat.com>
 
7843
+
 
7844
+       PR c/59280
 
7845
+       * c-c++-common/pr59280.c: New test.
 
7846
+
 
7847
+2013-11-28  Jakub Jelinek  <jakub@redhat.com>
 
7848
+
 
7849
+       PR c++/59297
 
7850
+       * g++.dg/gomp/pr59297.C: New test.
 
7851
+
 
7852
+2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
7853
+
 
7854
+       Backport from mainline
 
7855
+       2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
7856
+
 
7857
+       * gcc.target/arm/vrinta-ce.c: New testcase.
 
7858
+
 
7859
+2013-11-28  Uros Bizjak  <ubizjak@gmail.com>
 
7860
+
 
7861
+       Backport from mainline
 
7862
+       2013-11-23  Uros Bizjak  <ubizjak@gmail.com>
 
7863
+
 
7864
+       PR target/56788
 
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
 
7873
+       result with __A.
 
7874
+
 
7875
+2013-11-28  Terry Guo  <terry.guo@arm.com>
 
7876
+
 
7877
+       Backport mainline r205391
 
7878
+       2013-11-26  Terry Guo  <terry.guo@arm.com>
 
7879
+
 
7880
+       * gcc.target/arm/thumb1-pic-high-reg.c: New case.
 
7881
+       * gcc.target/arm/thumb1-pic-single-base.c: New case.
 
7882
+
 
7883
+2013-11-27  Jakub Jelinek  <jakub@redhat.com>
 
7884
+
 
7885
+       Backported from mainline
 
7886
+       2013-11-27  Jakub Jelinek  <jakub@redhat.com>
 
7887
+
 
7888
+       PR tree-optimization/59014
 
7889
+       * gcc.c-torture/execute/pr59014-2.c: New test.
 
7890
+
 
7891
+       2013-11-26  Jakub Jelinek  <jakub@redhat.com>
 
7892
+
 
7893
+       PR tree-optimization/59014
 
7894
+       * gcc.c-torture/execute/pr59014.c: New test.
 
7895
+
 
7896
+2013-11-27  Eric Botcazou  <ebotcazou@adacore.com>
 
7897
+
 
7898
+       * gcc.c-torture/execute/20131127-1.c: New test.
 
7899
+
 
7900
+2013-11-25  Vidya Praveen  <vidyapraveen@arm.com>
 
7901
+
 
7902
+       Backport from mainline
 
7903
+       2013-10-21  Vidya Praveen  <vidyapraveen@arm.com>
 
7904
+
 
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().
 
7907
+
 
7908
+2013-11-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>
 
7909
+
 
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
 
7913
+       one.
 
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.
 
7920
+
 
7921
+2013-11-19  Richard Biener  <rguenther@suse.de>
 
7922
+
 
7923
+       PR tree-optimization/57517
 
7924
+       * gfortran.fortran-torture/compile/pr57517.f90: New testcase.
 
7925
+       * gcc.dg/torture/pr57517.c: Likewise.
 
7926
+
 
7927
+2013-11-19  Richard Biener  <rguenther@suse.de>
 
7928
+
 
7929
+       Backport from mainline
 
7930
+       2013-11-05  Richard Biener  <rguenther@suse.de>
 
7931
+
 
7932
+       PR middle-end/58941
 
7933
+       * gcc.dg/torture/pr58941.c: New testcase.
 
7934
+
 
7935
+2013-11-18  Richard Biener  <rguenther@suse.de>
 
7936
+
 
7937
+       Backport from mainline
 
7938
+       2013-10-21  Richard Biener  <rguenther@suse.de>
 
7939
+
 
7940
+       PR tree-optimization/58794
 
7941
+       * c-c++-common/torture/pr58794-1.c: New testcase.
 
7942
+       * c-c++-common/torture/pr58794-2.c: Likewise.
 
7943
+
 
7944
+       2013-10-21  Richard Biener  <rguenther@suse.de>
 
7945
+
 
7946
+       PR middle-end/58742
 
7947
+       * c-c++-common/fold-divmul-1.c: New testcase.
 
7948
+
 
7949
+       2013-11-06  Richard Biener  <rguenther@suse.de>
 
7950
+
 
7951
+       PR tree-optimization/58653
 
7952
+       * gcc.dg/tree-ssa/predcom-6.c: New testcase.
 
7953
+       * gcc.dg/tree-ssa/predcom-7.c: Likewise.
 
7954
+
 
7955
+       PR tree-optimization/59047
 
7956
+       * gcc.dg/torture/pr59047.c: New testcase.
 
7957
+
 
7958
+       2013-10-15  Richard Biener  <rguenther@suse.de>
 
7959
+
 
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.
 
7964
+
 
7965
+2013-11-17  Janus Weil  <janus@gcc.gnu.org>
 
7966
+
 
7967
+       Backport from mainline
 
7968
+       2013-11-07  Janus Weil  <janus@gcc.gnu.org>
 
7969
+
 
7970
+       PR fortran/58471
 
7971
+       * gfortran.dg/constructor_9.f90: New.
 
7972
+
 
7973
+2013-11-16  Janus Weil  <janus@gcc.gnu.org>
 
7974
+
 
7975
+       Backport from mainline
 
7976
+       2013-09-20  Janus Weil  <janus@gcc.gnu.org>
 
7977
+
 
7978
+       PR fortran/58099
 
7979
+       * gfortran.dg/proc_ptr_43.f90: New.
 
7980
+
 
7981
+2013-11-16  Paul Thomas  <pault@gcc.gnu.org>
 
7982
+
 
7983
+       PR fortran/58771
 
7984
+       * gfortran.dg/derived_external_function_1.f90 : New test
 
7985
+
 
7986
+2013-11-14  Uros Bizjak  <ubizjak@gmail.com>
 
7987
+
 
7988
+       Backport from mainline
 
7989
+       2013-11-06  Uros Bizjak  <ubizjak@gmail.com>
 
7990
+
 
7991
+       PR target/59021
 
7992
+       * gcc.target/i386/pr59021.c: New test.
 
7993
+
 
7994
+2013-11-14  Jakub Jelinek  <jakub@redhat.com>
 
7995
+
 
7996
+       PR target/59101
 
7997
+       * gcc.c-torture/execute/pr59101.c: New test.
 
7998
+
 
7999
+2013-11-11  Jakub Jelinek  <jakub@redhat.com>
 
8000
+
 
8001
+       Backported from mainline
 
8002
+       2013-11-06  Jakub Jelinek  <jakub@redhat.com>
 
8003
+
 
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.
 
8007
+
 
8008
+       2013-11-05  Jakub Jelinek  <jakub@redhat.com>
 
8009
+
 
8010
+       PR rtl-optimization/58997
 
8011
+       * gcc.c-torture/compile/pr58997.c: New test.
 
8012
+
 
8013
+2013-11-10  Wei Mi  <wmi@google.com>
 
8014
+
 
8015
+       * testsuite/gcc.dg/pr57518.c: Backport regex fix from r200720.
 
8016
+
 
8017
+2013-11-07  H.J. Lu  <hongjiu.lu@intel.com>
 
8018
+
 
8019
+       Backport from mainline
 
8020
+       2013-11-07  H.J. Lu  <hongjiu.lu@intel.com>
 
8021
+
 
8022
+       PR target/59034
 
8023
+       * gcc.target/i386/pr59034-1.c: New test.
 
8024
+       * gcc.target/i386/pr59034-2.c: Likewise.
 
8025
+
 
8026
+2013-11-06  Wei Mi  <wmi@google.com>
 
8027
+
 
8028
+       PR regression/58985
 
8029
+       * testsuite/gcc.dg/pr57518.c: Add subreg in regexp pattern.
 
8030
+
 
8031
+2013-11-05  Steven G. Kargl <kargl@gcc.gnu.org>
 
8032
+
 
8033
+       PR fortran/58989
 
8034
+       * gfortran.dg/reshape_6.f90: New test.
 
8035
+
 
8036
+2013-11-05  Jakub Jelinek  <jakub@redhat.com>
 
8037
+
 
8038
+       PR tree-optimization/58984
 
8039
+       * gcc.c-torture/execute/pr58984.c: New test.
 
8040
+
 
8041
+2013-11-04  Marek Polacek  <polacek@redhat.com>
 
8042
+
 
8043
+       Backport from mainline
 
8044
+       2013-11-04  Marek Polacek  <polacek@redhat.com>
 
8045
+
 
8046
+       PR c++/58979
 
8047
+       * g++.dg/diagnostic/pr58979.C: New test.
 
8048
+
 
8049
+2013-11-03  H.J. Lu  <hongjiu.lu@intel.com>
 
8050
+
 
8051
+       Backport from mainline
 
8052
+       2013-10-12  H.J. Lu  <hongjiu.lu@intel.com>
 
8053
+
 
8054
+       PR target/58690
 
8055
+       * gcc.target/i386/pr58690.c: New test
 
8056
+
 
8057
+2013-11-02  Janus Weil  <janus@gcc.gnu.org>
 
8058
+
 
8059
+       Backport from mainline
 
8060
+       2013-09-23  Janus Weil  <janus@gcc.gnu.org>
 
8061
+
 
8062
+       PR fortran/58355
 
8063
+       * gfortran.dg/extends_15.f90: New.
 
8064
+
 
8065
+2013-10-29  Uros Bizjak  <ubizjak@gmail.com>
 
8066
+
 
8067
+       Backport from mainline
 
8068
+       2013-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
 
8069
+
 
8070
+       PR rtl-optimization/58079
 
8071
+       * gcc.dg/torture/pr58079.c: New test.
 
8072
+
 
8073
+2013-10-28  Tom de Vries  <tom@codesourcery.com>
 
8074
+
 
8075
+       * gcc.target/arm/require-pic-register-loc.c: New test.
 
8076
+
 
8077
+2013-10-26  Uros Bizjak  <ubizjak@gmail.com>
 
8078
+
 
8079
+       Backport from mainline
 
8080
+       2013-10-22  Uros Bizjak  <ubizjak@gmail.com>
 
8081
+
 
8082
+       PR target/58779
 
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.
 
8086
+
 
8087
+2013-10-25  Richard Henderson  <rth@redhat.com>
 
8088
+
 
8089
+       PR rtl/58542
 
8090
+       * gcc.dg/atomic-store-6.c: New.
 
8091
+
 
8092
+2013-10-25  Tom de Vries  <tom@codesourcery.com>
 
8093
+
 
8094
+       PR c++/58282
 
8095
+       * g++.dg/tm/noexcept-6.C: New test.
 
8096
+
 
8097
+2013-10-25  Eric Botcazou  <ebotcazou@adacore.com>
 
8098
+
 
8099
+       * gcc.c-torture/execute/pr58831.c: New test.
 
8100
+
 
8101
+2013-10-23  Tom de Vries  <tom@codesourcery.com>
 
8102
+
 
8103
+       PR tree-optimization/58805
 
8104
+       * gcc.dg/pr58805.c: New test.
 
8105
+
 
8106
+2013-10-23  Richard Biener  <rguenther@suse.de>
 
8107
+
 
8108
+       * gcc.dg/torture/pr58830.c: New testcase.
 
8109
+
 
8110
+       Backport from mainline
 
8111
+       2013-06-24  Richard Biener  <rguenther@suse.de>
 
8112
+
 
8113
+       PR tree-optimization/57488
 
8114
+       * gcc.dg/torture/pr57488.c: New testcase.
 
8115
+
 
8116
+2013-10-19  Oleg Endo  <olegendo@gcc.gnu.org>
 
8117
+
 
8118
+       * gcc.target/sh/pr54089-3.c: Fix test for load of constant 31.
 
8119
+
 
8120
+2013-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
 
8121
+
 
8122
+       PR c++/58596
 
8123
+       * g++.dg/cpp0x/lambda/lambda-nsdmi5.C: New
 
8124
+
 
8125
+2013-10-16  Paolo Carlini  <paolo.carlini@oracle.com>
 
8126
+
 
8127
+       PR c++/58633
 
8128
+       * g++.dg/cpp0x/decltype57.C: New.
 
8129
+       * g++.dg/cpp0x/enum18.C: Revert r174385 changes.
 
8130
+
 
8131
 2013-10-16  Release Manager
 
8132
 
 
8133
        * GCC 4.8.2 released.
 
8134
@@ -39,9 +328,9 @@
 
8135
        Backport from mainline
 
8136
        2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
8137
 
 
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.
 
8144
 
 
8145
 2013-10-04  Tobias Burnus  <burnus@net-b.de>
 
8146
 
 
8147
@@ -307,8 +596,8 @@
 
8148
        Backport from mainline
 
8149
        2013-08-12  Perez Read  <netfirewall@gmail.com>
 
8150
 
 
8151
-        PR target/58132
 
8152
-        * gcc.target/i386/movabs-1.c: New test.
 
8153
+       PR target/58132
 
8154
+       * gcc.target/i386/movabs-1.c: New test.
 
8155
 
 
8156
 2013-08-11  Janus Weil  <janus@gcc.gnu.org>
 
8157
 
 
8158
@@ -623,8 +912,8 @@
 
8159
 
 
8160
 2013-05-09  Martin Jambor  <mjambor@suse.cz>
 
8161
 
 
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.
 
8166
 
 
8167
 2013-05-08  Marc Glisse  <marc.glisse@inria.fr>
 
8168
 
 
8169
@@ -701,7 +990,7 @@
 
8170
        2013-04-25  Marek Polacek  <polacek@redhat.com>
 
8171
 
 
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.
 
8175
 
 
8176
 2013-05-02  Jakub Jelinek  <jakub@redhat.com>
 
8177
 
 
8178
@@ -727,32 +1016,32 @@
 
8179
        Backport from mainline
 
8180
        2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
 
8181
 
 
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.
 
8186
 
 
8187
 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
 
8188
 
 
8189
        Backport from mainline
 
8190
        2013-04-22  Vladimir Makarov  <vmakarov@redhat.com>
 
8191
 
 
8192
-        PR target/57018
 
8193
-        * gcc.target/i386/pr57018.c: New test.
 
8194
+       PR target/57018
 
8195
+       * gcc.target/i386/pr57018.c: New test.
 
8196
 
 
8197
 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
 
8198
 
 
8199
        Backport from mainline
 
8200
        2013-04-18  Jakub Jelinek  <jakub@redhat.com>
 
8201
 
 
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.
 
8206
 
 
8207
 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
 
8208
 
 
8209
        Backport from mainline
 
8210
        2013-04-19  Vladimir Makarov  <vmakarov@redhat.com>
 
8211
 
 
8212
-        PR rtl-optimization/56847
 
8213
-        * gcc.dg/pr56847.c: New test.
 
8214
+       PR rtl-optimization/56847
 
8215
+       * gcc.dg/pr56847.c: New test.
 
8216
 
 
8217
 2013-05-02  Ian Bolton  <ian.bolton@arm.com>
 
8218
 
 
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)
 
8223
@@ -0,0 +1,13 @@
 
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
 
8228
+  INTEGER :: i
 
8229
+  REAL :: zu
 
8230
+  DO i = its, ite
 
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 
 
8234
+    ENDIF
 
8235
+  END DO
 
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)
 
8241
@@ -0,0 +1,25 @@
 
8242
+// PR c++/59297
 
8243
+// { dg-do compile }
 
8244
+// { dg-options "-fopenmp" }
 
8245
+
 
8246
+template <typename T>
 
8247
+struct A
 
8248
+{
 
8249
+  ~A ();
 
8250
+  const T &operator[] (int) const;
 
8251
+};
 
8252
+
 
8253
+struct B
 
8254
+{
 
8255
+  int &operator () (A <int>);
 
8256
+};
 
8257
+
 
8258
+void
 
8259
+foo (B &x, int &z)
 
8260
+{
 
8261
+  A<A<int> > y;
 
8262
+  #pragma omp atomic
 
8263
+  x (y[0]) += 1;
 
8264
+  #pragma omp atomic
 
8265
+  z += x(y[1]);
 
8266
+}
 
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)
 
8271
@@ -0,0 +1,4 @@
 
8272
+// PR c++/58979
 
8273
+// { dg-do compile }
 
8274
+
 
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)
 
8280
@@ -0,0 +1,23 @@
 
8281
+// { dg-do compile }
 
8282
+// { dg-options "-fno-exceptions -fgnu-tm -O -std=c++0x -fdump-tree-tmlower" }
 
8283
+
 
8284
+struct TrueFalse
 
8285
+{
 
8286
+  static constexpr bool v() { return true; }
 
8287
+};
 
8288
+
 
8289
+int global;
 
8290
+
 
8291
+template<typename T> int foo()
 
8292
+{
 
8293
+  return __transaction_atomic noexcept(T::v()) (global + 1);
 
8294
+}
 
8295
+
 
8296
+int f1()
 
8297
+{
 
8298
+  return foo<TrueFalse>();
 
8299
+}
 
8300
+
 
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)
 
8308
@@ -0,0 +1,7 @@
 
8309
+// PR c++/58596
 
8310
+// { dg-do compile { target c++11 } }
 
8311
+
 
8312
+struct A
 
8313
+{
 
8314
+  int i = [] { return decltype(i)(); }();
 
8315
+};
 
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)
 
8320
@@ -4,5 +4,5 @@
 
8321
 int main(void) {
 
8322
   enum e {};
 
8323
   e ev;
 
8324
-  ev.e::~e_u();        // { dg-error "e_u. has not been declared" }
 
8325
+  ev.e::~e_u();        // { dg-error "" }
 
8326
 }
 
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)
 
8331
@@ -0,0 +1,13 @@
 
8332
+// PR c++/58162
 
8333
+// { dg-require-effective-target c++11 }
 
8334
+
 
8335
+struct A {
 
8336
+ A();
 
8337
+ A(A&&);
 
8338
+};
 
8339
+
 
8340
+struct B {
 
8341
+ A const a = A();
 
8342
+};
 
8343
+
 
8344
+B b;
 
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)
 
8349
@@ -0,0 +1,8 @@
 
8350
+// PR c++/58633
 
8351
+// { dg-do compile { target c++11 } }
 
8352
+
 
8353
+void foo(int i)
 
8354
+{
 
8355
+  typedef int I;
 
8356
+  decltype(i.I::~I())* p;
 
8357
+}
 
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)
 
8362
@@ -0,0 +1,17 @@
 
8363
+// PR c++/59031
 
8364
+// { dg-do compile }
 
8365
+// { dg-options "-fdump-tree-gimple " }
 
8366
+class B {
 
8367
+ public:
 
8368
+  virtual int add (int a, int b) {return a+ b;}
 
8369
+};
 
8370
+
 
8371
+class D : public B {
 
8372
+};
 
8373
+
 
8374
+int foo (int a, int b) {
 
8375
+  D d;
 
8376
+  return d.add(a, b);
 
8377
+}
 
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)
 
8384
@@ -0,0 +1,4 @@
 
8385
+/* PR c/59280 */
 
8386
+/* { dg-do compile } */
 
8387
+
 
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)
 
8393
@@ -0,0 +1,11 @@
 
8394
+/* { dg-do compile } */
 
8395
+/* { dg-options "-fdump-tree-original" } */
 
8396
+
 
8397
+int *
 
8398
+fx (int *b, int *e)
 
8399
+{
 
8400
+  return b + (e - b);
 
8401
+}
 
8402
+
 
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)
 
8409
@@ -0,0 +1,29 @@
 
8410
+/* { dg-do compile } */
 
8411
+
 
8412
+struct S0
 
8413
+{
 
8414
+  int f;
 
8415
+};
 
8416
+
 
8417
+struct S1
 
8418
+{
 
8419
+  struct S0 f1;
 
8420
+  volatile int f2;
 
8421
+};
 
8422
+
 
8423
+struct S2
 
8424
+{
 
8425
+  struct S1 g;
 
8426
+} a, b; 
 
8427
+
 
8428
+static int *c[1][2] = {{0, (int *)&a.g.f2}};
 
8429
+static int d; 
 
8430
+
 
8431
+int
 
8432
+main ()
 
8433
+{
 
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;
 
8437
+  return 0;
 
8438
+}
 
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)
 
8443
@@ -0,0 +1,21 @@
 
8444
+/* { dg-do compile } */
 
8445
+
 
8446
+struct S 
 
8447
+{
 
8448
+  volatile int f;
 
8449
+} a;
 
8450
+
 
8451
+unsigned int b;
 
8452
+
 
8453
+static int *c[1][2] = {{0, (int *)&a.f}};
 
8454
+static unsigned int d;
 
8455
+
 
8456
+int 
 
8457
+main ()
 
8458
+{
 
8459
+  for (; d < 1; d++)
 
8460
+    for (; b < 1; b++)
 
8461
+      *c[b][d + 1] = 0;
 
8462
+
 
8463
+  return 0;
 
8464
+}
 
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))
 
8472
     {
 
8473
-      pfn = build_c_cast (input_location, type, pfn);
 
8474
+      pfn = cp_build_c_cast (type, pfn, complain);
 
8475
       return build_ptrmemfunc1 (to_type,
 
8476
                                integer_zero_node,
 
8477
                                pfn);
 
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)
 
8482
@@ -380,6 +380,9 @@
 
8483
 {
 
8484
   tree type = body ? TREE_TYPE (body) : void_type_node;
 
8485
 
 
8486
+  if (!flag_exceptions)
 
8487
+    return body;
 
8488
+
 
8489
   if (cond && !value_dependent_expression_p (cond))
 
8490
     {
 
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)
 
8496
@@ -1,3 +1,53 @@
 
8497
+2013-11-28  Jakub Jelinek  <jakub@redhat.com>
 
8498
+
 
8499
+       PR c++/59297
 
8500
+       * semantics.c (finish_omp_atomic): Call finish_expr_stmt
 
8501
+       rather than add_stmt.
 
8502
+
 
8503
+2013-11-23  Easwaran Raman  <eraman@google.com>
 
8504
+
 
8505
+       PR c++/59031
 
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.
 
8509
+
 
8510
+2013-10-31  Jason Merrill  <jason@redhat.com>
 
8511
+
 
8512
+       PR c++/58162
 
8513
+       * parser.c (cp_parser_late_parse_one_default_arg): Set
 
8514
+       TARGET_EXPR_DIRECT_INIT_P.
 
8515
+
 
8516
+2013-11-11  Paolo Carlini  <paolo.carlini@oracle.com>
 
8517
+
 
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.
 
8521
+
 
8522
+       * typeck.c (build_ptrmemfunc): Use cp_build_c_cast.
 
8523
+
 
8524
+2013-10-25  Tom de Vries  <tom@codesourcery.com>
 
8525
+
 
8526
+       PR c++/58282
 
8527
+       * except.c (build_must_not_throw_expr): Handle
 
8528
+       flag_exceptions.
 
8529
+
 
8530
+2013-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
 
8531
+
 
8532
+       PR c++/58596
 
8533
+       * semantics.c (lambda_expr_this_capture): Handle NSDMIs in the
 
8534
+       cp_unevaluated_operand case.
 
8535
+
 
8536
+2013-10-16  Paolo Carlini  <paolo.carlini@oracle.com>
 
8537
+
 
8538
+       PR c++/58633
 
8539
+       * parser.c (cp_parser_pseudo_destructor_name): Revert r174385 changes.
 
8540
+
 
8541
+2013-10-16  Jason Merrill  <jason@redhat.com>
 
8542
+
 
8543
+       PR c++/57850
 
8544
+       * decl2.c (dump_tu): Split out from...
 
8545
+       (cp_write_global_declarations): ...here.  Call it in PCH mode.
 
8546
+
 
8547
 2013-10-16  Release Manager
 
8548
 
 
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 @@
 
8555
        }
 
8556
       stmt = build2 (OMP_ATOMIC, void_type_node, integer_zero_node, stmt);
 
8557
     }
 
8558
-  add_stmt (stmt);
 
8559
+  finish_expr_stmt (stmt);
 
8560
 }
 
8561
 
 
8562
 void
 
8563
@@ -9481,7 +9481,14 @@
 
8564
   /* In unevaluated context this isn't an odr-use, so just return the
 
8565
      nearest 'this'.  */
 
8566
   if (cp_unevaluated_operand)
 
8567
-    return lookup_name (this_identifier);
 
8568
+    {
 
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);
 
8575
+    }
 
8576
 
 
8577
   /* Try to default capture 'this' if we can.  */
 
8578
   if (!this_capture
 
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));
 
8585
 }
 
8586
 
 
8587
+/* The entire file is now complete.  If requested, dump everything
 
8588
+   to a file.  */
 
8589
+
 
8590
+static void
 
8591
+dump_tu (void)
 
8592
+{
 
8593
+  int flags;
 
8594
+  FILE *stream = dump_begin (TDI_tu, &flags);
 
8595
+
 
8596
+  if (stream)
 
8597
+    {
 
8598
+      dump_node (global_namespace, flags & ~TDF_SLIM, stream);
 
8599
+      dump_end (TDI_tu, stream);
 
8600
+    }
 
8601
+}
 
8602
+
 
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 @@
 
8607
   if (pch_file)
 
8608
     {
 
8609
       c_common_write_pch ();
 
8610
+      dump_tu ();
 
8611
       return;
 
8612
     }
 
8613
 
 
8614
@@ -4359,17 +4376,8 @@
 
8615
 
 
8616
   /* The entire file is now complete.  If requested, dump everything
 
8617
      to a file.  */
 
8618
-  {
 
8619
-    int flags;
 
8620
-    FILE *stream = dump_begin (TDI_tu, &flags);
 
8621
+  dump_tu ();
 
8622
 
 
8623
-    if (stream)
 
8624
-      {
 
8625
-       dump_node (global_namespace, flags & ~TDF_SLIM, stream);
 
8626
-       dump_end (TDI_tu, stream);
 
8627
-      }
 
8628
-  }
 
8629
-
 
8630
   if (flag_detailed_statistics)
 
8631
     {
 
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);
 
8640
 
 
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);
 
8644
-
 
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;
 
8655
        }
 
8656
     }
 
8657
 
 
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;
 
8668
   tree optype;
 
8669
   tree first_mem_arg = NULL_TREE;
 
8670
   tree instance_ptr;
 
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 @@
 
8680
            {
 
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;
 
8694
               if (explicit_targs)
 
8695
Index: gcc/cp/cvt.c
 
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 @@
 
8700
 
 
8701
   if (null_ptr_cst_p (expr))
 
8702
     {
 
8703
-      if (complain & tf_warning)
 
8704
-       maybe_warn_zero_as_null_pointer_constant (expr, loc);
 
8705
-
 
8706
       if (TYPE_PTRMEMFUNC_P (type))
 
8707
        return build_ptrmemfunc (TYPE_PTRMEMFUNC_FN_TYPE (type), expr, 0,
 
8708
                                 /*c_cast_p=*/false, complain);
 
8709
 
 
8710
+      if (complain & tf_warning)
 
8711
+       maybe_warn_zero_as_null_pointer_constant (expr, loc);
 
8712
+
 
8713
       /* A NULL pointer-to-data-member is represented by -1, not by
 
8714
         zero.  */
 
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)
 
8720
@@ -344,7 +344,8 @@
 
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 @@
 
8735
 
 
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
 
8739
-            from no_mode.  */
 
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)
 
8744
            {
 
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);
 
8749
            }
 
8750
        }
 
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 @@
 
8757
 #endif
 
8758
 
 
8759
 
 
8760
+/* Define if your assembler supports LEON instructions. */
 
8761
+#ifndef USED_FOR_TARGET
 
8762
+#undef HAVE_AS_LEON
 
8763
+#endif
 
8764
+
 
8765
+
 
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
 
8769
Index: gcc/expr.c
 
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;
 
8779
       rtx dest = dst;
 
8780
 
 
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;
 
8784
+      else
 
8785
+       adj_bytelen = bytelen;
 
8786
 
 
8787
       if (GET_CODE (dst) == CONCAT)
 
8788
        {
 
8789
@@ -2040,6 +2042,7 @@
 
8790
            }
 
8791
        }
 
8792
 
 
8793
+      /* Handle trailing fragments that run over the size of the struct.  */
 
8794
       if (ssize >= 0 && bytepos + (HOST_WIDE_INT) bytelen > ssize)
 
8795
        {
 
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],
 
8799
                                      shift, tmps[i], 0);
 
8800
            }
 
8801
-         bytelen = adj_bytelen;
 
8802
+
 
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]);
 
8808
        }
 
8809
 
 
8810
       /* Optimize the access just a bit.  */
 
8811
-      if (MEM_P (dest)
 
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]);
 
8822
+
 
8823
       else
 
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));
 
8828
 
 
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)
 
8836
     {
 
8837
       HOST_WIDE_INT adjust = bitoffset - *bitpos;
 
8838
-
 
8839
       gcc_assert ((adjust % BITS_PER_UNIT) == 0);
 
8840
-      gcc_assert (*offset != NULL_TREE);
 
8841
 
 
8842
       *bitpos += adjust;
 
8843
-      *offset
 
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);
 
8847
+      else
 
8848
+       *offset
 
8849
+         = size_binop (MINUS_EXPR, *offset, size_int (adjust / BITS_PER_UNIT));
 
8850
       *bitstart = 0;
 
8851
     }
 
8852
   else
 
8853
@@ -4668,8 +4677,7 @@
 
8854
          expand_insn (icode, 2, ops);
 
8855
        }
 
8856
       else
 
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);
 
8860
       return;
 
8861
     }
 
8862
 
 
8863
@@ -4698,6 +4706,15 @@
 
8864
       tem = get_inner_reference (to, &bitsize, &bitpos, &offset, &mode1,
 
8865
                                 &unsignedp, &volatilep, true);
 
8866
 
 
8867
+      /* Make sure bitpos is not negative, it can wreak havoc later.  */
 
8868
+      if (bitpos < 0)
 
8869
+       {
 
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;
 
8874
+       }
 
8875
+
 
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)
 
8883
@@ -232,6 +232,9 @@
 
8884
   Bexpression*
 
8885
   convert_expression(Btype* type, Bexpression* expr, Location);
 
8886
 
 
8887
+  Bexpression*
 
8888
+  function_code_expression(Bfunction*, Location);
 
8889
+
 
8890
   // Statements.
 
8891
 
 
8892
   Bstatement*
 
8893
@@ -334,6 +337,17 @@
 
8894
   Bexpression*
 
8895
   label_address(Blabel*, Location);
 
8896
 
 
8897
+  // Functions.
 
8898
+
 
8899
+  Bfunction*
 
8900
+  error_function()
 
8901
+  { return this->make_function(error_mark_node); }
 
8902
+
 
8903
+  Bfunction*
 
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);
 
8907
+
 
8908
  private:
 
8909
   // Make a Bexpression from a tree.
 
8910
   Bexpression*
 
8911
@@ -350,6 +364,10 @@
 
8912
   make_type(tree t)
 
8913
   { return new Btype(t); }
 
8914
 
 
8915
+  Bfunction*
 
8916
+  make_function(tree t)
 
8917
+  { return new Bfunction(t); }
 
8918
+
 
8919
   Btype*
 
8920
   fill_in_struct(Btype*, const std::vector<Btyped_identifier>&);
 
8921
 
 
8922
@@ -966,6 +984,19 @@
 
8923
   return tree_to_expr(ret);
 
8924
 }
 
8925
 
 
8926
+// Get the address of a function.
 
8927
+
 
8928
+Bexpression*
 
8929
+Gcc_backend::function_code_expression(Bfunction* bfunc, Location location)
 
8930
+{
 
8931
+  tree func = bfunc->get_tree();
 
8932
+  if (func == error_mark_node)
 
8933
+    return this->error_expression();
 
8934
+
 
8935
+  tree ret = build_fold_addr_expr_loc(location.gcc_location(), func);
 
8936
+  return this->make_expression(ret);
 
8937
+}
 
8938
+
 
8939
 // An expression as a statement.
 
8940
 
 
8941
 Bstatement*
 
8942
@@ -1724,6 +1755,56 @@
 
8943
   return this->make_expression(ret);
 
8944
 }
 
8945
 
 
8946
+// Declare or define a new function.
 
8947
+
 
8948
+Bfunction*
 
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)
 
8954
+{
 
8955
+  tree functype = fntype->get_tree();
 
8956
+  if (functype != error_mark_node)
 
8957
+    {
 
8958
+      gcc_assert(FUNCTION_POINTER_TYPE_P(functype));
 
8959
+      functype = TREE_TYPE(functype);
 
8960
+    }
 
8961
+  tree id = get_identifier_from_string(name);
 
8962
+  if (functype == error_mark_node || id == error_mark_node)
 
8963
+    return this->error_function();
 
8964
+
 
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));
 
8968
+  if (is_visible)
 
8969
+    TREE_PUBLIC(decl) = 1;
 
8970
+  if (is_declaration)
 
8971
+    DECL_EXTERNAL(decl) = 1;
 
8972
+  else
 
8973
+    {
 
8974
+      tree restype = TREE_TYPE(functype);
 
8975
+      tree resdecl =
 
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;
 
8981
+    }
 
8982
+  if (!is_inlinable)
 
8983
+    DECL_UNINLINABLE(decl) = 1;
 
8984
+  if (disable_split_stack)
 
8985
+    {
 
8986
+      tree attr = get_identifier("__no_split_stack__");
 
8987
+      DECL_ATTRIBUTES(decl) = tree_cons(attr, NULL_TREE, NULL_TREE);
 
8988
+    }
 
8989
+  if (in_unique_section)
 
8990
+    resolve_unique_section(decl, 0, 1);
 
8991
+
 
8992
+  go_preserve_from_gc(decl);
 
8993
+  return new Bfunction(decl);
 
8994
+}
 
8995
+
 
8996
 // The single backend.
 
8997
 
 
8998
 static Gcc_backend gcc_backend;
 
8999
@@ -1799,3 +1880,9 @@
 
9000
 {
 
9001
   return bv->get_tree();
 
9002
 }
 
9003
+
 
9004
+tree
 
9005
+function_to_tree(Bfunction* bf)
 
9006
+{
 
9007
+  return bf->get_tree();
 
9008
+}
 
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)
 
9013
@@ -1,3 +1,17 @@
 
9014
+2013-10-16  Ian Lance Taylor  <iant@google.com>
 
9015
+
 
9016
+       Bring in from mainline:
 
9017
+
 
9018
+       2013-10-11  Chris Manghane  <cmang@google.com>
 
9019
+       * go-gcc.cc (Gcc_backend::function_code_expression): New
 
9020
+       function.
 
9021
+
 
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.
 
9027
+
 
9028
 2013-10-16  Release Manager
 
9029
 
 
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)
 
9043
 {
 
9044
 }
 
9045
@@ -3819,6 +3820,81 @@
 
9046
   *presults = results;
 
9047
 }
 
9048
 
 
9049
+// Get the backend representation.
 
9050
+
 
9051
+Bfunction*
 
9052
+Function::get_or_make_decl(Gogo* gogo, Named_object* no)
 
9053
+{
 
9054
+  if (this->fndecl_ == NULL)
 
9055
+    {
 
9056
+      std::string asm_name;
 
9057
+      bool is_visible = false;
 
9058
+      if (no->package() != NULL)
 
9059
+        ;
 
9060
+      else if (this->enclosing_ != NULL || Gogo::is_thunk(no))
 
9061
+        ;
 
9062
+      else if (Gogo::unpack_hidden_name(no->name()) == "init"
 
9063
+               && !this->type_->is_method())
 
9064
+        ;
 
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())
 
9073
+        {
 
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())
 
9080
+            {
 
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
 
9085
+              // case.
 
9086
+              pkgpath = Gogo::hidden_name_pkgpath(no->name());
 
9087
+              pkgpath = Gogo::pkgpath_for_symbol(pkgpath);
 
9088
+            }
 
9089
+
 
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())
 
9094
+            {
 
9095
+              asm_name.append(1, '.');
 
9096
+              Type* rtype = this->type_->receiver()->type();
 
9097
+              asm_name.append(rtype->mangled_name(gogo));
 
9098
+            }
 
9099
+        }
 
9100
+
 
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_);
 
9108
+
 
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_;
 
9113
+
 
9114
+      Btype* functype = this->type_->get_backend_fntype(gogo);
 
9115
+      this->fndecl_ =
 
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());
 
9120
+    }
 
9121
+  return this->fndecl_;
 
9122
+}
 
9123
+
 
9124
 // Class Block.
 
9125
 
 
9126
 Block::Block(Block* enclosing, Location location)
 
9127
@@ -5110,6 +5186,75 @@
 
9128
     go_unreachable();
 
9129
 }
 
9130
 
 
9131
+
 
9132
+// Return the external identifier for this object.
 
9133
+
 
9134
+std::string
 
9135
+Named_object::get_id(Gogo* gogo)
 
9136
+{
 
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()))
 
9144
+    {
 
9145
+      // We don't need the package name for builtin types.
 
9146
+      decl_name = Gogo::unpack_hidden_name(this->name_);
 
9147
+    }
 
9148
+  else
 
9149
+    {
 
9150
+      std::string package_name;
 
9151
+      if (this->package_ == NULL)
 
9152
+       package_name = gogo->package_name();
 
9153
+      else
 
9154
+       package_name = this->package_->package_name();
 
9155
+
 
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.
 
9165
+
 
9166
+      decl_name = package_name + '.' + Gogo::unpack_hidden_name(this->name_);
 
9167
+
 
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();
 
9173
+      else
 
9174
+       fntype = NULL;
 
9175
+      if (fntype != NULL && fntype->is_method())
 
9176
+       {
 
9177
+         decl_name.push_back('.');
 
9178
+         decl_name.append(fntype->receiver()->type()->mangled_name(gogo));
 
9179
+       }
 
9180
+    }
 
9181
+  if (this->is_type())
 
9182
+    {
 
9183
+      unsigned int index;
 
9184
+      const Named_object* in_function = this->type_value()->in_function(&index);
 
9185
+      if (in_function != NULL)
 
9186
+       {
 
9187
+         decl_name += '$' + Gogo::unpack_hidden_name(in_function->name());
 
9188
+         if (index > 0)
 
9189
+           {
 
9190
+             char buf[30];
 
9191
+             snprintf(buf, sizeof buf, "%u", index);
 
9192
+             decl_name += '$';
 
9193
+             decl_name += buf;
 
9194
+           }
 
9195
+       }
 
9196
+    }
 
9197
+  return decl_name;
 
9198
+}
 
9199
+
 
9200
 // Class Bindings.
 
9201
 
 
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)
 
9207
@@ -68,6 +68,12 @@
 
9208
               P1(STRING), R1(SLICE))
 
9209
 
 
9210
 
 
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))
 
9216
+
 
9217
 // Make a slice.
 
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)
 
9224
@@ -48,6 +48,7 @@
 
9225
 class Bblock;
 
9226
 class Bvariable;
 
9227
 class Blabel;
 
9228
+class Bfunction;
 
9229
 
 
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;
 
9234
   }
 
9235
 
 
9236
+  // Record that this function is a stub method created for an unnamed
 
9237
+  // type.
 
9238
+  void
 
9239
+  set_is_unnamed_type_stub_method()
 
9240
+  {
 
9241
+    go_assert(this->is_method());
 
9242
+    this->is_unnamed_type_stub_method_ = true;
 
9243
+  }
 
9244
+
 
9245
   // Add a new field to the closure variable.
 
9246
   void
 
9247
   add_closure_field(Named_object* var, Location loc)
 
9248
@@ -1089,17 +1099,13 @@
 
9249
     this->descriptor_ = descriptor;
 
9250
   }
 
9251
 
 
9252
-  // Return the function's decl given an identifier.
 
9253
-  tree
 
9254
-  get_or_make_decl(Gogo*, Named_object*, tree id);
 
9255
+  // Return the backend representation.
 
9256
+  Bfunction*
 
9257
+  get_or_make_decl(Gogo*, Named_object*);
 
9258
 
 
9259
   // Return the function's decl after it has been built.
 
9260
   tree
 
9261
-  get_decl() const
 
9262
-  {
 
9263
-    go_assert(this->fndecl_ != NULL);
 
9264
-    return this->fndecl_;
 
9265
-  }
 
9266
+  get_decl() const;
 
9267
 
 
9268
   // Set the function decl to hold a tree of the function code.
 
9269
   void
 
9270
@@ -1170,7 +1176,7 @@
 
9271
   // The function descriptor, if any.
 
9272
   Expression* descriptor_;
 
9273
   // The function decl.
 
9274
-  tree fndecl_;
 
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
 
9284
+  // type.
 
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; }
 
9292
 
 
9293
-  // Return a decl for the function given an identifier.
 
9294
-  tree
 
9295
-  get_or_make_decl(Gogo*, Named_object*, tree id);
 
9296
+  // Return a backend representation.
 
9297
+  Bfunction*
 
9298
+  get_or_make_decl(Gogo*, Named_object*);
 
9299
 
 
9300
   // If there is a descriptor, build it into the backend
 
9301
   // representation.
 
9302
@@ -1290,7 +1299,7 @@
 
9303
   // The function descriptor, if any.
 
9304
   Expression* descriptor_;
 
9305
   // The function decl if needed.
 
9306
-  tree fndecl_;
 
9307
+  Bfunction* fndecl_;
 
9308
 };
 
9309
 
 
9310
 // A variable.
 
9311
@@ -2181,8 +2190,8 @@
 
9312
   Bvariable*
 
9313
   get_backend_variable(Gogo*, Named_object* function);
 
9314
 
 
9315
-  // Return a tree for the external identifier for this object.
 
9316
-  tree
 
9317
+  // Return the external identifier for this object.
 
9318
+  std::string
 
9319
   get_id(Gogo*);
 
9320
 
 
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),
 
9332
+      fnbtype_(NULL)
 
9333
   { }
 
9334
 
 
9335
   // Get the receiver.
 
9336
@@ -1798,6 +1799,11 @@
 
9337
   static Type*
 
9338
   make_function_type_descriptor_type();
 
9339
 
 
9340
+  // Return the backend representation of this function type. This is used
 
9341
+  // as the real type of a backend function declaration or defintion.
 
9342
+  Btype*
 
9343
+  get_backend_fntype(Gogo*);
 
9344
+
 
9345
  protected:
 
9346
   int
 
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.
 
9351
   bool is_builtin_;
 
9352
+  // The backend representation of this type for backend function
 
9353
+  // declarations and definitions.
 
9354
+  Btype* fnbtype_;
 
9355
 };
 
9356
 
 
9357
 // The type of a pointer.
 
9358
@@ -1915,7 +1924,7 @@
 
9359
 {
 
9360
  public:
 
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)
 
9364
   { }
 
9365
 
 
9366
   // The field name.
 
9367
@@ -1926,6 +1935,10 @@
 
9368
   bool
 
9369
   is_field_name(const std::string& name) const;
 
9370
 
 
9371
+  // Return whether this struct field is an unexported field named NAME.
 
9372
+  bool
 
9373
+  is_unexported_field_name(Gogo*, const std::string& name) const;
 
9374
+
 
9375
   // Return whether this struct field is an embedded built-in type.
 
9376
   bool
 
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); }
 
9381
 
 
9382
+  // Record that this field is defined in an imported struct.
 
9383
+  void
 
9384
+  set_is_imported()
 
9385
+  { this->is_imported_ = true; }
 
9386
+
 
9387
   // Set the type.  This is only used in error cases.
 
9388
   void
 
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.
 
9393
   std::string* tag_;
 
9394
+  // Whether this field is defined in an imported struct.
 
9395
+  bool is_imported_;
 
9396
 };
 
9397
 
 
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)
 
9403
@@ -744,6 +744,8 @@
 
9404
     return NULL;
 
9405
 
 
9406
   Parse::Names names;
 
9407
+  if (receiver != NULL)
 
9408
+    names[receiver->name()] = receiver;
 
9409
   if (params != NULL)
 
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 @@
 
9417
   location() const
 
9418
   { return this->location_; }
 
9419
 
 
9420
+  // Return the package we are importing.
 
9421
+  Package*
 
9422
+  package() const
 
9423
+  { return this->package_; }
 
9424
+
 
9425
   // Return the next character.
 
9426
   int
 
9427
   peek_char()
 
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)
 
9432
@@ -42,6 +42,8 @@
 
9433
   RFT_RUNE,
 
9434
   // Go type float64, C type double.
 
9435
   RFT_FLOAT64,
 
9436
+  // Go type complex64, C type __complex float.
 
9437
+  RFT_COMPLEX64,
 
9438
   // Go type complex128, C type __complex double.
 
9439
   RFT_COMPLEX128,
 
9440
   // Go type string, C type struct __go_string.
 
9441
@@ -126,6 +128,10 @@
 
9442
          t = Type::lookup_float_type("float64");
 
9443
          break;
 
9444
 
 
9445
+       case RFT_COMPLEX64:
 
9446
+         t = Type::lookup_complex_type("complex64");
 
9447
+         break;
 
9448
+
 
9449
        case RFT_COMPLEX128:
 
9450
          t = Type::lookup_complex_type("complex128");
 
9451
          break;
 
9452
@@ -216,6 +222,7 @@
 
9453
     case RFT_UINTPTR:
 
9454
     case RFT_RUNE:
 
9455
     case RFT_FLOAT64:
 
9456
+    case RFT_COMPLEX64:
 
9457
     case RFT_COMPLEX128:
 
9458
     case RFT_STRING:
 
9459
     case RFT_POINTER:
 
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 @@
 
9465
   closure()
 
9466
   { return this->closure_; }
 
9467
 
 
9468
-  // Return a tree for the code for a function.
 
9469
-  static tree
 
9470
+  // Return a backend expression for the code of a function.
 
9471
+  static Bexpression*
 
9472
   get_code_pointer(Gogo*, Named_object* function, Location loc);
 
9473
 
 
9474
  protected:
 
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 @@
 
9480
   delete[] vec;
 
9481
 }
 
9482
 
 
9483
-// Get a tree for the identifier for a named object.
 
9484
-
 
9485
-tree
 
9486
-Named_object::get_id(Gogo* gogo)
 
9487
-{
 
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()))
 
9495
-    {
 
9496
-      // We don't need the package name for builtin types.
 
9497
-      decl_name = Gogo::unpack_hidden_name(this->name_);
 
9498
-    }
 
9499
-  else
 
9500
-    {
 
9501
-      std::string package_name;
 
9502
-      if (this->package_ == NULL)
 
9503
-       package_name = gogo->package_name();
 
9504
-      else
 
9505
-       package_name = this->package_->package_name();
 
9506
-
 
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.
 
9516
-
 
9517
-      decl_name = package_name + '.' + Gogo::unpack_hidden_name(this->name_);
 
9518
-
 
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();
 
9524
-      else
 
9525
-       fntype = NULL;
 
9526
-      if (fntype != NULL && fntype->is_method())
 
9527
-       {
 
9528
-         decl_name.push_back('.');
 
9529
-         decl_name.append(fntype->receiver()->type()->mangled_name(gogo));
 
9530
-       }
 
9531
-    }
 
9532
-  if (this->is_type())
 
9533
-    {
 
9534
-      unsigned int index;
 
9535
-      const Named_object* in_function = this->type_value()->in_function(&index);
 
9536
-      if (in_function != NULL)
 
9537
-       {
 
9538
-         decl_name += '$' + Gogo::unpack_hidden_name(in_function->name());
 
9539
-         if (index > 0)
 
9540
-           {
 
9541
-             char buf[30];
 
9542
-             snprintf(buf, sizeof buf, "%u", index);
 
9543
-             decl_name += '$';
 
9544
-             decl_name += buf;
 
9545
-           }
 
9546
-       }
 
9547
-    }
 
9548
-  return get_identifier_from_string(decl_name);
 
9549
-}
 
9550
-
 
9551
 // Get a tree for a named object.
 
9552
 
 
9553
 tree
 
9554
@@ -1067,11 +999,6 @@
 
9555
       return error_mark_node;
 
9556
     }
 
9557
 
 
9558
-  tree name;
 
9559
-  if (this->classification_ == NAMED_OBJECT_TYPE)
 
9560
-    name = NULL_TREE;
 
9561
-  else
 
9562
-    name = this->get_id(gogo);
 
9563
   tree decl;
 
9564
   switch (this->classification_)
 
9565
     {
 
9566
@@ -1099,6 +1026,7 @@
 
9567
              decl = error_mark_node;
 
9568
            else if (INTEGRAL_TYPE_P(TREE_TYPE(expr_tree)))
 
9569
              {
 
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:
 
9576
       {
 
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)
 
9581
          {
 
9582
            if (func->block() != NULL)
 
9583
@@ -1286,124 +1214,13 @@
 
9584
   return block_tree;
 
9585
 }
 
9586
 
 
9587
-// Get a tree for a function decl.
 
9588
+// Get the backend representation.
 
9589
 
 
9590
-tree
 
9591
-Function::get_or_make_decl(Gogo* gogo, Named_object* no, tree id)
 
9592
+Bfunction*
 
9593
+Function_declaration::get_or_make_decl(Gogo* gogo, Named_object* no)
 
9594
 {
 
9595
-  if (this->fndecl_ == NULL_TREE)
 
9596
+  if (this->fndecl_ == NULL)
 
9597
     {
 
9598
-      tree functype = type_to_tree(this->type_->get_backend(gogo));
 
9599
-
 
9600
-      if (functype != error_mark_node)
 
9601
-       {
 
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);
 
9610
-       }
 
9611
-
 
9612
-      if (functype == error_mark_node)
 
9613
-       this->fndecl_ = error_mark_node;
 
9614
-      else
 
9615
-       {
 
9616
-         tree decl = build_decl(this->location().gcc_location(), FUNCTION_DECL,
 
9617
-                                 id, functype);
 
9618
-
 
9619
-         this->fndecl_ = decl;
 
9620
-
 
9621
-         if (no->package() != NULL)
 
9622
-           ;
 
9623
-         else if (this->enclosing_ != NULL || Gogo::is_thunk(no))
 
9624
-           ;
 
9625
-         else if (Gogo::unpack_hidden_name(no->name()) == "init"
 
9626
-                  && !this->type_->is_method())
 
9627
-           ;
 
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())
 
9636
-           {
 
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())
 
9642
-               {
 
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
 
9647
-                 // case.
 
9648
-                 pkgpath = Gogo::hidden_name_pkgpath(no->name());
 
9649
-                 pkgpath = Gogo::pkgpath_for_symbol(pkgpath);
 
9650
-               }
 
9651
-
 
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())
 
9656
-               {
 
9657
-                 asm_name.append(1, '.');
 
9658
-                 Type* rtype = this->type_->receiver()->type();
 
9659
-                 asm_name.append(rtype->mangled_name(gogo));
 
9660
-               }
 
9661
-             SET_DECL_ASSEMBLER_NAME(decl,
 
9662
-                                     get_identifier_from_string(asm_name));
 
9663
-           }
 
9664
-
 
9665
-         // Why do we have to do this in the frontend?
 
9666
-         tree restype = TREE_TYPE(functype);
 
9667
-         tree resdecl =
 
9668
-            build_decl(this->location().gcc_location(), RESULT_DECL, NULL_TREE,
 
9669
-                       restype);
 
9670
-         DECL_ARTIFICIAL(resdecl) = 1;
 
9671
-         DECL_IGNORED_P(resdecl) = 1;
 
9672
-         DECL_CONTEXT(resdecl) = decl;
 
9673
-         DECL_RESULT(decl) = resdecl;
 
9674
-
 
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;
 
9683
-
 
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_)
 
9688
-           {
 
9689
-             tree attr = get_identifier("__no_split_stack__");
 
9690
-             DECL_ATTRIBUTES(decl) = tree_cons(attr, NULL_TREE, NULL_TREE);
 
9691
-           }
 
9692
-
 
9693
-         if (this->in_unique_section_)
 
9694
-           resolve_unique_section (decl, 0, 1);
 
9695
-
 
9696
-         go_preserve_from_gc(decl);
 
9697
-       }
 
9698
-    }
 
9699
-  return this->fndecl_;
 
9700
-}
 
9701
-
 
9702
-// Get a tree for a function declaration.
 
9703
-
 
9704
-tree
 
9705
-Function_declaration::get_or_make_decl(Gogo* gogo, Named_object* no, tree id)
 
9706
-{
 
9707
-  if (this->fndecl_ == NULL_TREE)
 
9708
-    {
 
9709
       // Let Go code use an asm declaration to pick up a builtin
 
9710
       // function.
 
9711
       if (!this->asm_name_.empty())
 
9712
@@ -1412,58 +1229,46 @@
 
9713
            builtin_functions.find(this->asm_name_);
 
9714
          if (p != builtin_functions.end())
 
9715
            {
 
9716
-             this->fndecl_ = p->second;
 
9717
+             this->fndecl_ = tree_to_function(p->second);
 
9718
              return this->fndecl_;
 
9719
            }
 
9720
        }
 
9721
 
 
9722
-      tree functype = type_to_tree(this->fntype_->get_backend(gogo));
 
9723
+      std::string asm_name;
 
9724
+      if (this->asm_name_.empty())
 
9725
+        {
 
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())
 
9732
+            {
 
9733
+              asm_name.append(1, '.');
 
9734
+              Type* rtype = this->fntype_->receiver()->type();
 
9735
+              asm_name.append(rtype->mangled_name(gogo));
 
9736
+            }
 
9737
+        }
 
9738
 
 
9739
-      if (functype != error_mark_node)
 
9740
-       {
 
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);
 
9749
-       }
 
9750
+      Btype* functype = this->fntype_->get_backend_fntype(gogo);
 
9751
+      this->fndecl_ =
 
9752
+          gogo->backend()->function(functype, no->get_id(gogo), asm_name,
 
9753
+                                    true, true, true, false, false,
 
9754
+                                    this->location());
 
9755
+    }
 
9756
 
 
9757
-      tree decl;
 
9758
-      if (functype == error_mark_node)
 
9759
-       decl = error_mark_node;
 
9760
-      else
 
9761
-       {
 
9762
-         decl = build_decl(this->location().gcc_location(), FUNCTION_DECL, id,
 
9763
-                            functype);
 
9764
-         TREE_PUBLIC(decl) = 1;
 
9765
-         DECL_EXTERNAL(decl) = 1;
 
9766
-
 
9767
-         if (this->asm_name_.empty())
 
9768
-           {
 
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())
 
9775
-               {
 
9776
-                 asm_name.append(1, '.');
 
9777
-                 Type* rtype = this->fntype_->receiver()->type();
 
9778
-                 asm_name.append(rtype->mangled_name(gogo));
 
9779
-               }
 
9780
-             SET_DECL_ASSEMBLER_NAME(decl,
 
9781
-                                     get_identifier_from_string(asm_name));
 
9782
-           }
 
9783
-       }
 
9784
-      this->fndecl_ = decl;
 
9785
-      go_preserve_from_gc(decl);
 
9786
-    }
 
9787
   return this->fndecl_;
 
9788
 }
 
9789
 
 
9790
+// Return the function's decl after it has been built.
 
9791
+
 
9792
+tree
 
9793
+Function::get_decl() const
 
9794
+{
 
9795
+  go_assert(this->fndecl_ != NULL);
 
9796
+  return function_to_tree(this->fndecl_);
 
9797
+}
 
9798
+
 
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 @@
 
9803
 void
 
9804
 Function::build_tree(Gogo* gogo, Named_object* named_function)
 
9805
 {
 
9806
-  tree fndecl = this->fndecl_;
 
9807
+  tree fndecl = this->get_decl();
 
9808
   go_assert(fndecl != NULL_TREE);
 
9809
 
 
9810
   tree params = NULL_TREE;
 
9811
@@ -1796,7 +1601,7 @@
 
9812
     set = NULL_TREE;
 
9813
   else
 
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,
 
9822
                                  &stmt_list);
 
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);
 
9828
 
 
9829
@@ -1869,7 +1674,7 @@
 
9830
   *fini = stmt_list;
 
9831
 }
 
9832
 
 
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
 
9837
 // explicit values.
 
9838
@@ -1902,7 +1707,7 @@
 
9839
     }
 
9840
   else
 
9841
     {
 
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);
 
9846
       int index = 0;
 
9847
@@ -2323,18 +2128,14 @@
 
9848
       go_assert(m != NULL);
 
9849
 
 
9850
       Named_object* no = m->named_object();
 
9851
-
 
9852
-      tree fnid = no->get_id(this);
 
9853
-
 
9854
-      tree fndecl;
 
9855
+      Bfunction* bf;
 
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,
 
9861
-                                                               fnid);
 
9862
+       bf = no->func_declaration_value()->get_or_make_decl(this, no);
 
9863
       else
 
9864
        go_unreachable();
 
9865
-      fndecl = build_fold_addr_expr(fndecl);
 
9866
+      tree fndecl = build_fold_addr_expr(function_to_tree(bf));
 
9867
 
 
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;
 
9873
 
 
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
 
9881
+  // packages.
 
9882
+  if (has_hidden_methods && type->named_type() != NULL)
 
9883
     TREE_PUBLIC(decl) = 1;
 
9884
   else
 
9885
     {
 
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')
 
9892
              && cc != '_'
 
9893
              && (cc < '0' || cc > '9'))
 
9894
-           break;
 
9895
+           {
 
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)
 
9900
+                 || cc == '\t'
 
9901
+                 || cc == '\r'
 
9902
+                 || cc == '\n')
 
9903
+               break;
 
9904
+
 
9905
+             this->lineoff_ = p - this->linebuf_;
 
9906
+             error_at(this->location(),
 
9907
+                      "invalid character 0x%x in identifier",
 
9908
+                      cc);
 
9909
+             if (!has_non_ascii_char)
 
9910
+               {
 
9911
+                 buf.assign(pstart, p - pstart);
 
9912
+                 has_non_ascii_char = true;
 
9913
+               }
 
9914
+             if (!Lex::is_invalid_identifier(buf))
 
9915
+               buf.append("$INVALID$");
 
9916
+           }
 
9917
          ++p;
 
9918
          if (is_first)
 
9919
            {
 
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)
 
9924
@@ -23,7 +23,7 @@
 
9925
 // The backend representation of a statement.
 
9926
 class Bstatement;
 
9927
 
 
9928
-// The backend representation of a function definition.
 
9929
+// The backend representation of a function definition or declaration.
 
9930
 class Bfunction;
 
9931
 
 
9932
 // The backend representation of a block.
 
9933
@@ -266,6 +266,11 @@
 
9934
   virtual Bexpression*
 
9935
   convert_expression(Btype* type, Bexpression* expr, Location) = 0;
 
9936
 
 
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;
 
9941
+
 
9942
   // Statements.
 
9943
 
 
9944
   // Create an error statement.  This is used for cases which should
 
9945
@@ -498,6 +503,32 @@
 
9946
   // recover.
 
9947
   virtual Bexpression*
 
9948
   label_address(Blabel*, Location) = 0;
 
9949
+
 
9950
+  // Functions.
 
9951
+
 
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;
 
9957
+
 
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;
 
9975
 };
 
9976
 
 
9977
 // The backend interface has to define this function.
 
9978
@@ -517,5 +548,6 @@
 
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*);
 
9983
 
 
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.
 
9991
 
 
9992
 Btype*
 
9993
+Function_type::get_backend_fntype(Gogo* gogo)
 
9994
+{
 
9995
+  if (this->fnbtype_ == NULL)
 
9996
+    {
 
9997
+      Backend::Btyped_identifier breceiver;
 
9998
+      if (this->receiver_ != NULL)
 
9999
+        {
 
10000
+          breceiver.name = Gogo::unpack_hidden_name(this->receiver_->name());
 
10001
+
 
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();
 
10009
+        }
 
10010
+
 
10011
+      std::vector<Backend::Btyped_identifier> bparameters;
 
10012
+      if (this->parameters_ != NULL)
 
10013
+        {
 
10014
+          bparameters.resize(this->parameters_->size());
 
10015
+          size_t i = 0;
 
10016
+          for (Typed_identifier_list::const_iterator p =
 
10017
+                   this->parameters_->begin(); p != this->parameters_->end();
 
10018
+               ++p, ++i)
 
10019
+           {
 
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();
 
10023
+            }
 
10024
+          go_assert(i == bparameters.size());
 
10025
+        }
 
10026
+
 
10027
+      std::vector<Backend::Btyped_identifier> bresults;
 
10028
+      if (this->results_ != NULL)
 
10029
+        {
 
10030
+          bresults.resize(this->results_->size());
 
10031
+          size_t i = 0;
 
10032
+          for (Typed_identifier_list::const_iterator p =
 
10033
+                   this->results_->begin(); p != this->results_->end();
 
10034
+               ++p, ++i)
 
10035
+           {
 
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();
 
10039
+            }
 
10040
+          go_assert(i == bresults.size());
 
10041
+        }
 
10042
+
 
10043
+      this->fnbtype_ = gogo->backend()->function_type(breceiver, bparameters,
 
10044
+                                                      bresults,
 
10045
+                                                      this->location());
 
10046
+
 
10047
+    }
 
10048
+
 
10049
+  return this->fnbtype_;
 
10050
+}
 
10051
+
 
10052
+// Get the backend representation for a Go function type.
 
10053
+
 
10054
+Btype*
 
10055
 Function_type::do_get_backend(Gogo* gogo)
 
10056
 {
 
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);
 
10061
 
 
10062
-  Backend::Btyped_identifier breceiver;
 
10063
-  if (this->receiver_ != NULL)
 
10064
-    {
 
10065
-      breceiver.name = Gogo::unpack_hidden_name(this->receiver_->name());
 
10066
-
 
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();
 
10074
-    }
 
10075
-
 
10076
-  std::vector<Backend::Btyped_identifier> bparameters;
 
10077
-  if (this->parameters_ != NULL)
 
10078
-    {
 
10079
-      bparameters.resize(this->parameters_->size());
 
10080
-      size_t i = 0;
 
10081
-      for (Typed_identifier_list::const_iterator p = this->parameters_->begin();
 
10082
-          p != this->parameters_->end();
 
10083
-          ++p, ++i)
 
10084
-       {
 
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();
 
10088
-       }
 
10089
-      go_assert(i == bparameters.size());
 
10090
-    }
 
10091
-
 
10092
-  std::vector<Backend::Btyped_identifier> bresults;
 
10093
-  if (this->results_ != NULL)
 
10094
-    {
 
10095
-      bresults.resize(this->results_->size());
 
10096
-      size_t i = 0;
 
10097
-      for (Typed_identifier_list::const_iterator p = this->results_->begin();
 
10098
-          p != this->results_->end();
 
10099
-          ++p, ++i)
 
10100
-       {
 
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();
 
10104
-       }
 
10105
-      go_assert(i == bresults.size());
 
10106
-    }
 
10107
-
 
10108
-  Btype* fntype = gogo->backend()->function_type(breceiver, bparameters,
 
10109
-                                                bresults, loc);
 
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 @@
 
10118
 
 
10119
       // This is a horrible hack caused by the fact that we don't pack
 
10120
       // the names of builtin types.  FIXME.
 
10121
-      if (nt != NULL
 
10122
+      if (!this->is_imported_
 
10123
+         && nt != NULL
 
10124
          && nt->is_builtin()
 
10125
          && nt->name() == Gogo::unpack_hidden_name(name))
 
10126
        return true;
 
10127
@@ -4204,6 +4219,36 @@
 
10128
     }
 
10129
 }
 
10130
 
 
10131
+// Return whether this field is an unexported field named NAME.
 
10132
+
 
10133
+bool
 
10134
+Struct_field::is_unexported_field_name(Gogo* gogo,
 
10135
+                                      const std::string& name) const
 
10136
+{
 
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)
 
10141
+    return true;
 
10142
+
 
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())
 
10147
+    {
 
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();
 
10152
+      if (nt != NULL
 
10153
+         && nt->is_builtin()
 
10154
+         && nt->name() == Gogo::unpack_hidden_name(name))
 
10155
+       return true;
 
10156
+    }
 
10157
+
 
10158
+  return false;
 
10159
+}
 
10160
+
 
10161
 // Return whether this field is an embedded built-in type.
 
10162
 
 
10163
 bool
 
10164
@@ -4264,13 +4309,8 @@
 
10165
        ++p)
 
10166
     {
 
10167
       Type* t = p->type();
 
10168
-      if (t->is_undefined())
 
10169
+      if (p->is_anonymous())
 
10170
        {
 
10171
-         error_at(p->location(), "struct field type is incomplete");
 
10172
-         p->set_type(Type::make_error_type());
 
10173
-       }
 
10174
-      else if (p->is_anonymous())
 
10175
-       {
 
10176
          if (t->named_type() != NULL && t->points_to() != NULL)
 
10177
            {
 
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();
 
10182
           ++pf)
 
10183
-       {
 
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)
 
10188
-           return true;
 
10189
-       }
 
10190
+       if (pf->is_unexported_field_name(gogo, name))
 
10191
+         return true;
 
10192
     }
 
10193
   return false;
 
10194
 }
 
10195
@@ -5250,6 +5285,7 @@
 
10196
          Type* ftype = imp->read_type();
 
10197
 
 
10198
          Struct_field sf(Typed_identifier(name, ftype, imp->location()));
 
10199
+         sf.set_is_imported();
 
10200
 
 
10201
          if (imp->peek_char() == ' ')
 
10202
            {
 
10203
@@ -9022,6 +9058,8 @@
 
10204
                                      fntype->is_varargs(), location);
 
10205
          gogo->finish_function(fntype->location());
 
10206
 
 
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();
 
10211
        }
 
10212
@@ -9289,7 +9327,9 @@
 
10213
       else
 
10214
        {
 
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;
 
10221
          else
 
10222
            {
 
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 @@
 
10228
 
 
10229
 // Get the tree for the code of a function expression.
 
10230
 
 
10231
-tree
 
10232
+Bexpression*
 
10233
 Func_expression::get_code_pointer(Gogo* gogo, Named_object* no, Location loc)
 
10234
 {
 
10235
   Function_type* fntype;
 
10236
@@ -1237,25 +1237,18 @@
 
10237
       error_at(loc,
 
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();
 
10242
     }
 
10243
 
 
10244
-  tree id = no->get_id(gogo);
 
10245
-  if (id == error_mark_node)
 
10246
-    return error_mark_node;
 
10247
-
 
10248
-  tree fndecl;
 
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);
 
10256
   else
 
10257
     go_unreachable();
 
10258
 
 
10259
-  if (fndecl == error_mark_node)
 
10260
-    return error_mark_node;
 
10261
-
 
10262
-  return build_fold_addr_expr_loc(loc.gcc_location(), fndecl);
 
10263
+  return gogo->backend()->function_code_expression(fndecl, loc);
 
10264
 }
 
10265
 
 
10266
 // Get the tree for a function expression.  This is used when we take
 
10267
@@ -1492,8 +1485,10 @@
 
10268
 tree
 
10269
 Func_code_reference_expression::do_get_tree(Translate_context* context)
 
10270
 {
 
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);
 
10277
 }
 
10278
 
 
10279
 // Make a reference to the code of a function.
 
10280
@@ -3055,8 +3050,7 @@
 
10281
   do_lower(Gogo*, Named_object*, Statement_inserter*, int);
 
10282
 
 
10283
   bool
 
10284
-  do_is_constant() const
 
10285
-  { return this->expr_->is_constant(); }
 
10286
+  do_is_constant() const;
 
10287
 
 
10288
   bool
 
10289
   do_numeric_constant_value(Numeric_constant*) const;
 
10290
@@ -3198,6 +3192,27 @@
 
10291
   return this;
 
10292
 }
 
10293
 
 
10294
+// Return whether a type conversion is a constant.
 
10295
+
 
10296
+bool
 
10297
+Type_conversion_expression::do_is_constant() const
 
10298
+{
 
10299
+  if (!this->expr_->is_constant())
 
10300
+    return false;
 
10301
+
 
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())
 
10310
+    return false;
 
10311
+
 
10312
+  return true;
 
10313
+}
 
10314
+
 
10315
 // Return the constant numeric value if there is one.
 
10316
 
 
10317
 bool
 
10318
@@ -5586,6 +5601,15 @@
 
10319
       subcontext.type = NULL;
 
10320
     }
 
10321
 
 
10322
+  if (this->op_ == OPERATOR_ANDAND || this->op_ == OPERATOR_OROR)
 
10323
+    {
 
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;
 
10329
+    }
 
10330
+
 
10331
   // Set the context for the left hand operand.
 
10332
   if (is_shift_op)
 
10333
     {
 
10334
@@ -5967,6 +5991,43 @@
 
10335
                                right);
 
10336
     }
 
10337
 
 
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)
 
10341
+    {
 
10342
+      const char *name;
 
10343
+      tree *pdecl;
 
10344
+      Type* ctype;
 
10345
+      static tree complex64_div_decl;
 
10346
+      static tree complex128_div_decl;
 
10347
+      switch (this->left_->type()->complex_type()->bits())
 
10348
+       {
 
10349
+       case 64:
 
10350
+         name = "__go_complex64_div";
 
10351
+         pdecl = &complex64_div_decl;
 
10352
+         ctype = Type::lookup_complex_type("complex64");
 
10353
+         break;
 
10354
+       case 128:
 
10355
+         name = "__go_complex128_div";
 
10356
+         pdecl = &complex128_div_decl;
 
10357
+         ctype = Type::lookup_complex_type("complex128");
 
10358
+         break;
 
10359
+       default:
 
10360
+         go_unreachable();
 
10361
+       }
 
10362
+      Btype* cbtype = ctype->get_backend(gogo);
 
10363
+      tree ctype_tree = type_to_tree(cbtype);
 
10364
+      return Gogo::call_builtin(pdecl,
 
10365
+                               this->location(),
 
10366
+                               name,
 
10367
+                               2,
 
10368
+                               ctype_tree,
 
10369
+                               ctype_tree,
 
10370
+                               fold_convert_loc(gccloc, ctype_tree, left),
 
10371
+                               type,
 
10372
+                               fold_convert_loc(gccloc, ctype_tree, right));
 
10373
+    }
 
10374
+
 
10375
   tree compute_type = excess_precision_type(type);
 
10376
   if (compute_type != NULL_TREE)
 
10377
     {
 
10378
@@ -7191,6 +7252,15 @@
 
10379
   if (this->code_ == BUILTIN_OFFSETOF)
 
10380
     {
 
10381
       Expression* arg = this->one_arg();
 
10382
+
 
10383
+      if (arg->bound_method_expression() != NULL
 
10384
+         || arg->interface_field_reference_expression() != NULL)
 
10385
+       {
 
10386
+         this->report_error(_("invalid use of method value as argument "
 
10387
+                              "of Offsetof"));
 
10388
+         return this;
 
10389
+       }
 
10390
+
 
10391
       Field_reference_expression* farg = arg->field_reference_expression();
 
10392
       while (farg != NULL)
 
10393
        {
 
10394
@@ -7200,7 +7270,8 @@
 
10395
          // it must not be reached through pointer indirections.
 
10396
          if (farg->expr()->deref() != farg->expr())
 
10397
            {
 
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"));
 
10401
              return this;
 
10402
            }
 
10403
          // Go up until we reach the original base.
 
10404
@@ -7476,7 +7547,7 @@
 
10405
       switch (nc.to_unsigned_long(&v))
 
10406
        {
 
10407
        case Numeric_constant::NC_UL_VALID:
 
10408
-         return true;
 
10409
+         break;
 
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.
 
10417
-         return true;
 
10418
+         break;
 
10419
        }
 
10420
+
 
10421
+      mpz_t val;
 
10422
+      if (!nc.to_int(&val))
 
10423
+       go_unreachable();
 
10424
+      int bits = mpz_sizeinbase(val, 2);
 
10425
+      mpz_clear(val);
 
10426
+      Type* int_type = Type::lookup_integer_type("int");
 
10427
+      if (bits >= int_type->integer_type()->bits())
 
10428
+       {
 
10429
+         error_at(e->location(), "%s argument too large for make",
 
10430
+                  is_length ? "len" : "cap");
 
10431
+         return false;
 
10432
+       }
 
10433
+
 
10434
+      return true;
 
10435
     }
 
10436
 
 
10437
   if (e->type()->integer_type() != NULL)
 
10438
@@ -7595,6 +7681,8 @@
 
10439
 bool
 
10440
 Builtin_call_expression::do_is_constant() const
 
10441
 {
 
10442
+  if (this->is_error_expression())
 
10443
+    return true;
 
10444
   switch (this->code_)
 
10445
     {
 
10446
     case BUILTIN_LEN:
 
10447
@@ -9744,15 +9832,9 @@
 
10448
     }
 
10449
 
 
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 @@
 
10466
   if (func != NULL)
 
10467
     {
 
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));
 
10471
       if (!has_closure)
 
10472
        closure_tree = NULL_TREE;
 
10473
       else
 
10474
@@ -10817,11 +10899,20 @@
 
10475
 void
 
10476
 String_index_expression::do_check_types(Gogo*)
 
10477
 {
 
10478
-  if (this->start_->type()->integer_type() == NULL)
 
10479
+  Numeric_constant nc;
 
10480
+  unsigned long v;
 
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"));
 
10495
 
 
10496
   std::string sval;
 
10497
Index: gcc/recog.c
 
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 @@
 
10502
   return 1;
 
10503
 }
 
10504
 
 
10505
+/* Regno offset to be used in the register search.  */
 
10506
+static int search_ofs;
 
10507
+
 
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)
 
10514
 {
 
10515
-  static int search_ofs;
 
10516
   enum reg_class cl;
 
10517
   HARD_REG_SET live;
 
10518
   df_ref *def_rec;
 
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 (&reg_obstack);
 
10523
+  search_ofs = 0;
 
10524
   live = BITMAP_ALLOC (&reg_obstack);
 
10525
 
 
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)
 
10531
@@ -1,3 +1,15 @@
 
10532
+2013-10-19  Eric Botcazou  <ebotcazou@adacore.com>
 
10533
+
 
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.
 
10538
+
 
10539
+2013-10-19  Eric Botcazou  <ebotcazou@adacore.com>
 
10540
+
 
10541
+       * gcc-interface/utils.c (gnat_set_type_context): New function.
 
10542
+       (gnat_pushdecl): Use it to set the context of the type.
 
10543
+
 
10544
 2013-10-16  Release Manager
 
10545
 
 
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 *);
 
10558
 
 
10559
@@ -532,6 +533,22 @@
 
10560
   free_binding_level = level;
 
10561
 }
 
10562
 
 
10563
+/* Set the context of TYPE and its parallel types (if any) to CONTEXT.  */
 
10564
+
 
10565
+static void
 
10566
+gnat_set_type_context (tree type, tree context)
 
10567
+{
 
10568
+  tree decl = TYPE_STUB_DECL (type);
 
10569
+
 
10570
+  TYPE_CONTEXT (type) = context;
 
10571
+
 
10572
+  while (decl && DECL_PARALLEL_TYPE (decl))
 
10573
+    {
 
10574
+      TYPE_CONTEXT (DECL_PARALLEL_TYPE (decl)) = context;
 
10575
+      decl = TYPE_STUB_DECL (DECL_PARALLEL_TYPE (decl));
 
10576
+    }
 
10577
+}
 
10578
+
 
10579
 /* Record DECL as belonging to the current lexical scope and use GNAT_NODE
 
10580
    for location information and flag propagation.  */
 
10581
 
 
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;
 
10590
            }
 
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))
 
10602
            {
 
10603
              TYPE_NAME (t) = decl;
 
10604
-             TYPE_CONTEXT (t) = DECL_CONTEXT (decl);
 
10605
+             gnat_set_type_context (t, DECL_CONTEXT (decl));
 
10606
            }
 
10607
     }
 
10608
 }
 
10609
@@ -1692,93 +1709,74 @@
 
10610
       TYPE_SIZE_UNIT (new_record_type)
 
10611
        = size_int (TYPE_ALIGN (record_type) / BITS_PER_UNIT);
 
10612
 
 
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))
 
10619
        {
 
10620
          tree field_type = TREE_TYPE (old_field);
 
10621
          tree field_name = DECL_NAME (old_field);
 
10622
-         tree new_field;
 
10623
          tree curpos = bit_position (old_field);
 
10624
+         tree pos, new_field;
 
10625
          bool var = false;
 
10626
          unsigned int align = 0;
 
10627
-         tree pos;
 
10628
 
 
10629
+         /* We're going to do some pattern matching below so remove as many
 
10630
+            conversions as possible.  */
 
10631
+         curpos = remove_conversions (curpos, true);
 
10632
+
 
10633
          /* See how the position was modified from the last position.
 
10634
 
 
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
 
10640
-         again.
 
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.
 
10646
 
 
10647
-         If this is a union, the position can be taken as zero. */
 
10648
-
 
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);
 
10652
-
 
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;
 
10657
          else
 
10658
            pos = compute_related_constant (curpos, last_pos);
 
10659
 
 
10660
-         if (!pos && TREE_CODE (curpos) == MULT_EXPR
 
10661
+         if (!pos
 
10662
+             && TREE_CODE (curpos) == MULT_EXPR
 
10663
              && host_integerp (TREE_OPERAND (curpos, 1), 1))
 
10664
            {
 
10665
              tree offset = TREE_OPERAND (curpos, 0);
 
10666
              align = tree_low_cst (TREE_OPERAND (curpos, 1), 1);
 
10667
-
 
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)
 
10673
-               {
 
10674
-                 unsigned HOST_WIDE_INT mask
 
10675
-                   = TREE_INT_CST_LOW (TREE_OPERAND (offset, 1));
 
10676
-                 unsigned int i;
 
10677
-
 
10678
-                 for (i = 0; i < HOST_BITS_PER_WIDE_INT; i++)
 
10679
-                   {
 
10680
-                     if (mask & 1)
 
10681
-                       break;
 
10682
-                     mask >>= 1;
 
10683
-                     align *= 2;
 
10684
-                   }
 
10685
-               }
 
10686
-
 
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);
 
10692
            }
 
10693
-         else if (!pos && TREE_CODE (curpos) == PLUS_EXPR
 
10694
-                  && TREE_CODE (TREE_OPERAND (curpos, 1)) == INTEGER_CST
 
10695
+         else if (!pos
 
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),
 
10701
-                                    1))
 
10702
+                  && host_integerp
 
10703
+                     (TREE_OPERAND (TREE_OPERAND (curpos, 0), 1), 1))
 
10704
            {
 
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);
 
10708
              align
 
10709
-               = tree_low_cst
 
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);
 
10718
            }
 
10719
-         else if (potential_alignment_gap (prev_old_field, old_field,
 
10720
-                                           pos))
 
10721
+         else if (potential_alignment_gap (prev_old_field, old_field, pos))
 
10722
            {
 
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);
 
10728
            }
 
10729
 
 
10730
          /* If we can't compute a position, set it to zero.
 
10731
 
 
10732
-         ??? We really should abort here, but it's too much work
 
10733
-         to get this correct for all cases.  */
 
10734
-
 
10735
+            ??? We really should abort here, but it's too much work
 
10736
+            to get this correct for all cases.  */
 
10737
          if (!pos)
 
10738
            pos = bitsize_zero_node;
 
10739
 
 
10740
@@ -2553,6 +2551,32 @@
 
10741
   return false;
 
10742
 }
 
10743
 
 
10744
+/* Return VALUE scaled by the biggest power-of-2 factor of EXPR.  */
 
10745
+
 
10746
+static unsigned int
 
10747
+scale_by_factor_of (tree expr, unsigned int value)
 
10748
+{
 
10749
+  expr = remove_conversions (expr, true);
 
10750
+
 
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)
 
10755
+    {
 
10756
+      unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (TREE_OPERAND (expr, 1));
 
10757
+      unsigned int i = 0;
 
10758
+
 
10759
+      while ((mask & 1) == 0 && i < HOST_BITS_PER_WIDE_INT)
 
10760
+       {
 
10761
+         mask >>= 1;
 
10762
+         value *= 2;
 
10763
+         i++;
 
10764
+       }
 
10765
+    }
 
10766
+
 
10767
+  return value;
 
10768
+}
 
10769
+
 
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 @@
 
10778
          return FAILURE;
 
10779
        }
 
10780
 
 
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)
 
10784
        {
 
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)
 
10789
        {
 
10790
          /* If both are functions, check result characteristics.  */
 
10791
-         if (check_result_characteristics (s1, s2, errmsg, err_len)
 
10792
-             == FAILURE)
 
10793
+         if (check_result_characteristics (s1, s2, errmsg, err_len) == FAILURE
 
10794
+             || check_result_characteristics (s2, s1, errmsg, err_len) == FAILURE)
 
10795
            return 0;
 
10796
        }
 
10797
 
 
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 @@
 
10803
 
 
10804
 
 
10805
 /* Check a derived type that is being extended.  */
 
10806
+
 
10807
 static gfc_symbol*
 
10808
 check_extended_derived_type (char *name)
 
10809
 {
 
10810
@@ -7395,14 +7396,15 @@
 
10811
       return NULL;
 
10812
     }
 
10813
 
 
10814
+  extended = gfc_find_dt_in_generic (extended);
 
10815
+
 
10816
+  /* F08:C428.  */
 
10817
   if (!extended)
 
10818
     {
 
10819
-      gfc_error ("No such symbol in TYPE definition at %C");
 
10820
+      gfc_error ("Symbol '%s' at %C has not been previously defined", name);
 
10821
       return NULL;
 
10822
     }
 
10823
 
 
10824
-  extended = gfc_find_dt_in_generic (extended);
 
10825
-
 
10826
   if (extended->attr.flavor != FL_DERIVED)
 
10827
     {
 
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)
 
10833
@@ -1,3 +1,43 @@
 
10834
+2013-11-17  Janus Weil  <janus@gcc.gnu.org>
 
10835
+
 
10836
+       Backport from mainline
 
10837
+       2013-11-07  Janus Weil  <janus@gcc.gnu.org>
 
10838
+
 
10839
+       PR fortran/58471
 
10840
+       * primary.c (gfc_expr_attr): Check for result symbol.
 
10841
+
 
10842
+2013-11-16  Janus Weil  <janus@gcc.gnu.org>
 
10843
+
 
10844
+       Backport from mainline
 
10845
+       2013-09-20  Janus Weil  <janus@gcc.gnu.org>
 
10846
+
 
10847
+       PR fortran/58099
 
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.
 
10852
+
 
10853
+2013-11-16  Paul Thomas  <pault@gcc.gnu.org>
 
10854
+
 
10855
+       PR fortran/58771
 
10856
+       * trans-io.c (transfer_expr): If the backend_decl for a derived
 
10857
+       type is missing, build it with gfc_typenode_for_spec.
 
10858
+
 
10859
+2013-11-05  Steven G. Kargl <kargl@gcc.gnu.org>
 
10860
+
 
10861
+       PR fortran/58989
 
10862
+       * check.c (gfc_check_reshape): ensure that shape is a constant
 
10863
+       expression.
 
10864
+
 
10865
+2013-11-02  Janus Weil  <janus@gcc.gnu.org>
 
10866
+
 
10867
+       Backport from mainline
 
10868
+       2013-09-23  Janus Weil  <janus@gcc.gnu.org>
 
10869
+
 
10870
+       PR fortran/58355
 
10871
+       * decl.c (check_extended_derived_type): Prevent segfault, modify error
 
10872
+       message.
 
10873
+
 
10874
 2013-10-16  Release Manager
 
10875
 
 
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 @@
 
10882
          return FAILURE;
 
10883
        }
 
10884
 
 
10885
-      if (!gfc_compare_interfaces (s2, s1, name, 0, 1,
 
10886
-                                  err, sizeof(err), NULL, NULL))
 
10887
-       {
 
10888
-         gfc_error ("Interface mismatch in procedure pointer assignment "
 
10889
-                    "at %L: %s", &rvalue->where, err);
 
10890
-         return FAILURE;
 
10891
-       }
 
10892
-
 
10893
       return SUCCESS;
 
10894
     }
 
10895
 
 
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 @@
 
10901
 
 
10902
   /* The code to generate the error.  */
 
10903
   gfc_start_block (&block);
 
10904
-  
 
10905
+
 
10906
   arg1 = gfc_build_addr_expr (NULL_TREE, var);
 
10907
-  
 
10908
+
 
10909
   arg2 = build_int_cst (integer_type_node, error_code),
 
10910
-  
 
10911
+
 
10912
   asprintf (&message, "%s", _(msgid));
 
10913
   arg3 = gfc_build_addr_expr (pchar_type_node,
 
10914
                              gfc_build_localized_cstring_const (message));
 
10915
   free (message);
 
10916
-  
 
10917
+
 
10918
   tmp = build_call_expr_loc (input_location,
 
10919
                         gfor_fndecl_generate_error, 3, arg1, arg2, arg3);
 
10920
 
 
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",
 
10924
                               &se.pre);
 
10925
-    
 
10926
+
 
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 @@
 
10931
   if (p->convert)
 
10932
     mask |= set_string (&block, &post_block, var, IOPARM_open_convert,
 
10933
                        p->convert);
 
10934
-                       
 
10935
+
 
10936
   if (p->newunit)
 
10937
     mask |= set_parameter_ref (&block, &post_block, var, IOPARM_open_newunit,
 
10938
                               p->newunit);
 
10939
@@ -1234,7 +1234,7 @@
 
10940
     {
 
10941
       mask |= set_parameter_ref (&block, &post_block, var, IOPARM_inquire_exist,
 
10942
                                 p->exist);
 
10943
-    
 
10944
+
 
10945
       if (p->unit && !p->iostat)
 
10946
        {
 
10947
          p->iostat = create_dummy_iostat ();
 
10948
@@ -1322,7 +1322,7 @@
 
10949
   if (p->pad)
 
10950
     mask |= set_string (&block, &post_block, var, IOPARM_inquire_pad,
 
10951
                        p->pad);
 
10952
-  
 
10953
+
 
10954
   if (p->convert)
 
10955
     mask |= set_string (&block, &post_block, var, IOPARM_inquire_convert,
 
10956
                        p->convert);
 
10957
@@ -1547,7 +1547,7 @@
 
10958
   tree dtype;
 
10959
   tree dt_parm_addr;
 
10960
   tree decl = NULL_TREE;
 
10961
-  int n_dim; 
 
10962
+  int n_dim;
 
10963
   int itype;
 
10964
   int rank = 0;
 
10965
 
 
10966
@@ -2032,7 +2032,7 @@
 
10967
       if (gfc_notification_std (GFC_STD_GNU) != SILENT)
 
10968
        {
 
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);
 
10973
          return;
 
10974
        }
 
10975
@@ -2041,7 +2041,7 @@
 
10976
       ts->kind = ts->u.derived->ts.kind;
 
10977
       ts->f90_type = ts->u.derived->ts.f90_type;
 
10978
     }
 
10979
-  
 
10980
+
 
10981
   kind = ts->kind;
 
10982
   function = NULL;
 
10983
   arg2 = NULL;
 
10984
@@ -2123,7 +2123,7 @@
 
10985
            function = iocall[IOCALL_X_CHARACTER_WIDE];
 
10986
          else
 
10987
            function = iocall[IOCALL_X_CHARACTER_WIDE_WRITE];
 
10988
-           
 
10989
+
 
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,
 
10995
                                      expr);
 
10996
 
 
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);
 
11002
+
 
11003
       for (c = ts->u.derived->components; c; c = c->next)
 
11004
        {
 
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);
 
11012
       return FAILURE;
 
11013
     }
 
11014
-  else if (shape->expr_type == EXPR_ARRAY)
 
11015
+  else if (shape->expr_type == EXPR_ARRAY && gfc_is_constant_expr (shape))
 
11016
     {
 
11017
       gfc_expr *e;
 
11018
       int i, extent;
 
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);
 
11026
 
 
11027
-      if (e->value.function.esym != NULL)
 
11028
+      if (e->value.function.esym && e->value.function.esym->result)
 
11029
        {
 
11030
          gfc_symbol *sym = e->value.function.esym->result;
 
11031
          attr = sym->attr;
 
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.])])
 
11040
+
 
11041
+    gcc_GAS_CHECK_FEATURE([LEON instructions],
 
11042
+      gcc_cv_as_sparc_leon,,
 
11043
+      [-Aleon],
 
11044
+      [.text
 
11045
+       .register %g2, #scratch
 
11046
+       .register %g3, #scratch
 
11047
+       .align 4
 
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.])])
 
11053
     ;;
 
11054
 
 
11055
 changequote(,)dnl
 
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])
 
11066
     else
 
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"
 
11075
       else
 
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 @@
 
11081
 
 
11082
       if (MEM_EXPR (in_rtx))
 
11083
        print_mem_expr (outfile, MEM_EXPR (in_rtx));
 
11084
+      else
 
11085
+       fputc (' ', outfile);
 
11086
 
 
11087
       if (MEM_OFFSET_KNOWN_P (in_rtx))
 
11088
        fprintf (outfile, "+" HOST_WIDE_INT_PRINT_DEC, MEM_OFFSET (in_rtx));
 
11089
Index: gcc/alias.c
 
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);
 
11096
 
 
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])
 
11104
+         {
 
11105
+           new_reg_base_value[i] = static_reg_base_value[i];
 
11106
+           bitmap_set_bit (reg_seen, i);
 
11107
+         }
 
11108
 
 
11109
-        The address expression is VOIDmode for an argument and
 
11110
-        Pmode for other registers.  */
 
11111
-
 
11112
-      memcpy (new_reg_base_value, static_reg_base_value,
 
11113
-             FIRST_PSEUDO_REGISTER * sizeof (rtx));
 
11114
-
 
11115
       /* Walk the insns adding values to the new_reg_base_value array.  */
 
11116
       for (i = 0; i < rpo_cnt; i++)
 
11117
        {
 
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;
 
11126
-  tree base_type;
 
11127
 
 
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.  */
 
11132
   while (1)
 
11133
     {
 
11134
-      base_type = TREE_TYPE (exp);
 
11135
-
 
11136
       switch (TREE_CODE (exp))
 
11137
        {
 
11138
        case BIT_FIELD_REF:
 
11139
@@ -543,7 +540,38 @@
 
11140
        case VIEW_CONVERT_EXPR:
 
11141
          break;
 
11142
 
 
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)))
 
11148
+           {
 
11149
+             exp = TREE_OPERAND (TMR_BASE (exp), 0);
 
11150
+             bit_offset = double_int_zero;
 
11151
+             maxsize = -1;
 
11152
+             goto done;
 
11153
+           }
 
11154
+         /* Fallthru.  */
 
11155
        case MEM_REF:
 
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
 
11167
+             && maxsize != -1
 
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))))))
 
11173
+           maxsize = -1;
 
11174
+
 
11175
          /* Hand back the decl for MEM[&decl, off].  */
 
11176
          if (TREE_CODE (TREE_OPERAND (exp, 0)) == ADDR_EXPR)
 
11177
            {
 
11178
@@ -565,45 +593,24 @@
 
11179
            }
 
11180
          goto done;
 
11181
 
 
11182
-       case TARGET_MEM_REF:
 
11183
-         /* Hand back the decl for MEM[&decl, off].  */
 
11184
-         if (TREE_CODE (TMR_BASE (exp)) == ADDR_EXPR)
 
11185
-           {
 
11186
-             /* Via the variable index or index2 we can reach the
 
11187
-                whole object.  */
 
11188
-             if (TMR_INDEX (exp) || TMR_INDEX2 (exp))
 
11189
-               {
 
11190
-                 exp = TREE_OPERAND (TMR_BASE (exp), 0);
 
11191
-                 bit_offset = double_int_zero;
 
11192
-                 maxsize = -1;
 
11193
-                 goto done;
 
11194
-               }
 
11195
-             if (integer_zerop (TMR_OFFSET (exp)))
 
11196
-               exp = TREE_OPERAND (TMR_BASE (exp), 0);
 
11197
-             else
 
11198
-               {
 
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 ())
 
11205
-                   {
 
11206
-                     bit_offset = off;
 
11207
-                     exp = TREE_OPERAND (TMR_BASE (exp), 0);
 
11208
-                   }
 
11209
-               }
 
11210
-           }
 
11211
-         goto done;
 
11212
-
 
11213
        default:
 
11214
          goto done;
 
11215
        }
 
11216
 
 
11217
       exp = TREE_OPERAND (exp, 0);
 
11218
     }
 
11219
+
 
11220
+  /* We need to deal with variable arrays ending structures.  */
 
11221
+  if (seen_variable_array_ref
 
11222
+      && maxsize != -1
 
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))))))
 
11228
+    maxsize = -1;
 
11229
+
 
11230
  done:
 
11231
-
 
11232
   if (!bit_offset.fits_shwi ())
 
11233
     {
 
11234
       *poffset = 0;
 
11235
@@ -615,24 +622,6 @@
 
11236
 
 
11237
   hbit_offset = bit_offset.to_shwi ();
 
11238
 
 
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.  */
 
11249
-
 
11250
-  if (seen_variable_array_ref
 
11251
-      && maxsize != -1
 
11252
-      && (!host_integerp (TYPE_SIZE (base_type), 1)
 
11253
-         || (hbit_offset + maxsize
 
11254
-             == (signed) TREE_INT_CST_LOW (TYPE_SIZE (base_type)))))
 
11255
-    maxsize = -1;
 
11256
-
 
11257
   /* In case of a decl or constant base object we can do better.  */
 
11258
 
 
11259
   if (DECL_P (exp))
 
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);
 
11270
        }
 
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 @@
 
11278
          if (e->insns.r)
 
11279
            {
 
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))
 
11288
                {
 
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);
 
11295
+                 else
 
11296
+                   emit_insn_after_noloc (insns, parm_birth_insn, e->dest);
 
11297
                }
 
11298
              else
 
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);
 
11308
+
 
11309
+      /* Clear the NEW sets before the next iteration.  We have already
 
11310
+         fully propagated its contents.  */
 
11311
+      if (new_stuff)
 
11312
+       FOR_ALL_BB (bb)
 
11313
+         bitmap_set_free (NEW_SETS (bb));
 
11314
     }
 
11315
   statistics_histogram_event (cfun, "insert iterations", num_iterations);
 
11316
 }
 
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);
 
11323
 }
 
11324
 
 
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.  */
 
11332
 
 
11333
-static tree
 
11334
-ref_at_iteration (struct loop *loop, tree ref, int iter)
 
11335
+static tree 
 
11336
+ref_at_iteration (data_reference_p dr, int iter, gimple_seq *stmts)
 
11337
 {
 
11338
-  tree idx, *idx_p, type, val, op0 = NULL_TREE, ret;
 
11339
-  affine_iv iv;
 
11340
-  bool ok;
 
11341
-
 
11342
-  if (handled_component_p (ref))
 
11343
+  tree off = DR_OFFSET (dr);
 
11344
+  tree coff = DR_INIT (dr);
 
11345
+  if (iter == 0)
 
11346
+    ;
 
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)));
 
11350
+  else
 
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,
 
11355
+                                NULL_TREE);
 
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)))
 
11365
     {
 
11366
-      op0 = ref_at_iteration (loop, TREE_OPERAND (ref, 0), iter);
 
11367
-      if (!op0)
 
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);
 
11374
     }
 
11375
-  else if (!INDIRECT_REF_P (ref)
 
11376
-          && TREE_CODE (ref) != MEM_REF)
 
11377
-    return unshare_expr (ref);
 
11378
-
 
11379
-  if (TREE_CODE (ref) == MEM_REF)
 
11380
-    {
 
11381
-      ret = unshare_expr (ref);
 
11382
-      idx = TREE_OPERAND (ref, 0);
 
11383
-      idx_p = &TREE_OPERAND (ret, 0);
 
11384
-    }
 
11385
-  else if (TREE_CODE (ref) == COMPONENT_REF)
 
11386
-    {
 
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;
 
11391
-
 
11392
-      return build3 (COMPONENT_REF, TREE_TYPE (ref), op0,
 
11393
-                    unshare_expr (TREE_OPERAND (ref, 1)),
 
11394
-                    unshare_expr (TREE_OPERAND (ref, 2)));
 
11395
-    }
 
11396
-  else if (TREE_CODE (ref) == ARRAY_REF)
 
11397
-    {
 
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;
 
11405
-
 
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);
 
11411
-    }
 
11412
   else
 
11413
-    return NULL_TREE;
 
11414
-
 
11415
-  ok = simple_iv (loop, loop, idx, &iv, true);
 
11416
-  if (!ok)
 
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);
 
11421
-  else
 
11422
-    {
 
11423
-      type = TREE_TYPE (iv.base);
 
11424
-      if (POINTER_TYPE_P (type))
 
11425
-       {
 
11426
-         val = fold_build2 (MULT_EXPR, sizetype, iv.step,
 
11427
-                            size_int (iter));
 
11428
-         val = fold_build_pointer_plus (iv.base, val);
 
11429
-       }
 
11430
-      else
 
11431
-       {
 
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);
 
11435
-       }
 
11436
-      *idx_p = unshare_expr (val);
 
11437
-    }
 
11438
-
 
11439
-  return ret;
 
11440
+    return fold_build2 (MEM_REF, TREE_TYPE (DR_REF (dr)), addr, alias_ptr);
 
11441
 }
 
11442
 
 
11443
 /* Get the initialization expression for the INDEX-th temporary variable
 
11444
@@ -2068,7 +2021,11 @@
 
11445
 
 
11446
   stmt = find_common_use_stmt (&name1, &name2);
 
11447
 
 
11448
-  if (!stmt)
 
11449
+  if (!stmt
 
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)))
 
11454
     return false;
 
11455
 
 
11456
   acode = gimple_assign_rhs_code (stmt);
 
11457
@@ -2365,14 +2322,10 @@
 
11458
       if (chain->inits[i] != NULL_TREE)
 
11459
        continue;
 
11460
 
 
11461
-      init = ref_at_iteration (loop, DR_REF (dr), (int) i - n);
 
11462
-      if (!init)
 
11463
-       return false;
 
11464
-
 
11465
+      init = ref_at_iteration (dr, (int) i - n, &stmts);
 
11466
       if (!chain->all_always_accessed && tree_could_trap_p (init))
 
11467
        return false;
 
11468
 
 
11469
-      init = force_gimple_operand (init, &stmts, false, NULL_TREE);
 
11470
       if (stmts)
 
11471
        gsi_insert_seq_on_edge_immediate (entry, stmts);
 
11472
 
 
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)
 
11479
     {
 
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);
 
11485
 
 
11486
       iv->base = val;
 
11487
       iv->extend = IV_UNKNOWN_EXTEND;
 
11488
@@ -465,8 +467,14 @@
 
11489
       && !iv->first_special)
 
11490
     {
 
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);
 
11498
+                               val,
 
11499
+                               iv->extend == extend
 
11500
+                               ? iv->extend_mode : iv->mode);
 
11501
       iv->base = val;
 
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,
 
11512
-                         bool *by_ref_p)
 
11513
+                         HOST_WIDE_INT *size_p, bool *by_ref_p)
 
11514
 {
 
11515
   int index;
 
11516
   HOST_WIDE_INT size, max_size;
 
11517
@@ -758,6 +758,8 @@
 
11518
        {
 
11519
          *index_p = index;
 
11520
          *by_ref_p = false;
 
11521
+         if (size_p)
 
11522
+           *size_p = size;
 
11523
          return true;
 
11524
        }
 
11525
       return false;
 
11526
@@ -800,6 +802,8 @@
 
11527
     {
 
11528
       *index_p = index;
 
11529
       *by_ref_p = true;
 
11530
+      if (size_p)
 
11531
+       *size_p = size;
 
11532
       return true;
 
11533
     }
 
11534
   return false;
 
11535
@@ -814,7 +818,7 @@
 
11536
                        bool *by_ref_p)
 
11537
 {
 
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);
 
11541
 }
 
11542
 
 
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,
 
11548
-                                  &by_ref))
 
11549
+                                  NULL, &by_ref))
 
11550
     {
 
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)
 
11556
     {
 
11557
-      struct cgraph_node *first_clone = callee;
 
11558
 
 
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);
 
11563
          return NULL;
 
11564
        }
 
11565
-
 
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);
 
11569
-
 
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.  */
 
11575
-      if (first_clone)
 
11576
-       {
 
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);
 
11581
-         if (dump_file)
 
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);
 
11585
-       }
 
11586
-      else if (dump_file)
 
11587
-       fprintf (dump_file, "ipa-prop: Introduced new external node "
 
11588
-                "(%s/%i).\n",
 
11589
-                xstrdup (cgraph_node_name (callee)), callee->uid);
 
11590
+      callee = cgraph_get_create_real_symbol_node (target);
 
11591
     }
 
11592
   ipa_check_create_node_params ();
 
11593
 
 
11594
@@ -3902,7 +3881,7 @@
 
11595
        struct ipa_agg_replacement_value *v;
 
11596
        gimple stmt = gsi_stmt (gsi);
 
11597
        tree rhs, val, t;
 
11598
-       HOST_WIDE_INT offset;
 
11599
+       HOST_WIDE_INT offset, size;
 
11600
        int index;
 
11601
        bool by_ref, vce;
 
11602
 
 
11603
@@ -3929,13 +3908,15 @@
 
11604
          continue;
 
11605
 
 
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))
 
11609
          continue;
 
11610
        for (v = aggval; v; v = v->next)
 
11611
          if (v->index == index
 
11612
              && v->offset == offset)
 
11613
            break;
 
11614
-       if (!v || v->by_ref != by_ref)
 
11615
+       if (!v
 
11616
+           || v->by_ref != by_ref
 
11617
+           || tree_low_cst (TYPE_SIZE (TREE_TYPE (v->value)), 0) != size)
 
11618
          continue;
 
11619
 
 
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 @@
 
11626
                return x;
 
11627
            }
 
11628
 
 
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);
 
11641
 
 
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 @@
 
11648
          with_cpu=8540
 
11649
       fi       
 
11650
       ;;
 
11651
-    sparc-leon*-*)
 
11652
-      with_cpu=v8;
 
11653
-      ;;
 
11654
     sparc*-*-*)
 
11655
-      with_cpu="`echo ${target} | sed 's/-.*$//'`"
 
11656
+      case ${target} in
 
11657
+       *-leon-*)
 
11658
+         with_cpu=leon
 
11659
+         ;;
 
11660
+       *-leon[3-9]*)
 
11661
+         with_cpu=leon3
 
11662
+         ;;
 
11663
+       *)
 
11664
+         with_cpu="`echo ${target} | sed 's/-.*$//'`"
 
11665
+         ;;
 
11666
+      esac
 
11667
       ;;
 
11668
   esac
 
11669
 
 
11670
@@ -3587,7 +3594,7 @@
 
11671
                        case ${val} in
 
11672
                        "" | sparc | sparcv9 | sparc64 \
 
11673
                        | v7 | cypress \
 
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"
 
11681
                ;;
 
11682
 
 
11683
-       sparc-leon*-*)
 
11684
-               if test x$with_tune = x ; then
 
11685
-                 with_tune=leon;
 
11686
-               fi
 
11687
-
 
11688
-               # The SPARC port checks this value at compile-time.
 
11689
-               target_cpu_default2="TARGET_CPU_$with_cpu"
 
11690
-               ;;
 
11691
-
 
11692
        sparc*-*-*)
 
11693
                # Some standard aliases.
 
11694
                case x$with_cpu in
 
11695
@@ -3765,6 +3763,17 @@
 
11696
                        ;;
 
11697
                esac
 
11698
 
 
11699
+               if test x$with_tune = x ; then
 
11700
+                     case ${target} in
 
11701
+                     *-leon-*)
 
11702
+                         with_tune=leon
 
11703
+                         ;;
 
11704
+                     *-leon[3-9]*)
 
11705
+                         with_tune=leon3
 
11706
+                         ;;
 
11707
+                     esac
 
11708
+               fi
 
11709
+
 
11710
                # The SPARC port checks this value at compile-time.
 
11711
                target_cpu_default2="TARGET_CPU_$with_cpu"
 
11712
                ;;
 
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 @@
 
11746
        {
 
11747
          /* For CCRAWmode put the required cc mask into the second
 
11748
             operand.  */
 
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);
 
11754
          *code = new_code;
 
11755
@@ -7846,6 +7847,9 @@
 
11756
     {
 
11757
       bb = BASIC_BLOCK (bb_index);
 
11758
 
 
11759
+      if (!bb)
 
11760
+       continue;
 
11761
+
 
11762
       FOR_BB_INSNS (bb, insn)
 
11763
        {
 
11764
          rtx ite, cc, pat, target;
 
11765
@@ -7959,7 +7963,10 @@
 
11766
   if (!result)
 
11767
     return;
 
11768
 
 
11769
-  PATTERN (tbegin_insn) = XVECEXP (PATTERN (tbegin_insn), 0, 0);
 
11770
+  PATTERN (tbegin_insn) = gen_rtx_PARALLEL (VOIDmode,
 
11771
+                           gen_rtvec (2,
 
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);
 
11776
 
 
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;
 
11784
   rtx jump;
 
11785
@@ -9581,16 +9589,17 @@
 
11786
   if (retry != NULL_RTX)
 
11787
     {
 
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);
 
11793
     }
 
11794
 
 
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));
 
11799
   else
 
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),
 
11803
+                                    tdb));
 
11804
 
 
11805
   jump = s390_emit_jump (abort_label,
 
11806
                         gen_rtx_NE (VOIDmode,
 
11807
@@ -9611,6 +9620,10 @@
 
11808
   /* Abort handler code.  */
 
11809
 
 
11810
   emit_label (abort_label);
 
11811
+  emit_move_insn (dest, gen_rtx_UNSPEC (SImode,
 
11812
+                                       gen_rtvec (1, gen_rtx_REG (CCRAWmode,
 
11813
+                                                                  CC_REGNUM)),
 
11814
+                                       UNSPEC_CC_TO_INT));
 
11815
   if (retry != NULL_RTX)
 
11816
     {
 
11817
       rtx count = gen_reg_rtx (SImode);
 
11818
@@ -9622,7 +9635,7 @@
 
11819
       add_reg_note (jump, REG_BR_PROB, very_unlikely);
 
11820
 
 
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;
 
11829
     }
 
11830
 
 
11831
-  emit_move_insn (dest, gen_rtx_UNSPEC (SImode,
 
11832
-                                       gen_rtvec (1, gen_rtx_REG (CCRAWmode,
 
11833
-                                                                  CC_REGNUM)),
 
11834
-                                       UNSPEC_CC_TO_INT));
 
11835
   emit_label (leave_label);
 
11836
 }
 
11837
 
 
11838
@@ -9674,6 +9683,9 @@
 
11839
 s390_init_builtins (void)
 
11840
 {
 
11841
   tree ftype, uint64_type;
 
11842
+  tree returns_twice_attr = tree_cons (get_identifier ("returns_twice"),
 
11843
+                                      NULL, NULL);
 
11844
+  tree noreturn_attr = tree_cons (get_identifier ("noreturn"), NULL, NULL);
 
11845
 
 
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,
 
11850
                                    NULL_TREE);
 
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);
 
11856
 
 
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);
 
11866
 
 
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,
 
11872
                        BUILT_IN_MD,
 
11873
-                       NULL, NULL_TREE);
 
11874
+                       NULL, returns_twice_attr);
 
11875
   add_builtin_function ("__builtin_tbegin_retry_nofloat", ftype,
 
11876
                        S390_BUILTIN_TBEGIN_RETRY_NOFLOAT,
 
11877
                        BUILT_IN_MD,
 
11878
-                       NULL, NULL_TREE);
 
11879
+                       NULL, returns_twice_attr);
 
11880
 
 
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 @@
 
11888
 
 
11889
    ; Transactional Execution support
 
11890
    UNSPECV_TBEGIN
 
11891
+   UNSPECV_TBEGIN_TDB
 
11892
    UNSPECV_TBEGINC
 
11893
    UNSPECV_TEND
 
11894
    UNSPECV_TABORT
 
11895
@@ -9896,9 +9897,10 @@
 
11896
 
 
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")]
 
11902
                               UNSPECV_TBEGIN))
 
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"
 
11913
-  "tbegin\t%0,%x1"
 
11914
+  "TARGET_HTM && INTVAL (operands[0]) >= 0 && INTVAL (operands[0]) <= 0xffff"
 
11915
+  "tbegin\t%1,%x0"
 
11916
   [(set_attr "op_type" "SIL")])
 
11917
 
 
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"
 
11925
-  "tbegin\t%0,%x1"
 
11926
+       (unspec_volatile:CCRAW [(match_operand 0 "const_int_operand" "D")]
 
11927
+                              UNSPECV_TBEGIN))
 
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"
 
11931
+  "tbegin\t%1,%x0"
 
11932
   [(set_attr "op_type" "SIL")])
 
11933
 
 
11934
 
 
11935
@@ -10012,15 +10015,12 @@
 
11936
 ; Transaction perform processor assist
 
11937
 
 
11938
 (define_expand "tx_assist"
 
11939
-  [(set (match_dup 1) (const_int 0))
 
11940
-   (unspec_volatile [(match_operand:SI 0 "register_operand" "")
 
11941
-                    (match_dup 1)
 
11942
+  [(unspec_volatile [(match_operand:SI 0 "register_operand" "")
 
11943
+                    (reg:SI GPR0_REGNUM)
 
11944
                     (const_int 1)]
 
11945
                    UNSPECV_PPA)]
 
11946
   "TARGET_HTM"
 
11947
-{
 
11948
-  operands[1] = gen_reg_rtx (SImode);
 
11949
-})
 
11950
+  "")
 
11951
 
 
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")]
 
11956
                    UNSPECV_PPA)]
 
11957
   "TARGET_HTM && INTVAL (operands[2]) < 16"
 
11958
-  "ppa\t%0,%1,1"
 
11959
+  "ppa\t%0,%1,%2"
 
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.  */
 
11968
 
 
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
 
11975
+   setjmp.  */
 
11976
+
 
11977
+long
 
11978
 __TM_simple_begin ()
 
11979
 {
 
11980
   return __builtin_tbegin_nofloat (0);
 
11981
 }
 
11982
 
 
11983
-extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
11984
+long
 
11985
 __TM_begin (void* const tdb)
 
11986
 {
 
11987
   return __builtin_tbegin_nofloat (tdb);
 
11988
@@ -78,7 +85,7 @@
 
11989
   if (depth != 0)
 
11990
     return depth;
 
11991
 
 
11992
-  if (tdb->format == 0)
 
11993
+  if (tdb->format != 1)
 
11994
     return 0;
 
11995
   return tdb->nesting_depth;
 
11996
 }
 
11997
@@ -90,7 +97,7 @@
 
11998
 {
 
11999
   struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
 
12000
 
 
12001
-  if (tdb->format == 0)
 
12002
+  if (tdb->format != 1)
 
12003
     return 0;
 
12004
 
 
12005
   return !!(tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE);
 
12006
@@ -101,7 +108,7 @@
 
12007
 {
 
12008
   struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
 
12009
 
 
12010
-  if (tdb->format == 0)
 
12011
+  if (tdb->format != 1)
 
12012
     return 0;
 
12013
 
 
12014
   if (tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE)
 
12015
@@ -117,7 +124,7 @@
 
12016
 {
 
12017
   struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
 
12018
 
 
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 */));
 
12023
 }
 
12024
@@ -127,7 +134,7 @@
 
12025
 {
 
12026
   struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
 
12027
 
 
12028
-  return (tdb->format == 0
 
12029
+  return (tdb->format == 1
 
12030
          && (tdb->abort_code == 7 /* fetch overflow */
 
12031
              || tdb->abort_code == 8 /* store overflow */));
 
12032
 }
 
12033
@@ -137,7 +144,7 @@
 
12034
 {
 
12035
   struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
 
12036
 
 
12037
-  return tdb->format == 0 && tdb->abort_code == 13; /* depth exceeded */
 
12038
+  return tdb->format == 1 && tdb->abort_code == 13; /* depth exceeded */
 
12039
 }
 
12040
 
 
12041
 extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
12042
@@ -145,7 +152,7 @@
 
12043
 {
 
12044
   struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
 
12045
 
 
12046
-  return (tdb->format == 0
 
12047
+  return (tdb->format == 1
 
12048
          && (tdb->abort_code == 9 /* fetch conflict */
 
12049
              || tdb->abort_code == 10 /* store conflict */));
 
12050
 }
 
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)
 
12055
@@ -17,6 +17,6 @@
 
12056
 # <http://www.gnu.org/licenses/>.
 
12057
 #
 
12058
 
 
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.
 
12070
 
 
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.
 
12074
 (define_attr "cpu"
 
12075
   "v7,
 
12076
    cypress,
 
12077
@@ -214,6 +214,7 @@
 
12078
    supersparc,
 
12079
    hypersparc,
 
12080
    leon,
 
12081
+   leon3,
 
12082
    sparclite,
 
12083
    f930,
 
12084
    f934,
 
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")])
 
12097
 
 
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")))]
 
12103
   "TARGET_FPU"
 
12104
+  "")
 
12105
+
 
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")])
 
12114
 
 
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")])
 
12124
+
 
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")))]
 
12129
-  "TARGET_FPU"
 
12130
+  "TARGET_FPU && !sparc_fix_ut699"
 
12131
   "fdivs\t%1, %2, %0"
 
12132
   [(set_attr "type" "fpdivs")])
 
12133
 
 
12134
@@ -5791,18 +5809,33 @@
 
12135
   "fsqrtq\t%1, %0"
 
12136
   [(set_attr "type" "fpsqrtd")])
 
12137
 
 
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")))]
 
12142
   "TARGET_FPU"
 
12143
+  "")
 
12144
+
 
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"
 
12149
   "fsqrtd\t%1, %0"
 
12150
   [(set_attr "type" "fpsqrtd")
 
12151
    (set_attr "fptype" "double")])
 
12152
 
 
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")])
 
12161
+
 
12162
 (define_insn "sqrtsf2"
 
12163
   [(set (match_operand:SF 0 "register_operand" "=f")
 
12164
        (sqrt:SF (match_operand:SF 1 "register_operand" "f")))]
 
12165
-  "TARGET_FPU"
 
12166
+  "TARGET_FPU && !sparc_fix_ut699"
 
12167
   "fsqrts\t%1, %0"
 
12168
   [(set_attr "type" "fpsqrts")])
 
12169
 
 
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)
 
12174
@@ -23,7 +23,7 @@
 
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) \
 
12181
   gt-sparc.h
 
12182
 
 
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)
 
12189
 
 
12190
 EnumValue
 
12191
+Enum(sparc_processor_type) String(leon3) Value(PROCESSOR_LEON3)
 
12192
+
 
12193
+EnumValue
 
12194
 Enum(sparc_processor_type) String(sparclite) Value(PROCESSOR_SPARCLITE)
 
12195
 
 
12196
 EnumValue
 
12197
@@ -201,9 +204,19 @@
 
12198
 Enable workaround for single erratum of AT697F processor
 
12199
 (corresponding to erratum #13 of AT697E processor)
 
12200
 
 
12201
+mfix-ut699
 
12202
+Target Report RejectNegative Var(sparc_fix_ut699)
 
12203
+Enable workarounds for the errata of the UT699 processor
 
12204
+
 
12205
 Mask(LONG_DOUBLE_128)
 
12206
 ;; Use 128-bit long double
 
12207
 
 
12208
+Mask(LEON)
 
12209
+;; Generate code for LEON
 
12210
+
 
12211
+Mask(LEON3)
 
12212
+;; Generate code for LEON3
 
12213
+
 
12214
 Mask(SPARCLITE)
 
12215
 ;; Generate code for SPARClite
 
12216
 
 
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)"
 
12228
 {
 
12229
   sparc_expand_compare_and_swap (operands);
 
12230
   DONE;
 
12231
@@ -176,7 +177,7 @@
 
12232
             [(match_operand:I48MODE 2 "register_operand" "")
 
12233
              (match_operand:I48MODE 3 "register_operand" "")]
 
12234
             UNSPECV_CAS))])]
 
12235
-  "TARGET_V9"
 
12236
+  "TARGET_V9 || TARGET_LEON3"
 
12237
   "")
 
12238
 
 
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")]
 
12243
          UNSPECV_CAS))]
 
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")])
 
12248
 
 
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"
 
12255
 {
 
12256
   enum memmodel model = (enum memmodel) INTVAL (operands[3]);
 
12257
 
 
12258
@@ -236,7 +237,7 @@
 
12259
                            UNSPECV_SWAP))
 
12260
    (set (match_dup 1)
 
12261
        (match_operand:SI 2 "register_operand" "0"))]
 
12262
-  "TARGET_V8 || TARGET_V9"
 
12263
+  "(TARGET_V8 || TARGET_V9) && !sparc_fix_ut699"
 
12264
   "swap\t%1, %0"
 
12265
   [(set_attr "type" "multi")])
 
12266
 
 
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" "")]
 
12271
-  ""
 
12272
+  "!sparc_fix_ut699"
 
12273
 {
 
12274
   enum memmodel model = (enum memmodel) INTVAL (operands[2]);
 
12275
   rtx ret;
 
12276
@@ -268,6 +269,6 @@
 
12277
        (unspec_volatile:QI [(match_operand:QI 1 "memory_operand" "+m")]
 
12278
                            UNSPECV_LDSTUB))
 
12279
    (set (match_dup 1) (const_int -1))]
 
12280
-  ""
 
12281
+  "!sparc_fix_ut699"
 
12282
   "ldstub\t%1, %0"
 
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)
 
12288
@@ -30,6 +30,7 @@
 
12289
   PROCESSOR_SUPERSPARC,
 
12290
   PROCESSOR_HYPERSPARC,
 
12291
   PROCESSOR_LEON,
 
12292
+  PROCESSOR_LEON3,
 
12293
   PROCESSOR_SPARCLITE,
 
12294
   PROCESSOR_F930,
 
12295
   PROCESSOR_F934,
 
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)
 
12300
@@ -52,6 +52,7 @@
 
12301
 #include "params.h"
 
12302
 #include "df.h"
 
12303
 #include "opts.h"
 
12304
+#include "tree-pass.h"
 
12305
 
 
12306
 /* Processor costs */
 
12307
 
 
12308
@@ -226,6 +227,30 @@
 
12309
 };
 
12310
 
 
12311
 static const
 
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 */
 
12333
+};
 
12334
+
 
12335
+static const
 
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
 
12350
 
 
12351
-#undef TARGET_MACHINE_DEPENDENT_REORG
 
12352
-#define TARGET_MACHINE_DEPENDENT_REORG sparc_reorg
 
12353
-
 
12354
 #undef TARGET_RTX_COSTS
 
12355
 #define TARGET_RTX_COSTS sparc_rtx_costs
 
12356
 #undef TARGET_ADDRESS_COST
 
12357
@@ -804,6 +825,206 @@
 
12358
 
 
12359
 struct gcc_target targetm = TARGET_INITIALIZER;
 
12360
 
 
12361
+/* Return the memory reference contained in X if any, zero otherwise.  */
 
12362
+
 
12363
+static rtx
 
12364
+mem_ref (rtx x)
 
12365
+{
 
12366
+  if (GET_CODE (x) == SIGN_EXTEND || GET_CODE (x) == ZERO_EXTEND)
 
12367
+    x = XEXP (x, 0);
 
12368
+
 
12369
+  if (MEM_P (x))
 
12370
+    return x;
 
12371
+
 
12372
+  return NULL_RTX;
 
12373
+}
 
12374
+
 
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.  */
 
12380
+
 
12381
+static bool
 
12382
+sparc_gate_work_around_errata (void)
 
12383
+{
 
12384
+  /* The only errata we handle are those of the AT697F and UT699.  */
 
12385
+  return sparc_fix_at697f != 0 || sparc_fix_ut699 != 0;
 
12386
+}
 
12387
+
 
12388
+static unsigned int
 
12389
+sparc_do_work_around_errata (void)
 
12390
+{
 
12391
+  rtx insn, next;
 
12392
+
 
12393
+  /* Force all instructions to be split into their final form.  */
 
12394
+  split_all_insns_noflow ();
 
12395
+
 
12396
+  /* Now look for specific patterns in the insn stream.  */
 
12397
+  for (insn = get_insns (); insn; insn = next)
 
12398
+    {
 
12399
+      bool insert_nop = false;
 
12400
+      rtx set;
 
12401
+
 
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);
 
12405
+
 
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)
 
12415
+       {
 
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;
 
12419
+         int code;
 
12420
+
 
12421
+         /* If the insn has a delay slot, then it cannot be problematic.  */
 
12422
+         next = next_active_insn (insn);
 
12423
+         if (!next)
 
12424
+           break;
 
12425
+         if (NONJUMP_INSN_P (next) && GET_CODE (PATTERN (next)) == SEQUENCE)
 
12426
+           continue;
 
12427
+
 
12428
+         extract_insn (next);
 
12429
+         code = INSN_CODE (next);
 
12430
+
 
12431
+         switch (code)
 
12432
+           {
 
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)
 
12441
+               {
 
12442
+                 /* Case [1-4]:
 
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;
 
12448
+               }
 
12449
+             else
 
12450
+               {
 
12451
+                 /* Case 5:
 
12452
+                            ld [address], %fx+1
 
12453
+                            FPOPd %fx, %fx, %fx  */
 
12454
+                 if (src1 == x
 
12455
+                     && dest == src1
 
12456
+                     && (code == CODE_FOR_adddf3 || code == CODE_FOR_muldf3))
 
12457
+                   insert_nop = true;
 
12458
+               }
 
12459
+             break;
 
12460
+
 
12461
+           case CODE_FOR_sqrtdf2:
 
12462
+             dest = REGNO (recog_data.operand[0]);
 
12463
+             src1 = REGNO (recog_data.operand[1]);
 
12464
+             /* Case 6:
 
12465
+                        ld [address], %fx+1
 
12466
+                        fsqrtd %fx, %fx  */
 
12467
+             if (src1 == x && dest == src1)
 
12468
+               insert_nop = true;
 
12469
+             break;
 
12470
+
 
12471
+           default:
 
12472
+             break;
 
12473
+           }
 
12474
+       }
 
12475
+
 
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)
 
12484
+       {
 
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);
 
12488
+
 
12489
+         /* If the insn has a delay slot, then it cannot be problematic.  */
 
12490
+         next = next_active_insn (insn);
 
12491
+         if (!next)
 
12492
+           break;
 
12493
+         if (NONJUMP_INSN_P (next) && GET_CODE (PATTERN (next)) == SEQUENCE)
 
12494
+           continue;
 
12495
+
 
12496
+         /* Look for a second memory access to/from an integer register.  */
 
12497
+         if ((set = single_set (next)) != NULL_RTX)
 
12498
+           {
 
12499
+             rtx src = SET_SRC (set);
 
12500
+             rtx dest = SET_DEST (set);
 
12501
+             rtx mem;
 
12502
+
 
12503
+             /* LDD is affected.  */
 
12504
+             if ((mem = mem_ref (src)) != NULL_RTX
 
12505
+                 && REG_P (dest)
 
12506
+                 && REGNO (dest) < 32
 
12507
+                 && !reg_mentioned_p (x, XEXP (mem, 0)))
 
12508
+               insert_nop = true;
 
12509
+
 
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
 
12514
+                          || (REG_P (src)
 
12515
+                              && REGNO (src) < 32
 
12516
+                              && REGNO (src) != REGNO (x)))
 
12517
+                      && !reg_mentioned_p (x, XEXP (mem, 0)))
 
12518
+               insert_nop = true;
 
12519
+           }
 
12520
+       }
 
12521
+
 
12522
+      else
 
12523
+       next = NEXT_INSN (insn);
 
12524
+
 
12525
+      if (insert_nop)
 
12526
+       emit_insn_before (gen_nop (), next);
 
12527
+    }
 
12528
+
 
12529
+  return 0;
 
12530
+}
 
12531
+
 
12532
+struct rtl_opt_pass pass_work_around_errata =
 
12533
+{
 
12534
+ {
 
12535
+  RTL_PASS,
 
12536
+  "errata",                            /* name */
 
12537
+  OPTGROUP_NONE,                       /* optinfo_flags */
 
12538
+  sparc_gate_work_around_errata,       /* gate */
 
12539
+  sparc_do_work_around_errata,         /* execute */
 
12540
+  NULL,                                        /* sub */
 
12541
+  NULL,                                        /* next */
 
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 */
 
12549
+ }
 
12550
+};
 
12551
+
 
12552
+struct register_pass_info insert_pass_work_around_errata =
 
12553
+{
 
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 */
 
12558
+};
 
12559
+
 
12560
+/* Helpers for TARGET_DEBUG_OPTIONS.  */
 
12561
 static void
 
12562
 dump_target_flag_bits (const int flags)
 
12563
 {
 
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 @@
 
12573
   };
 
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;
 
12580
     const int disable;
 
12581
@@ -914,8 +1136,8 @@
 
12582
     /* TI TMS390Z55 supersparc */
 
12583
     { "supersparc",    MASK_ISA, MASK_V8 },
 
12584
     { "hypersparc",    MASK_ISA, MASK_V8|MASK_FPU },
 
12585
-    /* LEON */
 
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
 
12594
                   & ~MASK_CBCOND
 
12595
 #endif
 
12596
+#ifndef HAVE_AS_LEON
 
12597
+                  & ~(MASK_LEON | MASK_LEON3)
 
12598
+#endif
 
12599
                   );
 
12600
 
 
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;
 
12605
       break;
 
12606
+    case PROCESSOR_LEON3:
 
12607
+      sparc_costs = &leon3_costs;
 
12608
+      break;
 
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;
 
12622
       else
 
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;
 
12627
+
 
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
 
12632
+     do it here.  */
 
12633
+  register_pass (&insert_pass_work_around_errata);
 
12634
 }
 
12635
 
 
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);
 
12641
-
 
12642
+             else
 
12643
+               neg2_ovf = false;
 
12644
              result = result.add_with_sign (tmp, false, &add2_ovf);
 
12645
              overflow |= neg1_ovf | neg2_ovf | add1_ovf | add2_ovf;
 
12646
            }
 
12647
@@ -10897,107 +11137,6 @@
 
12648
   return (vcall_offset >= -32768 || ! fixed_regs[5]);
 
12649
 }
 
12650
 
 
12651
-/* We use the machine specific reorg pass to enable workarounds for errata.  */
 
12652
-
 
12653
-static void
 
12654
-sparc_reorg (void)
 
12655
-{
 
12656
-  rtx insn, next;
 
12657
-
 
12658
-  /* The only erratum we handle for now is that of the AT697F processor.  */
 
12659
-  if (!sparc_fix_at697f)
 
12660
-    return;
 
12661
-
 
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)
 
12665
-    {
 
12666
-      cleanup_barriers ();
 
12667
-      dbr_schedule (get_insns ());
 
12668
-    }
 
12669
-
 
12670
-  /* Now look for specific patterns in the insn stream.  */
 
12671
-  for (insn = get_insns (); insn; insn = next)
 
12672
-    {
 
12673
-      bool insert_nop = false;
 
12674
-      rtx set;
 
12675
-
 
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)
 
12684
-       {
 
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;
 
12688
-         int code;
 
12689
-
 
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)
 
12693
-           code = -1;
 
12694
-         else
 
12695
-           {
 
12696
-             extract_insn (next);
 
12697
-             code = INSN_CODE (next);
 
12698
-           }
 
12699
-
 
12700
-         switch (code)
 
12701
-           {
 
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)
 
12710
-               {
 
12711
-                 /* Case [1-4]:
 
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;
 
12717
-               }
 
12718
-             else
 
12719
-               {
 
12720
-                 /* Case 5:
 
12721
-                            ld [address], %fx+1
 
12722
-                            FPOPd %fx, %fx, %fx  */
 
12723
-                 if (src1 == x
 
12724
-                     && dest == src1
 
12725
-                     && (code == CODE_FOR_adddf3 || code == CODE_FOR_muldf3))
 
12726
-                   insert_nop = true;
 
12727
-               }
 
12728
-             break;
 
12729
-
 
12730
-           case CODE_FOR_sqrtdf2:
 
12731
-             dest = REGNO (recog_data.operand[0]);
 
12732
-             src1 = REGNO (recog_data.operand[1]);
 
12733
-             /* Case 6:
 
12734
-                        ld [address], %fx+1
 
12735
-                        fsqrtd %fx, %fx  */
 
12736
-             if (src1 == x && dest == src1)
 
12737
-               insert_nop = true;
 
12738
-             break;
 
12739
-
 
12740
-           default:
 
12741
-             break;
 
12742
-           }
 
12743
-       }
 
12744
-      else
 
12745
-       next = NEXT_INSN (insn);
 
12746
-
 
12747
-      if (insert_nop)
 
12748
-       emit_insn_after (gen_nop (), insn);
 
12749
-    }
 
12750
-}
 
12751
-
 
12752
 /* How to allocate a 'struct machine_function'.  */
 
12753
 
 
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/>.
 
12762
 
 
12763
+;; Leon is a single-issue processor.
 
12764
 
 
12765
 (define_automaton "leon")
 
12766
 
 
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")
 
12771
 
 
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"))
 
12776
   "leon_memory")
 
12777
 
 
12778
-(define_insn_reservation "leon_store" 1
 
12779
-  (and (eq_attr "cpu" "leon")
 
12780
-    (eq_attr "type" "store,fpstore"))
 
12781
-  "leon_memory+write_buf")
 
12782
-  
 
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"))
 
12790
+  "leon_memory*2")
 
12791
 
 
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"))
 
12798
+  "leon_memory*2")
 
12799
 
 
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
 
12805
 
 
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")
 
12811
 
 
12812
+(define_cpu_unit "grfpu_alu" "grfpu")
 
12813
+(define_cpu_unit "grfpu_ds" "grfpu")
 
12814
+
 
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")
 
12818
+
 
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")
 
12822
+
 
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")
 
12826
+
 
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")
 
12830
+
 
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
 
12873
 
 
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 ""
 
12878
 #endif
 
12879
 
 
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
 
12886
 #endif
 
12887
 
 
12888
 #endif
 
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 @@
 
12898
 %{mcpu=v8:-Av8} \
 
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} \
 
12905
 %{mcpu=v9:-Av9} \
 
12906
 %{mcpu=ultrasparc:%{!mv8plus:-Av9a}} \
 
12907
@@ -1754,6 +1758,12 @@
 
12908
 #define AS_NIAGARA4_FLAG "-Av9" AS_NIAGARA3_FLAG
 
12909
 #endif
 
12910
 
 
12911
+#ifdef HAVE_AS_LEON
 
12912
+#define AS_LEON_FLAG "-Aleon"
 
12913
+#else
 
12914
+#define AS_LEON_FLAG "-Av8"
 
12915
+#endif
 
12916
+
 
12917
 /* We use gcc _mcount for profiling.  */
 
12918
 #define NO_PROFILE_COUNTERS 0
 
12919
 
 
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]);
 
12926
 
 
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,
 
12930
                                                   GEN_INT (4)));
 
12931
 })
 
12932
 
 
12933
@@ -1587,7 +1587,7 @@
 
12934
   split_double_mode (DImode, &operands[1], 1, &operands[2], &operands[3]);
 
12935
 
 
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,
 
12939
                                                   GEN_INT (4)));
 
12940
 })
 
12941
 
 
12942
@@ -6589,7 +6589,7 @@
 
12943
    (set_attr "use_carry" "1")
 
12944
    (set_attr "mode" "<MODE>")])
 
12945
 
 
12946
-;; Overflow setting add and subtract instructions
 
12947
+;; Overflow setting add instructions
 
12948
 
 
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>")])
 
12954
 
 
12955
-(define_insn "*sub<mode>3_cconly_overflow"
 
12956
+(define_insn "*add<mode>3_cc_overflow"
 
12957
   [(set (reg:CCC FLAGS_REG)
 
12958
        (compare:CCC
 
12959
-         (minus:SWI
 
12960
-           (match_operand:SWI 0 "nonimmediate_operand" "<r>m,<r>")
 
12961
-           (match_operand:SWI 1 "<general_operand>" "<r><i>,<r>m"))
 
12962
-         (match_dup 0)))]
 
12963
-  ""
 
12964
-  "cmp{<imodesuffix>}\t{%1, %0|%0, %1}"
 
12965
-  [(set_attr "type" "icmp")
 
12966
-   (set_attr "mode" "<MODE>")])
 
12967
-
 
12968
-(define_insn "*<plusminus_insn><mode>3_cc_overflow"
 
12969
-  [(set (reg:CCC FLAGS_REG)
 
12970
-       (compare:CCC
 
12971
-           (plusminus:SWI
 
12972
-               (match_operand:SWI 1 "nonimmediate_operand" "<comm>0,0")
 
12973
+           (plus:SWI
 
12974
+               (match_operand:SWI 1 "nonimmediate_operand" "%0,0")
 
12975
                (match_operand:SWI 2 "<general_operand>" "<r><i>,<r>m"))
 
12976
            (match_dup 1)))
 
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>")])
 
12986
 
 
12987
-(define_insn "*<plusminus_insn>si3_zext_cc_overflow"
 
12988
+(define_insn "*addsi3_zext_cc_overflow"
 
12989
   [(set (reg:CCC FLAGS_REG)
 
12990
        (compare:CCC
 
12991
-         (plusminus:SI
 
12992
-           (match_operand:SI 1 "nonimmediate_operand" "<comm>0")
 
12993
+         (plus:SI
 
12994
+           (match_operand:SI 1 "nonimmediate_operand" "%0")
 
12995
            (match_operand:SI 2 "x86_64_general_operand" "rme"))
 
12996
          (match_dup 1)))
 
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")])
 
13006
 
 
13007
@@ -8012,7 +8000,18 @@
 
13008
         (const_int 0)))
 
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)
 
13012
+  "TARGET_64BIT
 
13013
+   && ix86_match_ccmode
 
13014
+       (insn,
 
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)"
 
13025
   "@
 
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/>.
 
13033
 #
 
13034
 
 
13035
-MULTILIB_OPTIONS = mtune=i486/mtune=pentium/mtune=pentiumpro \
 
13036
-msoft-float
 
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>")])
 
13053
 
 
13054
-;; scalar insns
 
13055
 (define_expand "xop_vmfrcz<mode>2"
 
13056
   [(set (match_operand:VF_128 0 "register_operand")
 
13057
        (vec_merge:VF_128
 
13058
@@ -10223,11 +10222,9 @@
 
13059
          (match_dup 3)
 
13060
          (const_int 1)))]
 
13061
   "TARGET_XOP"
 
13062
-{
 
13063
-  operands[3] = CONST0_RTX (<MODE>mode);
 
13064
-})
 
13065
+  "operands[3] = CONST0_RTX (<MODE>mode);")
 
13066
 
 
13067
-(define_insn "*xop_vmfrcz_<mode>"
 
13068
+(define_insn "*xop_vmfrcz<mode>2"
 
13069
   [(set (match_operand:VF_128 0 "register_operand" "=x")
 
13070
        (vec_merge:VF_128
 
13071
          (unspec:VF_128
 
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)
 
13079
 {
 
13080
-  return (__m128) __builtin_ia32_vfrczss ((__v4sf)__A, (__v4sf)__B);
 
13081
+  return (__m128) __builtin_ia32_movss ((__v4sf)__A,
 
13082
+                                       (__v4sf)
 
13083
+                                       __builtin_ia32_vfrczss ((__v4sf)__B));
 
13084
 }
 
13085
 
 
13086
 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
13087
 _mm_frcz_sd (__m128d __A, __m128d __B)
 
13088
 {
 
13089
-  return (__m128d) __builtin_ia32_vfrczsd ((__v2df)__A, (__v2df)__B);
 
13090
+  return (__m128d) __builtin_ia32_movsd ((__v2df)__A,
 
13091
+                                        (__v2df)
 
13092
+                                        __builtin_ia32_vfrczsd ((__v2df)__B));
 
13093
 }
 
13094
 
 
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,
 
13102
 
 
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,
 
13106
 
 
13107
   /* X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL */
 
13108
-  m_COREI7 | m_BDVER,
 
13109
+  m_COREI7 | m_HASWELL| m_BDVER,
 
13110
 
 
13111
   /* X86_TUNE_SSE_PACKED_SINGLE_INSN_OPTIMAL */
 
13112
   m_BDVER ,
 
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 
 
13121
        | PTA_XSAVEOPT},
 
13122
@@ -7235,9 +7235,15 @@
 
13123
   switch (regno)
 
13124
     {
 
13125
     case AX_REG:
 
13126
+    case DX_REG:
 
13127
       return true;
 
13128
+    case DI_REG:
 
13129
+    case SI_REG:
 
13130
+      return TARGET_64BIT && ix86_abi != MS_ABI;
 
13131
 
 
13132
-    case FIRST_FLOAT_REG:
 
13133
+      /* Complex values are returned in %st(0)/%st(1) pair.  */
 
13134
+    case ST0_REG:
 
13135
+    case ST1_REG:
 
13136
       /* TODO: The function should depend on current function ABI but
 
13137
        builtins.c would need updating then. Therefore we use the
 
13138
        default ABI.  */
 
13139
@@ -7245,10 +7251,12 @@
 
13140
        return false;
 
13141
       return TARGET_FLOAT_RETURNS_IN_80387;
 
13142
 
 
13143
-    case FIRST_SSE_REG:
 
13144
+      /* Complex values are returned in %xmm0/%xmm1 pair.  */
 
13145
+    case XMM0_REG:
 
13146
+    case XMM1_REG:
 
13147
       return TARGET_SSE;
 
13148
 
 
13149
-    case FIRST_MMX_REG:
 
13150
+    case MM0_REG:
 
13151
       if (TARGET_MACHO || TARGET_64BIT)
 
13152
        return false;
 
13153
       return TARGET_MMX;
 
13154
@@ -11561,30 +11569,6 @@
 
13155
     }
 
13156
 }
 
13157
 
 
13158
-/* Determine if op is suitable SUBREG RTX for address.  */
 
13159
-
 
13160
-static bool
 
13161
-ix86_address_subreg_operand (rtx op)
 
13162
-{
 
13163
-  enum machine_mode mode;
 
13164
-
 
13165
-  if (!REG_P (op))
 
13166
-    return false;
 
13167
-
 
13168
-  mode = GET_MODE (op);
 
13169
-
 
13170
-  if (GET_MODE_CLASS (mode) != MODE_INT)
 
13171
-    return false;
 
13172
-
 
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)
 
13176
-    return false;
 
13177
-
 
13178
-  /* Allow only SUBREGs of non-eliminable hard registers.  */
 
13179
-  return register_no_elim_operand (op, mode);
 
13180
-}
 
13181
-
 
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 @@
 
13186
     base = addr;
 
13187
   else if (GET_CODE (addr) == SUBREG)
 
13188
     {
 
13189
-      if (ix86_address_subreg_operand (SUBREG_REG (addr)))
 
13190
+      if (REG_P (SUBREG_REG (addr)))
 
13191
        base = addr;
 
13192
       else
 
13193
        return 0;
 
13194
@@ -11705,7 +11689,7 @@
 
13195
              break;
 
13196
 
 
13197
            case SUBREG:
 
13198
-             if (!ix86_address_subreg_operand (SUBREG_REG (op)))
 
13199
+             if (!REG_P (SUBREG_REG (op)))
 
13200
                return 0;
 
13201
              /* FALLTHRU */
 
13202
 
 
13203
@@ -11750,19 +11734,6 @@
 
13204
       scale = 1 << scale;
 
13205
       retval = -1;
 
13206
     }
 
13207
-  else if (CONST_INT_P (addr))
 
13208
-    {
 
13209
-      if (!x86_64_immediate_operand (addr, VOIDmode))
 
13210
-       return 0;
 
13211
-
 
13212
-      /* Constant addresses are sign extended to 64bit, we have to
 
13213
-        prevent addresses from 0x80000000 to 0xffffffff in x32 mode.  */
 
13214
-      if (TARGET_X32
 
13215
-         && val_signbit_known_set_p (SImode, INTVAL (addr)))
 
13216
-       return 0;
 
13217
-
 
13218
-      disp = addr;
 
13219
-    }
 
13220
   else
 
13221
     disp = addr;                       /* displacement */
 
13222
 
 
13223
@@ -11771,18 +11742,12 @@
 
13224
       if (REG_P (index))
 
13225
        ;
 
13226
       else if (GET_CODE (index) == SUBREG
 
13227
-              && ix86_address_subreg_operand (SUBREG_REG (index)))
 
13228
+              && REG_P (SUBREG_REG (index)))
 
13229
        ;
 
13230
       else
 
13231
        return 0;
 
13232
     }
 
13233
 
 
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)))
 
13238
-    return 0;
 
13239
-
 
13240
   /* Extract the integral value of scale.  */
 
13241
   if (scale_rtx)
 
13242
     {
 
13243
@@ -12258,6 +12223,45 @@
 
13244
   return false;
 
13245
 }
 
13246
 
 
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.  */
 
13250
+
 
13251
+static rtx
 
13252
+ix86_validate_address_register (rtx op)
 
13253
+{
 
13254
+  enum machine_mode mode = GET_MODE (op);
 
13255
+
 
13256
+  /* Only SImode or DImode registers can form the address.  */
 
13257
+  if (mode != SImode && mode != DImode)
 
13258
+    return NULL_RTX;
 
13259
+
 
13260
+  if (REG_P (op))
 
13261
+    return op;
 
13262
+  else if (GET_CODE (op) == SUBREG)
 
13263
+    {
 
13264
+      rtx reg = SUBREG_REG (op);
 
13265
+
 
13266
+      if (!REG_P (reg))
 
13267
+       return NULL_RTX;
 
13268
+
 
13269
+      mode = GET_MODE (reg);
 
13270
+
 
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)
 
13275
+       return NULL_RTX;
 
13276
+
 
13277
+      /* Allow only SUBREGs of non-eliminable hard registers.  */
 
13278
+      if (register_no_elim_operand (reg, mode))
 
13279
+       return reg;
 
13280
+    }
 
13281
+
 
13282
+  /* Op is not a register.  */
 
13283
+  return NULL_RTX;
 
13284
+}
 
13285
+
 
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;
 
13294
 
 
13295
   if (ix86_decompose_address (addr, &parts) <= 0)
 
13296
     /* Decomposition failed.  */
 
13297
@@ -12282,23 +12287,16 @@
 
13298
   index = parts.index;
 
13299
   disp = parts.disp;
 
13300
   scale = parts.scale;
 
13301
+  seg = parts.seg;
 
13302
 
 
13303
   /* Validate base register.  */
 
13304
   if (base)
 
13305
     {
 
13306
-      rtx reg;
 
13307
+      rtx reg = ix86_validate_address_register (base);
 
13308
 
 
13309
-      if (REG_P (base))
 
13310
-       reg = base;
 
13311
-      else if (GET_CODE (base) == SUBREG && REG_P (SUBREG_REG (base)))
 
13312
-       reg = SUBREG_REG (base);
 
13313
-      else
 
13314
-       /* Base is not a register.  */
 
13315
+      if (reg == NULL_RTX)
 
13316
        return false;
 
13317
 
 
13318
-      if (GET_MODE (base) != SImode && GET_MODE (base) != DImode)
 
13319
-       return false;
 
13320
-
 
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.  */
 
13326
   if (index)
 
13327
     {
 
13328
-      rtx reg;
 
13329
+      rtx reg = ix86_validate_address_register (index);
 
13330
 
 
13331
-      if (REG_P (index))
 
13332
-       reg = index;
 
13333
-      else if (GET_CODE (index) == SUBREG && REG_P (SUBREG_REG (index)))
 
13334
-       reg = SUBREG_REG (index);
 
13335
-      else
 
13336
-       /* Index is not a register.  */
 
13337
+      if (reg == NULL_RTX)
 
13338
        return false;
 
13339
 
 
13340
-      if (GET_MODE (index) != SImode && GET_MODE (index) != DImode)
 
13341
-       return false;
 
13342
-
 
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))
 
13348
     return false;
 
13349
 
 
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)))
 
13354
+    return false;
 
13355
+
 
13356
   /* Validate scale factor.  */
 
13357
   if (scale != 1)
 
13358
     {
 
13359
@@ -12453,6 +12449,12 @@
 
13360
               && !x86_64_immediate_operand (disp, VOIDmode))
 
13361
        /* Displacement is out of range.  */
 
13362
        return false;
 
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)))
 
13368
+       return false;
 
13369
     }
 
13370
 
 
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)
 
13377
-       suffix = "b";
 
13378
       else
 
13379
        gcc_unreachable ();
 
13380
       break;
 
13381
@@ -13840,8 +13840,12 @@
 
13382
        }
 
13383
       break;
 
13384
     case LTU:
 
13385
-      gcc_assert (mode == CCmode || mode == CCCmode);
 
13386
-      suffix = "b";
 
13387
+      if (mode == CCmode)
 
13388
+       suffix = "b";
 
13389
+      else if (mode == CCCmode)
 
13390
+       suffix = "c";
 
13391
+      else
 
13392
+       gcc_unreachable ();
 
13393
       break;
 
13394
     case GE:
 
13395
       switch (mode)
 
13396
@@ -13861,20 +13865,20 @@
 
13397
        }
 
13398
       break;
 
13399
     case GEU:
 
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)
 
13406
+       suffix = "nc";
 
13407
+      else
 
13408
+       gcc_unreachable ();
 
13409
       break;
 
13410
     case LE:
 
13411
       gcc_assert (mode == CCmode || mode == CCGCmode || mode == CCNOmode);
 
13412
       suffix = "le";
 
13413
       break;
 
13414
     case LEU:
 
13415
-      /* ??? As above.  */
 
13416
       if (mode == CCmode)
 
13417
        suffix = "be";
 
13418
-      else if (mode == CCCmode)
 
13419
-       suffix = fp ? "nb" : "ae";
 
13420
       else
 
13421
        gcc_unreachable ();
 
13422
       break;
 
13423
@@ -15340,7 +15344,7 @@
 
13424
              rtx arg = XEXP (XEXP (link, 0), 0);
 
13425
 
 
13426
              if (ix86_check_avx256_register (&arg, NULL))
 
13427
-               return AVX_U128_ANY;
 
13428
+               return AVX_U128_DIRTY;
 
13429
            }
 
13430
        }
 
13431
 
 
13432
@@ -15460,8 +15464,8 @@
 
13433
     {
 
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;
 
13438
+
 
13439
+      return avx_reg256_found ? AVX_U128_DIRTY : AVX_U128_CLEAN;
 
13440
     }
 
13441
 
 
13442
   /* Otherwise, return current mode.  Remember that if insn
 
13443
@@ -18486,12 +18490,7 @@
 
13444
        return CCmode;
 
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)))
 
13450
-       return CCCmode;
 
13451
-      else
 
13452
-       return CCmode;
 
13453
+      return CCmode;
 
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 @@
 
13458
   return SImode;
 
13459
 }
 
13460
 
 
13461
+/* Copy the address to a Pmode register.  This is used for x32 to
 
13462
+   truncate DImode TLS address to a SImode register. */
 
13463
+
 
13464
+static rtx
 
13465
+ix86_copy_addr_to_reg (rtx addr)
 
13466
+{
 
13467
+  if (GET_MODE (addr) == Pmode)
 
13468
+    return copy_addr_to_reg (addr);
 
13469
+  else
 
13470
+    {
 
13471
+      gcc_assert (GET_MODE (addr) == DImode && Pmode == SImode);
 
13472
+      return gen_rtx_SUBREG (SImode, copy_to_mode_reg (DImode, addr), 0);
 
13473
+    }
 
13474
+}
 
13475
+
 
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);
 
13481
   if (!count)
 
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));
 
13487
   switch (alg)
 
13488
     {
 
13489
     case libcall:
 
13490
@@ -23119,7 +23133,7 @@
 
13491
   gcc_assert (alg != no_stringop);
 
13492
   if (!count)
 
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));
 
13496
   switch (alg)
 
13497
     {
 
13498
     case libcall:
 
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 },
 
13502
 
 
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)
 
13514
@@ -21,7 +21,7 @@
 
13515
 ;; Used for various architecture options.
 
13516
 Mask(SH_E)
 
13517
 
 
13518
-;; Set if the default precision of th FPU is single.
 
13519
+;; Set if the default precision of the FPU is single.
 
13520
 Mask(FPU_SINGLE)
 
13521
 
 
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"))
 
13529
                    (const_int 0)))
 
13530
    (clobber (match_scratch:SI 3 "=r,r"))]
 
13531
-  ""
 
13532
+  "TARGET_32BIT"
 
13533
   "@
 
13534
    mullw. %3,%1,%2
 
13535
    #"
 
13536
@@ -2425,7 +2425,7 @@
 
13537
                             (match_operand:SI 2 "gpc_reg_operand" ""))
 
13538
                    (const_int 0)))
 
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)))
 
13544
    (set (match_dup 0)
 
13545
@@ -2440,7 +2440,7 @@
 
13546
                    (const_int 0)))
 
13547
    (set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
 
13548
        (mult:SI (match_dup 1) (match_dup 2)))]
 
13549
-  ""
 
13550
+  "TARGET_32BIT"
 
13551
   "@
 
13552
    mullw. %0,%1,%2
 
13553
    #"
 
13554
@@ -2454,7 +2454,7 @@
 
13555
                    (const_int 0)))
 
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)))
 
13562
    (set (match_dup 3)
 
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)
 
13569
     {
 
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))
 
13574
        {
 
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;
 
13579
              start_sequence ();
 
13580
 
 
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));
 
13586
+             else
 
13587
+               arm_load_pic_register (0UL);
 
13588
 
 
13589
              seq = get_insns ();
 
13590
              end_sequence ();
 
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));
 
13594
            }
 
13595
+         else if (arm_pic_register != INVALID_REGNUM
 
13596
+                  && arm_pic_register > LAST_LO_REGNUM
 
13597
+                  && REGNO (pic_reg) <= LAST_LO_REGNUM)
 
13598
+           {
 
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));
 
13602
+           }
 
13603
          else
 
13604
            emit_insn (gen_pic_load_addr_unified (pic_reg, pic_rtx, labelno));
 
13605
        }
 
13606
@@ -23555,6 +23569,7 @@
 
13607
   num_regs = bit_count (saved_regs_mask);
 
13608
   if ((offsets->outgoing_args != (1 + num_regs)) || cfun->calls_alloca)
 
13609
     {
 
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>")]
 
13624
 )
 
13625
 
 
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")]
 
13633
 )
 
13634
 
 
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")]
 
13643
 )
 
13644
 
 
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")])
 
13653
 
 
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")])
 
13657
+
 
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 @@
 
13666
 fi
 
13667
 
 
13668
 
 
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
 
13671
 do :
 
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 \
 
13692
        runtime/go-cgo.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 \
 
13699
-       syslist.go
 
13700
+       go/go/build/syslist.go
 
13701
 
 
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
 
13715
 
 
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
 
13722
+
 
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 @@
 
13727
        @$(CHECK)
 
13728
 .PHONY: go/build/check
 
13729
 
 
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
 
13737
-       $(STAMP) $@
 
13738
-
 
13739
 @go_include@ go/doc.lo.dep
 
13740
 go/doc.lo.dep: $(go_go_doc_files)
 
13741
        $(BUILDDEPS)
 
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)
 
13746
@@ -30,6 +30,8 @@
 
13747
 
 
13748
       if (v < 0 || v > 0x10ffff)
 
13749
        v = 0xfffd;
 
13750
+      else if (0xd800 <= v && v <= 0xdfff)
 
13751
+       v = 0xfffd;
 
13752
 
 
13753
       if (v <= 0x7f)
 
13754
        slen += 1;
 
13755
@@ -56,6 +58,8 @@
 
13756
         character.  */
 
13757
       if (v < 0 || v > 0x10ffff)
 
13758
        v = 0xfffd;
 
13759
+      else if (0xd800 <= v && v <= 0xdfff)
 
13760
+       v = 0xfffd;
 
13761
 
 
13762
       if (v <= 0x7f)
 
13763
        *s++ = v;
 
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)
 
13768
@@ -43,6 +43,17 @@
 
13769
 }
 
13770
 #endif
 
13771
 
 
13772
+#ifndef HAVE_DUP3
 
13773
+int
 
13774
+dup3 (int oldfd __attribute__ ((unused)),
 
13775
+      int newfd __attribute__ ((unused)),
 
13776
+      int flags __attribute__ ((unused)))
 
13777
+{
 
13778
+  errno = ENOSYS;
 
13779
+  return -1;
 
13780
+}
 
13781
+#endif
 
13782
+
 
13783
 #ifndef HAVE_EPOLL_CREATE1
 
13784
 int
 
13785
 epoll_create1 (int flags __attribute__ ((unused)))
 
13786
@@ -112,6 +123,18 @@
 
13787
 }
 
13788
 #endif
 
13789
 
 
13790
+#ifndef HAVE_GETXATTR
 
13791
+ssize_t
 
13792
+getxattr (const char *path __attribute__ ((unused)),
 
13793
+         const char *name __attribute__ ((unused)),
 
13794
+         void *value __attribute__ ((unused)),
 
13795
+         size_t size __attribute__ ((unused)))
 
13796
+{
 
13797
+  errno = ENOSYS;
 
13798
+  return -1;
 
13799
+}
 
13800
+#endif
 
13801
+
 
13802
 #ifndef HAVE_INOTIFY_ADD_WATCH
 
13803
 int
 
13804
 inotify_add_watch (int fd __attribute__ ((unused)),
 
13805
@@ -151,6 +174,17 @@
 
13806
 }
 
13807
 #endif
 
13808
 
 
13809
+#ifndef HAVE_LISTXATTR
 
13810
+ssize_t
 
13811
+listxattr (const char *path __attribute__ ((unused)),
 
13812
+          char *list __attribute__ ((unused)),
 
13813
+          size_t size __attribute__ ((unused)))
 
13814
+{
 
13815
+  errno = ENOSYS;
 
13816
+  return -1;
 
13817
+}
 
13818
+#endif
 
13819
+
 
13820
 #ifndef HAVE_MKDIRAT
 
13821
 int
 
13822
 mkdirat (int dirfd __attribute__ ((unused)),
 
13823
@@ -196,6 +230,16 @@
 
13824
 }
 
13825
 #endif
 
13826
 
 
13827
+#ifndef HAVE_REMOVEXATTR
 
13828
+int
 
13829
+removexattr (const char *path __attribute__ ((unused)),
 
13830
+            const char *name __attribute__ ((unused)))
 
13831
+{
 
13832
+  errno = ENOSYS;
 
13833
+  return -1;
 
13834
+}
 
13835
+#endif
 
13836
+
 
13837
 #ifndef HAVE_RENAMEAT
 
13838
 int
 
13839
 renameat (int olddirfd __attribute__ ((unused)),
 
13840
@@ -208,6 +252,19 @@
 
13841
 }
 
13842
 #endif
 
13843
 
 
13844
+#ifndef HAVE_SETXATTR
 
13845
+int
 
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)))
 
13851
+{
 
13852
+  errno = ENOSYS;
 
13853
+  return -1;
 
13854
+}
 
13855
+#endif
 
13856
+
 
13857
 #ifndef HAVE_SPLICE
 
13858
 int
 
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 @@
 
13865
 {
 
13866
   G *gp;
 
13867
   M *mp;
 
13868
+#ifdef USING_SPLIT_STACK
 
13869
+  void *stack_context[10];
 
13870
+#endif
 
13871
 
 
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 @@
 
13875
   if (gp != NULL)
 
13876
     {
 
13877
 #ifdef USING_SPLIT_STACK
 
13878
-      __splitstack_getcontext (&gp->stack_context[0]);
 
13879
+      __splitstack_getcontext (&stack_context[0]);
 
13880
 #endif
 
13881
     }
 
13882
 
 
13883
@@ -432,7 +435,7 @@
 
13884
   if (gp != NULL)
 
13885
     {
 
13886
 #ifdef USING_SPLIT_STACK
 
13887
-      __splitstack_setcontext (&gp->stack_context[0]);
 
13888
+      __splitstack_setcontext (&stack_context[0]);
 
13889
 #endif
 
13890
     }
 
13891
 }
 
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)
 
13896
@@ -0,0 +1,46 @@
 
13897
+/* go-cdiv.c -- complex division routines
 
13898
+
 
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.  */
 
13902
+
 
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.  */
 
13911
+
 
13912
+__complex float
 
13913
+__go_complex64_div (__complex float a, __complex float b)
 
13914
+{
 
13915
+  if (__builtin_expect (b == 0+0i, 0))
 
13916
+    {
 
13917
+      if (!__builtin_isinff (__real__ a)
 
13918
+         && !__builtin_isinff (__imag__ a)
 
13919
+         && (__builtin_isnanf (__real__ a) || __builtin_isnanf (__imag__ a)))
 
13920
+       {
 
13921
+         /* Pass "1" to nanf to match math/bits.go.  */
 
13922
+         return __builtin_nanf("1") + __builtin_nanf("1")*1i;
 
13923
+       }
 
13924
+    }
 
13925
+  return a / b;
 
13926
+}
 
13927
+
 
13928
+__complex double
 
13929
+__go_complex128_div (__complex double a, __complex double b)
 
13930
+{
 
13931
+  if (__builtin_expect (b == 0+0i, 0))
 
13932
+    {
 
13933
+      if (!__builtin_isinf (__real__ a)
 
13934
+         && !__builtin_isinf (__imag__ a)
 
13935
+         && (__builtin_isnan (__real__ a) || __builtin_isnan (__imag__ a)))
 
13936
+       {
 
13937
+         /* Pass "1" to nan to match math/bits.go.  */
 
13938
+         return __builtin_nan("1") + __builtin_nan("1")*1i;
 
13939
+       }
 
13940
+    }
 
13941
+  return a / b;
 
13942
+}
 
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)
 
13947
@@ -34,7 +34,10 @@
 
13948
   std = (const struct __go_slice_type *) td;
 
13949
 
 
13950
   ilen = (intgo) len;
 
13951
-  if (ilen < 0 || (uintptr_t) ilen != len)
 
13952
+  if (ilen < 0
 
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");
 
13957
 
 
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}
 
13966
 
 
13967
+# The PRIO constants.
 
13968
+grep '^const _PRIO_' gen-sysinfo.go | \
 
13969
+  sed -e 's/^\(const \)_\(PRIO_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}
 
13970
+
 
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)
 
13978
@@ -39,6 +39,9 @@
 
13979
 /* Define to 1 if you have the `dl_iterate_phdr' function. */
 
13980
 #undef HAVE_DL_ITERATE_PHDR
 
13981
 
 
13982
+/* Define to 1 if you have the `dup3' function. */
 
13983
+#undef HAVE_DUP3
 
13984
+
 
13985
 /* Define to 1 if you have the `epoll_create1' function. */
 
13986
 #undef HAVE_EPOLL_CREATE1
 
13987
 
 
13988
@@ -66,6 +69,9 @@
 
13989
 /* Define if _Unwind_GetIPInfo is available. */
 
13990
 #undef HAVE_GETIPINFO
 
13991
 
 
13992
+/* Define to 1 if you have the `getxattr' function. */
 
13993
+#undef HAVE_GETXATTR
 
13994
+
 
13995
 /* Define to 1 if you have the `inotify_add_watch' function. */
 
13996
 #undef HAVE_INOTIFY_ADD_WATCH
 
13997
 
 
13998
@@ -111,6 +117,9 @@
 
13999
 /* Define to 1 if you have the <linux/rtnetlink.h> header file. */
 
14000
 #undef HAVE_LINUX_RTNETLINK_H
 
14001
 
 
14002
+/* Define to 1 if you have the `listxattr' function. */
 
14003
+#undef HAVE_LISTXATTR
 
14004
+
 
14005
 /* Define to 1 if the system has the type `loff_t'. */
 
14006
 #undef HAVE_LOFF_T
 
14007
 
 
14008
@@ -171,6 +180,9 @@
 
14009
 /* Define to 1 if you have the `pipe2' function. */
 
14010
 #undef HAVE_PIPE2
 
14011
 
 
14012
+/* Define to 1 if you have the `removexattr' function. */
 
14013
+#undef HAVE_REMOVEXATTR
 
14014
+
 
14015
 /* Define to 1 if you have the `renameat' function. */
 
14016
 #undef HAVE_RENAMEAT
 
14017
 
 
14018
@@ -180,6 +192,9 @@
 
14019
 /* Define to 1 if you have the `setenv' function. */
 
14020
 #undef HAVE_SETENV
 
14021
 
 
14022
+/* Define to 1 if you have the `setxattr' function. */
 
14023
+#undef HAVE_SETXATTR
 
14024
+
 
14025
 /* Define to 1 if you have the `sinl' function. */
 
14026
 #undef HAVE_SINL
 
14027
 
 
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)
 
14035
 
 
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)
 
14038
 AC_TYPE_OFF_T
 
14039
 AC_CHECK_TYPES([loff_t])
 
14040
 
 
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)
 
14045
@@ -0,0 +1,8 @@
 
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.
 
14049
+
 
14050
+package build
 
14051
+
 
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
 
14061
 
 
14062
+//sysnb        Dup3(oldfd int, newfd int, flags int) (err error)
 
14063
+//dup3(oldfd _C_int, newfd _C_int, flags _C_int) _C_int
 
14064
+
 
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
 
14067
 
 
14068
@@ -268,6 +271,9 @@
 
14069
        return origlen - len(buf), count, names
 
14070
 }
 
14071
 
 
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
 
14074
+
 
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
 
14077
 
 
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
 
14081
 
 
14082
+//sys  Listxattr(path string, dest []byte) (sz int, err error)
 
14083
+//listxattr(path *byte, list *byte, size Size_t) Ssize_t
 
14084
+
 
14085
 //sys  Mkdirat(dirfd int, path string, mode uint32) (err error)
 
14086
 //mkdirat(dirfd _C_int, path *byte, mode Mode_t) _C_int
 
14087
 
 
14088
@@ -305,6 +314,9 @@
 
14089
 //sys  PivotRoot(newroot string, putold string) (err error)
 
14090
 //pivot_root(newroot *byte, putold *byte) _C_int
 
14091
 
 
14092
+//sys  Removexattr(path string, attr string) (err error)
 
14093
+//removexattr(path *byte, name *byte) _C_int
 
14094
+
 
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
 
14097
 
 
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
 
14101
 
 
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
 
14104
+
 
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)
 
14112
@@ -25,7 +25,7 @@
 
14113
        Pad  [96]int8
 
14114
 }
 
14115
 
 
14116
-const SizeofSockaddrAny = 0x1c
 
14117
+const SizeofSockaddrAny = 0x6c
 
14118
 
 
14119
 type SockaddrInet4 struct {
 
14120
        Port int
 
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)
 
14127
 //getppid() Pid_t
 
14128
 
 
14129
+//sys Getpriority(which int, who int) (prio int, err error)
 
14130
+//getpriority(which _C_int, who _C_int) _C_int
 
14131
+
 
14132
 //sysnb        Getrlimit(resource int, rlim *Rlimit) (err error)
 
14133
 //getrlimit(resource _C_int, rlim *Rlimit) _C_int
 
14134
 
 
14135
@@ -307,6 +310,9 @@
 
14136
 //sysnb        Setpgid(pid int, pgid int) (err error)
 
14137
 //setpgid(pid Pid_t, pgid Pid_t) _C_int
 
14138
 
 
14139
+//sys Setpriority(which int, who int, prio int) (err error)
 
14140
+//setpriority(which _C_int, who _C_int, prio _C_int) _C_int
 
14141
+
 
14142
 //sysnb        Setreuid(ruid int, euid int) (err error)
 
14143
 //setreuid(ruid Uid_t, euid Uid_t) _C_int
 
14144
 
 
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 \
 
14154
        runtime/go-cgo.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 \
 
14161
-       syslist.go
 
14162
+       go/go/build/syslist.go
 
14163
 go_go_doc_files = \
 
14164
        go/go/doc/comment.go \
 
14165
        go/go/doc/doc.go \
 
14166
@@ -2712,15 +2713,6 @@
 
14167
        @$(CHECK)
 
14168
 .PHONY: go/build/check
 
14169
 
 
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
 
14177
-       $(STAMP) $@
 
14178
-
 
14179
 @go_include@ go/doc.lo.dep
 
14180
 go/doc.lo.dep: $(go_go_doc_files)
 
14181
        $(BUILDDEPS)
 
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)
 
14186
@@ -1,3 +1,7 @@
 
14187
+2013-11-01  Joseph Myers  <joseph@codesourcery.com>
 
14188
+
 
14189
+       * tr.po: Update.
 
14190
+
 
14191
 2013-10-16  Release Manager
 
14192
 
 
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)
 
14198
@@ -1,20 +1,22 @@
 
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.
 
14202
 #
 
14203
 # Nilgün Belma Bugüner <nilgun@buguner.name.tr>, 2001, ..., 2007.
 
14204
+# Volkan Gezer <vlkngzr@gmail.com>, 2013.
 
14205
 msgid ""
 
14206
 msgstr ""
 
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"
 
14217
 "Language: tr\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"
 
14224
 
 
14225
 #: charset.c:673
 
14226
@@ -121,10 +123,9 @@
 
14227
 msgstr "ISO standardı olmayan önceleme dizgesi, '\\%c'"
 
14228
 
 
14229
 #: charset.c:1320
 
14230
-#, fuzzy, c-format
 
14231
-#| msgid "unknown escape sequence '\\%c'"
 
14232
+#, c-format
 
14233
 msgid "unknown escape sequence: '\\%c'"
 
14234
-msgstr "bilinmeyen önceleme dizgesi '\\%c'"
 
14235
+msgstr "bilinmeyen kaçış dizgesi: '\\%c'"
 
14236
 
 
14237
 #: charset.c:1328
 
14238
 #, c-format
 
14239
@@ -163,10 +164,9 @@
 
14240
 msgstr "#%s bir GCC uzantısıdır"
 
14241
 
 
14242
 #: directives.c:362
 
14243
-#, fuzzy, c-format
 
14244
-#| msgid "#%s is a GCC extension"
 
14245
+#, c-format
 
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"
 
14249
 
 
14250
 #: directives.c:375
 
14251
 msgid "suggest not using #elif in traditional C"
 
14252
@@ -247,7 +247,7 @@
 
14253
 
 
14254
 #: directives.c:909
 
14255
 msgid "unexpected end of file after #line"
 
14256
-msgstr ""
 
14257
+msgstr "#line satırından sonra beklenmeyen dosya sonu"
 
14258
 
 
14259
 #: directives.c:912
 
14260
 #, c-format
 
14261
@@ -271,7 +271,7 @@
 
14262
 #: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
 
14263
 #, c-format
 
14264
 msgid "%s"
 
14265
-msgstr ""
 
14266
+msgstr "%s"
 
14267
 
 
14268
 #: directives.c:1096
 
14269
 #, c-format
 
14270
@@ -312,16 +312,12 @@
 
14271
 msgstr "main dosyasında '#pragma once'"
 
14272
 
 
14273
 #: directives.c:1462
 
14274
-#, fuzzy
 
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"
 
14279
 
 
14280
 #: directives.c:1517
 
14281
-#, fuzzy
 
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"
 
14286
 
 
14287
 #: directives.c:1572
 
14288
 msgid "invalid #pragma GCC poison directive"
 
14289
@@ -347,10 +343,9 @@
 
14290
 msgstr "mevcut dosya %s den daha eski"
 
14291
 
 
14292
 #: directives.c:1653
 
14293
-#, fuzzy, c-format
 
14294
-#| msgid "invalid #pragma GCC poison directive"
 
14295
+#, c-format
 
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"
 
14299
 
 
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ış"
 
14305
 
 
14306
-#: directives.c:2566
 
14307
+#: directives.c:2567
 
14308
 #, c-format
 
14309
 msgid "unterminated #%s"
 
14310
 msgstr "sonlandırılmamış #%s"
 
14311
@@ -424,16 +419,12 @@
 
14312
 msgstr "%s: %s"
 
14313
 
 
14314
 #: expr.c:479 expr.c:577
 
14315
-#, fuzzy
 
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"
 
14320
 
 
14321
 #: expr.c:504
 
14322
-#, fuzzy
 
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ı"
 
14327
 
 
14328
 #: expr.c:514
 
14329
 msgid "use of C99 hexadecimal floating constant"
 
14330
@@ -450,10 +441,8 @@
 
14331
 msgstr "geleneksel C \"%.*s\" sonekini kullanmaz"
 
14332
 
 
14333
 #: expr.c:564
 
14334
-#, fuzzy
 
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"
 
14339
 
 
14340
 #: expr.c:570
 
14341
 #, c-format
 
14342
@@ -461,10 +450,8 @@
 
14343
 msgstr "onaltılık kayan sabitli \"%.*s\" soneki geçersiz"
 
14344
 
 
14345
 #: expr.c:581
 
14346
-#, fuzzy
 
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"
 
14351
 
 
14352
 #: expr.c:599
 
14353
 #, c-format
 
14354
@@ -472,10 +459,8 @@
 
14355
 msgstr "tamsayı sabitte sonek \"%.*s\" soneki geçersiz"
 
14356
 
 
14357
 #: expr.c:624
 
14358
-#, fuzzy
 
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ı"
 
14363
 
 
14364
 #: expr.c:625
 
14365
 msgid "use of C99 long long integer constant"
 
14366
@@ -486,10 +471,8 @@
 
14367
 msgstr "sanal sabitler bir GCC genişletmesidir"
 
14368
 
 
14369
 #: expr.c:644
 
14370
-#, fuzzy
 
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"
 
14375
 
 
14376
 #: expr.c:737
 
14377
 msgid "integer constant is too large for its type"
 
14378
@@ -517,10 +500,8 @@
 
14379
 msgstr "\"defined\" bu kullanımıyla uyarlanabilir olmayabilir"
 
14380
 
 
14381
 #: expr.c:948
 
14382
-#, fuzzy
 
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ı"
 
14387
 
 
14388
 #: expr.c:953
 
14389
 msgid "floating constant in preprocessor expression"
 
14390
@@ -536,20 +517,17 @@
 
14391
 msgstr "\"%s\" tanımlı değil"
 
14392
 
 
14393
 #: expr.c:1020
 
14394
-#, fuzzy
 
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"
 
14399
 
 
14400
 #: expr.c:1023
 
14401
 msgid "assertions are a deprecated extension"
 
14402
-msgstr ""
 
14403
+msgstr "belirteçler artık kullanılmayan bir ifadedir"
 
14404
 
 
14405
 #: expr.c:1268
 
14406
-#, fuzzy, c-format
 
14407
-#| msgid "unbalanced stack in #if"
 
14408
+#, c-format
 
14409
 msgid "unbalanced stack in %s"
 
14410
-msgstr "#if ifadesinde karşılıksız yığın"
 
14411
+msgstr "%s içinde dengelenmemiş yığın"
 
14412
 
 
14413
 #: expr.c:1288
 
14414
 #, c-format
 
14415
@@ -594,39 +572,39 @@
 
14416
 msgid "division by zero in #if"
 
14417
 msgstr "#if içinde sıfırla bölme"
 
14418
 
 
14419
-#: files.c:504
 
14420
+#: files.c:505
 
14421
 msgid "NULL directory in find_file"
 
14422
 msgstr "find_file içinde boş dizin"
 
14423
 
 
14424
-#: files.c:542
 
14425
+#: files.c:553
 
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"
 
14428
 
 
14429
-#: files.c:545
 
14430
+#: files.c:556
 
14431
 msgid "use -Winvalid-pch for more information"
 
14432
 msgstr "daha fazla bilgi almak için -Winvalid-pch kullanın"
 
14433
 
 
14434
-#: files.c:643
 
14435
+#: files.c:660
 
14436
 #, c-format
 
14437
 msgid "%s is a block device"
 
14438
 msgstr "%s bir blok aygıtıdır"
 
14439
 
 
14440
-#: files.c:660
 
14441
+#: files.c:677
 
14442
 #, c-format
 
14443
 msgid "%s is too large"
 
14444
 msgstr "%s çok büyük"
 
14445
 
 
14446
-#: files.c:700
 
14447
+#: files.c:717
 
14448
 #, c-format
 
14449
 msgid "%s is shorter than expected"
 
14450
 msgstr "%s beklenenden daha kısa"
 
14451
 
 
14452
-#: files.c:935
 
14453
+#: files.c:953
 
14454
 #, c-format
 
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"
 
14457
 
 
14458
-#: files.c:1363
 
14459
+#: files.c:1381
 
14460
 msgid "Multiple include guards may be useful for:\n"
 
14461
 msgstr "Çoklu include önlemleri aşağıdakiler için kullanışlı olabilir:\n"
 
14462
 
 
14463
@@ -717,27 +695,24 @@
 
14464
 #: lex.c:1178 lex.c:1255
 
14465
 #, c-format
 
14466
 msgid "identifier \"%s\" is a special operator name in C++"
 
14467
-msgstr ""
 
14468
+msgstr "\"%s\" belirteci, C++'da özel bir işleç adıdır"
 
14469
 
 
14470
 #: lex.c:1399
 
14471
 msgid "raw string delimiter longer than 16 characters"
 
14472
-msgstr ""
 
14473
+msgstr "ham dizge ayracı 16 karakterden uzun"
 
14474
 
 
14475
 #: lex.c:1402
 
14476
-#, fuzzy, c-format
 
14477
-#| msgid "universal character %.*s is not valid in an identifier"
 
14478
+#, c-format
 
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'"
 
14482
 
 
14483
 #: lex.c:1525 lex.c:1547
 
14484
-#, fuzzy
 
14485
-#| msgid "unterminated #%s"
 
14486
 msgid "unterminated raw string"
 
14487
-msgstr "sonlandırılmamış #%s"
 
14488
+msgstr "bitirilmemiş ham dizge"
 
14489
 
 
14490
 #: lex.c:1573 lex.c:1706
 
14491
 msgid "invalid suffix on literal; C++11 requires a space between literal and identifier"
 
14492
-msgstr ""
 
14493
+msgstr "geçersiz ifade soneki; C++11 ifade ve tanımlayıcı arasında bir boşluk gerektirir"
 
14494
 
 
14495
 #: lex.c:1684
 
14496
 msgid "null character(s) preserved in literal"
 
14497
@@ -785,7 +760,7 @@
 
14498
 
 
14499
 #: macro.c:377
 
14500
 msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
 
14501
-msgstr ""
 
14502
+msgstr "__COUNTER__ -fdirectives-only ile talimat içerisinde genişletildi"
 
14503
 
 
14504
 #: macro.c:535
 
14505
 msgid "invalid string literal, ignoring final '\\'"
 
14506
@@ -823,7 +798,7 @@
 
14507
 #: macro.c:1746
 
14508
 #, c-format
 
14509
 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
 
14510
-msgstr ""
 
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"
 
14512
 
 
14513
 #: macro.c:2708
 
14514
 #, c-format
 
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"
 
14518
 
 
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"
 
14523
 
 
14524
-#: pch.c:607
 
14525
-#, fuzzy, c-format
 
14526
-#| msgid "%s: not used because `%s' is defined"
 
14527
+#: pch.c:619
 
14528
+#, c-format
 
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ı"
 
14532
 
 
14533
-#: pch.c:629
 
14534
+#: pch.c:641
 
14535
 #, c-format
 
14536
 msgid "%s: not used because `%.*s' not defined"
 
14537
 msgstr "%s: `%.*s' tanımlı olmadığından kullanılmadı"
 
14538
 
 
14539
-#: pch.c:641
 
14540
+#: pch.c:653
 
14541
 #, c-format
 
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"
 
14544
 
 
14545
-#: pch.c:682
 
14546
+#: pch.c:694
 
14547
 #, c-format
 
14548
 msgid "%s: not used because `%s' is defined"
 
14549
 msgstr "%s: `%s' tanımlı olduğundan kullanılmadı"
 
14550
 
 
14551
-#: pch.c:702
 
14552
-#, fuzzy, c-format
 
14553
-#| msgid "%s: not used because `%s' is defined"
 
14554
+#: pch.c:714
 
14555
+#, c-format
 
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ı"
 
14559
 
 
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"
 
14564
 
 
14565
Index: .
 
14566
===================================================================
 
14567
--- a/src/.     (.../tags/gcc_4_8_2_release)
 
14568
+++ b/src/.     (.../branches/gcc-4_8-branch)
 
14569
 
 
14570
Property changes on: .
 
14571
___________________________________________________________________
 
14572
Modified: svn:mergeinfo
 
14573
   Merged /trunk:r202766,204547