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

« back to all changes in this revision

Viewing changes to .svn/pristine/7a/7aea3d1c5da2b9115693b8dcc36155699eba1db1.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 20131212 (r205924).
 
2
 
 
3
last_updated()
 
4
{
 
5
        cat > ${dir}LAST_UPDATED <<EOF
 
6
Fri Dec 13 01:00:13 CET 2013
 
7
Fri Dec 13 00:00:13 UTC 2013 (revision 205948)
 
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: libgomp/ChangeLog
 
16
===================================================================
 
17
--- a/src/libgomp/ChangeLog     (.../tags/gcc_4_8_2_release)
 
18
+++ b/src/libgomp/ChangeLog     (.../branches/gcc-4_8-branch)
 
19
@@ -1,3 +1,9 @@
 
20
+2013-12-12  Jakub Jelinek  <jakub@redhat.com>
 
21
+
 
22
+       PR libgomp/59467
 
23
+       * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
 
24
+       !$omp parallel.
 
25
+
 
26
 2013-10-16  Release Manager
 
27
 
 
28
        * GCC 4.8.2 released.
 
29
Index: libgomp/testsuite/libgomp.fortran/crayptr2.f90
 
30
===================================================================
 
31
--- a/src/libgomp/testsuite/libgomp.fortran/crayptr2.f90        (.../tags/gcc_4_8_2_release)
 
32
+++ b/src/libgomp/testsuite/libgomp.fortran/crayptr2.f90        (.../branches/gcc-4_8-branch)
 
33
@@ -12,7 +12,7 @@
 
34
   b = 2
 
35
   c = 3
 
36
   l = .false.
 
37
-!$omp parallel num_threads (3) reduction (.or.:l)
 
38
+!$omp parallel num_threads (3) reduction (.or.:l) private (d)
 
39
   if (omp_get_thread_num () .eq. 0) then
 
40
     ip = loc (a)
 
41
   elseif (omp_get_thread_num () .eq. 1) then
 
42
Index: libstdc++-v3/configure
 
43
===================================================================
 
44
--- a/src/libstdc++-v3/configure        (.../tags/gcc_4_8_2_release)
 
45
+++ b/src/libstdc++-v3/configure        (.../branches/gcc-4_8-branch)
 
46
@@ -71573,7 +71573,7 @@
 
47
 fi
 
48
 
 
49
 # For libtool versioning info, format is CURRENT:REVISION:AGE
 
50
-libtool_VERSION=6:18:0
 
51
+libtool_VERSION=6:19:0
 
52
 
 
53
 # Everything parsed; figure out what files and settings to use.
 
54
 case $enable_symvers in
 
55
Index: libstdc++-v3/doc/xml/manual/abi.xml
 
56
===================================================================
 
57
--- a/src/libstdc++-v3/doc/xml/manual/abi.xml   (.../tags/gcc_4_8_2_release)
 
58
+++ b/src/libstdc++-v3/doc/xml/manual/abi.xml   (.../branches/gcc-4_8-branch)
 
59
@@ -203,6 +203,7 @@
 
60
     <listitem><para>GCC 4.5.0: GCC_4.5.0</para></listitem>
 
61
     <listitem><para>GCC 4.6.0: GCC_4.6.0</para></listitem>
 
62
     <listitem><para>GCC 4.7.0: GCC_4.7.0</para></listitem>
 
63
+    <listitem><para>GCC 4.8.0: GCC_4.8.0</para></listitem>
 
64
     </itemizedlist>
 
65
     </listitem>
 
66
 
 
67
@@ -261,6 +262,7 @@
 
68
     <listitem><para>GCC 4.6.1: libstdc++.so.6.0.16</para></listitem>
 
69
     <listitem><para>GCC 4.7.0: libstdc++.so.6.0.17</para></listitem>
 
70
     <listitem><para>GCC 4.8.0: libstdc++.so.6.0.18</para></listitem>
 
71
+    <listitem><para>GCC 4.8.3: libstdc++.so.6.0.19</para></listitem>
 
72
     </itemizedlist>
 
73
     <para>
 
74
       Note 1: Error should be libstdc++.so.3.0.3.
 
75
@@ -324,6 +326,7 @@
 
76
     <listitem><para>GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5</para></listitem>
 
77
     <listitem><para>GCC 4.7.0: GLIBCXX_3.4.17, CXXABI_1.3.6</para></listitem>
 
78
     <listitem><para>GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7</para></listitem>
 
79
+    <listitem><para>GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7</para></listitem>
 
80
     </itemizedlist>
 
81
     </listitem>
 
82
 
 
83
Index: libstdc++-v3/doc/xml/manual/status_cxx2011.xml
 
84
===================================================================
 
85
--- a/src/libstdc++-v3/doc/xml/manual/status_cxx2011.xml        (.../tags/gcc_4_8_2_release)
 
86
+++ b/src/libstdc++-v3/doc/xml/manual/status_cxx2011.xml        (.../branches/gcc-4_8-branch)
 
87
@@ -877,10 +877,11 @@
 
88
       <entry/>
 
89
     </row>
 
90
     <row>
 
91
+      <?dbhtml bgcolor="#B0B0B0" ?>
 
92
       <entry>20.9.7.6</entry>
 
93
       <entry>Other transformations</entry>
 
94
-      <entry>Y</entry>
 
95
-      <entry/>
 
96
+      <entry>Partial</entry>
 
97
+      <entry>Missing <code>aligned_union</code>.</entry>
 
98
     </row>
 
99
     <row>
 
100
       <entry>20.10</entry>
 
101
Index: libstdc++-v3/doc/xml/manual/spine.xml
 
102
===================================================================
 
103
--- a/src/libstdc++-v3/doc/xml/manual/spine.xml (.../tags/gcc_4_8_2_release)
 
104
+++ b/src/libstdc++-v3/doc/xml/manual/spine.xml (.../branches/gcc-4_8-branch)
 
105
@@ -20,6 +20,7 @@
 
106
     <year>2010</year>
 
107
     <year>2011</year>
 
108
     <year>2012</year>
 
109
+    <year>2013</year>
 
110
     <holder>
 
111
       <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.fsf.org">FSF</link>
 
112
     </holder>
 
113
Index: libstdc++-v3/doc/html/bk02.html
 
114
===================================================================
 
115
--- a/src/libstdc++-v3/doc/html/bk02.html       (.../tags/gcc_4_8_2_release)
 
116
+++ b/src/libstdc++-v3/doc/html/bk02.html       (.../branches/gcc-4_8-branch)
 
117
@@ -1,2 +1,2 @@
 
118
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
119
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
120
\ No newline at end of file
 
121
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
122
\ No newline at end of file
 
123
Index: libstdc++-v3/doc/html/bk03.html
 
124
===================================================================
 
125
--- a/src/libstdc++-v3/doc/html/bk03.html       (.../tags/gcc_4_8_2_release)
 
126
+++ b/src/libstdc++-v3/doc/html/bk03.html       (.../branches/gcc-4_8-branch)
 
127
@@ -1,2 +1,2 @@
 
128
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
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></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>
 
130
\ No newline at end of file
 
131
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
132
\ No newline at end of file
 
133
Index: libstdc++-v3/doc/html/faq.html
 
134
===================================================================
 
135
--- a/src/libstdc++-v3/doc/html/faq.html        (.../tags/gcc_4_8_2_release)
 
136
+++ b/src/libstdc++-v3/doc/html/faq.html        (.../branches/gcc-4_8-branch)
 
137
@@ -1,9 +1,9 @@
 
138
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
139
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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 © 
 
140
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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 © 
 
141
       2008, 2010
 
142
      
 
143
       <a class="link" href="http://www.fsf.org" target="_top">FSF</a>
 
144
-    </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">
 
145
+    </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">
 
146
       What is libstdc++?
 
147
     </a></dt><dt>1.2. <a href="faq.html#faq.why">
 
148
       Why should I use libstdc++?
 
149
Index: libstdc++-v3/doc/html/index.html
 
150
===================================================================
 
151
--- a/src/libstdc++-v3/doc/html/index.html      (.../tags/gcc_4_8_2_release)
 
152
+++ b/src/libstdc++-v3/doc/html/index.html      (.../branches/gcc-4_8-branch)
 
153
@@ -1,5 +1,5 @@
 
154
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
155
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
156
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
157
       Copyright (C) 2008-2013
 
158
       <a class="link" href="http://www.fsf.org/" target="_top">FSF
 
159
       </a>
 
160
@@ -20,7 +20,7 @@
 
161
          </p></li><li class="listitem"><p>
 
162
            <a class="link" href="api.html" title="The GNU C++ Library API Reference">API and Source Documentation</a>
 
163
          </p></li></ul></div><p>
 
164
-    </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. 
 
165
+    </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. 
 
166
   Introduction
 
167
   
 
168
 </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. 
 
169
@@ -34,13 +34,13 @@
 
170
 </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. 
 
171
   Utilities
 
172
   
 
173
-</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. 
 
174
+</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. 
 
175
   Strings
 
176
   
 
177
 </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. 
 
178
   Localization
 
179
   
 
180
-</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. 
 
181
+</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. 
 
182
   Containers
 
183
   
 
184
 </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. 
 
185
Index: libstdc++-v3/doc/html/api.html
 
186
===================================================================
 
187
--- a/src/libstdc++-v3/doc/html/api.html        (.../tags/gcc_4_8_2_release)
 
188
+++ b/src/libstdc++-v3/doc/html/api.html        (.../branches/gcc-4_8-branch)
 
189
@@ -1,12 +1,12 @@
 
190
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
191
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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 © 
 
192
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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 © 
 
193
       2008
 
194
     , 
 
195
       2010
 
196
      
 
197
       <a class="link" href="http://www.fsf.org/" target="_top">FSF
 
198
       </a>
 
199
-    </p></div><div><div class="legalnotice"><a id="idp3706336"></a><p>
 
200
+    </p></div><div><div class="legalnotice"><a id="idm270006235696"></a><p>
 
201
       <a class="link" href="manual/license.html" title="License">License
 
202
       </a>
 
203
     </p></div></div></div><hr /></div><p>
 
204
Index: libstdc++-v3/doc/html/manual/dynamic_memory.html
 
205
===================================================================
 
206
--- a/src/libstdc++-v3/doc/html/manual/dynamic_memory.html      (.../tags/gcc_4_8_2_release)
 
207
+++ b/src/libstdc++-v3/doc/html/manual/dynamic_memory.html      (.../branches/gcc-4_8-branch)
 
208
@@ -1,5 +1,5 @@
 
209
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
210
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
211
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
212
   Support
 
213
   
 
214
 </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>
 
215
Index: libstdc++-v3/doc/html/manual/iterators.html
 
216
===================================================================
 
217
--- a/src/libstdc++-v3/doc/html/manual/iterators.html   (.../tags/gcc_4_8_2_release)
 
218
+++ b/src/libstdc++-v3/doc/html/manual/iterators.html   (.../branches/gcc-4_8-branch)
 
219
@@ -1,13 +1,13 @@
 
220
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
221
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
222
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
223
   Iterators
 
224
   
 
225
 </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. 
 
226
     Standard Contents
 
227
   </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. 
 
228
   Iterators
 
229
-  <a id="idp16156992" class="indexterm"></a>
 
230
-</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>
 
231
+  <a id="idm269999374096" class="indexterm"></a>
 
232
+</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>
 
233
      The following
 
234
 FAQ <a class="link" href="../faq.html#faq.iterator_as_pod" title="7.1.">entry</a> points out that
 
235
 iterators are not implemented as pointers.  They are a generalization
 
236
Index: libstdc++-v3/doc/html/manual/mt_allocator_ex_single.html
 
237
===================================================================
 
238
--- a/src/libstdc++-v3/doc/html/manual/mt_allocator_ex_single.html      (.../tags/gcc_4_8_2_release)
 
239
+++ b/src/libstdc++-v3/doc/html/manual/mt_allocator_ex_single.html      (.../branches/gcc-4_8-branch)
 
240
@@ -1,5 +1,5 @@
 
241
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
242
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
243
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
244
 Let's start by describing how the data on a freelist is laid out in memory.
 
245
 This is the first two blocks in freelist for thread id 3 in bin 3 (8 bytes):
 
246
 </p><pre class="programlisting">
 
247
Index: libstdc++-v3/doc/html/manual/generalized_numeric_operations.html
 
248
===================================================================
 
249
--- a/src/libstdc++-v3/doc/html/manual/generalized_numeric_operations.html      (.../tags/gcc_4_8_2_release)
 
250
+++ b/src/libstdc++-v3/doc/html/manual/generalized_numeric_operations.html      (.../branches/gcc-4_8-branch)
 
251
@@ -1,5 +1,5 @@
 
252
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
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>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. 
 
254
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
255
   Numerics
 
256
   
 
257
 </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>
 
258
Index: libstdc++-v3/doc/html/manual/mt_allocator.html
 
259
===================================================================
 
260
--- a/src/libstdc++-v3/doc/html/manual/mt_allocator.html        (.../tags/gcc_4_8_2_release)
 
261
+++ b/src/libstdc++-v3/doc/html/manual/mt_allocator.html        (.../branches/gcc-4_8-branch)
 
262
@@ -1,8 +1,8 @@
 
263
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
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>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. 
 
265
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
266
   Extensions
 
267
   
 
268
-</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>
 
269
+</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>
 
270
 </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>
 
271
   The mt allocator [hereinafter referred to simply as "the allocator"]
 
272
   is a fixed size (power of two) allocator that was initially
 
273
Index: libstdc++-v3/doc/html/manual/unordered_associative.html
 
274
===================================================================
 
275
--- a/src/libstdc++-v3/doc/html/manual/unordered_associative.html       (.../tags/gcc_4_8_2_release)
 
276
+++ b/src/libstdc++-v3/doc/html/manual/unordered_associative.html       (.../branches/gcc-4_8-branch)
 
277
@@ -1,5 +1,5 @@
 
278
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
279
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
280
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
281
   Containers
 
282
   
 
283
 </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>
 
284
Index: libstdc++-v3/doc/html/manual/configure.html
 
285
===================================================================
 
286
--- a/src/libstdc++-v3/doc/html/manual/configure.html   (.../tags/gcc_4_8_2_release)
 
287
+++ b/src/libstdc++-v3/doc/html/manual/configure.html   (.../branches/gcc-4_8-branch)
 
288
@@ -1,5 +1,5 @@
 
289
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
290
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
291
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
292
   When configuring libstdc++, you'll have to configure the entire
 
293
   <span class="emphasis"><em>gccsrcdir</em></span> directory. Consider using the
 
294
   toplevel gcc configuration option
 
295
Index: libstdc++-v3/doc/html/manual/status.html
 
296
===================================================================
 
297
--- a/src/libstdc++-v3/doc/html/manual/status.html      (.../tags/gcc_4_8_2_release)
 
298
+++ b/src/libstdc++-v3/doc/html/manual/status.html      (.../branches/gcc-4_8-branch)
 
299
@@ -1,13 +1,13 @@
 
300
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
301
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
302
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
303
   Introduction
 
304
   
 
305
-</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>
 
306
+</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>
 
307
 This status table is based on the table of contents of ISO/IEC 14882:2003.
 
308
 </p><p>
 
309
 This page describes the C++ support in mainline GCC SVN, not in any
 
310
 particular release.
 
311
-</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">
 
312
+</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">
 
313
        <span class="emphasis"><em>18</em></span>
 
314
       </td><td colspan="3" align="left">
 
315
        <span class="emphasis"><em>Language support</em></span>
 
316
@@ -157,7 +157,7 @@
 
317
 </p><p>
 
318
 This page describes the C++11 support in mainline GCC SVN, not in any
 
319
 particular release.
 
320
-</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">
 
321
+</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">
 
322
        <span class="emphasis"><em>18</em></span>
 
323
       </td><td colspan="3" align="left">
 
324
        <span class="emphasis"><em>Language support</em></span>
 
325
@@ -183,7 +183,7 @@
 
326
       is_trivially_copy_constructible, is_trivially_move_constructible,
 
327
       is_trivially_assignable, is_trivially_default_assignable,
 
328
       is_trivially_copy_assignable, is_trivially_move_assignable
 
329
-      </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">
 
330
+      </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">
 
331
        <span class="emphasis"><em>21</em></span>
 
332
       </td><td colspan="3" align="left">
 
333
        <span class="emphasis"><em>Strings</em></span>
 
334
@@ -302,7 +302,7 @@
 
335
 </p><p>
 
336
 This page describes the TR1 support in mainline GCC SVN, not in any particular
 
337
 release.
 
338
-</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">
 
339
+</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">
 
340
        <p>
 
341
          Uses code from
 
342
          <a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">boost::shared_ptr</a>.
 
343
@@ -323,7 +323,7 @@
 
344
 </p><p>
 
345
 This page describes the TR 24733 support in mainline GCC SVN, not in any
 
346
 particular release.
 
347
-</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">
 
348
+</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">
 
349
        <span class="emphasis"><em>0</em></span>
 
350
       </td><td colspan="3" align="left">
 
351
        <span class="emphasis"><em>Introduction</em></span>
 
352
Index: libstdc++-v3/doc/html/manual/profile_mode_devel.html
 
353
===================================================================
 
354
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_devel.html  (.../tags/gcc_4_8_2_release)
 
355
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_devel.html  (.../branches/gcc-4_8-branch)
 
356
@@ -1,5 +1,5 @@
 
357
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
358
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
 
359
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
 
360
    <code class="code">-D_GLIBCXX_PROFILE</code> through preprocessor directives in
 
361
    <code class="code">include/std/*</code>.
 
362
   </p><p>Instrumented implementations are provided in
 
363
Index: libstdc++-v3/doc/html/manual/debug_mode_design.html
 
364
===================================================================
 
365
--- a/src/libstdc++-v3/doc/html/manual/debug_mode_design.html   (.../tags/gcc_4_8_2_release)
 
366
+++ b/src/libstdc++-v3/doc/html/manual/debug_mode_design.html   (.../branches/gcc-4_8-branch)
 
367
@@ -1,5 +1,5 @@
 
368
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
369
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
370
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
371
   </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>
 
372
     </p><p> The libstdc++ debug mode replaces unsafe (but efficient) standard
 
373
   containers and iterators with semantically equivalent safe standard
 
374
@@ -391,7 +391,7 @@
 
375
     </p><p> There are several existing implementations of debug modes for C++
 
376
   standard library implementations, although none of them directly
 
377
   supports debugging for programs using libstdc++. The existing
 
378
-  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>:
 
379
+  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>:
 
380
   SafeSTL was the original debugging version of the Standard Template
 
381
   Library (STL), implemented by Cay S. Horstmann on top of the
 
382
   Hewlett-Packard STL. Though it inspired much work in this area, it
 
383
Index: libstdc++-v3/doc/html/manual/policy_data_structures_design.html
 
384
===================================================================
 
385
--- a/src/libstdc++-v3/doc/html/manual/policy_data_structures_design.html       (.../tags/gcc_4_8_2_release)
 
386
+++ b/src/libstdc++-v3/doc/html/manual/policy_data_structures_design.html       (.../branches/gcc-4_8-branch)
 
387
@@ -1,5 +1,5 @@
 
388
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
389
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
390
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
391
        Associative containers are typically parametrized by various
 
392
        policies. For example, a hash-based associative container is
 
393
        parametrized by a hash-functor, transforming each key into an
 
394
@@ -170,7 +170,7 @@
 
395
          naturally; collision-chaining hash tables (label B) store
 
396
          equivalent-key values in the same bucket, the bucket can be
 
397
          arranged so that equivalent-key values are consecutive.
 
398
-       </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>
 
399
+       </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>
 
400
          Put differently, the standards' non-unique mapping
 
401
          associative-containers are associative containers that map
 
402
          primary keys to linked lists that are embedded into the
 
403
@@ -252,7 +252,7 @@
 
404
          first graphic above. Labels A and B, respectively. Each shaded
 
405
          box represents some size-type or secondary
 
406
          associative-container.
 
407
-       </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>
 
408
+       </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>
 
409
          In the first example above, then, one would use an associative
 
410
          container mapping each user to an associative container which
 
411
          maps each application id to a start time (see
 
412
@@ -305,7 +305,7 @@
 
413
        shows invariants for order-preserving containers: point-type
 
414
        iterators are synonymous with range-type iterators.
 
415
        Orthogonally,  <span class="emphasis"><em>C</em></span>shows invariants for "set"
 
416
-       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
 
417
+       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
 
418
        (hash-based associative containers) lack movement
 
419
        operators, such as <code class="literal">operator++</code> - in fact, this
 
420
        is the reason why this library differentiates from the standard C++ librarys
 
421
@@ -344,7 +344,7 @@
 
422
          to the question of whether point-type iterators and range-type
 
423
          iterators are valid. The graphic below shows tags corresponding to
 
424
          different types of invalidation guarantees.
 
425
-       </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>
 
426
+       </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>
 
427
              <code class="classname">basic_invalidation_guarantee</code>
 
428
              corresponds to a basic guarantee that a point-type iterator,
 
429
              a found pointer, or a found reference, remains valid as long
 
430
@@ -428,7 +428,7 @@
 
431
        </p><p>
 
432
          This library contains a container tag hierarchy corresponding to the
 
433
          diagram below.
 
434
-       </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>
 
435
+       </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>
 
436
          Given any container <span class="type">Cntnr</span>, the tag of
 
437
          the underlying data structure can be found via <code class="literal">typename
 
438
          Cntnr::container_category</code>.
 
439
@@ -487,7 +487,7 @@
 
440
        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
 
441
          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
 
442
        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
 
443
-           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
 
444
+           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
 
445
              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
 
446
            strings of 3 characters). A hash-table algorithm needs to map
 
447
            elements of U "uniformly" into the range [0,..., m -
 
448
@@ -504,7 +504,7 @@
 
449
            Z<sub>+</sub>,</p><p>which maps a non-negative hash value, and a non-negative
 
450
            range upper-bound into a non-negative integral in the range
 
451
            between 0 (inclusive) and the range upper bound (exclusive),
 
452
-           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">
 
453
+           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">
 
454
                f(u , m) = g(h(u), m)
 
455
              </span></div></div><br class="equation-break" /><p>From the above, it is obvious that given g and
 
456
            h, f can always be composed (however the converse
 
457
@@ -524,7 +524,7 @@
 
458
            transforming the sequence of hash values into a sequence of
 
459
            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
 
460
            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
 
461
-           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">
 
462
+           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">
 
463
                g(r, m) = r mod m
 
464
              </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
 
465
            v (typically powers of 2), and some a. Each of
 
466
@@ -535,9 +535,9 @@
 
467
            implement using the low
 
468
            level % (modulo) operation (for any m), or the
 
469
            low level &amp; (bit-mask) operation (for the case where
 
470
-           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">
 
471
+           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">
 
472
                g(r, m) = r % m
 
473
-             </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">
 
474
+             </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">
 
475
                g(r, m) = r &amp; m - 1, (with m =
 
476
                2<sup>k</sup> for some k)
 
477
              </span></div></div><br class="equation-break" /><p>respectively.</p><p>The % (modulo) implementation has the advantage that for
 
478
@@ -563,7 +563,7 @@
 
479
              s = [ s<sub>0</sub>,..., s<sub>t - 1</sub>]
 
480
            </p><p>be a string of t characters, each of which is from
 
481
            domain S. Consider the following ranged-hash
 
482
-           function:</p><div class="equation"><a id="idp18163200"></a><p class="title"><strong>Equation 22.5. 
 
483
+           function:</p><div class="equation"><a id="idm269997367984"></a><p class="title"><strong>Equation 22.5. 
 
484
                A Standard String Hash Function
 
485
              </strong></p><div class="equation-contents"><span class="mathphrase">
 
486
                f<sub>1</sub>(s, m) = ∑ <sub>i =
 
487
@@ -575,7 +575,7 @@
 
488
            of a long DNA sequence (and so S = {'A', 'C', 'G',
 
489
            'T'}). In this case, scanning the entire string might be
 
490
            prohibitively expensive. A possible alternative might be to use
 
491
-           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. 
 
492
+           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. 
 
493
                Only k String DNA Hash
 
494
              </strong></p><div class="equation-contents"><span class="mathphrase">
 
495
                f<sub>2</sub>(s, m) = ∑ <sub>i
 
496
@@ -606,12 +606,12 @@
 
497
              the container transforms the key into a non-negative integral
 
498
              using the hash functor (points B and C), and transforms the
 
499
              result into a position using the combining functor (points D
 
500
-             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
 
501
+             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
 
502
              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
 
503
              a ranged-hash function. The graphic below shows an <code class="function">insert</code> sequence
 
504
              diagram. The user inserts an element (point A), the container
 
505
              transforms the key into a position using the combining functor
 
506
-             (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>
 
507
+             (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>
 
508
                Probing tables
 
509
              </h6></div></div></div><p><code class="classname">gp_hash_table</code> is parametrized by
 
510
              <code class="classname">Hash_Fn</code>, <code class="classname">Probe_Fn</code>,
 
511
@@ -634,7 +634,7 @@
 
512
                a linear probe and a quadratic probe function,
 
513
                respectively.</p></li></ol></div><p>
 
514
                The graphic below shows the relationships.
 
515
-             </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
 
516
+             </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
 
517
            shrink. It is necessary to specify policies to determine how
 
518
            and when a hash table should change its size. Usually, resize
 
519
            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
 
520
@@ -667,10 +667,10 @@
 
521
            and some load factor be denoted by Α. We would like to
 
522
            calculate the minimal length of k, such that if there were Α
 
523
            m elements in the hash table, a probe sequence of length k would
 
524
-           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
 
525
+           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
 
526
            k appears in bin i by p<sub>i</sub>, the
 
527
            length of the probe sequence of bin i by
 
528
-           l<sub>i</sub>, and assume uniform distribution. Then</p><div class="equation"><a id="idp18240448"></a><p class="title"><strong>Equation 22.7. 
 
529
+           l<sub>i</sub>, and assume uniform distribution. Then</p><div class="equation"><a id="idm269997290864"></a><p class="title"><strong>Equation 22.7. 
 
530
                Probability of Probe Sequence of Length k
 
531
              </strong></p><div class="equation-contents"><span class="mathphrase">
 
532
                p<sub>1</sub> = 
 
533
@@ -684,7 +684,7 @@
 
534
            l<sub>i</sub> are negatively-dependent
 
535
            (<a class="xref" href="policy_data_structures.html#biblio.dubhashi98neg" title="Balls and bins: A study in negative dependence">[biblio.dubhashi98neg]</a>)
 
536
            . Let
 
537
-           I(.) denote the indicator function. Then</p><div class="equation"><a id="idp18247216"></a><p class="title"><strong>Equation 22.8. 
 
538
+           I(.) denote the indicator function. Then</p><div class="equation"><a id="idm269997284096"></a><p class="title"><strong>Equation 22.8. 
 
539
                Probability Probe Sequence in Some Bin
 
540
              </strong></p><div class="equation-contents"><span class="mathphrase">
 
541
                P( exists<sub>i</sub> l<sub>i</sub> ≥ k ) = 
 
542
@@ -723,7 +723,7 @@
 
543
              a resize is needed, and if so, what is the new size (points D
 
544
              to G); following the resize, it notifies the policy that a
 
545
              resize has completed (point H); finally, the element is
 
546
-             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
 
547
+             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
 
548
              decomposed to a size policy and a trigger policy. Consequently,
 
549
              the library contains a single class for instantiating a resize
 
550
              policy: <code class="classname">hash_standard_resize_policy</code>
 
551
@@ -732,8 +732,8 @@
 
552
              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>)
 
553
              to these policies.</p><p>The two graphics immediately below show sequence diagrams
 
554
              illustrating the interaction between the standard resize policy
 
555
-             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
 
556
-               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
 
557
+             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
 
558
+               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
 
559
                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
 
560
              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>
 
561
                implements a load check trigger policy.</p></li><li class="listitem"><p><code class="classname">cc_hash_max_collision_check_resize_trigger</code>
 
562
@@ -876,7 +876,7 @@
 
563
          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
 
564
          each node the size of the sub-tree rooted at the node; the
 
565
          second stores at each node the maximal endpoint of the
 
566
-         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
 
567
+         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
 
568
          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
 
569
            should be (if any).</p></li><li class="listitem"><p>Various operations can invalidate node
 
570
            invariants.  The graphic below shows how a right rotation,
 
571
@@ -890,7 +890,7 @@
 
572
            metadata.</p></li><li class="listitem"><p>It is not feasible to know in advance which methods trees
 
573
            can support. Besides the usual <code class="classname">find</code> method, the
 
574
            first tree can support a <code class="classname">find_by_order</code> method, while
 
575
-           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:
 
576
+           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:
 
577
          node iterators, and template-template node updater
 
578
          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
 
579
            types, <code class="classname">const_node_iterator</code>
 
580
@@ -919,7 +919,7 @@
 
581
            <code class="classname">node_update</code> class, and publicly subclasses
 
582
            <code class="classname">node_update</code>. The graphic below shows this
 
583
            scheme, as well as some predefined policies (which are explained
 
584
-           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
 
585
+           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
 
586
            <code class="classname">Node_Update</code>) must define <code class="classname">metadata_type</code> as
 
587
            the type of metadata it requires. For order statistics,
 
588
            e.g., <code class="classname">metadata_type</code> might be <code class="classname">size_t</code>.
 
589
@@ -938,7 +938,7 @@
 
590
            <code class="classname">nd_it</code>. For example, say node x in the
 
591
            graphic below label A has an invalid invariant, but its' children,
 
592
            y and z have valid invariants. After the invocation, all three
 
593
-           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,
 
594
+           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,
 
595
            it invokes this method in its <code class="classname">node_update</code> base to
 
596
            restore the invariant. For example, the graphic below shows
 
597
            an <code class="function">insert</code> operation (point A); the tree performs some
 
598
@@ -946,7 +946,7 @@
 
599
            C, and D). (It is well known that any <code class="function">insert</code>,
 
600
            <code class="function">erase</code>, <code class="function">split</code> or <code class="function">join</code>, can restore
 
601
            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>)
 
602
-           .</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
 
603
+           .</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
 
604
            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
 
605
              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
 
606
              tree?</p></li><li class="listitem"><p>How can the following cyclic dependency be resolved?
 
607
@@ -988,7 +988,7 @@
 
608
              node's metadata (this is halting reducible). In the graphic
 
609
              below, assume the shaded node is inserted. The tree would have
 
610
              to traverse the useless path shown to the root, applying
 
611
-             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>
 
612
+             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>
 
613
            solves both these problems. The tree detects that node
 
614
            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.
 
615
          It is possible to split a tree so that it passes
 
616
@@ -1071,7 +1071,7 @@
 
617
          sub-tree with leafs "a" and "as". The maximal common prefix is
 
618
          "a". The internal node contains, consequently, to const
 
619
          iterators, one pointing to <code class="varname">'a'</code>, and the other to
 
620
-         <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
 
621
+         <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
 
622
          tree-based containers. There are two minor
 
623
          differences, though, which, unfortunately, thwart sharing them
 
624
          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
 
625
@@ -1080,7 +1080,7 @@
 
626
            parametrized by <code class="classname">Cmp_Fn</code>.</p></li><li class="listitem"><p>Tree-based containers store values in all nodes, while
 
627
            trie-based containers (at least in this implementation) store
 
628
            values in leafs.</p></li></ol></div><p>The graphic below shows the scheme, as well as some predefined
 
629
-         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
 
630
+         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
 
631
          updating policies:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
 
632
                <code class="classname">trie_order_statistics_node_update</code>
 
633
                supports order statistics.
 
634
@@ -1128,7 +1128,7 @@
 
635
          simple list of integer keys. If we search for the integer 6, we
 
636
          are paying an overhead: the link with key 6 is only the fifth
 
637
          link; if it were the first link, it could be accessed
 
638
-         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
 
639
+         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
 
640
          accessed. They try to determine, by the access history, which
 
641
          keys to move to the front of the list. Some of these algorithms
 
642
          require adding some metadata alongside each entry.</p><p>For example, in the graphic below label A shows the counter
 
643
@@ -1138,7 +1138,7 @@
 
644
          predetermined value, say 10, as shown in label C, the count is set
 
645
          to 0 and the node is moved to the front of the list, as in label
 
646
          D.
 
647
-         </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
 
648
+         </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
 
649
          implementing any algorithm moving nodes to the front of the
 
650
          list (policies implementing algorithms interchanging nodes are
 
651
          unsupported).</p><p>Associative containers based on lists are parametrized by a
 
652
@@ -1310,7 +1310,7 @@
 
653
          sequence; the second uses a tree (or forest of trees), which is
 
654
          typically less structured than an associative container's tree;
 
655
          the third simply uses an associative container. These are
 
656
-         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
 
657
+         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
 
658
          from a priority queue must incur a logarithmic expense (in the
 
659
          amortized sense). Any priority queue implementation that would
 
660
          avoid this, would violate known bounds on comparison-based
 
661
@@ -1390,7 +1390,7 @@
 
662
          container <code class="classname">Cntnr</code>, the tag of the underlying
 
663
          data structure can be found via <code class="classname">typename 
 
664
          Cntnr::container_category</code>; this is one of the possible tags shown in the graphic below.
 
665
-         </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
 
666
+         </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
 
667
          container type for its attributes. Given any container
 
668
          <code class="classname">Cntnr</code>, then </p><pre class="programlisting">__gnu_pbds::container_traits&lt;Cntnr&gt;</pre><p>
 
669
          is a traits class identifying the properties of the
 
670
Index: libstdc++-v3/doc/html/manual/using.html
 
671
===================================================================
 
672
--- a/src/libstdc++-v3/doc/html/manual/using.html       (.../tags/gcc_4_8_2_release)
 
673
+++ b/src/libstdc++-v3/doc/html/manual/using.html       (.../branches/gcc-4_8-branch)
 
674
@@ -1,8 +1,8 @@
 
675
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
676
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
677
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
678
   Introduction
 
679
   
 
680
-</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>
 
681
+</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>
 
682
       The set of features available in the GNU C++ library is shaped
 
683
       by
 
684
       several <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Invoking-GCC.html" target="_top">GCC
 
685
@@ -10,5 +10,5 @@
 
686
       enumerated and detailed in the table below.
 
687
     </p><p>
 
688
       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.
 
689
-    </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;,
 
690
+    </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;,
 
691
       &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>
 
692
\ No newline at end of file
 
693
Index: libstdc++-v3/doc/html/manual/profile_mode_impl.html
 
694
===================================================================
 
695
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_impl.html   (.../tags/gcc_4_8_2_release)
 
696
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_impl.html   (.../branches/gcc-4_8-branch)
 
697
@@ -1,5 +1,5 @@
 
698
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
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>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>
 
700
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
701
   Accurate stack traces are needed during profiling since we group events by
 
702
   call context and dynamic instance.  Without accurate traces, diagnostics
 
703
   may be hard to interpret.  For instance, when giving advice to the user
 
704
Index: libstdc++-v3/doc/html/manual/ext_containers.html
 
705
===================================================================
 
706
--- a/src/libstdc++-v3/doc/html/manual/ext_containers.html      (.../tags/gcc_4_8_2_release)
 
707
+++ b/src/libstdc++-v3/doc/html/manual/ext_containers.html      (.../branches/gcc-4_8-branch)
 
708
@@ -1,8 +1,8 @@
 
709
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
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 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. 
 
711
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
712
   Extensions
 
713
   
 
714
-</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
 
715
+</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
 
716
     been made with containers.  Those dealing with older SGI-style
 
717
     allocators are dealt with elsewhere.  The remaining ones all deal
 
718
     with bits:
 
719
Index: libstdc++-v3/doc/html/manual/ext_concurrency_use.html
 
720
===================================================================
 
721
--- a/src/libstdc++-v3/doc/html/manual/ext_concurrency_use.html (.../tags/gcc_4_8_2_release)
 
722
+++ b/src/libstdc++-v3/doc/html/manual/ext_concurrency_use.html (.../branches/gcc-4_8-branch)
 
723
@@ -1,5 +1,5 @@
 
724
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
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>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:
 
726
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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:
 
727
 </p><pre class="programlisting">
 
728
 #include &lt;ext/concurrence.h&gt;
 
729
 
 
730
Index: libstdc++-v3/doc/html/manual/ext_io.html
 
731
===================================================================
 
732
--- a/src/libstdc++-v3/doc/html/manual/ext_io.html      (.../tags/gcc_4_8_2_release)
 
733
+++ b/src/libstdc++-v3/doc/html/manual/ext_io.html      (.../branches/gcc-4_8-branch)
 
734
@@ -1,8 +1,8 @@
 
735
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
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>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. 
 
737
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
738
   Extensions
 
739
   
 
740
-</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>
 
741
+</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>
 
742
     Extensions allowing <code class="code">filebuf</code>s to be constructed from
 
743
     "C" types like  FILE*s and file descriptors.
 
744
   </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
 
745
Index: libstdc++-v3/doc/html/manual/termination.html
 
746
===================================================================
 
747
--- a/src/libstdc++-v3/doc/html/manual/termination.html (.../tags/gcc_4_8_2_release)
 
748
+++ b/src/libstdc++-v3/doc/html/manual/termination.html (.../branches/gcc-4_8-branch)
 
749
@@ -1,5 +1,5 @@
 
750
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
751
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
752
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
753
   Support
 
754
   
 
755
 </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>
 
756
Index: libstdc++-v3/doc/html/manual/using_macros.html
 
757
===================================================================
 
758
--- a/src/libstdc++-v3/doc/html/manual/using_macros.html        (.../tags/gcc_4_8_2_release)
 
759
+++ b/src/libstdc++-v3/doc/html/manual/using_macros.html        (.../branches/gcc-4_8-branch)
 
760
@@ -1,5 +1,5 @@
 
761
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
762
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
763
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
764
      All library macros begin with <code class="code">_GLIBCXX_</code>.
 
765
    </p><p>
 
766
      Furthermore, all pre-processor macros, switches, and
 
767
Index: libstdc++-v3/doc/html/manual/concurrency.html
 
768
===================================================================
 
769
--- a/src/libstdc++-v3/doc/html/manual/concurrency.html (.../tags/gcc_4_8_2_release)
 
770
+++ b/src/libstdc++-v3/doc/html/manual/concurrency.html (.../branches/gcc-4_8-branch)
 
771
@@ -1,13 +1,13 @@
 
772
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
773
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
774
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
775
   Concurrency
 
776
   
 
777
 </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="atomics.html">Prev</a> </td><th width="60%" align="center">Part II. 
 
778
     Standard Contents
 
779
   </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. 
 
780
   Concurrency
 
781
-  <a id="idp16404464" class="indexterm"></a>
 
782
-</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>
 
783
+  <a id="idm269999126816" class="indexterm"></a>
 
784
+</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>
 
785
   Facilities for concurrent operation, and control thereof.
 
786
 </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>
 
787
     All items are declared in one of four standard header files.
 
788
Index: libstdc++-v3/doc/html/manual/ext_utilities.html
 
789
===================================================================
 
790
--- a/src/libstdc++-v3/doc/html/manual/ext_utilities.html       (.../tags/gcc_4_8_2_release)
 
791
+++ b/src/libstdc++-v3/doc/html/manual/ext_utilities.html       (.../branches/gcc-4_8-branch)
 
792
@@ -1,5 +1,5 @@
 
793
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
794
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
795
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
796
   Extensions
 
797
   
 
798
 </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>
 
799
Index: libstdc++-v3/doc/html/manual/policy_data_structures.html
 
800
===================================================================
 
801
--- a/src/libstdc++-v3/doc/html/manual/policy_data_structures.html      (.../tags/gcc_4_8_2_release)
 
802
+++ b/src/libstdc++-v3/doc/html/manual/policy_data_structures.html      (.../branches/gcc-4_8-branch)
 
803
@@ -1,8 +1,8 @@
 
804
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
805
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
806
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
807
   Extensions
 
808
   
 
809
-</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">
 
810
+</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">
 
811
            Configuring via Template Parameters
 
812
          </a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.traits">
 
813
            Querying Container Attributes
 
814
@@ -248,7 +248,7 @@
 
815
                these invariants, one must supply some policy that is aware
 
816
                of these changes.  Without this, it would be better to use a
 
817
                linked list (in itself very efficient for these purposes).
 
818
-             </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>
 
819
+             </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>
 
820
            The standard C++ library contains associative containers based on
 
821
            red-black trees and collision-chaining hash tables. These are
 
822
            very useful, but they are not ideal for all types of
 
823
@@ -256,7 +256,7 @@
 
824
          </p><p>
 
825
            The figure below shows the different underlying data structures
 
826
            currently supported in this library.
 
827
-         </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>
 
828
+         </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>
 
829
            A shows a collision-chaining hash-table, B shows a probing
 
830
            hash-table, C shows a red-black tree, D shows a splay tree, E shows
 
831
            a tree based on an ordered vector(implicit in the order of the
 
832
@@ -375,7 +375,7 @@
 
833
              no guarantee that the elements traversed will coincide with the
 
834
              <span class="emphasis"><em>logical</em></span> elements between 1 and 5, as in
 
835
              label B.
 
836
-           </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>
 
837
+           </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>
 
838
              In our opinion, this problem is not caused just because
 
839
              red-black trees are order preserving while
 
840
              collision-chaining hash tables are (generally) not - it
 
841
@@ -426,7 +426,7 @@
 
842
              list, as in the graphic below, label B.  Here the iterators are as
 
843
              light as can be, but the hash-table's operations are more
 
844
              complicated.
 
845
-           </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>
 
846
+           </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>
 
847
              It should be noted that containers based on collision-chaining
 
848
              hash-tables are not the only ones with this type of behavior;
 
849
              many other self-organizing data structures display it as well.
 
850
@@ -442,7 +442,7 @@
 
851
              container. The graphic below shows three cases: A1 and A2 show
 
852
              a red-black tree; B1 and B2 show a probing hash-table; C1 and C2
 
853
              show a collision-chaining hash table.
 
854
-           </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>
 
855
+           </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>
 
856
                  Erasing 5 from A1 yields A2. Clearly, an iterator to 3 can
 
857
                  be de-referenced and incremented. The sequence of iterators
 
858
                  changed, but in a way that is well-defined by the interface.
 
859
@@ -678,7 +678,7 @@
 
860
            typically less structured than an associative container's tree;
 
861
            the third simply uses an associative container. These are
 
862
            shown in the figure below with labels A1 and A2, B, and C.
 
863
-         </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>
 
864
+         </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>
 
865
            No single implementation can completely replace any of the
 
866
            others. Some have better <code class="function">push</code>
 
867
            and <code class="function">pop</code> amortized performance, some have
 
868
@@ -1098,7 +1098,7 @@
 
869
          </span>. </span><span class="publisher"><span class="publishername">
 
870
          Proceedings of International Conference on Very Large Data Bases
 
871
        . </span></span></p></div><div class="biblioentry"><a id="biblio.maverik_lowerbounds"></a><p>[biblio.maverik_lowerbounds] <span class="title"><em>
 
872
-       <a class="link" href="http://magic.aladdin.cs.cmu.edu/2005/08/01/deamortization-part-2-binomial-heaps" target="_top">
 
873
+       <a class="link" href="http://magic.aladdin.cs.cmu.edu/2005/08/01/deamortization-part-2-binomial-heaps/" target="_top">
 
874
          Deamortization - Part 2: Binomial Heaps
 
875
        </a>
 
876
       </em>. </span><span class="date">
 
877
@@ -1190,7 +1190,7 @@
 
878
            </span>. </span><span class="publisher"><span class="publishername">
 
879
          Addison-Wesley Publishing Company
 
880
        . </span></span></p></div><div class="biblioentry"><a id="biblio.nelson96stlpq"></a><p>[biblio.nelson96stlpq] <span class="title"><em>
 
881
-       <a class="link" href="http://www.dogma.net/markn/articles/pq_stl/priority.htm" target="_top">Priority Queues and the STL
 
882
+       <a class="link" href="http://marknelson.us/1996/01/01/priority-queues/" target="_top">Priority Queues and the STL
 
883
        </a>
 
884
       </em>. </span><span class="date">
 
885
        January 1996
 
886
Index: libstdc++-v3/doc/html/manual/ext_iterators.html
 
887
===================================================================
 
888
--- a/src/libstdc++-v3/doc/html/manual/ext_iterators.html       (.../tags/gcc_4_8_2_release)
 
889
+++ b/src/libstdc++-v3/doc/html/manual/ext_iterators.html       (.../branches/gcc-4_8-branch)
 
890
@@ -1,5 +1,5 @@
 
891
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
892
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
893
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
894
   Extensions
 
895
   
 
896
 </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
 
897
Index: libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html
 
898
===================================================================
 
899
--- a/src/libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html       (.../tags/gcc_4_8_2_release)
 
900
+++ b/src/libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html       (.../branches/gcc-4_8-branch)
 
901
@@ -1,5 +1,5 @@
 
902
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
903
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
904
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
905
     The Free List Store (referred to as FLS for the remaining part of this
 
906
     document) is the Global memory pool that is shared by all instances of
 
907
     the bitmapped allocator instantiated for any type. This maintains a
 
908
@@ -75,7 +75,7 @@
 
909
   </p><p>
 
910
     Consider a block of size 64 ints. In memory, it would look like this:
 
911
     (assume a 32-bit system where, size_t is a 32-bit entity).
 
912
-  </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>
 
913
+  </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>
 
914
     The first Column(268) represents the size of the Block in bytes as
 
915
     seen by the Bitmap Allocator. Internally, a global free list is
 
916
     used to keep track of the free blocks used and given back by the
 
917
Index: libstdc++-v3/doc/html/manual/appendix_contributing.html
 
918
===================================================================
 
919
--- a/src/libstdc++-v3/doc/html/manual/appendix_contributing.html       (.../tags/gcc_4_8_2_release)
 
920
+++ b/src/libstdc++-v3/doc/html/manual/appendix_contributing.html       (.../branches/gcc-4_8-branch)
 
921
@@ -1,13 +1,13 @@
 
922
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
923
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
924
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
925
   Contributing
 
926
   
 
927
 </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix.html">Prev</a> </td><th width="60%" align="center">Part IV. 
 
928
   Appendices
 
929
 </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>
 
930
   Contributing
 
931
-  <a id="idp21875168" class="indexterm"></a>
 
932
-</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>
 
933
+  <a id="idm269993657472" class="indexterm"></a>
 
934
+</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>
 
935
   The GNU C++ Library follows an open development model. Active
 
936
   contributors are assigned maintainer-ship responsibility, and given
 
937
   write access to the source repository. First time contributors
 
938
@@ -36,7 +36,7 @@
 
939
           for this group is quite useful.
 
940
       </p></li><li class="listitem"><p>
 
941
          Peruse
 
942
-         the <a class="link" href="http://www.gnu.org/prep/standards" target="_top">GNU
 
943
+         the <a class="link" href="http://www.gnu.org/prep/standards/" target="_top">GNU
 
944
          Coding Standards</a>, and chuckle when you hit the part
 
945
          about <span class="quote">“<span class="quote">Using Languages Other Than C</span>”</span>.
 
946
        </p></li><li class="listitem"><p>
 
947
Index: libstdc++-v3/doc/html/manual/parallel_mode_test.html
 
948
===================================================================
 
949
--- a/src/libstdc++-v3/doc/html/manual/parallel_mode_test.html  (.../tags/gcc_4_8_2_release)
 
950
+++ b/src/libstdc++-v3/doc/html/manual/parallel_mode_test.html  (.../branches/gcc-4_8-branch)
 
951
@@ -1,5 +1,5 @@
 
952
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
953
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
954
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
955
     Both the normal conformance and regression tests and the
 
956
     supplemental performance tests work.
 
957
   </p><p>
 
958
Index: libstdc++-v3/doc/html/manual/profile_mode.html
 
959
===================================================================
 
960
--- a/src/libstdc++-v3/doc/html/manual/profile_mode.html        (.../tags/gcc_4_8_2_release)
 
961
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode.html        (.../branches/gcc-4_8-branch)
 
962
@@ -1,8 +1,8 @@
 
963
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
964
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
965
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
966
   Extensions
 
967
   
 
968
-</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>
 
969
+</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>
 
970
   <span class="emphasis"><em>Goal: </em></span>Give performance improvement advice based on
 
971
   recognition of suboptimal usage patterns of the standard library.
 
972
   </p><p>
 
973
@@ -137,7 +137,7 @@
 
974
    call context.
 
975
    (Environment variable not supported.)
 
976
    </p></li></ul></div><p>
 
977
-  </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">
 
978
+  </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">
 
979
       Perflint: A Context Sensitive Performance Advisor for C++ Programs
 
980
     </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">
 
981
        Proceedings of the 2009 International Symposium on Code Generation
 
982
Index: libstdc++-v3/doc/html/manual/stringstreams.html
 
983
===================================================================
 
984
--- a/src/libstdc++-v3/doc/html/manual/stringstreams.html       (.../tags/gcc_4_8_2_release)
 
985
+++ b/src/libstdc++-v3/doc/html/manual/stringstreams.html       (.../branches/gcc-4_8-branch)
 
986
@@ -1,5 +1,5 @@
 
987
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
988
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
989
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
990
   Input and Output
 
991
   
 
992
 </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>
 
993
Index: libstdc++-v3/doc/html/manual/traits.html
 
994
===================================================================
 
995
--- a/src/libstdc++-v3/doc/html/manual/traits.html      (.../tags/gcc_4_8_2_release)
 
996
+++ b/src/libstdc++-v3/doc/html/manual/traits.html      (.../branches/gcc-4_8-branch)
 
997
@@ -1,5 +1,5 @@
 
998
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
999
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
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>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. 
 
1001
   Utilities
 
1002
   
 
1003
 </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>
 
1004
Index: libstdc++-v3/doc/html/manual/policy_data_structures_ack.html
 
1005
===================================================================
 
1006
--- a/src/libstdc++-v3/doc/html/manual/policy_data_structures_ack.html  (.../tags/gcc_4_8_2_release)
 
1007
+++ b/src/libstdc++-v3/doc/html/manual/policy_data_structures_ack.html  (.../branches/gcc-4_8-branch)
 
1008
@@ -1,10 +1,9 @@
 
1009
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1010
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
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>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>
 
1012
       Written by Ami Tavory and Vladimir Dreizin (IBM Haifa Research
 
1013
       Laboratories), and Benjamin Kosnik (Red Hat).
 
1014
     </p><p>
 
1015
-      This library was partially written at
 
1016
-      <a class="link" href="http://www.haifa.il.ibm.com/" target="_top">IBM's Haifa Research Labs</a>.
 
1017
+      This library was partially written at IBM's Haifa Research Labs.
 
1018
       It is based heavily on policy-based design and uses many useful
 
1019
       techniques from Modern C++ Design: Generic Programming and Design
 
1020
       Patterns Applied by Andrei Alexandrescu.
 
1021
Index: libstdc++-v3/doc/html/manual/associative.html
 
1022
===================================================================
 
1023
--- a/src/libstdc++-v3/doc/html/manual/associative.html (.../tags/gcc_4_8_2_release)
 
1024
+++ b/src/libstdc++-v3/doc/html/manual/associative.html (.../branches/gcc-4_8-branch)
 
1025
@@ -1,5 +1,5 @@
 
1026
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
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>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. 
 
1028
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1029
   Containers
 
1030
   
 
1031
 </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>
 
1032
Index: libstdc++-v3/doc/html/manual/ext_concurrency.html
 
1033
===================================================================
 
1034
--- a/src/libstdc++-v3/doc/html/manual/ext_concurrency.html     (.../tags/gcc_4_8_2_release)
 
1035
+++ b/src/libstdc++-v3/doc/html/manual/ext_concurrency.html     (.../branches/gcc-4_8-branch)
 
1036
@@ -1,8 +1,8 @@
 
1037
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1038
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1039
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1040
   Extensions
 
1041
   
 
1042
-</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>
 
1043
+</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>
 
1044
 contains all the higher-level
 
1045
 constructs for playing with threads. In contrast to the atomics layer,
 
1046
 the concurrence layer consists largely of types. All types are defined within <code class="code">namespace __gnu_cxx</code>.
 
1047
Index: libstdc++-v3/doc/html/manual/support.html
 
1048
===================================================================
 
1049
--- a/src/libstdc++-v3/doc/html/manual/support.html     (.../tags/gcc_4_8_2_release)
 
1050
+++ b/src/libstdc++-v3/doc/html/manual/support.html     (.../branches/gcc-4_8-branch)
 
1051
@@ -1,13 +1,13 @@
 
1052
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1053
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1054
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1055
   Support
 
1056
   
 
1057
 </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. 
 
1058
     Standard Contents
 
1059
   </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. 
 
1060
   Support
 
1061
-  <a id="idp13745936" class="indexterm"></a>
 
1062
-</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>
 
1063
+  <a id="idm270001786944" class="indexterm"></a>
 
1064
+</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>
 
1065
     This part deals with the functions called and objects created
 
1066
     automatically during the course of a program's existence.
 
1067
   </p><p>
 
1068
Index: libstdc++-v3/doc/html/manual/bitmap_allocator.html
 
1069
===================================================================
 
1070
--- a/src/libstdc++-v3/doc/html/manual/bitmap_allocator.html    (.../tags/gcc_4_8_2_release)
 
1071
+++ b/src/libstdc++-v3/doc/html/manual/bitmap_allocator.html    (.../branches/gcc-4_8-branch)
 
1072
@@ -1,8 +1,8 @@
 
1073
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
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 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. 
 
1075
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1076
   Extensions
 
1077
   
 
1078
-</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>
 
1079
+</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>
 
1080
 </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>
 
1081
     As this name suggests, this allocator uses a bit-map to keep track
 
1082
     of the used and unused memory locations for its book-keeping
 
1083
Index: libstdc++-v3/doc/html/manual/license.html
 
1084
===================================================================
 
1085
--- a/src/libstdc++-v3/doc/html/manual/license.html     (.../tags/gcc_4_8_2_release)
 
1086
+++ b/src/libstdc++-v3/doc/html/manual/license.html     (.../branches/gcc-4_8-branch)
 
1087
@@ -1,5 +1,5 @@
 
1088
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1089
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1090
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1091
     There are two licenses affecting GNU libstdc++: one for the code,
 
1092
     and one for the documentation.
 
1093
     </p><p>
 
1094
Index: libstdc++-v3/doc/html/manual/numerics.html
 
1095
===================================================================
 
1096
--- a/src/libstdc++-v3/doc/html/manual/numerics.html    (.../tags/gcc_4_8_2_release)
 
1097
+++ b/src/libstdc++-v3/doc/html/manual/numerics.html    (.../branches/gcc-4_8-branch)
 
1098
@@ -1,13 +1,13 @@
 
1099
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1100
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1101
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1102
   Numerics
 
1103
   
 
1104
 </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="algorithms.html">Prev</a> </td><th width="60%" align="center">Part II. 
 
1105
     Standard Contents
 
1106
   </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. 
 
1107
   Numerics
 
1108
-  <a id="idp16214640" class="indexterm"></a>
 
1109
-</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>
 
1110
+  <a id="idm269999316576" class="indexterm"></a>
 
1111
+</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>
 
1112
   </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>
 
1113
     </p><p>Using <code class="code">complex&lt;&gt;</code> becomes even more comple- er, sorry,
 
1114
       <span class="emphasis"><em>complicated</em></span>, with the not-quite-gratuitously-incompatible
 
1115
Index: libstdc++-v3/doc/html/manual/using_exceptions.html
 
1116
===================================================================
 
1117
--- a/src/libstdc++-v3/doc/html/manual/using_exceptions.html    (.../tags/gcc_4_8_2_release)
 
1118
+++ b/src/libstdc++-v3/doc/html/manual/using_exceptions.html    (.../branches/gcc-4_8-branch)
 
1119
@@ -1,5 +1,5 @@
 
1120
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1121
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1122
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1123
 The C++ language provides language support for stack unwinding
 
1124
 with <code class="literal">try</code> and <code class="literal">catch</code> blocks and
 
1125
 the <code class="literal">throw</code> keyword.
 
1126
@@ -265,7 +265,7 @@
 
1127
   }
 
1128
   catch(...)
 
1129
   { this-&gt;_M_setstate(ios_base::badbit); }
 
1130
-</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>
 
1131
+</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>
 
1132
        <a class="link" href="http://www.opengroup.org/austin/" target="_top">
 
1133
        System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
 
1134
        </a>
 
1135
@@ -274,39 +274,39 @@
 
1136
     . </span><span class="copyright">Copyright © 2008 
 
1137
        The Open Group/The Institute of Electrical and Electronics
 
1138
        Engineers, Inc.
 
1139
-      . </span></p></div><div class="biblioentry"><a id="idp13647696"></a><p><span class="title"><em>
 
1140
+      . </span></p></div><div class="biblioentry"><a id="idm270001885328"></a><p><span class="title"><em>
 
1141
        <a class="link" href="http://www.boost.org/community/error_handling.html" target="_top">
 
1142
        Error and Exception Handling
 
1143
        </a>
 
1144
       </em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams </span>. </span><span class="publisher"><span class="publishername">
 
1145
        Boost
 
1146
-      . </span></span></p></div><div class="biblioentry"><a id="idp13651392"></a><p><span class="title"><em>
 
1147
+      . </span></span></p></div><div class="biblioentry"><a id="idm270001881632"></a><p><span class="title"><em>
 
1148
        <a class="link" href="http://www.boost.org/community/exception_safety.html" target="_top">
 
1149
        Exception-Safety in Generic Components
 
1150
        </a>
 
1151
       </em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams</span>. </span><span class="publisher"><span class="publishername">
 
1152
        Boost
 
1153
-      . </span></span></p></div><div class="biblioentry"><a id="idp13655104"></a><p><span class="title"><em>
 
1154
+      . </span></span></p></div><div class="biblioentry"><a id="idm270001877920"></a><p><span class="title"><em>
 
1155
        <a class="link" href="www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1077.pdf" target="_top">
 
1156
        Standard Library Exception Policy
 
1157
        </a>
 
1158
       </em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
 
1159
        WG21 N1077
 
1160
-      . </span></span></p></div><div class="biblioentry"><a id="idp13658816"></a><p><span class="title"><em>
 
1161
+      . </span></span></p></div><div class="biblioentry"><a id="idm270001874208"></a><p><span class="title"><em>
 
1162
        <a class="link" href="http://gcc.gnu.org/ml/gcc-patches/2001-03/msg00661.html" target="_top">
 
1163
        ia64 c++ abi exception handling
 
1164
        </a>
 
1165
       </em>. </span><span class="author"><span class="firstname">Richard</span> <span class="surname">Henderson</span>. </span><span class="publisher"><span class="publishername">
 
1166
        GNU
 
1167
-      . </span></span></p></div><div class="biblioentry"><a id="idp13662512"></a><p><span class="title"><em>
 
1168
+      . </span></span></p></div><div class="biblioentry"><a id="idm270001870512"></a><p><span class="title"><em>
 
1169
        <a class="link" href="http://www.research.att.com/~bs/3rd_safe.pdf" target="_top">
 
1170
        Appendix E: Standard-Library Exception Safety
 
1171
        </a>
 
1172
-      </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">
 
1173
+      </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">
 
1174
       Exceptional C++
 
1175
     </em>. </span><span class="pagenums">
 
1176
       Exception-Safety Issues and Techniques
 
1177
-    . </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>
 
1178
+    . </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>
 
1179
        <a class="link" href="http://gcc.gnu.org/PR25191" target="_top">
 
1180
       GCC Bug 25191: exception_defines.h #defines try/catch
 
1181
        </a>
 
1182
Index: libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html
 
1183
===================================================================
 
1184
--- a/src/libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html   (.../tags/gcc_4_8_2_release)
 
1185
+++ b/src/libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html   (.../branches/gcc-4_8-branch)
 
1186
@@ -1,5 +1,5 @@
 
1187
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1188
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
 
1189
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
 
1190
     For a given container type in this library, the test creates
 
1191
     an object of the container type and an object of the
 
1192
     corresponding standard type (e.g., <code class="classname">std::set</code>). It
 
1193
Index: libstdc++-v3/doc/html/manual/parallel_mode_design.html
 
1194
===================================================================
 
1195
--- a/src/libstdc++-v3/doc/html/manual/parallel_mode_design.html        (.../tags/gcc_4_8_2_release)
 
1196
+++ b/src/libstdc++-v3/doc/html/manual/parallel_mode_design.html        (.../branches/gcc-4_8-branch)
 
1197
@@ -1,5 +1,5 @@
 
1198
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1199
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1200
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1201
   </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>
 
1202
 All parallel algorithms are intended to have signatures that are
 
1203
 equivalent to the ISO C++ algorithms replaced. For instance, the
 
1204
Index: libstdc++-v3/doc/html/manual/abi.html
 
1205
===================================================================
 
1206
--- a/src/libstdc++-v3/doc/html/manual/abi.html (.../tags/gcc_4_8_2_release)
 
1207
+++ b/src/libstdc++-v3/doc/html/manual/abi.html (.../branches/gcc-4_8-branch)
 
1208
@@ -1,5 +1,5 @@
 
1209
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1210
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1211
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1212
   Porting and Maintenance
 
1213
   
 
1214
 </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>
 
1215
@@ -493,39 +493,39 @@
 
1216
        <a class="link" href="http://www.codesourcery.com/cxx-abi/" target="_top">
 
1217
          C++ ABI Summary
 
1218
        </a>
 
1219
-      </em>. </span></p></div><div class="biblioentry"><a id="idp22945936"></a><p><span class="title"><em>
 
1220
+      </em>. </span></p></div><div class="biblioentry"><a id="idm269992586624"></a><p><span class="title"><em>
 
1221
        <a class="link" href="http://www.intel.com/cd/software/products/asmo-na/eng/284736.htm" target="_top">
 
1222
        Intel Compilers for Linux Compatibility with the GNU Compilers
 
1223
        </a>
 
1224
-      </em>. </span></p></div><div class="biblioentry"><a id="idp22947792"></a><p><span class="title"><em>
 
1225
+      </em>. </span></p></div><div class="biblioentry"><a id="idm269992584768"></a><p><span class="title"><em>
 
1226
        <a class="link" href="http://download.oracle.com/docs/cd/E19963-01/html/819-0690/index.html" target="_top">
 
1227
        Linker and Libraries Guide (document 819-0690)
 
1228
        </a>
 
1229
-      </em>. </span></p></div><div class="biblioentry"><a id="idp22949632"></a><p><span class="title"><em>
 
1230
+      </em>. </span></p></div><div class="biblioentry"><a id="idm269992582928"></a><p><span class="title"><em>
 
1231
        <a class="link" href="http://download.oracle.com/docs/cd/E19422-01/819-3689/index.html" target="_top">
 
1232
       Sun Studio 11: C++ Migration Guide (document 819-3689)
 
1233
        </a>
 
1234
-      </em>. </span></p></div><div class="biblioentry"><a id="idp22951488"></a><p><span class="title"><em>
 
1235
+      </em>. </span></p></div><div class="biblioentry"><a id="idm269992581072"></a><p><span class="title"><em>
 
1236
        <a class="link" href="http://www.akkadia.org/drepper/dsohowto.pdf" target="_top">
 
1237
       How to Write Shared Libraries
 
1238
        </a>
 
1239
-      </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>
 
1240
+      </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>
 
1241
        <a class="link" href="http://www.arm.com/miscPDFs/8033.pdf" target="_top">
 
1242
       C++ ABI for the ARM Architecture
 
1243
        </a>
 
1244
-      </em>. </span></p></div><div class="biblioentry"><a id="idp22956736"></a><p><span class="title"><em>
 
1245
+      </em>. </span></p></div><div class="biblioentry"><a id="idm269992575824"></a><p><span class="title"><em>
 
1246
        <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1976.html" target="_top">
 
1247
       Dynamic Shared Objects: Survey and Issues
 
1248
        </a>
 
1249
       </em>. </span><span class="subtitle">
 
1250
       ISO C++ J16/06-0046
 
1251
-    . </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>
 
1252
+    . </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>
 
1253
        <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2013.html" target="_top">
 
1254
        Versioning With Namespaces
 
1255
        </a>
 
1256
       </em>. </span><span class="subtitle">
 
1257
       ISO C++ J16/06-0083
 
1258
-    . </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>
 
1259
+    . </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>
 
1260
        <a class="link" href="http://syrcose.ispras.ru/2009/files/SYRCoSE2009-CfP.pdf" target="_top">
 
1261
       Binary Compatibility of Shared Libraries Implemented in C++
 
1262
       on GNU/Linux Systems
 
1263
Index: libstdc++-v3/doc/html/manual/intro.html
 
1264
===================================================================
 
1265
--- a/src/libstdc++-v3/doc/html/manual/intro.html       (.../tags/gcc_4_8_2_release)
 
1266
+++ b/src/libstdc++-v3/doc/html/manual/intro.html       (.../branches/gcc-4_8-branch)
 
1267
@@ -1,8 +1,8 @@
 
1268
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1269
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1270
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1271
   Introduction
 
1272
   
 
1273
 </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. 
 
1274
   Introduction
 
1275
-  <a id="idp9040416" class="indexterm"></a>
 
1276
-</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>
 
1277
\ No newline at end of file
 
1278
+  <a id="idm270013458800" class="indexterm"></a>
 
1279
+</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>
 
1280
\ No newline at end of file
 
1281
Index: libstdc++-v3/doc/html/manual/profile_mode_api.html
 
1282
===================================================================
 
1283
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_api.html    (.../tags/gcc_4_8_2_release)
 
1284
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_api.html    (.../branches/gcc-4_8-branch)
 
1285
@@ -1,5 +1,5 @@
 
1286
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1287
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1288
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1289
   Many large projects use their own data structures instead of the ones in the
 
1290
   standard library.  If these data structures are similar in functionality
 
1291
   to the standard library, they can be instrumented with the same hooks
 
1292
Index: libstdc++-v3/doc/html/manual/atomics.html
 
1293
===================================================================
 
1294
--- a/src/libstdc++-v3/doc/html/manual/atomics.html     (.../tags/gcc_4_8_2_release)
 
1295
+++ b/src/libstdc++-v3/doc/html/manual/atomics.html     (.../branches/gcc-4_8-branch)
 
1296
@@ -1,13 +1,13 @@
 
1297
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1298
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1299
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1300
   Atomics
 
1301
   
 
1302
 </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. 
 
1303
     Standard Contents
 
1304
   </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. 
 
1305
   Atomics
 
1306
-  <a id="idp16390640" class="indexterm"></a>
 
1307
-</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>
 
1308
+  <a id="idm269999140704" class="indexterm"></a>
 
1309
+</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>
 
1310
   Facilities for atomic operations.
 
1311
 </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>
 
1312
     All items are declared in the standard header
 
1313
Index: libstdc++-v3/doc/html/manual/internals.html
 
1314
===================================================================
 
1315
--- a/src/libstdc++-v3/doc/html/manual/internals.html   (.../tags/gcc_4_8_2_release)
 
1316
+++ b/src/libstdc++-v3/doc/html/manual/internals.html   (.../branches/gcc-4_8-branch)
 
1317
@@ -1,5 +1,5 @@
 
1318
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1319
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1320
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1321
   Porting and Maintenance
 
1322
   
 
1323
 </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>
 
1324
Index: libstdc++-v3/doc/html/manual/policy_data_structures_using.html
 
1325
===================================================================
 
1326
--- a/src/libstdc++-v3/doc/html/manual/policy_data_structures_using.html        (.../tags/gcc_4_8_2_release)
 
1327
+++ b/src/libstdc++-v3/doc/html/manual/policy_data_structures_using.html        (.../branches/gcc-4_8-branch)
 
1328
@@ -1,5 +1,5 @@
 
1329
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1330
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
 
1331
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
 
1332
       other libraries except the standard C++ library . All classes are
 
1333
       defined in namespace <code class="code">__gnu_pbds</code>. The library internally
 
1334
       uses macros beginning with <code class="code">PB_DS</code>, but
 
1335
@@ -61,7 +61,7 @@
 
1336
        In addition, there are the following diagnostics classes,
 
1337
        used to report errors specific to this library's data
 
1338
        structures.
 
1339
-      </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>
 
1340
+      </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>
 
1341
          For the most part, the policy-based containers containers in
 
1342
          namespace <code class="literal">__gnu_pbds</code> have the same interface as
 
1343
          the equivalent containers in the standard C++ library, except for
 
1344
Index: libstdc++-v3/doc/html/manual/bugs.html
 
1345
===================================================================
 
1346
--- a/src/libstdc++-v3/doc/html/manual/bugs.html        (.../tags/gcc_4_8_2_release)
 
1347
+++ b/src/libstdc++-v3/doc/html/manual/bugs.html        (.../branches/gcc-4_8-branch)
 
1348
@@ -1,5 +1,5 @@
 
1349
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1350
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1351
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1352
       Information on known bugs, details on efforts to fix them, and
 
1353
       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>,
 
1354
       with the category set to <code class="literal">libstdc++</code>.
 
1355
Index: libstdc++-v3/doc/html/manual/parallel_mode_using.html
 
1356
===================================================================
 
1357
--- a/src/libstdc++-v3/doc/html/manual/parallel_mode_using.html (.../tags/gcc_4_8_2_release)
 
1358
+++ b/src/libstdc++-v3/doc/html/manual/parallel_mode_using.html (.../branches/gcc-4_8-branch)
 
1359
@@ -1,5 +1,5 @@
 
1360
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1361
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1362
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1363
   Any use of parallel functionality requires additional compiler
 
1364
   and runtime support, in particular support for OpenMP. Adding this support is
 
1365
   not difficult: just compile your application with the compiler
 
1366
@@ -62,4 +62,4 @@
 
1367
 flags for atomic operations.)
 
1368
 </p><p> The following table provides the names and headers of all the
 
1369
   parallel algorithms that can be used in a similar manner:
 
1370
-</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>
 
1371
\ No newline at end of file
 
1372
+</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>
 
1373
\ No newline at end of file
 
1374
Index: libstdc++-v3/doc/html/manual/ext_numerics.html
 
1375
===================================================================
 
1376
--- a/src/libstdc++-v3/doc/html/manual/ext_numerics.html        (.../tags/gcc_4_8_2_release)
 
1377
+++ b/src/libstdc++-v3/doc/html/manual/ext_numerics.html        (.../branches/gcc-4_8-branch)
 
1378
@@ -1,5 +1,5 @@
 
1379
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1380
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1381
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1382
   Extensions
 
1383
   
 
1384
 </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>,
 
1385
Index: libstdc++-v3/doc/html/manual/parallel_mode_semantics.html
 
1386
===================================================================
 
1387
--- a/src/libstdc++-v3/doc/html/manual/parallel_mode_semantics.html     (.../tags/gcc_4_8_2_release)
 
1388
+++ b/src/libstdc++-v3/doc/html/manual/parallel_mode_semantics.html     (.../branches/gcc-4_8-branch)
 
1389
@@ -1,5 +1,5 @@
 
1390
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1391
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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,
 
1392
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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,
 
1393
 i.e. user-defined functors must not throw exceptions.
 
1394
 Also, the order of execution is not guaranteed for some functions, of course.
 
1395
 Therefore, user-defined functors should not have any concurrent side effects.
 
1396
Index: libstdc++-v3/doc/html/manual/std_contents.html
 
1397
===================================================================
 
1398
--- a/src/libstdc++-v3/doc/html/manual/std_contents.html        (.../tags/gcc_4_8_2_release)
 
1399
+++ b/src/libstdc++-v3/doc/html/manual/std_contents.html        (.../branches/gcc-4_8-branch)
 
1400
@@ -1,9 +1,9 @@
 
1401
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1402
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1403
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1404
     Standard Contents
 
1405
   </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. 
 
1406
     Standard Contents
 
1407
-  </h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="support.html">4. 
 
1408
+  </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. 
 
1409
   Support
 
1410
   
 
1411
 </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. 
 
1412
@@ -12,13 +12,13 @@
 
1413
 </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. 
 
1414
   Utilities
 
1415
   
 
1416
-</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. 
 
1417
+</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. 
 
1418
   Strings
 
1419
   
 
1420
 </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. 
 
1421
   Localization
 
1422
   
 
1423
-</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. 
 
1424
+</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. 
 
1425
   Containers
 
1426
   
 
1427
 </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. 
 
1428
Index: libstdc++-v3/doc/html/manual/appendix.html
 
1429
===================================================================
 
1430
--- a/src/libstdc++-v3/doc/html/manual/appendix.html    (.../tags/gcc_4_8_2_release)
 
1431
+++ b/src/libstdc++-v3/doc/html/manual/appendix.html    (.../branches/gcc-4_8-branch)
 
1432
@@ -1,9 +1,9 @@
 
1433
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1434
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1435
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1436
   Appendices
 
1437
 </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. 
 
1438
   Appendices
 
1439
-</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. 
 
1440
+</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. 
 
1441
   Contributing
 
1442
   
 
1443
 </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. 
 
1444
Index: libstdc++-v3/doc/html/manual/memory.html
 
1445
===================================================================
 
1446
--- a/src/libstdc++-v3/doc/html/manual/memory.html      (.../tags/gcc_4_8_2_release)
 
1447
+++ b/src/libstdc++-v3/doc/html/manual/memory.html      (.../branches/gcc-4_8-branch)
 
1448
@@ -1,5 +1,5 @@
 
1449
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1450
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1451
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1452
   Utilities
 
1453
   
 
1454
 </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>
 
1455
@@ -92,7 +92,7 @@
 
1456
     or loading and unloading shared objects in memory. As such, using
 
1457
     caching allocators on systems that do not support
 
1458
     <code class="function">abi::__cxa_atexit</code> is not recommended.
 
1459
-  </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>
 
1460
+  </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>
 
1461
      The only allocator interface that
 
1462
      is supported is the standard C++ interface. As such, all STL
 
1463
      containers have been adjusted, and all external allocators have
 
1464
@@ -105,7 +105,7 @@
 
1465
    </p><p>
 
1466
      The base class that <code class="classname">allocator</code> is derived from
 
1467
      may not be user-configurable.
 
1468
-</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>
 
1469
+</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>
 
1470
      It's difficult to pick an allocation strategy that will provide
 
1471
    maximum utility, without excessively penalizing some behavior. In
 
1472
    fact, it's difficult just deciding which typical actions to measure
 
1473
@@ -142,7 +142,7 @@
 
1474
      The current default choice for
 
1475
      <code class="classname">allocator</code> is
 
1476
      <code class="classname">__gnu_cxx::new_allocator</code>.
 
1477
-   </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>
 
1478
+   </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>
 
1479
       In use, <code class="classname">allocator</code> may allocate and
 
1480
       deallocate using implementation-specific strategies and
 
1481
       heuristics. Because of this, a given call to an allocator object's
 
1482
@@ -309,33 +309,33 @@
 
1483
         of the used and unused memory locations. It has its own
 
1484
         <a class="link" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator">chapter</a>
 
1485
          in the documentation.
 
1486
-       </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">
 
1487
+       </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">
 
1488
     ISO/IEC 14882:1998 Programming languages - C++
 
1489
     </em>. </span>
 
1490
       isoc++_1998
 
1491
-    <span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry"><a id="idp13994688"></a><p><span class="title"><em>
 
1492
-       <a class="link" href="http://www.drdobbs.com/cpp/184403759" target="_top">
 
1493
+    <span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry"><a id="idm270000082384"></a><p><span class="title"><em>
 
1494
+       <a class="link" href="http://www.drdobbs.com/the-standard-librarian-what-are-allocato/184403759" target="_top">
 
1495
       The Standard Librarian: What Are Allocators Good For?
 
1496
        </a>
 
1497
       </em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
 
1498
        C/C++ Users Journal
 
1499
-      . </span></span></p></div><div class="biblioentry"><a id="idp13998416"></a><p><span class="title"><em>
 
1500
+      . </span></span></p></div><div class="biblioentry"><a id="idm270000078608"></a><p><span class="title"><em>
 
1501
        <a class="link" href="http://www.hoard.org/" target="_top">
 
1502
       The Hoard Memory Allocator
 
1503
        </a>
 
1504
-      </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>
 
1505
+      </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>
 
1506
        <a class="link" href="http://people.cs.umass.edu/~emery/pubs/berger-oopsla2002.pdf" target="_top">
 
1507
       Reconsidering Custom Memory Allocation
 
1508
        </a>
 
1509
-      </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>
 
1510
+      </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>
 
1511
        <a class="link" href="http://www.angelikalanger.com/Articles/C++Report/Allocators/Allocators.html" target="_top">
 
1512
       Allocator Types
 
1513
        </a>
 
1514
       </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">
 
1515
        C/C++ Users Journal
 
1516
-      . </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">
 
1517
+      . </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">
 
1518
        Addison Wesley
 
1519
-      . </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
 
1520
+      . </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
 
1521
    happen with misuse of the <code class="classname">auto_ptr</code> class
 
1522
    template (called <acronym class="acronym">AP</acronym> here) would take some
 
1523
    time. Suffice it to say that the use of <acronym class="acronym">AP</acronym>
 
1524
@@ -445,7 +445,7 @@
 
1525
 Derived classes override those functions to destroy resources in a context
 
1526
 where the correct dynamic type is known. This is an application of the
 
1527
 technique known as type erasure.
 
1528
-  </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>
 
1529
+  </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>
 
1530
 A <code class="classname">shared_ptr&lt;T&gt;</code> contains a pointer of
 
1531
 type <span class="type">T*</span> and an object of type
 
1532
 <code class="classname">__shared_count</code>. The shared_count contains a
 
1533
@@ -492,9 +492,9 @@
 
1534
 aliasing constructor, make_shared &amp; allocate_shared. Additionally,
 
1535
 the constructors taking <code class="classname">auto_ptr</code> parameters are
 
1536
 deprecated in C++11 mode.
 
1537
-    </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15534784"></a>Thread Safety</h5></div></div></div><p>
 
1538
+    </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm269999996832"></a>Thread Safety</h5></div></div></div><p>
 
1539
 The
 
1540
-<a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm#ThreadSafety" target="_top">Thread
 
1541
+<a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm#ThreadSafety" target="_top">Thread
 
1542
 Safety</a> section of the Boost shared_ptr documentation says "shared_ptr
 
1543
 objects offer the same level of thread safety as built-in types."
 
1544
 The implementation must ensure that concurrent updates to separate shared_ptr
 
1545
@@ -537,7 +537,7 @@
 
1546
 shared_ptr in libstdc++ the compiler and library are fixed, which
 
1547
 makes things much simpler: we have an atomic CAS or we don't, see Lock
 
1548
 Policy below for details.
 
1549
-</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>
 
1550
+</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>
 
1551
     </p><p>
 
1552
 There is a single <code class="classname">_Sp_counted_base</code> class,
 
1553
 which is a template parameterized on the enum
 
1554
@@ -578,7 +578,7 @@
 
1555
        <code class="filename">ext/atomicity.h</code>, which detect if the program
 
1556
        is multi-threaded.  If only one thread of execution exists in
 
1557
        the program then less expensive non-atomic operations are used.
 
1558
-     </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>,
 
1559
+     </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>,
 
1560
 <code class="code">const_pointer_cast</code></span></dt><dd><p>
 
1561
 As noted in N2351, these functions can be implemented non-intrusively using
 
1562
 the alias constructor.  However the aliasing constructor is only available
 
1563
@@ -611,13 +611,13 @@
 
1564
 As well as the extra constructors, this implementation also needs some
 
1565
 members of _Sp_counted_deleter to be protected where they could otherwise
 
1566
 be private.
 
1567
-    </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>
 
1568
+    </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>
 
1569
       Examples of use can be found in the testsuite, under
 
1570
       <code class="filename">testsuite/tr1/2_general_utilities/shared_ptr</code>,
 
1571
       <code class="filename">testsuite/20_util/shared_ptr</code>
 
1572
       and
 
1573
       <code class="filename">testsuite/20_util/weak_ptr</code>.
 
1574
-    </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15576640"></a>Unresolved Issues</h5></div></div></div><p>
 
1575
+    </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm269999954912"></a>Unresolved Issues</h5></div></div></div><p>
 
1576
       The <span class="emphasis"><em><code class="classname">shared_ptr</code> atomic access</em></span>
 
1577
       clause in the C++11 standard is not implemented in GCC.
 
1578
     </p><p>
 
1579
@@ -658,25 +658,25 @@
 
1580
     code to work with, Peter Dimov in particular for his help and
 
1581
     invaluable advice on thread safety.  Phillip Jordan and Paolo
 
1582
     Carlini for the lock policy implementation.
 
1583
-  </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>
 
1584
+  </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>
 
1585
        <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2351.htm" target="_top">
 
1586
       Improving shared_ptr for C++0x, Revision 2
 
1587
        </a>
 
1588
       </em>. </span><span class="subtitle">
 
1589
       N2351
 
1590
-    . </span></p></div><div class="biblioentry"><a id="idp15590224"></a><p><span class="title"><em>
 
1591
+    . </span></p></div><div class="biblioentry"><a id="idm269999941392"></a><p><span class="title"><em>
 
1592
        <a class="link" href="http://open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2456.html" target="_top">
 
1593
       C++ Standard Library Active Issues List
 
1594
        </a>
 
1595
       </em>. </span><span class="subtitle">
 
1596
       N2456
 
1597
-    . </span></p></div><div class="biblioentry"><a id="idp15592512"></a><p><span class="title"><em>
 
1598
+    . </span></p></div><div class="biblioentry"><a id="idm269999939104"></a><p><span class="title"><em>
 
1599
        <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2461.pdf" target="_top">
 
1600
       Working Draft, Standard for Programming Language C++
 
1601
        </a>
 
1602
       </em>. </span><span class="subtitle">
 
1603
       N2461
 
1604
-    . </span></p></div><div class="biblioentry"><a id="idp15594816"></a><p><span class="title"><em>
 
1605
+    . </span></p></div><div class="biblioentry"><a id="idm269999936800"></a><p><span class="title"><em>
 
1606
        <a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">
 
1607
       Boost C++ Libraries documentation, shared_ptr
 
1608
        </a>
 
1609
Index: libstdc++-v3/doc/html/manual/api.html
 
1610
===================================================================
 
1611
--- a/src/libstdc++-v3/doc/html/manual/api.html (.../tags/gcc_4_8_2_release)
 
1612
+++ b/src/libstdc++-v3/doc/html/manual/api.html (.../branches/gcc-4_8-branch)
 
1613
@@ -1,5 +1,5 @@
 
1614
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1615
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1616
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1617
   Porting and Maintenance
 
1618
   
 
1619
 </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>
 
1620
@@ -77,11 +77,11 @@
 
1621
    <span class="type">__alloc</span> to select an underlying allocator that
 
1622
    satisfied memory allocation requests. The selection of this
 
1623
    underlying allocator was not user-configurable.
 
1624
-   </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
 
1625
+   </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
 
1626
    of available allocators. All of these new allocators are
 
1627
    standard-style. The following table includes details, along with
 
1628
    the first released version of GCC that included the extension allocator.
 
1629
-   </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>
 
1630
+   </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>
 
1631
 Debug mode first appears.
 
1632
 </p><p>
 
1633
 Precompiled header support <acronym class="acronym">PCH</acronym> support.
 
1634
Index: libstdc++-v3/doc/html/manual/source_organization.html
 
1635
===================================================================
 
1636
--- a/src/libstdc++-v3/doc/html/manual/source_organization.html (.../tags/gcc_4_8_2_release)
 
1637
+++ b/src/libstdc++-v3/doc/html/manual/source_organization.html (.../branches/gcc-4_8-branch)
 
1638
@@ -1,5 +1,5 @@
 
1639
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1640
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1641
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1642
   Contributing
 
1643
   
 
1644
 </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>
 
1645
Index: libstdc++-v3/doc/html/manual/fstreams.html
 
1646
===================================================================
 
1647
--- a/src/libstdc++-v3/doc/html/manual/fstreams.html    (.../tags/gcc_4_8_2_release)
 
1648
+++ b/src/libstdc++-v3/doc/html/manual/fstreams.html    (.../branches/gcc-4_8-branch)
 
1649
@@ -1,5 +1,5 @@
 
1650
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1651
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1652
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1653
   Input and Output
 
1654
   
 
1655
 </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>
 
1656
Index: libstdc++-v3/doc/html/manual/ext_demangling.html
 
1657
===================================================================
 
1658
--- a/src/libstdc++-v3/doc/html/manual/ext_demangling.html      (.../tags/gcc_4_8_2_release)
 
1659
+++ b/src/libstdc++-v3/doc/html/manual/ext_demangling.html      (.../branches/gcc-4_8-branch)
 
1660
@@ -1,5 +1,5 @@
 
1661
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
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>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. 
 
1663
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1664
   Extensions
 
1665
   
 
1666
 </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>
 
1667
Index: libstdc++-v3/doc/html/manual/ext_preface.html
 
1668
===================================================================
 
1669
--- a/src/libstdc++-v3/doc/html/manual/ext_preface.html (.../tags/gcc_4_8_2_release)
 
1670
+++ b/src/libstdc++-v3/doc/html/manual/ext_preface.html (.../branches/gcc-4_8-branch)
 
1671
@@ -1,8 +1,8 @@
 
1672
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
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></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. 
 
1674
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1675
   Extensions
 
1676
   
 
1677
-</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>
 
1678
+</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>
 
1679
   Here we will make an attempt at describing the non-Standard
 
1680
   extensions to the library.  Some of these are from older versions of
 
1681
   standard library components, namely SGI's STL, and some of these are
 
1682
Index: libstdc++-v3/doc/html/manual/concept_checking.html
 
1683
===================================================================
 
1684
--- a/src/libstdc++-v3/doc/html/manual/concept_checking.html    (.../tags/gcc_4_8_2_release)
 
1685
+++ b/src/libstdc++-v3/doc/html/manual/concept_checking.html    (.../branches/gcc-4_8-branch)
 
1686
@@ -1,5 +1,5 @@
 
1687
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1688
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1689
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1690
   Diagnostics
 
1691
   
 
1692
 </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>
 
1693
Index: libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html
 
1694
===================================================================
 
1695
--- a/src/libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html       (.../tags/gcc_4_8_2_release)
 
1696
+++ b/src/libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html       (.../branches/gcc-4_8-branch)
 
1697
@@ -1,5 +1,5 @@
 
1698
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1699
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1700
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1701
 In the ST example we never used the thread_id variable present in each block.
 
1702
 Let's start by explaining the purpose of this in a MT application.
 
1703
 </p><p>
 
1704
Index: libstdc++-v3/doc/html/manual/ext_compile_checks.html
 
1705
===================================================================
 
1706
--- a/src/libstdc++-v3/doc/html/manual/ext_compile_checks.html  (.../tags/gcc_4_8_2_release)
 
1707
+++ b/src/libstdc++-v3/doc/html/manual/ext_compile_checks.html  (.../branches/gcc-4_8-branch)
 
1708
@@ -1,5 +1,5 @@
 
1709
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1710
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1711
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1712
   Extensions
 
1713
   
 
1714
 </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>
 
1715
Index: libstdc++-v3/doc/html/manual/strings.html
 
1716
===================================================================
 
1717
--- a/src/libstdc++-v3/doc/html/manual/strings.html     (.../tags/gcc_4_8_2_release)
 
1718
+++ b/src/libstdc++-v3/doc/html/manual/strings.html     (.../branches/gcc-4_8-branch)
 
1719
@@ -1,13 +1,13 @@
 
1720
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1721
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1722
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1723
   Strings
 
1724
   
 
1725
 </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="traits.html">Prev</a> </td><th width="60%" align="center">Part II. 
 
1726
     Standard Contents
 
1727
   </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. 
 
1728
   Strings
 
1729
-  <a id="idp15603440" class="indexterm"></a>
 
1730
-</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>
 
1731
+  <a id="idm269999928112" class="indexterm"></a>
 
1732
+</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>
 
1733
       Here are Standard, simple, and portable ways to perform common
 
1734
       transformations on a <code class="code">string</code> instance, such as
 
1735
       "convert to all upper case." The word transformations
 
1736
Index: libstdc++-v3/doc/html/manual/containers_and_c.html
 
1737
===================================================================
 
1738
--- a/src/libstdc++-v3/doc/html/manual/containers_and_c.html    (.../tags/gcc_4_8_2_release)
 
1739
+++ b/src/libstdc++-v3/doc/html/manual/containers_and_c.html    (.../branches/gcc-4_8-branch)
 
1740
@@ -1,5 +1,5 @@
 
1741
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1742
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1743
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1744
   Containers
 
1745
   
 
1746
 </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>
 
1747
Index: libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html
 
1748
===================================================================
 
1749
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html    (.../tags/gcc_4_8_2_release)
 
1750
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html    (.../branches/gcc-4_8-branch)
 
1751
@@ -1,5 +1,5 @@
 
1752
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1753
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1754
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1755
   The table below presents all the diagnostics we intend to implement.
 
1756
   Each diagnostic has a corresponding compile time switch
 
1757
   <code class="code">-D_GLIBCXX_PROFILE_&lt;diagnostic&gt;</code>.
 
1758
@@ -17,7 +17,7 @@
 
1759
   A high accuracy means that the diagnostic is unlikely to be wrong.
 
1760
   These grades are not perfect.  They are just meant to guide users with
 
1761
   specific needs or time budgets.
 
1762
-  </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">
 
1763
+  </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">
 
1764
     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">
 
1765
     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">
 
1766
     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">
 
1767
@@ -374,7 +374,7 @@
 
1768
   Quick Sort for a particular call context.
 
1769
   </p></li><li class="listitem"><p><span class="emphasis"><em>Fundamentals:</em></span>
 
1770
   See papers:
 
1771
-  <a class="link" href="http://portal.acm.org/citation.cfm?doid=1065944.1065981" target="_top">
 
1772
+  <a class="link" href="https://dl.acm.org/citation.cfm?doid=1065944.1065981" target="_top">
 
1773
   A framework for adaptive algorithm selection in STAPL</a> and
 
1774
   <a class="link" href="http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=4228227" target="_top">
 
1775
   Optimizing Sorting with Machine Learning Algorithms</a>.
 
1776
@@ -500,7 +500,7 @@
 
1777
   Keep a shadow for each container.  Record iterator dereferences and
 
1778
   container member accesses.  Issue advice for elements referenced by
 
1779
   multiple threads.
 
1780
-  See paper: <a class="link" href="http://portal.acm.org/citation.cfm?id=207110.207148" target="_top">
 
1781
+  See paper: <a class="link" href="https://dl.acm.org/citation.cfm?id=207110.207148" target="_top">
 
1782
   The LRPD test: speculative run-time parallelization of loops with
 
1783
   privatization and reduction parallelization</a>.
 
1784
   </p></li><li class="listitem"><p><span class="emphasis"><em>Cost model:</em></span>
 
1785
Index: libstdc++-v3/doc/html/manual/ext_concurrency_impl.html
 
1786
===================================================================
 
1787
--- a/src/libstdc++-v3/doc/html/manual/ext_concurrency_impl.html        (.../tags/gcc_4_8_2_release)
 
1788
+++ b/src/libstdc++-v3/doc/html/manual/ext_concurrency_impl.html        (.../branches/gcc-4_8-branch)
 
1789
@@ -1,5 +1,5 @@
 
1790
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1791
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
 
1792
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
 
1793
 implemented via compiler intrinsics (if the underlying host is
 
1794
 capable) or by library fallbacks.</p><p>Compiler intrinsics (builtins) are always preferred.  However, as
 
1795
 the compiler builtins for atomics are not universally implemented,
 
1796
Index: libstdc++-v3/doc/html/manual/io_and_c.html
 
1797
===================================================================
 
1798
--- a/src/libstdc++-v3/doc/html/manual/io_and_c.html    (.../tags/gcc_4_8_2_release)
 
1799
+++ b/src/libstdc++-v3/doc/html/manual/io_and_c.html    (.../branches/gcc-4_8-branch)
 
1800
@@ -1,5 +1,5 @@
 
1801
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1802
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1803
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1804
   Input and Output
 
1805
   
 
1806
 </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>
 
1807
Index: libstdc++-v3/doc/html/manual/documentation_hacking.html
 
1808
===================================================================
 
1809
--- a/src/libstdc++-v3/doc/html/manual/documentation_hacking.html       (.../tags/gcc_4_8_2_release)
 
1810
+++ b/src/libstdc++-v3/doc/html/manual/documentation_hacking.html       (.../branches/gcc-4_8-branch)
 
1811
@@ -1,5 +1,5 @@
 
1812
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1813
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1814
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1815
   Porting and Maintenance
 
1816
   
 
1817
 </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>
 
1818
@@ -112,7 +112,7 @@
 
1819
       supported, and are always aliased to dummy rules. These
 
1820
       unsupported formats are: <span class="emphasis"><em>info</em></span>,
 
1821
       <span class="emphasis"><em>ps</em></span>, and <span class="emphasis"><em>dvi</em></span>.
 
1822
-    </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>
 
1823
+    </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>
 
1824
        Prerequisite tools are Bash 2.0 or later,
 
1825
        <a class="link" href="http://www.doxygen.org/" target="_top">Doxygen</a>, and
 
1826
        the <a class="link" href="http://www.gnu.org/software/coreutils/" target="_top">GNU
 
1827
@@ -232,9 +232,8 @@
 
1828
        member functions.
 
1829
       </p><p>
 
1830
        Some commentary to accompany
 
1831
-       the first list in the <a class="link" href="http://www.stack.nl/~dimitri/doxygen/docblocks.html" target="_top">Special
 
1832
-       Documentation Blocks</a> section of
 
1833
-       the Doxygen manual:
 
1834
+       the first list in the <a class="link" href="http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html" target="_top">Special
 
1835
+       Documentation Blocks</a> section of the Doxygen manual:
 
1836
       </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>
 
1837
            ...not the Qt style. The intermediate *'s are preferred.
 
1838
          </p></li><li class="listitem"><p>
 
1839
@@ -310,7 +309,7 @@
 
1840
        writing Doxygen comments. Single and double quotes, and
 
1841
        separators in filenames are two common trouble spots. When in
 
1842
        doubt, consult the following table.
 
1843
-      </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>
 
1844
+      </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>
 
1845
        Editing the DocBook sources requires an XML editor. Many
 
1846
        exist: some notable options
 
1847
        include <span class="command"><strong>emacs</strong></span>, <span class="application">Kate</span>,
 
1848
@@ -520,11 +519,11 @@
 
1849
        <a class="link" href="http://www.docbook.org/tdg/en/html/part2.html" target="_top">online</a>.
 
1850
        An incomplete reference for HTML to Docbook conversion is
 
1851
        detailed in the table below.
 
1852
-      </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;,
 
1853
+      </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;,
 
1854
        &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>
 
1855
   And examples of detailed markup for which there are no real HTML
 
1856
   equivalents are listed in the table below.
 
1857
-</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">
 
1858
+</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">
 
1859
        <p>&lt;function&gt;clear()&lt;/function&gt;</p>
 
1860
        <p>&lt;function&gt;fs.clear()&lt;/function&gt;</p>
 
1861
       </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">
 
1862
Index: libstdc++-v3/doc/html/manual/extensions.html
 
1863
===================================================================
 
1864
--- a/src/libstdc++-v3/doc/html/manual/extensions.html  (.../tags/gcc_4_8_2_release)
 
1865
+++ b/src/libstdc++-v3/doc/html/manual/extensions.html  (.../branches/gcc-4_8-branch)
 
1866
@@ -1,11 +1,11 @@
 
1867
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1868
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1869
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1870
   Extensions
 
1871
   
 
1872
 </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. 
 
1873
   Extensions
 
1874
-  <a id="idp16423680" class="indexterm"></a>
 
1875
-</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
 
1876
+  <a id="idm269999107536" class="indexterm"></a>
 
1877
+</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
 
1878
     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">
 
1879
            Configuring via Template Parameters
 
1880
          </a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.traits">
 
1881
Index: libstdc++-v3/doc/html/manual/debug_mode_using.html
 
1882
===================================================================
 
1883
--- a/src/libstdc++-v3/doc/html/manual/debug_mode_using.html    (.../tags/gcc_4_8_2_release)
 
1884
+++ b/src/libstdc++-v3/doc/html/manual/debug_mode_using.html    (.../branches/gcc-4_8-branch)
 
1885
@@ -1,5 +1,5 @@
 
1886
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1887
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1888
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1889
   </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
 
1890
   compiler flag <code class="code">-D_GLIBCXX_DEBUG</code>. Note that this flag
 
1891
   changes the sizes and behavior of standard class templates such
 
1892
@@ -18,6 +18,6 @@
 
1893
   mode or with debug mode. The
 
1894
   following table provides the names and headers of the debugging
 
1895
   containers:
 
1896
-</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
 
1897
+</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
 
1898
 containers have additional debug capability.
 
1899
-</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>
 
1900
\ No newline at end of file
 
1901
+</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>
 
1902
\ No newline at end of file
 
1903
Index: libstdc++-v3/doc/html/manual/parallel_mode.html
 
1904
===================================================================
 
1905
--- a/src/libstdc++-v3/doc/html/manual/parallel_mode.html       (.../tags/gcc_4_8_2_release)
 
1906
+++ b/src/libstdc++-v3/doc/html/manual/parallel_mode.html       (.../branches/gcc-4_8-branch)
 
1907
@@ -1,8 +1,8 @@
 
1908
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1909
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1910
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1911
   Extensions
 
1912
   
 
1913
-</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
 
1914
+</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
 
1915
 implementation of many algorithms the C++ Standard Library.
 
1916
 </p><p>
 
1917
 Several of the standard algorithms, for instance
 
1918
@@ -12,11 +12,11 @@
 
1919
 specific compiler flag.
 
1920
 </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
 
1921
 <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
 
1922
-<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">
 
1923
+<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">
 
1924
       Parallelization of Bulk Operations for STL Dictionaries
 
1925
     </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">
 
1926
        Workshop on Highly Parallel Processing on a Chip (HPPC) 2007. (LNCS)
 
1927
-      . </span></span></p></div><div class="biblioentry"><a id="idp16931936"></a><p><span class="citetitle"><em class="citetitle">
 
1928
+      . </span></span></p></div><div class="biblioentry"><a id="idm269998599392"></a><p><span class="citetitle"><em class="citetitle">
 
1929
       The Multi-Core Standard Template Library
 
1930
     </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">
 
1931
         Euro-Par 2007: Parallel Processing. (LNCS 4641)
 
1932
Index: libstdc++-v3/doc/html/manual/debug_mode_semantics.html
 
1933
===================================================================
 
1934
--- a/src/libstdc++-v3/doc/html/manual/debug_mode_semantics.html        (.../tags/gcc_4_8_2_release)
 
1935
+++ b/src/libstdc++-v3/doc/html/manual/debug_mode_semantics.html        (.../branches/gcc-4_8-branch)
 
1936
@@ -1,5 +1,5 @@
 
1937
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
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>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>
 
1939
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
1940
   </p><p>A program that uses the C++ standard library correctly
 
1941
   will maintain the same semantics under debug mode as it had with
 
1942
   the normal (release) library. All functional and exception-handling
 
1943
Index: libstdc++-v3/doc/html/manual/setup.html
 
1944
===================================================================
 
1945
--- a/src/libstdc++-v3/doc/html/manual/setup.html       (.../tags/gcc_4_8_2_release)
 
1946
+++ b/src/libstdc++-v3/doc/html/manual/setup.html       (.../branches/gcc-4_8-branch)
 
1947
@@ -1,8 +1,8 @@
 
1948
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1949
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1950
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1951
   Introduction
 
1952
   
 
1953
-</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
 
1954
+</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
 
1955
    and properly built binaries useful for linking to other software is
 
1956
    a multi-step process. Steps include getting the sources,
 
1957
    configuring and building the sources, testing, and installation.
 
1958
Index: libstdc++-v3/doc/html/manual/backwards.html
 
1959
===================================================================
 
1960
--- a/src/libstdc++-v3/doc/html/manual/backwards.html   (.../tags/gcc_4_8_2_release)
 
1961
+++ b/src/libstdc++-v3/doc/html/manual/backwards.html   (.../branches/gcc-4_8-branch)
 
1962
@@ -1,5 +1,5 @@
 
1963
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1964
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1965
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1966
   Porting and Maintenance
 
1967
   
 
1968
 </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
 
1969
@@ -940,15 +940,15 @@
 
1970
   This is a change in behavior from older versions. Now, most
 
1971
   <span class="type">iterator_type</span> typedefs in container classes are POD
 
1972
   objects, not <span class="type">value_type</span> pointers.
 
1973
-</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>
 
1974
+</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>
 
1975
        <a class="link" href="http://www.kegel.com/gcc/gcc4.html" target="_top">
 
1976
       Migrating to GCC 4.1
 
1977
        </a>
 
1978
-      </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>
 
1979
+      </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>
 
1980
        <a class="link" href="http://lists.debian.org/debian-gcc/2006/03/msg00405.html" target="_top">
 
1981
       Building the Whole Debian Archive with GCC 4.1: A Summary
 
1982
        </a>
 
1983
-      </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>
 
1984
+      </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>
 
1985
        <a class="link" href="http://annwm.lbl.gov/~leggett/Atlas/gcc-3.2.html" target="_top">
 
1986
       Migration guide for GCC-3.2
 
1987
        </a>
 
1988
Index: libstdc++-v3/doc/html/manual/source_design_notes.html
 
1989
===================================================================
 
1990
--- a/src/libstdc++-v3/doc/html/manual/source_design_notes.html (.../tags/gcc_4_8_2_release)
 
1991
+++ b/src/libstdc++-v3/doc/html/manual/source_design_notes.html (.../branches/gcc-4_8-branch)
 
1992
@@ -1,5 +1,5 @@
 
1993
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
1994
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1995
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
1996
   Contributing
 
1997
   
 
1998
 </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>
 
1999
Index: libstdc++-v3/doc/html/manual/ext_sgi.html
 
2000
===================================================================
 
2001
--- a/src/libstdc++-v3/doc/html/manual/ext_sgi.html     (.../tags/gcc_4_8_2_release)
 
2002
+++ b/src/libstdc++-v3/doc/html/manual/ext_sgi.html     (.../branches/gcc-4_8-branch)
 
2003
@@ -1,5 +1,5 @@
 
2004
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2005
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
2006
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
2007
      The SGI hashing classes <code class="classname">hash_set</code> and
 
2008
      <code class="classname">hash_set</code> have been deprecated by the
 
2009
      unordered_set, unordered_multiset, unordered_map,
 
2010
Index: libstdc++-v3/doc/html/manual/facets.html
 
2011
===================================================================
 
2012
--- a/src/libstdc++-v3/doc/html/manual/facets.html      (.../tags/gcc_4_8_2_release)
 
2013
+++ b/src/libstdc++-v3/doc/html/manual/facets.html      (.../branches/gcc-4_8-branch)
 
2014
@@ -1,8 +1,8 @@
 
2015
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2016
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2017
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2018
   Localization
 
2019
   
 
2020
-</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>
 
2021
+</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>
 
2022
 For the required specialization codecvt&lt;wchar_t, char, mbstate_t&gt; ,
 
2023
 conversions are made between the internal character set (always UCS4
 
2024
 on GNU/Linux) and whatever the currently selected locale for the
 
2025
@@ -49,24 +49,24 @@
 
2026
    </p></li><li class="listitem"><p>
 
2027
        Rename abstract base class. See if just smash-overriding is a
 
2028
        better approach. Clarify, add sanity to naming.
 
2029
-     </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">
 
2030
+     </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">
 
2031
       The GNU C Library
 
2032
-    </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">
 
2033
+    </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">
 
2034
       Correspondence
 
2035
-    </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">
 
2036
+    </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">
 
2037
       ISO/IEC 14882:1998 Programming languages - C++
 
2038
-    </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">
 
2039
+    </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">
 
2040
       ISO/IEC 9899:1999 Programming languages - C
 
2041
-    </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idp15805792"></a><p><span class="title"><em>
 
2042
+    </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idm269999725632"></a><p><span class="title"><em>
 
2043
        <a class="link" href="http://www.unix.org/version3/ieee_std.html" target="_top">
 
2044
        The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)
 
2045
        </a>
 
2046
       </em>. </span><span class="copyright">Copyright © 1999 
 
2047
-      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">
 
2048
+      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">
 
2049
       The C++ Programming Language, Special Edition
 
2050
     </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">
 
2051
        Addison Wesley
 
2052
-      . </span></span></p></div><div class="biblioentry"><a id="idp15813664"></a><p><span class="citetitle"><em class="citetitle">
 
2053
+      . </span></span></p></div><div class="biblioentry"><a id="idm269999717760"></a><p><span class="citetitle"><em class="citetitle">
 
2054
       Standard C++ IOStreams and Locales
 
2055
     </em>. </span><span class="subtitle">
 
2056
       Advanced Programmer's Guide and Reference
 
2057
@@ -409,42 +409,42 @@
 
2058
       </p></li><li class="listitem"><p>
 
2059
       wchar_t/char internal buffers and conversions between
 
2060
       internal/external buffers?
 
2061
-      </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">
 
2062
+      </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">
 
2063
       The GNU C Library
 
2064
     </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">
 
2065
       Chapters 6 Character Set Handling and 7 Locales and Internationalization
 
2066
-    . </span></p></div><div class="biblioentry"><a id="idp15895888"></a><p><span class="citetitle"><em class="citetitle">
 
2067
+    . </span></p></div><div class="biblioentry"><a id="idm269999635328"></a><p><span class="citetitle"><em class="citetitle">
 
2068
       Correspondence
 
2069
-    </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">
 
2070
+    </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">
 
2071
       ISO/IEC 14882:1998 Programming languages - C++
 
2072
-    </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">
 
2073
+    </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">
 
2074
       ISO/IEC 9899:1999 Programming languages - C
 
2075
-    </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idp15903536"></a><p><span class="title"><em>
 
2076
+    </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idm269999627680"></a><p><span class="title"><em>
 
2077
        <a class="link" href="http://www.opengroup.org/austin/" target="_top">
 
2078
       System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
 
2079
        </a>
 
2080
       </em>. </span><span class="copyright">Copyright © 2008 
 
2081
        The Open Group/The Institute of Electrical and Electronics
 
2082
        Engineers, Inc.
 
2083
-      . </span></p></div><div class="biblioentry"><a id="idp15906768"></a><p><span class="citetitle"><em class="citetitle">
 
2084
+      . </span></p></div><div class="biblioentry"><a id="idm269999624448"></a><p><span class="citetitle"><em class="citetitle">
 
2085
       The C++ Programming Language, Special Edition
 
2086
     </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">
 
2087
        Addison Wesley
 
2088
-      . </span></span></p></div><div class="biblioentry"><a id="idp15911392"></a><p><span class="citetitle"><em class="citetitle">
 
2089
+      . </span></span></p></div><div class="biblioentry"><a id="idm269999619824"></a><p><span class="citetitle"><em class="citetitle">
 
2090
       Standard C++ IOStreams and Locales
 
2091
     </em>. </span><span class="subtitle">
 
2092
       Advanced Programmer's Guide and Reference
 
2093
     . </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">
 
2094
        Addison Wesley Longman
 
2095
-      . </span></span></p></div><div class="biblioentry"><a id="idp15917056"></a><p><span class="title"><em>
 
2096
+      . </span></span></p></div><div class="biblioentry"><a id="idm269999614160"></a><p><span class="title"><em>
 
2097
        <a class="link" href="http://www.lysator.liu.se/c/na1.html" target="_top">
 
2098
       A brief description of Normative Addendum 1
 
2099
        </a>
 
2100
-      </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>
 
2101
+      </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>
 
2102
        <a class="link" href="http://tldp.org/HOWTO/Unicode-HOWTO.html" target="_top">
 
2103
          The Unicode HOWTO
 
2104
        </a>
 
2105
-      </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>
 
2106
+      </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>
 
2107
        <a class="link" href="http://www.cl.cam.ac.uk/~mgk25/unicode.html" target="_top">
 
2108
       UTF-8 and Unicode FAQ for Unix/Linux
 
2109
        </a>
 
2110
@@ -690,39 +690,39 @@
 
2111
    model. As of this writing, it is unknown how to query to see
 
2112
    if a specified message catalog exists using the gettext
 
2113
    package.
 
2114
-   </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">
 
2115
+   </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">
 
2116
       The GNU C Library
 
2117
     </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
 
2118
-    . </span></p></div><div class="biblioentry"><a id="idp16008384"></a><p><span class="citetitle"><em class="citetitle">
 
2119
+    . </span></p></div><div class="biblioentry"><a id="idm269999522832"></a><p><span class="citetitle"><em class="citetitle">
 
2120
       Correspondence
 
2121
-    </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">
 
2122
+    </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">
 
2123
       ISO/IEC 14882:1998 Programming languages - C++
 
2124
-    </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">
 
2125
+    </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">
 
2126
       ISO/IEC 9899:1999 Programming languages - C
 
2127
-    </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idp16016032"></a><p><span class="title"><em>
 
2128
+    </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idm269999515184"></a><p><span class="title"><em>
 
2129
        <a class="link" href="http://www.opengroup.org/austin/" target="_top">
 
2130
       System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
 
2131
        </a>
 
2132
       </em>. </span><span class="copyright">Copyright © 2008 
 
2133
        The Open Group/The Institute of Electrical and Electronics
 
2134
        Engineers, Inc.
 
2135
-      . </span></p></div><div class="biblioentry"><a id="idp16019264"></a><p><span class="citetitle"><em class="citetitle">
 
2136
+      . </span></p></div><div class="biblioentry"><a id="idm269999511952"></a><p><span class="citetitle"><em class="citetitle">
 
2137
       The C++ Programming Language, Special Edition
 
2138
     </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">
 
2139
        Addison Wesley
 
2140
-      . </span></span></p></div><div class="biblioentry"><a id="idp16023888"></a><p><span class="citetitle"><em class="citetitle">
 
2141
+      . </span></span></p></div><div class="biblioentry"><a id="idm269999507328"></a><p><span class="citetitle"><em class="citetitle">
 
2142
       Standard C++ IOStreams and Locales
 
2143
     </em>. </span><span class="subtitle">
 
2144
       Advanced Programmer's Guide and Reference
 
2145
     . </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">
 
2146
        Addison Wesley Longman
 
2147
-      . </span></span></p></div><div class="biblioentry"><a id="idp16029552"></a><p><span class="title"><em>
 
2148
-       <a class="link" href="http://java.sun.com/reference/api/index.html" target="_top">
 
2149
+      . </span></span></p></div><div class="biblioentry"><a id="idm269999501664"></a><p><span class="title"><em>
 
2150
+       <a class="link" href="http://www.oracle.com/technetwork/java/api/index.html" target="_top">
 
2151
        API Specifications, Java Platform
 
2152
        </a>
 
2153
       </em>. </span><span class="pagenums">java.util.Properties, java.text.MessageFormat,
 
2154
 java.util.Locale, java.util.ResourceBundle
 
2155
-    . </span></p></div><div class="biblioentry"><a id="idp16031888"></a><p><span class="title"><em>
 
2156
+    . </span></p></div><div class="biblioentry"><a id="idm269999499328"></a><p><span class="title"><em>
 
2157
        <a class="link" href="https://www.gnu.org/software/gettext/" target="_top">
 
2158
       GNU gettext tools, version 0.10.38, Native Language Support
 
2159
       Library and Tools.
 
2160
Index: libstdc++-v3/doc/html/manual/diagnostics.html
 
2161
===================================================================
 
2162
--- a/src/libstdc++-v3/doc/html/manual/diagnostics.html (.../tags/gcc_4_8_2_release)
 
2163
+++ b/src/libstdc++-v3/doc/html/manual/diagnostics.html (.../branches/gcc-4_8-branch)
 
2164
@@ -1,13 +1,13 @@
 
2165
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2166
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2167
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2168
   Diagnostics
 
2169
   
 
2170
 </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="termination.html">Prev</a> </td><th width="60%" align="center">Part II. 
 
2171
     Standard Contents
 
2172
   </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. 
 
2173
   Diagnostics
 
2174
-  <a id="idp13835248" class="indexterm"></a>
 
2175
-</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>
 
2176
+  <a id="idm270001697504" class="indexterm"></a>
 
2177
+</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>
 
2178
       All exception objects are defined in one of the standard header
 
2179
       files: <code class="filename">exception</code>,
 
2180
       <code class="filename">stdexcept</code>, <code class="filename">new</code>, and
 
2181
Index: libstdc++-v3/doc/html/manual/mt_allocator_design.html
 
2182
===================================================================
 
2183
--- a/src/libstdc++-v3/doc/html/manual/mt_allocator_design.html (.../tags/gcc_4_8_2_release)
 
2184
+++ b/src/libstdc++-v3/doc/html/manual/mt_allocator_design.html (.../branches/gcc-4_8-branch)
 
2185
@@ -1,5 +1,5 @@
 
2186
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2187
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
 
2188
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
 
2189
 describing the characteristics of the memory pool, a policy class
 
2190
 containing this pool that links instantiation types to common or
 
2191
 individual pools, and a class inheriting from the policy class that is
 
2192
Index: libstdc++-v3/doc/html/manual/appendix_free.html
 
2193
===================================================================
 
2194
--- a/src/libstdc++-v3/doc/html/manual/appendix_free.html       (.../tags/gcc_4_8_2_release)
 
2195
+++ b/src/libstdc++-v3/doc/html/manual/appendix_free.html       (.../branches/gcc-4_8-branch)
 
2196
@@ -1,12 +1,12 @@
 
2197
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2198
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2199
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2200
   Free Software Needs Free Documentation
 
2201
   
 
2202
 </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="backwards.html">Prev</a> </td><th width="60%" align="center">Part IV. 
 
2203
   Appendices
 
2204
 </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>
 
2205
   Free Software Needs Free Documentation
 
2206
-  <a id="idp23426192" class="indexterm"></a>
 
2207
+  <a id="idm269992106560" class="indexterm"></a>
 
2208
 </h1></div></div></div><p>
 
2209
 The biggest deficiency in free operating systems is not in the
 
2210
 software--it is the lack of good free manuals that we can include in
 
2211
Index: libstdc++-v3/doc/html/manual/algorithms.html
 
2212
===================================================================
 
2213
--- a/src/libstdc++-v3/doc/html/manual/algorithms.html  (.../tags/gcc_4_8_2_release)
 
2214
+++ b/src/libstdc++-v3/doc/html/manual/algorithms.html  (.../branches/gcc-4_8-branch)
 
2215
@@ -1,13 +1,13 @@
 
2216
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2217
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2218
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2219
   Algorithms
 
2220
   
 
2221
 </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="iterators.html">Prev</a> </td><th width="60%" align="center">Part II. 
 
2222
     Standard Contents
 
2223
   </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. 
 
2224
   Algorithms
 
2225
-  <a id="idp16191968" class="indexterm"></a>
 
2226
-</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>
 
2227
+  <a id="idm269999339120" class="indexterm"></a>
 
2228
+</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>
 
2229
   The neatest accomplishment of the algorithms section is that all the
 
2230
   work is done via iterators, not containers directly.  This means two
 
2231
   important things:
 
2232
Index: libstdc++-v3/doc/html/manual/appendix_porting.html
 
2233
===================================================================
 
2234
--- a/src/libstdc++-v3/doc/html/manual/appendix_porting.html    (.../tags/gcc_4_8_2_release)
 
2235
+++ b/src/libstdc++-v3/doc/html/manual/appendix_porting.html    (.../branches/gcc-4_8-branch)
 
2236
@@ -1,13 +1,13 @@
 
2237
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2238
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2239
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2240
   Porting and Maintenance
 
2241
   
 
2242
 </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. 
 
2243
   Appendices
 
2244
 </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>
 
2245
   Porting and Maintenance
 
2246
-  <a id="idp22008864" class="indexterm"></a>
 
2247
-</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">
 
2248
+  <a id="idm269993523968" class="indexterm"></a>
 
2249
+</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">
 
2250
   Qualifying Exception Safety Guarantees
 
2251
   
 
2252
 </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">
 
2253
@@ -61,7 +61,7 @@
 
2254
 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
 
2255
 <span class="command"><strong>automake</strong></span>) from the file
 
2256
 <code class="filename">Makefile.am</code>.
 
2257
-</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>
 
2258
+</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>
 
2259
     Regenerate all generated files by using the command 
 
2260
     <code class="code">autoreconf</code> at the top level of the libstdc++ source
 
2261
     directory.
 
2262
Index: libstdc++-v3/doc/html/manual/profile_mode_cost_model.html
 
2263
===================================================================
 
2264
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_cost_model.html     (.../tags/gcc_4_8_2_release)
 
2265
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_cost_model.html     (.../branches/gcc-4_8-branch)
 
2266
@@ -1,5 +1,5 @@
 
2267
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2268
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
2269
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
2270
   Currently, the cost model uses formulas with predefined relative weights
 
2271
   for alternative containers or container implementations.  For instance,
 
2272
   iterating through a vector is X times faster than iterating through a list.
 
2273
Index: libstdc++-v3/doc/html/manual/make.html
 
2274
===================================================================
 
2275
--- a/src/libstdc++-v3/doc/html/manual/make.html        (.../tags/gcc_4_8_2_release)
 
2276
+++ b/src/libstdc++-v3/doc/html/manual/make.html        (.../branches/gcc-4_8-branch)
 
2277
@@ -1,5 +1,5 @@
 
2278
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2279
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
 
2280
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
 
2281
       <a class="link" href="http://gcc.gnu.org/install/" target="_top">GCC Installation
 
2282
       Instructions</a> first.  Read <span class="emphasis"><em>all of them</em></span>.
 
2283
       <span class="emphasis"><em>Twice.</em></span>
 
2284
Index: libstdc++-v3/doc/html/manual/pairs.html
 
2285
===================================================================
 
2286
--- a/src/libstdc++-v3/doc/html/manual/pairs.html       (.../tags/gcc_4_8_2_release)
 
2287
+++ b/src/libstdc++-v3/doc/html/manual/pairs.html       (.../branches/gcc-4_8-branch)
 
2288
@@ -1,5 +1,5 @@
 
2289
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2290
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2291
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2292
   Utilities
 
2293
   
 
2294
 </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
 
2295
Index: libstdc++-v3/doc/html/manual/test.html
 
2296
===================================================================
 
2297
--- a/src/libstdc++-v3/doc/html/manual/test.html        (.../tags/gcc_4_8_2_release)
 
2298
+++ b/src/libstdc++-v3/doc/html/manual/test.html        (.../branches/gcc-4_8-branch)
 
2299
@@ -1,5 +1,5 @@
 
2300
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2301
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2302
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2303
   Porting and Maintenance
 
2304
   
 
2305
 </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>
 
2306
@@ -492,7 +492,7 @@
 
2307
        reporting functions including:
 
2308
        </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>
 
2309
   Qualifying Exception Safety Guarantees
 
2310
-  <a id="idp22628992" class="indexterm"></a>
 
2311
+  <a id="idm269992903504" class="indexterm"></a>
 
2312
 </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>
 
2313
         Testing is composed of running a particular test sequence,
 
2314
         and looking at what happens to the surrounding code when
 
2315
Index: libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html
 
2316
===================================================================
 
2317
--- a/src/libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html     (.../tags/gcc_4_8_2_release)
 
2318
+++ b/src/libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html     (.../branches/gcc-4_8-branch)
 
2319
@@ -1,5 +1,5 @@
 
2320
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2321
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
2322
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
2323
        Or as close as it gets: freestanding. This is a minimal
 
2324
        configuration, with only partial support for the standard
 
2325
        library. Assume only the following header files can be used:
 
2326
Index: libstdc++-v3/doc/html/manual/using_headers.html
 
2327
===================================================================
 
2328
--- a/src/libstdc++-v3/doc/html/manual/using_headers.html       (.../tags/gcc_4_8_2_release)
 
2329
+++ b/src/libstdc++-v3/doc/html/manual/using_headers.html       (.../branches/gcc-4_8-branch)
 
2330
@@ -1,5 +1,5 @@
 
2331
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2332
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
2333
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
2334
      The C++ standard specifies the entire set of header files that
 
2335
      must be available to all hosted implementations.  Actually, the
 
2336
      word "files" is a misnomer, since the contents of the
 
2337
@@ -18,19 +18,19 @@
 
2338
      the 1998 standard as updated for 2003, and the current 2011 standard.
 
2339
    </p><p>
 
2340
      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>.
 
2341
-   </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>
 
2342
+   </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>
 
2343
 C++11 include files. These are only available in C++11 compilation
 
2344
 mode, i.e. <code class="literal">-std=c++11</code> or <code class="literal">-std=gnu++11</code>.
 
2345
-</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>
 
2346
+</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>
 
2347
   In addition, TR1 includes as:
 
2348
-</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++
 
2349
+</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++
 
2350
 compiler supports scalar decimal floating-point types defined via
 
2351
 <code class="code">__attribute__((mode(SD|DD|LD)))</code>.
 
2352
-</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>
 
2353
+</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>
 
2354
   Also included are files for the C++ ABI interface:
 
2355
-</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>
 
2356
+</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>
 
2357
   And a large variety of extensions.
 
2358
-</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.
 
2359
+</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.
 
2360
 </p><p>First, mixing different dialects of the standard headers is not
 
2361
 possible. It's an all-or-nothing affair. Thus, code like
 
2362
 </p><pre class="programlisting">
 
2363
Index: libstdc++-v3/doc/html/manual/using_namespaces.html
 
2364
===================================================================
 
2365
--- a/src/libstdc++-v3/doc/html/manual/using_namespaces.html    (.../tags/gcc_4_8_2_release)
 
2366
+++ b/src/libstdc++-v3/doc/html/manual/using_namespaces.html    (.../branches/gcc-4_8-branch)
 
2367
@@ -1,5 +1,5 @@
 
2368
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2369
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
 
2370
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
 
2371
 </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
 
2372
 within namespace std." This includes namespaces nested
 
2373
 within <code class="code">namespace std</code>, such as <code class="code">namespace
 
2374
Index: libstdc++-v3/doc/html/manual/debug.html
 
2375
===================================================================
 
2376
--- a/src/libstdc++-v3/doc/html/manual/debug.html       (.../tags/gcc_4_8_2_release)
 
2377
+++ b/src/libstdc++-v3/doc/html/manual/debug.html       (.../branches/gcc-4_8-branch)
 
2378
@@ -1,5 +1,5 @@
 
2379
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2380
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
2381
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
2382
   There are numerous things that can be done to improve the ease with
 
2383
   which C++ binaries are debugged when using the GNU tool chain. Here
 
2384
   are some of them.
 
2385
@@ -161,7 +161,7 @@
 
2386
   DRD</a>,
 
2387
   <a class="link" href="http://valgrind.org/docs/manual/hg-manual.html" target="_top"> 
 
2388
   Helgrind</a>, and
 
2389
-  <a class="link" href="http://code.google.com/p/data-race-test" target="_top"> 
 
2390
+  <a class="link" href="http://code.google.com/p/data-race-test/" target="_top"> 
 
2391
   ThreadSanitizer</a>.
 
2392
 </p><p>
 
2393
   With DRD, Helgrind and ThreadSanitizer you will need to define
 
2394
Index: libstdc++-v3/doc/html/manual/localization.html
 
2395
===================================================================
 
2396
--- a/src/libstdc++-v3/doc/html/manual/localization.html        (.../tags/gcc_4_8_2_release)
 
2397
+++ b/src/libstdc++-v3/doc/html/manual/localization.html        (.../branches/gcc-4_8-branch)
 
2398
@@ -1,13 +1,13 @@
 
2399
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2400
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2401
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2402
   Localization
 
2403
   
 
2404
 </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="strings.html">Prev</a> </td><th width="60%" align="center">Part II. 
 
2405
     Standard Contents
 
2406
   </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. 
 
2407
   Localization
 
2408
-  <a id="idp15701088" class="indexterm"></a>
 
2409
-</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>
 
2410
+  <a id="idm269999830208" class="indexterm"></a>
 
2411
+</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>
 
2412
 Describes the basic locale object, including nested
 
2413
 classes id, facet, and the reference-counted implementation object,
 
2414
 class _Impl.
 
2415
@@ -402,29 +402,29 @@
 
2416
        What should non-required facet instantiations do?  If the
 
2417
        generic implementation is provided, then how to end-users
 
2418
        provide specializations?
 
2419
-   </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">
 
2420
+   </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">
 
2421
       The GNU C Library
 
2422
     </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">
 
2423
       Chapters 6 Character Set Handling and 7 Locales and
 
2424
       Internationalization
 
2425
-    . </span></p></div><div class="biblioentry"><a id="idp15748832"></a><p><span class="citetitle"><em class="citetitle">
 
2426
+    . </span></p></div><div class="biblioentry"><a id="idm269999782464"></a><p><span class="citetitle"><em class="citetitle">
 
2427
       Correspondence
 
2428
-    </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">
 
2429
+    </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">
 
2430
       ISO/IEC 14882:1998 Programming languages - C++
 
2431
-    </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">
 
2432
+    </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">
 
2433
       ISO/IEC 9899:1999 Programming languages - C
 
2434
-    </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idp15756480"></a><p><span class="title"><em>
 
2435
+    </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idm269999774816"></a><p><span class="title"><em>
 
2436
        <a class="link" href="http://www.opengroup.org/austin/" target="_top">
 
2437
       System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
 
2438
        </a>
 
2439
       </em>. </span><span class="copyright">Copyright © 2008 
 
2440
        The Open Group/The Institute of Electrical and Electronics
 
2441
        Engineers, Inc.
 
2442
-      . </span></p></div><div class="biblioentry"><a id="idp15759712"></a><p><span class="citetitle"><em class="citetitle">
 
2443
+      . </span></p></div><div class="biblioentry"><a id="idm269999771584"></a><p><span class="citetitle"><em class="citetitle">
 
2444
       The C++ Programming Language, Special Edition
 
2445
     </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">
 
2446
        Addison Wesley
 
2447
-      . </span></span></p></div><div class="biblioentry"><a id="idp15764336"></a><p><span class="citetitle"><em class="citetitle">
 
2448
+      . </span></span></p></div><div class="biblioentry"><a id="idm269999766960"></a><p><span class="citetitle"><em class="citetitle">
 
2449
       Standard C++ IOStreams and Locales
 
2450
     </em>. </span><span class="subtitle">
 
2451
       Advanced Programmer's Guide and Reference
 
2452
Index: libstdc++-v3/doc/html/manual/ext_algorithms.html
 
2453
===================================================================
 
2454
--- a/src/libstdc++-v3/doc/html/manual/ext_algorithms.html      (.../tags/gcc_4_8_2_release)
 
2455
+++ b/src/libstdc++-v3/doc/html/manual/ext_algorithms.html      (.../branches/gcc-4_8-branch)
 
2456
@@ -1,5 +1,5 @@
 
2457
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2458
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
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>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. 
 
2460
   Extensions
 
2461
   
 
2462
 </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
 
2463
Index: libstdc++-v3/doc/html/manual/debug_mode.html
 
2464
===================================================================
 
2465
--- a/src/libstdc++-v3/doc/html/manual/debug_mode.html  (.../tags/gcc_4_8_2_release)
 
2466
+++ b/src/libstdc++-v3/doc/html/manual/debug_mode.html  (.../branches/gcc-4_8-branch)
 
2467
@@ -1,8 +1,8 @@
 
2468
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2469
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
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>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. 
 
2471
   Extensions
 
2472
   
 
2473
-</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
 
2474
+</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
 
2475
     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>
 
2476
     By default, libstdc++ is built with efficiency in mind, and
 
2477
     therefore performs little or no error checking that is not
 
2478
Index: libstdc++-v3/doc/html/manual/profile_mode_design.html
 
2479
===================================================================
 
2480
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_design.html (.../tags/gcc_4_8_2_release)
 
2481
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_design.html (.../branches/gcc-4_8-branch)
 
2482
@@ -1,6 +1,6 @@
 
2483
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2484
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
2485
-</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
 
2486
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
 
2487
+</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
 
2488
      only included from <code class="code">impl/profiler.h</code>, which is the only
 
2489
      file included from the public headers.</td></tr></tbody></table></div></div><br class="table-break" /><p>
 
2490
 </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>
 
2491
Index: libstdc++-v3/doc/html/manual/using_concurrency.html
 
2492
===================================================================
 
2493
--- a/src/libstdc++-v3/doc/html/manual/using_concurrency.html   (.../tags/gcc_4_8_2_release)
 
2494
+++ b/src/libstdc++-v3/doc/html/manual/using_concurrency.html   (.../branches/gcc-4_8-branch)
 
2495
@@ -1,5 +1,5 @@
 
2496
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2497
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
 
2498
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
 
2499
       of multithreaded applications which use the Standard C++
 
2500
       library.  This information is GCC-specific since the C++
 
2501
       standard does not address matters of multithreaded applications.
 
2502
Index: libstdc++-v3/doc/html/manual/mt_allocator_impl.html
 
2503
===================================================================
 
2504
--- a/src/libstdc++-v3/doc/html/manual/mt_allocator_impl.html   (.../tags/gcc_4_8_2_release)
 
2505
+++ b/src/libstdc++-v3/doc/html/manual/mt_allocator_impl.html   (.../branches/gcc-4_8-branch)
 
2506
@@ -1,5 +1,5 @@
 
2507
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2508
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
 
2509
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
 
2510
 exists a nested <code class="code">struct __pool_base::_Tune</code> that contains all
 
2511
 these parameters, which include settings for
 
2512
 </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
 
2513
Index: libstdc++-v3/doc/html/manual/appendix_gfdl.html
 
2514
===================================================================
 
2515
--- a/src/libstdc++-v3/doc/html/manual/appendix_gfdl.html       (.../tags/gcc_4_8_2_release)
 
2516
+++ b/src/libstdc++-v3/doc/html/manual/appendix_gfdl.html       (.../branches/gcc-4_8-branch)
 
2517
@@ -1,5 +1,5 @@
 
2518
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2519
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2520
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2521
   Appendices
 
2522
 </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>
 
2523
     Copyright © 2000, 2001, 2002, 2007, 2008
 
2524
Index: libstdc++-v3/doc/html/manual/containers.html
 
2525
===================================================================
 
2526
--- a/src/libstdc++-v3/doc/html/manual/containers.html  (.../tags/gcc_4_8_2_release)
 
2527
+++ b/src/libstdc++-v3/doc/html/manual/containers.html  (.../branches/gcc-4_8-branch)
 
2528
@@ -1,13 +1,13 @@
 
2529
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2530
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2531
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2532
   Containers
 
2533
   
 
2534
 </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="facets.html">Prev</a> </td><th width="60%" align="center">Part II. 
 
2535
     Standard Contents
 
2536
   </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. 
 
2537
   Containers
 
2538
-  <a id="idp16037808" class="indexterm"></a>
 
2539
-</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>
 
2540
+  <a id="idm269999493408" class="indexterm"></a>
 
2541
+</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>
 
2542
      Yes it is, and that's okay.  This is a decision that we preserved
 
2543
      when we imported SGI's STL implementation.  The following is
 
2544
      quoted from <a class="link" href="http://www.sgi.com/tech/stl/FAQ.html" target="_top">their FAQ</a>:
 
2545
Index: libstdc++-v3/doc/html/manual/io.html
 
2546
===================================================================
 
2547
--- a/src/libstdc++-v3/doc/html/manual/io.html  (.../tags/gcc_4_8_2_release)
 
2548
+++ b/src/libstdc++-v3/doc/html/manual/io.html  (.../branches/gcc-4_8-branch)
 
2549
@@ -1,13 +1,13 @@
 
2550
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2551
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2552
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2553
   Input and Output
 
2554
   
 
2555
 </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. 
 
2556
     Standard Contents
 
2557
   </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. 
 
2558
   Input and Output
 
2559
-  <a id="idp16257600" class="indexterm"></a>
 
2560
-</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
 
2561
+  <a id="idm269999273616" class="indexterm"></a>
 
2562
+</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
 
2563
       only include the headers you really need.  Many people simply include
 
2564
       &lt;iostream&gt; when they don't need to -- and that can <span class="emphasis"><em>penalize
 
2565
       your runtime as well.</em></span>  Here are some tips on which header to use
 
2566
Index: libstdc++-v3/doc/html/manual/index.html
 
2567
===================================================================
 
2568
--- a/src/libstdc++-v3/doc/html/manual/index.html       (.../tags/gcc_4_8_2_release)
 
2569
+++ b/src/libstdc++-v3/doc/html/manual/index.html       (.../branches/gcc-4_8-branch)
 
2570
@@ -1,7 +1,7 @@
 
2571
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2572
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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 
 
2573
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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 
 
2574
       <a class="link" href="http://www.fsf.org" target="_top">FSF</a>
 
2575
-    </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. 
 
2576
+    </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. 
 
2577
   Introduction
 
2578
   
 
2579
 </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. 
 
2580
@@ -15,13 +15,13 @@
 
2581
 </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. 
 
2582
   Utilities
 
2583
   
 
2584
-</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. 
 
2585
+</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. 
 
2586
   Strings
 
2587
   
 
2588
 </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. 
 
2589
   Localization
 
2590
   
 
2591
-</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. 
 
2592
+</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. 
 
2593
   Containers
 
2594
   
 
2595
 </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. 
 
2596
@@ -143,19 +143,19 @@
 
2597
   
 
2598
 </a></span></dt><dt><span class="appendix"><a href="appendix_gpl.html">D. 
 
2599
     <acronym class="acronym">GNU</acronym> General Public License version 3
 
2600
-  </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">
 
2601
+  </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">
 
2602
            Effect of embedded lists in
 
2603
            <code class="classname">std::multimap</code>
 
2604
-         </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
 
2605
-             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
 
2606
-               diagram</a></dt><dt>22.21. <a href="policy_data_structures_design.html#idp18277664">Standard resize policy size sequence
 
2607
-               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">
 
2608
+         </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
 
2609
+             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
 
2610
+               diagram</a></dt><dt>22.21. <a href="policy_data_structures_design.html#idm269997253712">Standard resize policy size sequence
 
2611
+               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">
 
2612
                A Standard String Hash Function
 
2613
-             </a></dt><dt>22.6. <a href="policy_data_structures_design.html#idp18169344">
 
2614
+             </a></dt><dt>22.6. <a href="policy_data_structures_design.html#idm269997361840">
 
2615
                Only k String DNA Hash
 
2616
-             </a></dt><dt>22.7. <a href="policy_data_structures_design.html#idp18240448">
 
2617
+             </a></dt><dt>22.7. <a href="policy_data_structures_design.html#idm269997290864">
 
2618
                Probability of Probe Sequence of Length k
 
2619
-             </a></dt><dt>22.8. <a href="policy_data_structures_design.html#idp18247216">
 
2620
+             </a></dt><dt>22.8. <a href="policy_data_structures_design.html#idm269997284096">
 
2621
                Probability Probe Sequence in Some Bin
 
2622
              </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. 
 
2623
   Introduction
 
2624
Index: libstdc++-v3/doc/html/manual/numerics_and_c.html
 
2625
===================================================================
 
2626
--- a/src/libstdc++-v3/doc/html/manual/numerics_and_c.html      (.../tags/gcc_4_8_2_release)
 
2627
+++ b/src/libstdc++-v3/doc/html/manual/numerics_and_c.html      (.../branches/gcc-4_8-branch)
 
2628
@@ -1,5 +1,5 @@
 
2629
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2630
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2631
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2632
   Numerics
 
2633
   
 
2634
 </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
 
2635
Index: libstdc++-v3/doc/html/manual/appendix_gpl.html
 
2636
===================================================================
 
2637
--- a/src/libstdc++-v3/doc/html/manual/appendix_gpl.html        (.../tags/gcc_4_8_2_release)
 
2638
+++ b/src/libstdc++-v3/doc/html/manual/appendix_gpl.html        (.../branches/gcc-4_8-branch)
 
2639
@@ -1,5 +1,5 @@
 
2640
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2641
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2642
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2643
     <acronym class="acronym">GNU</acronym> General Public License version 3
 
2644
   </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. 
 
2645
   Appendices
 
2646
@@ -77,7 +77,7 @@
 
2647
   </p><p>
 
2648
     The precise terms and conditions for copying, distribution and modification
 
2649
     follow.
 
2650
-  </p><h2><a id="idp23466384"></a>
 
2651
+  </p><h2><a id="idm269992066368"></a>
 
2652
     TERMS AND CONDITIONS
 
2653
   </h2><h2><a id="gpl-3-definitions"></a>
 
2654
     0. Definitions.
 
2655
@@ -618,7 +618,7 @@
 
2656
     waiver of all civil liability in connection with the Program, unless a
 
2657
     warranty or assumption of liability accompanies a copy of the Program in
 
2658
     return for a fee.
 
2659
-  </p><h2><a id="idp23565184"></a>
 
2660
+  </p><h2><a id="idm269991967568"></a>
 
2661
     END OF TERMS AND CONDITIONS
 
2662
   </h2><h2><a id="HowToApply"></a>
 
2663
     How to Apply These Terms to Your New Programs
 
2664
Index: libstdc++-v3/doc/html/manual/source_code_style.html
 
2665
===================================================================
 
2666
--- a/src/libstdc++-v3/doc/html/manual/source_code_style.html   (.../tags/gcc_4_8_2_release)
 
2667
+++ b/src/libstdc++-v3/doc/html/manual/source_code_style.html   (.../branches/gcc-4_8-branch)
 
2668
@@ -1,5 +1,5 @@
 
2669
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2670
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2671
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2672
   Contributing
 
2673
   
 
2674
 </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>
 
2675
Index: libstdc++-v3/doc/html/manual/streambufs.html
 
2676
===================================================================
 
2677
--- a/src/libstdc++-v3/doc/html/manual/streambufs.html  (.../tags/gcc_4_8_2_release)
 
2678
+++ b/src/libstdc++-v3/doc/html/manual/streambufs.html  (.../branches/gcc-4_8-branch)
 
2679
@@ -1,5 +1,5 @@
 
2680
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2681
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2682
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2683
   Input and Output
 
2684
   
 
2685
 </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>
 
2686
Index: libstdc++-v3/doc/html/manual/utilities.html
 
2687
===================================================================
 
2688
--- a/src/libstdc++-v3/doc/html/manual/utilities.html   (.../tags/gcc_4_8_2_release)
 
2689
+++ b/src/libstdc++-v3/doc/html/manual/utilities.html   (.../branches/gcc-4_8-branch)
 
2690
@@ -1,13 +1,13 @@
 
2691
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
2692
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2693
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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. 
 
2694
   Utilities
 
2695
   
 
2696
 </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. 
 
2697
     Standard Contents
 
2698
   </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. 
 
2699
   Utilities
 
2700
-  <a id="idp13862416" class="indexterm"></a>
 
2701
-</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
 
2702
+  <a id="idm270001670464" class="indexterm"></a>
 
2703
+</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
 
2704
       get slightly the wrong idea.  In the interest of not reinventing
 
2705
       the wheel, we will refer you to the introduction to the functor
 
2706
       concept written by SGI as part of their STL, in
 
2707
Index: libstdc++-v3/include/debug/functions.h
 
2708
===================================================================
 
2709
--- a/src/libstdc++-v3/include/debug/functions.h        (.../tags/gcc_4_8_2_release)
 
2710
+++ b/src/libstdc++-v3/include/debug/functions.h        (.../branches/gcc-4_8-branch)
 
2711
@@ -345,11 +345,13 @@
 
2712
       return __check_sorted_set_aux(__first, __last, __pred, _SameType());
 
2713
    }
 
2714
 
 
2715
+  // _GLIBCXX_RESOLVE_LIB_DEFECTS
 
2716
+  // 270. Binary search requirements overly strict
 
2717
+  // Determine if a sequence is partitioned w.r.t. this element.
 
2718
   template<typename _ForwardIterator, typename _Tp>
 
2719
     inline bool
 
2720
-  __check_partitioned_lower_aux(_ForwardIterator __first,
 
2721
-                               _ForwardIterator __last, const _Tp& __value,
 
2722
-                               std::forward_iterator_tag)
 
2723
+    __check_partitioned_lower(_ForwardIterator __first,
 
2724
+                             _ForwardIterator __last, const _Tp& __value)
 
2725
     {
 
2726
       while (__first != __last && *__first < __value)
 
2727
        ++__first;
 
2728
@@ -362,38 +364,11 @@
 
2729
       return __first == __last;
 
2730
     }
 
2731
 
 
2732
-  // For performance reason, as the iterator range has been validated, check on
 
2733
-  // random access safe iterators is done using the base iterator.
 
2734
-  template<typename _Iterator, typename _Sequence, typename _Tp>
 
2735
-    inline bool
 
2736
-    __check_partitioned_lower_aux(
 
2737
-                       const _Safe_iterator<_Iterator, _Sequence>& __first,
 
2738
-                       const _Safe_iterator<_Iterator, _Sequence>& __last,
 
2739
-                       const _Tp& __value,
 
2740
-                       std::random_access_iterator_tag __tag)
 
2741
-    {
 
2742
-      return __check_partitioned_lower_aux(__first.base(), __last.base(),
 
2743
-                                          __value, __tag);
 
2744
-    }
 
2745
-
 
2746
-  // _GLIBCXX_RESOLVE_LIB_DEFECTS
 
2747
-  // 270. Binary search requirements overly strict
 
2748
-  // Determine if a sequence is partitioned w.r.t. this element.
 
2749
   template<typename _ForwardIterator, typename _Tp>
 
2750
     inline bool
 
2751
-    __check_partitioned_lower(_ForwardIterator __first,
 
2752
+    __check_partitioned_upper(_ForwardIterator __first,
 
2753
                              _ForwardIterator __last, const _Tp& __value)
 
2754
     {
 
2755
-      return __check_partitioned_lower_aux(__first, __last, __value,
 
2756
-                                          std::__iterator_category(__first));
 
2757
-    }
 
2758
-
 
2759
-  template<typename _ForwardIterator, typename _Tp>
 
2760
-    inline bool
 
2761
-    __check_partitioned_upper_aux(_ForwardIterator __first,
 
2762
-                                 _ForwardIterator __last, const _Tp& __value,
 
2763
-                                 std::forward_iterator_tag)
 
2764
-    {
 
2765
       while (__first != __last && !(__value < *__first))
 
2766
        ++__first;
 
2767
       if (__first != __last)
 
2768
@@ -405,35 +380,12 @@
 
2769
       return __first == __last;
 
2770
     }
 
2771
 
 
2772
-  // For performance reason, as the iterator range has been validated, check on
 
2773
-  // random access safe iterators is done using the base iterator.
 
2774
-  template<typename _Iterator, typename _Sequence, typename _Tp>
 
2775
-    inline bool
 
2776
-    __check_partitioned_upper_aux(
 
2777
-                       const _Safe_iterator<_Iterator, _Sequence>& __first,
 
2778
-                       const _Safe_iterator<_Iterator, _Sequence>& __last,
 
2779
-                       const _Tp& __value,
 
2780
-                       std::random_access_iterator_tag __tag)
 
2781
-    {
 
2782
-      return __check_partitioned_upper_aux(__first.base(), __last.base(),
 
2783
-                                          __value, __tag);
 
2784
-    }
 
2785
-
 
2786
-  template<typename _ForwardIterator, typename _Tp>
 
2787
-    inline bool
 
2788
-    __check_partitioned_upper(_ForwardIterator __first,
 
2789
-                             _ForwardIterator __last, const _Tp& __value)
 
2790
-    {
 
2791
-      return __check_partitioned_upper_aux(__first, __last, __value,
 
2792
-                                          std::__iterator_category(__first));
 
2793
-    }
 
2794
-
 
2795
+  // Determine if a sequence is partitioned w.r.t. this element.
 
2796
   template<typename _ForwardIterator, typename _Tp, typename _Pred>
 
2797
     inline bool
 
2798
-    __check_partitioned_lower_aux(_ForwardIterator __first,
 
2799
-                                 _ForwardIterator __last, const _Tp& __value,
 
2800
-                                 _Pred __pred,
 
2801
-                                 std::forward_iterator_tag)
 
2802
+    __check_partitioned_lower(_ForwardIterator __first,
 
2803
+                             _ForwardIterator __last, const _Tp& __value,
 
2804
+                             _Pred __pred)
 
2805
     {
 
2806
       while (__first != __last && bool(__pred(*__first, __value)))
 
2807
        ++__first;
 
2808
@@ -446,39 +398,12 @@
 
2809
       return __first == __last;
 
2810
     }
 
2811
 
 
2812
-  // For performance reason, as the iterator range has been validated, check on
 
2813
-  // random access safe iterators is done using the base iterator.
 
2814
-  template<typename _Iterator, typename _Sequence,
 
2815
-          typename _Tp, typename _Pred>
 
2816
-    inline bool
 
2817
-    __check_partitioned_lower_aux(
 
2818
-                       const _Safe_iterator<_Iterator, _Sequence>& __first,
 
2819
-                       const _Safe_iterator<_Iterator, _Sequence>& __last,
 
2820
-                       const _Tp& __value, _Pred __pred,
 
2821
-                       std::random_access_iterator_tag __tag)
 
2822
-    {
 
2823
-      return __check_partitioned_lower_aux(__first.base(), __last.base(),
 
2824
-                                          __value, __pred, __tag);
 
2825
-    }
 
2826
-
 
2827
-  // Determine if a sequence is partitioned w.r.t. this element.
 
2828
   template<typename _ForwardIterator, typename _Tp, typename _Pred>
 
2829
     inline bool
 
2830
-    __check_partitioned_lower(_ForwardIterator __first,
 
2831
+    __check_partitioned_upper(_ForwardIterator __first,
 
2832
                              _ForwardIterator __last, const _Tp& __value,
 
2833
                              _Pred __pred)
 
2834
     {
 
2835
-      return __check_partitioned_lower_aux(__first, __last, __value, __pred,
 
2836
-                                          std::__iterator_category(__first));
 
2837
-    }
 
2838
-
 
2839
-  template<typename _ForwardIterator, typename _Tp, typename _Pred>
 
2840
-    inline bool
 
2841
-    __check_partitioned_upper_aux(_ForwardIterator __first,
 
2842
-                                 _ForwardIterator __last, const _Tp& __value,
 
2843
-                                 _Pred __pred,
 
2844
-                                 std::forward_iterator_tag)
 
2845
-    {
 
2846
       while (__first != __last && !bool(__pred(__value, *__first)))
 
2847
        ++__first;
 
2848
       if (__first != __last)
 
2849
@@ -490,31 +415,6 @@
 
2850
       return __first == __last;
 
2851
     }
 
2852
 
 
2853
-  // For performance reason, as the iterator range has been validated, check on
 
2854
-  // random access safe iterators is done using the base iterator.
 
2855
-  template<typename _Iterator, typename _Sequence,
 
2856
-          typename _Tp, typename _Pred>
 
2857
-    inline bool
 
2858
-    __check_partitioned_upper_aux(
 
2859
-                       const _Safe_iterator<_Iterator, _Sequence>& __first,
 
2860
-                       const _Safe_iterator<_Iterator, _Sequence>& __last,
 
2861
-                       const _Tp& __value, _Pred __pred,
 
2862
-                       std::random_access_iterator_tag __tag)
 
2863
-    {
 
2864
-      return __check_partitioned_upper_aux(__first.base(), __last.base(),
 
2865
-                                          __value, __pred, __tag);
 
2866
-    }
 
2867
-
 
2868
-  template<typename _ForwardIterator, typename _Tp, typename _Pred>
 
2869
-    inline bool
 
2870
-    __check_partitioned_upper(_ForwardIterator __first,
 
2871
-                             _ForwardIterator __last, const _Tp& __value,
 
2872
-                             _Pred __pred)
 
2873
-    {
 
2874
-      return __check_partitioned_upper_aux(__first, __last, __value, __pred,
 
2875
-                                          std::__iterator_category(__first));
 
2876
-    }
 
2877
-
 
2878
   // Helper struct to detect random access safe iterators.
 
2879
   template<typename _Iterator>
 
2880
     struct __is_safe_random_iterator
 
2881
Index: libstdc++-v3/include/debug/macros.h
 
2882
===================================================================
 
2883
--- a/src/libstdc++-v3/include/debug/macros.h   (.../tags/gcc_4_8_2_release)
 
2884
+++ b/src/libstdc++-v3/include/debug/macros.h   (.../branches/gcc-4_8-branch)
 
2885
@@ -261,8 +261,9 @@
 
2886
     w.r.t. the value _Value. */
 
2887
 #define __glibcxx_check_partitioned_lower(_First,_Last,_Value)         \
 
2888
 __glibcxx_check_valid_range(_First,_Last);                             \
 
2889
-_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower(_First, _Last, \
 
2890
-                                                           _Value),    \
 
2891
+_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower(          \
 
2892
+                       __gnu_debug::__base(_First),                    \
 
2893
+                       __gnu_debug::__base(_Last), _Value),            \
 
2894
                      _M_message(__gnu_debug::__msg_unpartitioned)      \
 
2895
                      ._M_iterator(_First, #_First)                     \
 
2896
                      ._M_iterator(_Last, #_Last)                       \
 
2897
@@ -270,8 +271,9 @@
 
2898
 
 
2899
 #define __glibcxx_check_partitioned_upper(_First,_Last,_Value)         \
 
2900
 __glibcxx_check_valid_range(_First,_Last);                             \
 
2901
-_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper(_First, _Last, \
 
2902
-                                                           _Value),    \
 
2903
+_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper(          \
 
2904
+                       __gnu_debug::__base(_First),                    \
 
2905
+                       __gnu_debug::__base(_Last), _Value),            \
 
2906
                      _M_message(__gnu_debug::__msg_unpartitioned)      \
 
2907
                      ._M_iterator(_First, #_First)                     \
 
2908
                      ._M_iterator(_Last, #_Last)                       \
 
2909
@@ -281,8 +283,9 @@
 
2910
     w.r.t. the value _Value and predicate _Pred. */
 
2911
 #define __glibcxx_check_partitioned_lower_pred(_First,_Last,_Value,_Pred) \
 
2912
 __glibcxx_check_valid_range(_First,_Last);                             \
 
2913
-_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower(_First, _Last, \
 
2914
-                                                        _Value, _Pred), \
 
2915
+_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower(          \
 
2916
+                       __gnu_debug::__base(_First),                    \
 
2917
+                       __gnu_debug::__base(_Last), _Value, _Pred),     \
 
2918
                      _M_message(__gnu_debug::__msg_unpartitioned_pred) \
 
2919
                      ._M_iterator(_First, #_First)                     \
 
2920
                      ._M_iterator(_Last, #_Last)                       \
 
2921
@@ -293,8 +296,9 @@
 
2922
     w.r.t. the value _Value and predicate _Pred. */
 
2923
 #define __glibcxx_check_partitioned_upper_pred(_First,_Last,_Value,_Pred) \
 
2924
 __glibcxx_check_valid_range(_First,_Last);                             \
 
2925
-_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper(_First, _Last, \
 
2926
-                                                        _Value, _Pred), \
 
2927
+_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper(          \
 
2928
+                       __gnu_debug::__base(_First),                    \
 
2929
+                       __gnu_debug::__base(_Last), _Value, _Pred),     \
 
2930
                      _M_message(__gnu_debug::__msg_unpartitioned_pred) \
 
2931
                      ._M_iterator(_First, #_First)                     \
 
2932
                      ._M_iterator(_Last, #_Last)                       \
 
2933
Index: libstdc++-v3/include/bits/stl_algo.h
 
2934
===================================================================
 
2935
--- a/src/libstdc++-v3/include/bits/stl_algo.h  (.../tags/gcc_4_8_2_release)
 
2936
+++ b/src/libstdc++-v3/include/bits/stl_algo.h  (.../branches/gcc-4_8-branch)
 
2937
@@ -2279,7 +2279,7 @@
 
2938
                                _RandomAccessIterator __last)
 
2939
     {
 
2940
       _RandomAccessIterator __mid = __first + (__last - __first) / 2;
 
2941
-      std::__move_median_to_first(__first, __first + 1, __mid, (__last - 2));
 
2942
+      std::__move_median_to_first(__first, __first + 1, __mid, __last - 1);
 
2943
       return std::__unguarded_partition(__first + 1, __last, *__first);
 
2944
     }
 
2945
 
 
2946
@@ -2291,7 +2291,7 @@
 
2947
                                _RandomAccessIterator __last, _Compare __comp)
 
2948
     {
 
2949
       _RandomAccessIterator __mid = __first + (__last - __first) / 2;
 
2950
-      std::__move_median_to_first(__first, __first + 1, __mid, (__last - 2),
 
2951
+      std::__move_median_to_first(__first, __first + 1, __mid, __last - 1,
 
2952
                                  __comp);
 
2953
       return std::__unguarded_partition(__first + 1, __last, *__first, __comp);
 
2954
     }
 
2955
Index: libstdc++-v3/include/bits/shared_ptr_base.h
 
2956
===================================================================
 
2957
--- a/src/libstdc++-v3/include/bits/shared_ptr_base.h   (.../tags/gcc_4_8_2_release)
 
2958
+++ b/src/libstdc++-v3/include/bits/shared_ptr_base.h   (.../branches/gcc-4_8-branch)
 
2959
@@ -391,7 +391,7 @@
 
2960
     public:
 
2961
       template<typename... _Args>
 
2962
        _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
 
2963
-       : _M_impl(__a), _M_storage()
 
2964
+       : _M_impl(__a)
 
2965
        {
 
2966
          _M_impl._M_ptr = static_cast<_Tp*>(static_cast<void*>(&_M_storage));
 
2967
          // _GLIBCXX_RESOLVE_LIB_DEFECTS
 
2968
@@ -819,7 +819,7 @@
 
2969
        : _M_ptr(__r.get()), _M_refcount()
 
2970
        {
 
2971
          __glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>)
 
2972
-         auto __tmp = std::__addressof(*__r.get());
 
2973
+         auto __tmp = __r.get();
 
2974
          _M_refcount = __shared_count<_Lp>(std::move(__r));
 
2975
          __enable_shared_from_this_helper(_M_refcount, __tmp, __tmp);
 
2976
        }
 
2977
Index: libstdc++-v3/include/c_global/cstdio
 
2978
===================================================================
 
2979
--- a/src/libstdc++-v3/include/c_global/cstdio  (.../tags/gcc_4_8_2_release)
 
2980
+++ b/src/libstdc++-v3/include/c_global/cstdio  (.../branches/gcc-4_8-branch)
 
2981
@@ -69,6 +69,7 @@
 
2982
 #undef ftell
 
2983
 #undef fwrite
 
2984
 #undef getc
 
2985
+#undef getchar
 
2986
 #undef gets
 
2987
 #undef perror
 
2988
 #undef printf
 
2989
Index: libstdc++-v3/ChangeLog
 
2990
===================================================================
 
2991
--- a/src/libstdc++-v3/ChangeLog        (.../tags/gcc_4_8_2_release)
 
2992
+++ b/src/libstdc++-v3/ChangeLog        (.../branches/gcc-4_8-branch)
 
2993
@@ -1,3 +1,62 @@
 
2994
+2013-11-22  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
2995
+
 
2996
+       * acinclude.m4 (libtool_VERSION): Bump.
 
2997
+       * configure: Regenerate.
 
2998
+       * doc/xml/manual/abi.xml: Update version information.
 
2999
+
 
3000
+2013-11-05  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
3001
+
 
3002
+       * doc/xml/manual/status_cxx2011.xml: Document aligned_union as
 
3003
+       missing.
 
3004
+
 
3005
+       * doc/xml/manual/spine.xml: Update copyright years.
 
3006
+       * doc/html/*: Regenerate.
 
3007
+
 
3008
+2013-11-01  Paolo Carlini  <paolo.carlini@oracle.com>
 
3009
+
 
3010
+       PR libstdc++/58952
 
3011
+       * include/c_global/cstdio: Undef getchar.
 
3012
+
 
3013
+2013-10-31  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
3014
+
 
3015
+       * testsuite/20_util/shared_ptr/cons/58839.cc: Do not use
 
3016
+       default_delete<void>.
 
3017
+
 
3018
+2013-10-30  Chris Studholme  <cvs@cs.utoronto.ca>
 
3019
+
 
3020
+       PR libstdc++/58912
 
3021
+       * include/bits/shared_ptr_base.h (_Sp_counted_ptr_inplace): Remove
 
3022
+       unnecessary initialization of storage buffer.
 
3023
+
 
3024
+2013-10-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
 
3025
+
 
3026
+       PR libstdc++/58839
 
3027
+       * include/bits/shared_ptr_base.h
 
3028
+       (__shared_ptr<T>::__shared_ptr(unique_ptr<U,D>&&)): Do not dereference
 
3029
+       pointer.
 
3030
+       * testsuite/20_util/shared_ptr/cons/58839.cc: New.
 
3031
+
 
3032
+2013-10-20  Chris Jefferson  <chris@bubblescope.net>
 
3033
+           Paolo Carlini  <paolo.carlini@oracle.com>
 
3034
+
 
3035
+       PR libstdc++/58800
 
3036
+       * include/bits/stl_algo.h (__unguarded_partition_pivot): Change
 
3037
+       __last - 2 to __last - 1.
 
3038
+       * testsuite/25_algorithms/nth_element/58800.cc: New
 
3039
+
 
3040
+2013-10-16  François Dumont  <fdumont@gcc.gnu.org>
 
3041
+
 
3042
+       PR libstdc++/58191
 
3043
+       * include/debug/macros.h (__glibcxx_check_partitioned_lower): Add
 
3044
+       __gnu_debug::__base calls on iterators passed to internal debug
 
3045
+       check.
 
3046
+       (__glibcxx_check_partitioned_lower_pred): Likewise.
 
3047
+       (__glibcxx_check_partitioned_upper): Likewise.
 
3048
+       (__glibcxx_check_partitioned_upper_pred): Likewise.
 
3049
+       * include/debug/functions.h (__check_partitioned_lower):
 
3050
+       Remove code to detect safe iterators.
 
3051
+       (__check_partitioned_upper): Likewise.
 
3052
+
 
3053
 2013-10-16  Release Manager
 
3054
 
 
3055
        * GCC 4.8.2 released.
 
3056
Index: libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc
 
3057
===================================================================
 
3058
--- a/src/libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc     (.../tags/gcc_4_8_2_release)
 
3059
+++ b/src/libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc     (.../branches/gcc-4_8-branch)
 
3060
@@ -0,0 +1,52 @@
 
3061
+// Copyright (C) 2013 Free Software Foundation, Inc.
 
3062
+//
 
3063
+// This file is part of the GNU ISO C++ Library.  This library is free
 
3064
+// software; you can redistribute it and/or modify it under the
 
3065
+// terms of the GNU General Public License as published by the
 
3066
+// Free Software Foundation; either version 3, or (at your option)
 
3067
+// any later version.
 
3068
+
 
3069
+// This library is distributed in the hope that it will be useful,
 
3070
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 
3071
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
3072
+// GNU General Public License for more details.
 
3073
+
 
3074
+// You should have received a copy of the GNU General Public License along
 
3075
+// with this library; see the file COPYING3.  If not see
 
3076
+// <http://www.gnu.org/licenses/>.
 
3077
+
 
3078
+// 25.3.2 [lib.alg.nth.element]
 
3079
+
 
3080
+// { dg-options "-std=gnu++11" }
 
3081
+
 
3082
+#include <algorithm>
 
3083
+#include <testsuite_hooks.h>
 
3084
+#include <testsuite_iterators.h>
 
3085
+
 
3086
+using __gnu_test::test_container;
 
3087
+using __gnu_test::random_access_iterator_wrapper;
 
3088
+
 
3089
+typedef test_container<int, random_access_iterator_wrapper> Container;
 
3090
+
 
3091
+void test01()
 
3092
+{
 
3093
+  std::vector<int> v = {
 
3094
+    207089,
 
3095
+    202585,
 
3096
+    180067,
 
3097
+    157549,
 
3098
+    211592,
 
3099
+    216096,
 
3100
+    207089
 
3101
+  };
 
3102
+
 
3103
+  Container con(v.data(), v.data() + 7);
 
3104
+
 
3105
+  std::nth_element(con.begin(), con.begin() + 3, con.end());
 
3106
+}
 
3107
+
 
3108
+int main()
 
3109
+{
 
3110
+  test01();
 
3111
+  return 0;
 
3112
+}
 
3113
Index: libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc
 
3114
===================================================================
 
3115
--- a/src/libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc       (.../tags/gcc_4_8_2_release)
 
3116
+++ b/src/libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc       (.../branches/gcc-4_8-branch)
 
3117
@@ -0,0 +1,33 @@
 
3118
+// { dg-options "-std=gnu++11" }
 
3119
+// { dg-do compile }
 
3120
+
 
3121
+// Copyright (C) 2013 Free Software Foundation, Inc.
 
3122
+//
 
3123
+// This file is part of the GNU ISO C++ Library.  This library is free
 
3124
+// software; you can redistribute it and/or modify it under the
 
3125
+// terms of the GNU General Public License as published by the
 
3126
+// Free Software Foundation; either version 3, or (at your option)
 
3127
+// any later version.
 
3128
+
 
3129
+// This library is distributed in the hope that it will be useful,
 
3130
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
 
3131
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
3132
+// GNU General Public License for more details.
 
3133
+
 
3134
+// You should have received a copy of the GNU General Public License along
 
3135
+// with this library; see the file COPYING3.  If not see
 
3136
+// <http://www.gnu.org/licenses/>.
 
3137
+
 
3138
+#include <memory>
 
3139
+
 
3140
+// libstdc++/58839
 
3141
+
 
3142
+struct D {
 
3143
+  void operator()(void*) const noexcept { }
 
3144
+};
 
3145
+
 
3146
+void test01()
 
3147
+{
 
3148
+  std::unique_ptr<void, D> y;
 
3149
+  std::shared_ptr<void> x = std::move(y);
 
3150
+}
 
3151
Index: libstdc++-v3/acinclude.m4
 
3152
===================================================================
 
3153
--- a/src/libstdc++-v3/acinclude.m4     (.../tags/gcc_4_8_2_release)
 
3154
+++ b/src/libstdc++-v3/acinclude.m4     (.../branches/gcc-4_8-branch)
 
3155
@@ -3266,7 +3266,7 @@
 
3156
 fi
 
3157
 
 
3158
 # For libtool versioning info, format is CURRENT:REVISION:AGE
 
3159
-libtool_VERSION=6:18:0
 
3160
+libtool_VERSION=6:19:0
 
3161
 
 
3162
 # Everything parsed; figure out what files and settings to use.
 
3163
 case $enable_symvers in
 
3164
Index: contrib/ChangeLog
 
3165
===================================================================
 
3166
--- a/src/contrib/ChangeLog     (.../tags/gcc_4_8_2_release)
 
3167
+++ b/src/contrib/ChangeLog     (.../branches/gcc-4_8-branch)
 
3168
@@ -1,3 +1,7 @@
 
3169
+2013-10-21  Mike Stump  <mikestump@comcast.net>
 
3170
+
 
3171
+       * gcc_update (configure): Update to handle svn 1.8.1.
 
3172
+
 
3173
 2013-10-16  Release Manager
 
3174
 
 
3175
        * GCC 4.8.2 released.
 
3176
Index: contrib/gcc_update
 
3177
===================================================================
 
3178
--- a/src/contrib/gcc_update    (.../tags/gcc_4_8_2_release)
 
3179
+++ b/src/contrib/gcc_update    (.../branches/gcc-4_8-branch)
 
3180
@@ -382,7 +382,7 @@
 
3181
        fi
 
3182
 
 
3183
        revision=`$GCC_SVN info | awk '/Revision:/ { print $2 }'`
 
3184
-       branch=`$GCC_SVN info | sed -ne "/URL:/ {
 
3185
+       branch=`$GCC_SVN info | sed -ne "/^URL:/ {
 
3186
            s,.*/trunk,trunk,
 
3187
            s,.*/branches/,,
 
3188
            s,.*/tags/,,
 
3189
Index: libbacktrace/dwarf.c
 
3190
===================================================================
 
3191
--- a/src/libbacktrace/dwarf.c  (.../tags/gcc_4_8_2_release)
 
3192
+++ b/src/libbacktrace/dwarf.c  (.../branches/gcc-4_8-branch)
 
3193
@@ -2507,19 +2507,23 @@
 
3194
   if (pfvec->count == 0)
 
3195
     return;
 
3196
 
 
3197
-  addrs = (struct function_addrs *) pfvec->vec.base;
 
3198
   addrs_count = pfvec->count;
 
3199
 
 
3200
   if (fvec == NULL)
 
3201
     {
 
3202
       if (!backtrace_vector_release (state, &lvec.vec, error_callback, data))
 
3203
        return;
 
3204
+      addrs = (struct function_addrs *) pfvec->vec.base;
 
3205
     }
 
3206
   else
 
3207
     {
 
3208
       /* Finish this list of addresses, but leave the remaining space in
 
3209
         the vector available for the next function unit.  */
 
3210
-      backtrace_vector_finish (state, &fvec->vec);
 
3211
+      addrs = ((struct function_addrs *)
 
3212
+              backtrace_vector_finish (state, &fvec->vec,
 
3213
+                                       error_callback, data));
 
3214
+      if (addrs == NULL)
 
3215
+       return;
 
3216
       fvec->count = 0;
 
3217
     }
 
3218
 
 
3219
Index: libbacktrace/ChangeLog
 
3220
===================================================================
 
3221
--- a/src/libbacktrace/ChangeLog        (.../tags/gcc_4_8_2_release)
 
3222
+++ b/src/libbacktrace/ChangeLog        (.../branches/gcc-4_8-branch)
 
3223
@@ -1,3 +1,21 @@
 
3224
+2013-12-05  Ian Lance Taylor  <iant@google.com>
 
3225
+
 
3226
+       * alloc.c (backtrace_vector_finish): Add error_callback and data
 
3227
+       parameters.  Call backtrace_vector_release.  Return address base.
 
3228
+       * mmap.c (backtrace_vector_finish): Add error_callback and data
 
3229
+       parameters.  Return address base.
 
3230
+       * dwarf.c (read_function_info): Get new address base from
 
3231
+       backtrace_vector_finish.
 
3232
+       * internal.h (backtrace_vector_finish): Update declaration.
 
3233
+
 
3234
+2013-11-30  Ian Lance Taylor  <iant@google.com>
 
3235
+
 
3236
+       Backport from mainline:
 
3237
+       2013-10-17  Ian Lance Taylor  <iant@google.com>
 
3238
+
 
3239
+       * elf.c (elf_add): Don't get the wrong offsets if a debug section
 
3240
+       is missing.
 
3241
+
 
3242
 2013-10-16  Release Manager
 
3243
 
 
3244
        * GCC 4.8.2 released.
 
3245
Index: libbacktrace/elf.c
 
3246
===================================================================
 
3247
--- a/src/libbacktrace/elf.c    (.../tags/gcc_4_8_2_release)
 
3248
+++ b/src/libbacktrace/elf.c    (.../branches/gcc-4_8-branch)
 
3249
@@ -725,6 +725,8 @@
 
3250
     {
 
3251
       off_t end;
 
3252
 
 
3253
+      if (sections[i].size == 0)
 
3254
+       continue;
 
3255
       if (min_offset == 0 || sections[i].offset < min_offset)
 
3256
        min_offset = sections[i].offset;
 
3257
       end = sections[i].offset + sections[i].size;
 
3258
@@ -751,8 +753,13 @@
 
3259
   descriptor = -1;
 
3260
 
 
3261
   for (i = 0; i < (int) DEBUG_MAX; ++i)
 
3262
-    sections[i].data = ((const unsigned char *) debug_view.data
 
3263
-                       + (sections[i].offset - min_offset));
 
3264
+    {
 
3265
+      if (sections[i].size == 0)
 
3266
+       sections[i].data = NULL;
 
3267
+      else
 
3268
+       sections[i].data = ((const unsigned char *) debug_view.data
 
3269
+                           + (sections[i].offset - min_offset));
 
3270
+    }
 
3271
 
 
3272
   if (!backtrace_dwarf_add (state, base_address,
 
3273
                            sections[DEBUG_INFO].data,
 
3274
Index: libbacktrace/internal.h
 
3275
===================================================================
 
3276
--- a/src/libbacktrace/internal.h       (.../tags/gcc_4_8_2_release)
 
3277
+++ b/src/libbacktrace/internal.h       (.../branches/gcc-4_8-branch)
 
3278
@@ -192,13 +192,17 @@
 
3279
                                    struct backtrace_vector *vec);
 
3280
 
 
3281
 /* Finish the current allocation on VEC.  Prepare to start a new
 
3282
-   allocation.  The finished allocation will never be freed.  */
 
3283
+   allocation.  The finished allocation will never be freed.  Returns
 
3284
+   a pointer to the base of the finished entries, or NULL on
 
3285
+   failure.  */
 
3286
 
 
3287
-extern void backtrace_vector_finish (struct backtrace_state *state,
 
3288
-                                    struct backtrace_vector *vec);
 
3289
+extern void* backtrace_vector_finish (struct backtrace_state *state,
 
3290
+                                     struct backtrace_vector *vec,
 
3291
+                                     backtrace_error_callback error_callback,
 
3292
+                                     void *data);
 
3293
 
 
3294
-/* Release any extra space allocated for VEC.  Returns 1 on success, 0
 
3295
-   on failure.  */
 
3296
+/* Release any extra space allocated for VEC.  This may change
 
3297
+   VEC->base.  Returns 1 on success, 0 on failure.  */
 
3298
 
 
3299
 extern int backtrace_vector_release (struct backtrace_state *state,
 
3300
                                     struct backtrace_vector *vec,
 
3301
Index: libbacktrace/alloc.c
 
3302
===================================================================
 
3303
--- a/src/libbacktrace/alloc.c  (.../tags/gcc_4_8_2_release)
 
3304
+++ b/src/libbacktrace/alloc.c  (.../branches/gcc-4_8-branch)
 
3305
@@ -113,12 +113,24 @@
 
3306
 
 
3307
 /* Finish the current allocation on VEC.  */
 
3308
 
 
3309
-void
 
3310
-backtrace_vector_finish (struct backtrace_state *state ATTRIBUTE_UNUSED,
 
3311
-                        struct backtrace_vector *vec)
 
3312
+void *
 
3313
+backtrace_vector_finish (struct backtrace_state *state,
 
3314
+                        struct backtrace_vector *vec,
 
3315
+                        backtrace_error_callback error_callback,
 
3316
+                        void *data)
 
3317
 {
 
3318
-  vec->base = (char *) vec->base + vec->size;
 
3319
+  void *ret;
 
3320
+
 
3321
+  /* With this allocator we call realloc in backtrace_vector_grow,
 
3322
+     which means we can't easily reuse the memory here.  So just
 
3323
+     release it.  */
 
3324
+  if (!backtrace_vector_release (state, vec, error_callback, data))
 
3325
+    return NULL;
 
3326
+  ret = vec->base;
 
3327
+  vec->base = NULL;
 
3328
   vec->size = 0;
 
3329
+  vec->alc = 0;
 
3330
+  return ret;
 
3331
 }
 
3332
 
 
3333
 /* Release any extra space allocated for VEC.  */
 
3334
Index: libbacktrace/mmap.c
 
3335
===================================================================
 
3336
--- a/src/libbacktrace/mmap.c   (.../tags/gcc_4_8_2_release)
 
3337
+++ b/src/libbacktrace/mmap.c   (.../branches/gcc-4_8-branch)
 
3338
@@ -230,12 +230,19 @@
 
3339
 
 
3340
 /* Finish the current allocation on VEC.  */
 
3341
 
 
3342
-void
 
3343
-backtrace_vector_finish (struct backtrace_state *state ATTRIBUTE_UNUSED,
 
3344
-                        struct backtrace_vector *vec)
 
3345
+void *
 
3346
+backtrace_vector_finish (
 
3347
+  struct backtrace_state *state ATTRIBUTE_UNUSED,
 
3348
+  struct backtrace_vector *vec,
 
3349
+  backtrace_error_callback error_callback ATTRIBUTE_UNUSED,
 
3350
+  void *data ATTRIBUTE_UNUSED)
 
3351
 {
 
3352
+  void *ret;
 
3353
+
 
3354
+  ret = vec->base;
 
3355
   vec->base = (char *) vec->base + vec->size;
 
3356
   vec->size = 0;
 
3357
+  return ret;
 
3358
 }
 
3359
 
 
3360
 /* Release any extra space allocated for VEC.  */
 
3361
Index: libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
 
3362
===================================================================
 
3363
--- a/src/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c     (.../tags/gcc_4_8_2_release)
 
3364
+++ b/src/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c     (.../branches/gcc-4_8-branch)
 
3365
@@ -39,10 +39,11 @@
 
3366
 #include <pango/pango.h>
 
3367
 #include <pango/pangoft2.h>
 
3368
 #include <pango/pangofc-font.h>
 
3369
-#include <freetype/ftglyph.h>
 
3370
-#include <freetype/ftoutln.h>
 
3371
-#include <freetype/fttypes.h>
 
3372
-#include <freetype/tttables.h>
 
3373
+#include <ft2build.h>
 
3374
+#include FT_GLYPH_H
 
3375
+#include FT_OUTLINE_H
 
3376
+#include FT_TYPES_H
 
3377
+#include FT_TRUETYPE_TABLES_H
 
3378
 #include "gdkfont.h"
 
3379
 #include "gtkpeer.h"
 
3380
 #include "gnu_java_awt_peer_gtk_GdkFontPeer.h"
 
3381
Index: libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
 
3382
===================================================================
 
3383
--- a/src/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c     (.../tags/gcc_4_8_2_release)
 
3384
+++ b/src/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c     (.../branches/gcc-4_8-branch)
 
3385
@@ -42,8 +42,9 @@
 
3386
 #include <pango/pango.h>
 
3387
 #include <pango/pangoft2.h>
 
3388
 #include <pango/pangofc-font.h>
 
3389
-#include <freetype/ftglyph.h>
 
3390
-#include <freetype/ftoutln.h>
 
3391
+#include <ft2build.h>
 
3392
+#include FT_GLYPH_H
 
3393
+#include FT_OUTLINE_H
 
3394
 #include "jcl.h"
 
3395
 #include "gdkfont.h"
 
3396
 #include "gnu_java_awt_peer_gtk_FreetypeGlyphVector.h"
 
3397
Index: libjava/classpath/ChangeLog.gcj
 
3398
===================================================================
 
3399
--- a/src/libjava/classpath/ChangeLog.gcj       (.../tags/gcc_4_8_2_release)
 
3400
+++ b/src/libjava/classpath/ChangeLog.gcj       (.../branches/gcc-4_8-branch)
 
3401
@@ -1,3 +1,9 @@
 
3402
+2013-11-29  Matthias Klose  <doko@ubuntu.com>
 
3403
+
 
3404
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c,
 
3405
+       native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c:
 
3406
+       Fix freetype includes.
 
3407
+
 
3408
 2013-03-22  Jakub Jelinek  <jakub@redhat.com>
 
3409
 
 
3410
        PR other/43620
 
3411
Index: gnattools/configure
 
3412
===================================================================
 
3413
--- a/src/gnattools/configure   (.../tags/gcc_4_8_2_release)
 
3414
+++ b/src/gnattools/configure   (.../branches/gcc-4_8-branch)
 
3415
@@ -2029,66 +2029,59 @@
 
3416
 # Per-target case statement
 
3417
 # -------------------------
 
3418
 case "${target}" in
 
3419
-  alpha*-dec-vx*) # Unlike all other Vxworks
 
3420
+  *-*-aix*)
 
3421
+    TOOLS_TARGET_PAIRS="\
 
3422
+    mlib-tgt-specific.adb<mlib-tgt-specific-aix.adb \
 
3423
+    indepsw.adb<indepsw-aix.adb"
 
3424
     ;;
 
3425
-  m68k*-wrs-vx* \
 
3426
-  | powerpc*-wrs-vxworks \
 
3427
-  | sparc*-wrs-vx* \
 
3428
-  | *86-wrs-vxworks \
 
3429
-  | mips*-wrs-vx*)
 
3430
-    TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb"
 
3431
+  *-*-darwin*)
 
3432
+    TOOLS_TARGET_PAIRS="\
 
3433
+    mlib-tgt-specific.adb<mlib-tgt-specific-darwin.adb \
 
3434
+    indepsw.adb<indepsw-darwin.adb"
 
3435
     ;;
 
3436
-  sparc-sun-solaris*)
 
3437
-    TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb"
 
3438
+  *-*-freebsd*)
 
3439
+    TOOLS_TARGET_PAIRS="\
 
3440
+    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
 
3441
+    indepsw.adb<indepsw-gnu.adb"
 
3442
     ;;
 
3443
-  *86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
 
3444
-    TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb"
 
3445
-    ;;
 
3446
-  *86-*-linux* \
 
3447
-  | powerpc*-*-linux* \
 
3448
-  | *ia64-*-linux* \
 
3449
-  | alpha*-*-linux* \
 
3450
-  | sparc*-*-linux* \
 
3451
-  | hppa*-*-linux* \
 
3452
-  | *x86_64-*-linux*)
 
3453
+  *-*-linux*)
 
3454
     TOOLS_TARGET_PAIRS="\
 
3455
     mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
 
3456
     indepsw.adb<indepsw-gnu.adb"
 
3457
     ;;
 
3458
-  s390*-*-linux*)
 
3459
-    TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb"
 
3460
+  *-*-lynxos*)
 
3461
+    TOOLS_TARGET_PAIRS="\
 
3462
+    mlib-tgt-specific.adb<mlib-tgt-specific-lynxos.adb \
 
3463
+    indepsw.adb<indepsw-gnu.adb"
 
3464
     ;;
 
3465
-  *86-*-freebsd*)
 
3466
+  *-*-solaris*)
 
3467
+    TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb"
 
3468
+    ;;
 
3469
+  *-*-vxworks*)
 
3470
     TOOLS_TARGET_PAIRS="\
 
3471
-    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
 
3472
+    mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \
 
3473
     indepsw.adb<indepsw-gnu.adb"
 
3474
     ;;
 
3475
-  hppa*-hp-hpux10*) # Unlike hpux11
 
3476
+  hppa*-hp-hpux10*)
 
3477
     ;;
 
3478
   hppa*-hp-hpux11*)
 
3479
     TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-hpux.adb"
 
3480
     ;;
 
3481
-  *-ibm-aix*)
 
3482
-    TOOLS_TARGET_PAIRS="\
 
3483
-    mlib-tgt-specific.adb<mlib-tgt-specific-aix.adb \
 
3484
-    indepsw.adb<indepsw-aix.adb"
 
3485
+  ia64-hp-hpux11*)
 
3486
+    TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-ia64-hpux.adb"
 
3487
     ;;
 
3488
-  alpha*-dec-vms* | alpha*-dec-openvms* | alpha*-dec-vms* \
 
3489
-  | alpha*-hp-vms* | alpha*-hp-openvms* | alpha*-hp-vms*)
 
3490
+  alpha*-*-vms* | alpha*-*-openvms*)
 
3491
     TOOLS_TARGET_PAIRS="\
 
3492
     mlib-tgt-specific.adb<mlib-tgt-specific-vms-alpha.adb \
 
3493
     symbols.adb<symbols-vms.adb \
 
3494
     symbols-processing.adb<symbols-processing-vms-alpha.adb"
 
3495
-
 
3496
     EXTRA_GNATTOOLS='../../gnatlbr$(exeext) ../../gnatsym$(exeext)'
 
3497
     ;;
 
3498
-  ia64*-dec-vms* | ia64*-dec-openvms* | ia64*-dec-vms* \
 
3499
-  | ia64*-hp-vms* | ia64*-hp-openvms* | ia64*-hp-vms*)
 
3500
+  ia64-*-vms* | ia64-*-openvms*)
 
3501
     TOOLS_TARGET_PAIRS="\
 
3502
     mlib-tgt-specific.adb<mlib-tgt-specific-vms-ia64.adb \
 
3503
     symbols.adb<symbols-vms.adb \
 
3504
     symbols-processing.adb<symbols-processing-vms-ia64.adb"
 
3505
-
 
3506
     EXTRA_GNATTOOLS='../../gnatlbr$(exeext) ../../gnatsym$(exeext)'
 
3507
     ;;
 
3508
   *-*-cygwin32* | *-*-mingw32* | *-*-pe)
 
3509
@@ -2097,14 +2090,6 @@
 
3510
     indepsw.adb<indepsw-mingw.adb"
 
3511
     EXTRA_GNATTOOLS='../../gnatdll$(exeext)'
 
3512
     ;;
 
3513
-  *-*-darwin*)
 
3514
-    TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-darwin.adb"
 
3515
-    ;;
 
3516
-  *-*-lynxos)
 
3517
-    TOOLS_TARGET_PAIRS="\
 
3518
-    mlib-tgt-specific.adb<mlib-tgt-specific-lynxos.adb \
 
3519
-    indepsw.adb<indepsw-gnu.adb"
 
3520
-    ;;
 
3521
 esac
 
3522
 
 
3523
 # From user or toplevel makefile.
 
3524
Index: gnattools/Makefile.in
 
3525
===================================================================
 
3526
--- a/src/gnattools/Makefile.in (.../tags/gcc_4_8_2_release)
 
3527
+++ b/src/gnattools/Makefile.in (.../branches/gcc-4_8-branch)
 
3528
@@ -24,6 +24,8 @@
 
3529
 libdir = @libdir@
 
3530
 build = @build@
 
3531
 target = @target@
 
3532
+host = @host@
 
3533
+host_alias = @host_alias@
 
3534
 prefix = @prefix@
 
3535
 INSTALL = @INSTALL@
 
3536
 INSTALL_DATA = @INSTALL_DATA@
 
3537
@@ -84,6 +86,7 @@
 
3538
 TOOLS_FLAGS_TO_PASS_RE= \
 
3539
        "CC=../../xgcc -B../../" \
 
3540
        "CFLAGS=$(CFLAGS)" \
 
3541
+       "LDFLAGS=$(LDFLAGS)" \
 
3542
        "ADAFLAGS=$(ADAFLAGS)" \
 
3543
        "ADA_CFLAGS=$(ADA_CFLAGS)" \
 
3544
        "INCLUDES=$(INCLUDES_FOR_SUBDIR)" \
 
3545
@@ -97,6 +100,22 @@
 
3546
        "TOOLSCASE=cross"
 
3547
 
 
3548
 # Variables for gnattools, cross
 
3549
+ifeq ($(build), $(host))
 
3550
+  GNATMAKE_FOR_HOST=gnatmake
 
3551
+  GNATLINK_FOR_HOST=gnatlink
 
3552
+  GNATBIND_FOR_HOST=gnatbind
 
3553
+  GNATLS_FOR_HOST=gnatls
 
3554
+else
 
3555
+  GNATMAKE_FOR_HOST=$(host_alias)-gnatmake
 
3556
+  GNATLINK_FOR_HOST=$(host_alias)-gnatlink
 
3557
+  GNATBIND_FOR_HOST=$(host_alias)-gnatbind
 
3558
+  GNATLS_FOR_HOST=$(host_alias)-gnatls
 
3559
+endif
 
3560
+
 
3561
+# Put the host RTS dir first in the PATH to hide the default runtime
 
3562
+# files that are among the sources
 
3563
+RTS_DIR:=$(strip $(subst \,/,$(shell $(GNATLS_FOR_HOST) -v | grep adalib )))
 
3564
+
 
3565
 TOOLS_FLAGS_TO_PASS_CROSS= \
 
3566
        "CC=$(CC)" \
 
3567
        "CFLAGS=$(CFLAGS) $(WARN_CFLAGS)" \
 
3568
@@ -108,9 +127,9 @@
 
3569
        "exeext=$(exeext)" \
 
3570
        "fsrcdir=$(fsrcdir)" \
 
3571
        "srcdir=$(fsrcdir)" \
 
3572
-       "GNATMAKE=gnatmake" \
 
3573
-       "GNATLINK=gnatlink" \
 
3574
-       "GNATBIND=gnatbind" \
 
3575
+       "GNATMAKE=$(GNATMAKE_FOR_HOST)" \
 
3576
+       "GNATLINK=$(GNATLINK_FOR_HOST)" \
 
3577
+       "GNATBIND=$(GNATBIND_FOR_HOST)" \
 
3578
        "TOOLSCASE=cross" \
 
3579
        "LIBGNAT="
 
3580
 
 
3581
@@ -179,11 +198,6 @@
 
3582
        $(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \
 
3583
          $(TOOLS_FLAGS_TO_PASS_NATIVE) common-tools
 
3584
 
 
3585
-# For cross builds of gnattools,
 
3586
-# put the host RTS dir first in the PATH to hide the default runtime
 
3587
-# files that are among the sources
 
3588
-# FIXME: This should be done in configure.
 
3589
-RTS_DIR:=$(strip $(subst \,/,$(shell gnatls -v | grep adalib )))
 
3590
 gnattools-cross: $(GCC_DIR)/stamp-tools
 
3591
        # gnattools1-re
 
3592
        $(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \
 
3593
Index: gnattools/configure.ac
 
3594
===================================================================
 
3595
--- a/src/gnattools/configure.ac        (.../tags/gcc_4_8_2_release)
 
3596
+++ b/src/gnattools/configure.ac        (.../branches/gcc-4_8-branch)
 
3597
@@ -69,66 +69,59 @@
 
3598
 # Per-target case statement
 
3599
 # -------------------------
 
3600
 case "${target}" in
 
3601
-  alpha*-dec-vx*) # Unlike all other Vxworks
 
3602
+  *-*-aix*)
 
3603
+    TOOLS_TARGET_PAIRS="\
 
3604
+    mlib-tgt-specific.adb<mlib-tgt-specific-aix.adb \
 
3605
+    indepsw.adb<indepsw-aix.adb"
 
3606
     ;;
 
3607
-  m68k*-wrs-vx* \
 
3608
-  | powerpc*-wrs-vxworks \
 
3609
-  | sparc*-wrs-vx* \
 
3610
-  | *86-wrs-vxworks \
 
3611
-  | mips*-wrs-vx*)
 
3612
-    TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb"
 
3613
+  *-*-darwin*)
 
3614
+    TOOLS_TARGET_PAIRS="\
 
3615
+    mlib-tgt-specific.adb<mlib-tgt-specific-darwin.adb \
 
3616
+    indepsw.adb<indepsw-darwin.adb"
 
3617
     ;;
 
3618
-  sparc-sun-solaris*)
 
3619
-    TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb"
 
3620
+  *-*-freebsd*)
 
3621
+    TOOLS_TARGET_PAIRS="\
 
3622
+    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
 
3623
+    indepsw.adb<indepsw-gnu.adb"
 
3624
     ;;
 
3625
-  *86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*)
 
3626
-    TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb"
 
3627
-    ;;
 
3628
-  *86-*-linux* \
 
3629
-  | powerpc*-*-linux* \
 
3630
-  | *ia64-*-linux* \
 
3631
-  | alpha*-*-linux* \
 
3632
-  | sparc*-*-linux* \
 
3633
-  | hppa*-*-linux* \
 
3634
-  | *x86_64-*-linux*)
 
3635
+  *-*-linux*)
 
3636
     TOOLS_TARGET_PAIRS="\
 
3637
     mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
 
3638
     indepsw.adb<indepsw-gnu.adb"
 
3639
     ;;
 
3640
-  s390*-*-linux*)
 
3641
-    TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb"
 
3642
+  *-*-lynxos*)
 
3643
+    TOOLS_TARGET_PAIRS="\
 
3644
+    mlib-tgt-specific.adb<mlib-tgt-specific-lynxos.adb \
 
3645
+    indepsw.adb<indepsw-gnu.adb"
 
3646
     ;;
 
3647
-  *86-*-freebsd*)
 
3648
+  *-*-solaris*)
 
3649
+    TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb"
 
3650
+    ;;
 
3651
+  *-*-vxworks*)
 
3652
     TOOLS_TARGET_PAIRS="\
 
3653
-    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
 
3654
+    mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \
 
3655
     indepsw.adb<indepsw-gnu.adb"
 
3656
     ;;
 
3657
-  hppa*-hp-hpux10*) # Unlike hpux11
 
3658
+  hppa*-hp-hpux10*)
 
3659
     ;;
 
3660
   hppa*-hp-hpux11*)
 
3661
     TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-hpux.adb"
 
3662
     ;;
 
3663
-  *-ibm-aix*)
 
3664
-    TOOLS_TARGET_PAIRS="\
 
3665
-    mlib-tgt-specific.adb<mlib-tgt-specific-aix.adb \
 
3666
-    indepsw.adb<indepsw-aix.adb"
 
3667
+  ia64-hp-hpux11*)
 
3668
+    TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-ia64-hpux.adb"
 
3669
     ;;
 
3670
-  alpha*-dec-vms* | alpha*-dec-openvms* | alpha*-dec-vms* \
 
3671
-  | alpha*-hp-vms* | alpha*-hp-openvms* | alpha*-hp-vms*)
 
3672
+  alpha*-*-vms* | alpha*-*-openvms*)
 
3673
     TOOLS_TARGET_PAIRS="\
 
3674
     mlib-tgt-specific.adb<mlib-tgt-specific-vms-alpha.adb \
 
3675
     symbols.adb<symbols-vms.adb \
 
3676
     symbols-processing.adb<symbols-processing-vms-alpha.adb"
 
3677
-
 
3678
     EXTRA_GNATTOOLS='../../gnatlbr$(exeext) ../../gnatsym$(exeext)'
 
3679
     ;;
 
3680
-  ia64*-dec-vms* | ia64*-dec-openvms* | ia64*-dec-vms* \
 
3681
-  | ia64*-hp-vms* | ia64*-hp-openvms* | ia64*-hp-vms*)
 
3682
+  ia64-*-vms* | ia64-*-openvms*)
 
3683
     TOOLS_TARGET_PAIRS="\
 
3684
     mlib-tgt-specific.adb<mlib-tgt-specific-vms-ia64.adb \
 
3685
     symbols.adb<symbols-vms.adb \
 
3686
     symbols-processing.adb<symbols-processing-vms-ia64.adb"
 
3687
-
 
3688
     EXTRA_GNATTOOLS='../../gnatlbr$(exeext) ../../gnatsym$(exeext)'
 
3689
     ;;
 
3690
   *-*-cygwin32* | *-*-mingw32* | *-*-pe)
 
3691
@@ -137,14 +130,6 @@
 
3692
     indepsw.adb<indepsw-mingw.adb"
 
3693
     EXTRA_GNATTOOLS='../../gnatdll$(exeext)'
 
3694
     ;;
 
3695
-  *-*-darwin*)
 
3696
-    TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-darwin.adb"
 
3697
-    ;;
 
3698
-  *-*-lynxos)
 
3699
-    TOOLS_TARGET_PAIRS="\
 
3700
-    mlib-tgt-specific.adb<mlib-tgt-specific-lynxos.adb \
 
3701
-    indepsw.adb<indepsw-gnu.adb"
 
3702
-    ;;
 
3703
 esac
 
3704
 
 
3705
 # From user or toplevel makefile.
 
3706
Index: gnattools/ChangeLog
 
3707
===================================================================
 
3708
--- a/src/gnattools/ChangeLog   (.../tags/gcc_4_8_2_release)
 
3709
+++ b/src/gnattools/ChangeLog   (.../branches/gcc-4_8-branch)
 
3710
@@ -1,3 +1,23 @@
 
3711
+2013-12-12  Eric Botcazou  <ebotcazou@adacore.com>
 
3712
+           Iain Sandoe  <iain@codesourcery.com>
 
3713
+
 
3714
+       PR ada/55946
 
3715
+       * Makefile.in (host): Define.
 
3716
+       (host_alias): Likewise.
 
3717
+       (TOOLS_FLAGS_TO_PASS_RE): Add LDFLAGS.
 
3718
+       (GNATMAKE_FOR_HOST): Define.
 
3719
+       (GNATLINK_FOR_HOST): Likewise.
 
3720
+       (GNATBIND_FOR_HOST): Likewise.
 
3721
+       (GNATLS_FOR_HOST): Likewise.
 
3722
+       (RTS_DIR): Move around and use GNATLS_FOR_HOST.
 
3723
+       (TOOLS_FLAGS_TO_PASS_CROSS): Use the other *_HOST variables.
 
3724
+
 
3725
+2013-12-04  Eric Botcazou  <ebotcazou@adacore.com>
 
3726
+
 
3727
+       PR ada/59382
 
3728
+       * configure.ac (target parameterization): Rewrite.
 
3729
+       * configure: Regenerate.
 
3730
+
 
3731
 2013-10-16  Release Manager
 
3732
 
 
3733
        * GCC 4.8.2 released.
 
3734
Index: libgcc/config.host
 
3735
===================================================================
 
3736
--- a/src/libgcc/config.host    (.../tags/gcc_4_8_2_release)
 
3737
+++ b/src/libgcc/config.host    (.../branches/gcc-4_8-branch)
 
3738
@@ -331,10 +331,10 @@
 
3739
        ;;
 
3740
 arm*-*-uclinux*)               # ARM ucLinux
 
3741
        tmake_file="${tmake_file} t-fixedpoint-gnu-prefix"
 
3742
+       tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
 
3743
        tmake_file="${tmake_file} arm/t-bpabi"
 
3744
        tm_file="$tm_file arm/bpabi-lib.h"
 
3745
        unwind_header=config/arm/unwind-arm.h
 
3746
-       tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
 
3747
        extra_parts="$extra_parts crti.o crtn.o"
 
3748
        ;;
 
3749
 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
 
3750
@@ -718,6 +718,10 @@
 
3751
        tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit"
 
3752
        extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o crti.o crtn.o"
 
3753
        ;;
 
3754
+microblaze*-*-rtems*)
 
3755
+       tmake_file="${tmake_file} microblaze/t-microblaze t-fdpbit"
 
3756
+       extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o crti.o crtn.o"
 
3757
+       ;;
 
3758
 mips*-*-netbsd*)                       # NetBSD/mips, either endian.
 
3759
        ;;
 
3760
 mips*-*-linux*)                                # Linux MIPS, either endian.
 
3761
Index: libgcc/ChangeLog
 
3762
===================================================================
 
3763
--- a/src/libgcc/ChangeLog      (.../tags/gcc_4_8_2_release)
 
3764
+++ b/src/libgcc/ChangeLog      (.../branches/gcc-4_8-branch)
 
3765
@@ -1,3 +1,36 @@
 
3766
+2013-12-12  Zhenqiang Chen  <zhenqiang.chen@arm.com>
 
3767
+
 
3768
+       Backport from trunk r205917.
 
3769
+       2013-12-12  Zhenqiang Chen  <zhenqiang.chen@arm.com>
 
3770
+       * config.host (arm*-*-uclinux*): Move t-arm before t-bpabi.
 
3771
+
 
3772
+2013-12-10  Uros Bizjak  <ubizjak@gmail.com>
 
3773
+
 
3774
+       * config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Emit SSE
 
3775
+       instructions when __SSE_MATH__ is defined.
 
3776
+
 
3777
+2013-12-06  Ralf Corsépius  <ralf.corsepius@rtems.org>
 
3778
+
 
3779
+       * config.host (microblaze-*-rtems*): New.
 
3780
+
 
3781
+2013-11-10  Kai Tietz  <ktietz@redhat.com>
 
3782
+
 
3783
+       Back-merged from trunk
 
3784
+       * config/i386/cygming-crtbegin.c (__gcc_register_frame):
 
3785
+       Increment load-count on use of LIBGCC_SONAME DLL.
 
3786
+       (hmod_libgcc): New static variable to hold handle of
 
3787
+       LIBGCC_SONAME DLL.
 
3788
+       (__gcc_deregister_frame): Decrement load-count of
 
3789
+       LIBGCC_SONAME DLL.
 
3790
+
 
3791
+2013-11-07  Uros Bizjak  <ubizjak@gmail.com>
 
3792
+
 
3793
+       * config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Handle
 
3794
+       FP_EX_DENORM.  Store result to volatile location after SSE division
 
3795
+       to close interrupt window.  Remove unneeded fwait after x87
 
3796
+       division since interrupt window will be closed by emitted fstp.
 
3797
+       Rewrite FP_EX_INEXACT handling.
 
3798
+
 
3799
 2013-10-16  Release Manager
 
3800
 
 
3801
        * GCC 4.8.2 released.
 
3802
@@ -151,7 +184,7 @@
 
3803
        * config/mips/crtn.S (fini, init): New labels.
 
3804
 
 
3805
 2012-02-19  Edgar E. Iglesias  <edgar.iglesias@gmail.com>
 
3806
-       * config/microblaze/modsi3.S (modsi3): Fix case with 0x80000000 
 
3807
+       * config/microblaze/modsi3.S (modsi3): Fix case with 0x80000000
 
3808
        as dividend.
 
3809
 
 
3810
 2013-02-16  Alan Modra  <amodra@gmail.com>
 
3811
Index: libgcc/config/i386/sfp-exceptions.c
 
3812
===================================================================
 
3813
--- a/src/libgcc/config/i386/sfp-exceptions.c   (.../tags/gcc_4_8_2_release)
 
3814
+++ b/src/libgcc/config/i386/sfp-exceptions.c   (.../branches/gcc-4_8-branch)
 
3815
@@ -47,21 +47,33 @@
 
3816
   if (_fex & FP_EX_INVALID)
 
3817
     {
 
3818
       float f = 0.0f;
 
3819
-#ifdef __x86_64__
 
3820
+#ifdef __SSE_MATH__
 
3821
+      volatile float r __attribute__ ((unused));
 
3822
       asm volatile ("%vdivss\t{%0, %d0|%d0, %0}" : "+x" (f));
 
3823
+      r = f; /* Needed to trigger exception.   */
 
3824
 #else
 
3825
       asm volatile ("fdiv\t{%y0, %0|%0, %y0}" : "+t" (f));
 
3826
-      asm volatile ("fwait");
 
3827
+      /* No need for fwait, exception is triggered by emitted fstp.  */
 
3828
 #endif
 
3829
     }
 
3830
+  if (_fex & FP_EX_DENORM)
 
3831
+    {
 
3832
+      struct fenv temp;
 
3833
+      asm volatile ("fnstenv\t%0" : "=m" (temp));
 
3834
+      temp.__status_word |= FP_EX_DENORM;
 
3835
+      asm volatile ("fldenv\t%0" : : "m" (temp));
 
3836
+      asm volatile ("fwait");
 
3837
+    }
 
3838
   if (_fex & FP_EX_DIVZERO)
 
3839
     {
 
3840
       float f = 1.0f, g = 0.0f;
 
3841
-#ifdef __x86_64__
 
3842
+#ifdef __SSE_MATH__
 
3843
+      volatile float r __attribute__ ((unused));
 
3844
       asm volatile ("%vdivss\t{%1, %d0|%d0, %1}" : "+x" (f) : "xm" (g));
 
3845
+      r = f; /* Needed to trigger exception.   */
 
3846
 #else
 
3847
       asm volatile ("fdivs\t%1" : "+t" (f) : "m" (g));
 
3848
-      asm volatile ("fwait");
 
3849
+      /* No need for fwait, exception is triggered by emitted fstp.  */
 
3850
 #endif
 
3851
     }
 
3852
   if (_fex & FP_EX_OVERFLOW)
 
3853
@@ -82,11 +94,15 @@
 
3854
     }
 
3855
   if (_fex & FP_EX_INEXACT)
 
3856
     {
 
3857
-      struct fenv temp;
 
3858
-      asm volatile ("fnstenv\t%0" : "=m" (temp));
 
3859
-      temp.__status_word |= FP_EX_INEXACT;
 
3860
-      asm volatile ("fldenv\t%0" : : "m" (temp));
 
3861
-      asm volatile ("fwait");
 
3862
+      float f = 1.0f, g = 3.0f;
 
3863
+#ifdef __SSE_MATH__
 
3864
+      volatile float r __attribute__ ((unused));
 
3865
+      asm volatile ("%vdivss\t{%1, %d0|%d0, %1}" : "+x" (f) : "xm" (g));
 
3866
+      r = f; /* Needed to trigger exception.   */
 
3867
+#else
 
3868
+      asm volatile ("fdivs\t%1" : "+t" (f) : "m" (g));
 
3869
+      /* No need for fwait, exception is triggered by emitted fstp.  */
 
3870
+#endif
 
3871
     }
 
3872
 };
 
3873
 #endif
 
3874
Index: libgcc/config/i386/cygming-crtbegin.c
 
3875
===================================================================
 
3876
--- a/src/libgcc/config/i386/cygming-crtbegin.c (.../tags/gcc_4_8_2_release)
 
3877
+++ b/src/libgcc/config/i386/cygming-crtbegin.c (.../branches/gcc-4_8-branch)
 
3878
@@ -69,6 +69,9 @@
 
3879
   = { };
 
3880
 
 
3881
 static struct object obj;
 
3882
+
 
3883
+/* Handle of libgcc's DLL reference.  */
 
3884
+HANDLE hmod_libgcc;
 
3885
 #endif
 
3886
 
 
3887
 #if TARGET_USE_JCR_SECTION
 
3888
@@ -93,9 +96,14 @@
 
3889
 
 
3890
   void (*register_frame_fn) (const void *, struct object *);
 
3891
   HANDLE h = GetModuleHandle (LIBGCC_SONAME);
 
3892
+
 
3893
   if (h)
 
3894
-    register_frame_fn = (void (*) (const void *, struct object *))
 
3895
-                       GetProcAddress (h, "__register_frame_info");
 
3896
+    {
 
3897
+      /* Increasing the load-count of LIBGCC_SONAME DLL.  */
 
3898
+      hmod_libgcc = LoadLibrary (LIBGCC_SONAME);
 
3899
+      register_frame_fn = (void (*) (const void *, struct object *))
 
3900
+                         GetProcAddress (h, "__register_frame_info");
 
3901
+    }
 
3902
   else 
 
3903
     register_frame_fn = __register_frame_info;
 
3904
   if (register_frame_fn)
 
3905
@@ -132,5 +140,7 @@
 
3906
     deregister_frame_fn = __deregister_frame_info;
 
3907
   if (deregister_frame_fn)
 
3908
      deregister_frame_fn (__EH_FRAME_BEGIN__);
 
3909
+  if (hmod_libgcc)
 
3910
+    FreeLibrary (hmod_libgcc);
 
3911
 #endif
 
3912
 }
 
3913
Index: gcc/tree-vrp.c
 
3914
===================================================================
 
3915
--- a/src/gcc/tree-vrp.c        (.../tags/gcc_4_8_2_release)
 
3916
+++ b/src/gcc/tree-vrp.c        (.../branches/gcc-4_8-branch)
 
3917
@@ -5271,9 +5271,13 @@
 
3918
     }
 
3919
   else if (CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (op_def)))
 
3920
     {
 
3921
-      /* Recurse through the type conversion.  */
 
3922
-      retval |= register_edge_assert_for_1 (gimple_assign_rhs1 (op_def),
 
3923
-                                           code, e, bsi);
 
3924
+      /* Recurse through the type conversion, unless it is a narrowing
 
3925
+        conversion or conversion from non-integral type.  */
 
3926
+      tree rhs = gimple_assign_rhs1 (op_def);
 
3927
+      if (INTEGRAL_TYPE_P (TREE_TYPE (rhs))
 
3928
+         && (TYPE_PRECISION (TREE_TYPE (rhs))
 
3929
+             <= TYPE_PRECISION (TREE_TYPE (op))))
 
3930
+       retval |= register_edge_assert_for_1 (rhs, code, e, bsi);
 
3931
     }
 
3932
 
 
3933
   return retval;
 
3934
@@ -7453,7 +7457,8 @@
 
3935
     }
 
3936
   else if ((operand_less_p (vr1min, *vr0max) == 1
 
3937
            || operand_equal_p (vr1min, *vr0max, 0))
 
3938
-          && operand_less_p (*vr0min, vr1min) == 1)
 
3939
+          && operand_less_p (*vr0min, vr1min) == 1
 
3940
+          && operand_less_p (*vr0max, vr1max) == 1)
 
3941
     {
 
3942
       /* [  (  ]  ) or [   ](   ) */
 
3943
       if (*vr0type == VR_RANGE
 
3944
@@ -7487,7 +7492,8 @@
 
3945
     }
 
3946
   else if ((operand_less_p (*vr0min, vr1max) == 1
 
3947
            || operand_equal_p (*vr0min, vr1max, 0))
 
3948
-          && operand_less_p (vr1min, *vr0min) == 1)
 
3949
+          && operand_less_p (vr1min, *vr0min) == 1
 
3950
+          && operand_less_p (vr1max, *vr0max) == 1)
 
3951
     {
 
3952
       /* (  [  )  ] or (   )[   ] */
 
3953
       if (*vr0type == VR_RANGE
 
3954
Index: gcc/loop-unswitch.c
 
3955
===================================================================
 
3956
--- a/src/gcc/loop-unswitch.c   (.../tags/gcc_4_8_2_release)
 
3957
+++ b/src/gcc/loop-unswitch.c   (.../branches/gcc-4_8-branch)
 
3958
@@ -191,6 +191,7 @@
 
3959
   if (!test)
 
3960
     return NULL_RTX;
 
3961
 
 
3962
+  mode = VOIDmode;
 
3963
   for (i = 0; i < 2; i++)
 
3964
     {
 
3965
       op[i] = XEXP (test, i);
 
3966
@@ -205,11 +206,15 @@
 
3967
        return NULL_RTX;
 
3968
 
 
3969
       op[i] = get_iv_value (&iv, const0_rtx);
 
3970
+      if (iv.extend != IV_UNKNOWN_EXTEND
 
3971
+         && iv.mode != iv.extend_mode)
 
3972
+       op[i] = lowpart_subreg (iv.mode, op[i], iv.extend_mode);
 
3973
+      if (mode == VOIDmode)
 
3974
+       mode = iv.mode;
 
3975
+      else
 
3976
+       gcc_assert (mode == iv.mode);
 
3977
     }
 
3978
 
 
3979
-  mode = GET_MODE (op[0]);
 
3980
-  if (mode == VOIDmode)
 
3981
-    mode = GET_MODE (op[1]);
 
3982
   if (GET_MODE_CLASS (mode) == MODE_CC)
 
3983
     {
 
3984
       if (at != BB_END (bb))
 
3985
Index: gcc/tree-ssa-loop-im.c
 
3986
===================================================================
 
3987
--- a/src/gcc/tree-ssa-loop-im.c        (.../tags/gcc_4_8_2_release)
 
3988
+++ b/src/gcc/tree-ssa-loop-im.c        (.../branches/gcc-4_8-branch)
 
3989
@@ -1190,6 +1190,67 @@
 
3990
   fini_walk_dominator_tree (&walk_data);
 
3991
 }
 
3992
 
 
3993
+/* Return true if CODE is an operation that when operating on signed
 
3994
+   integer types involves undefined behavior on overflow and the
 
3995
+   operation can be expressed with unsigned arithmetic.  */
 
3996
+
 
3997
+static bool
 
3998
+arith_code_with_undefined_signed_overflow (tree_code code)
 
3999
+{
 
4000
+  switch (code)
 
4001
+    {
 
4002
+    case PLUS_EXPR:
 
4003
+    case MINUS_EXPR:
 
4004
+    case MULT_EXPR:
 
4005
+    case NEGATE_EXPR:
 
4006
+    case POINTER_PLUS_EXPR:
 
4007
+      return true;
 
4008
+    default:
 
4009
+      return false;
 
4010
+    }
 
4011
+}
 
4012
+
 
4013
+/* Rewrite STMT, an assignment with a signed integer or pointer arithmetic
 
4014
+   operation that can be transformed to unsigned arithmetic by converting
 
4015
+   its operand, carrying out the operation in the corresponding unsigned
 
4016
+   type and converting the result back to the original type.
 
4017
+
 
4018
+   Returns a sequence of statements that replace STMT and also contain
 
4019
+   a modified form of STMT itself.  */
 
4020
+
 
4021
+static gimple_seq
 
4022
+rewrite_to_defined_overflow (gimple stmt)
 
4023
+{
 
4024
+  if (dump_file && (dump_flags & TDF_DETAILS))
 
4025
+    {
 
4026
+      fprintf (dump_file, "rewriting stmt with undefined signed "
 
4027
+              "overflow ");
 
4028
+      print_gimple_stmt (dump_file, stmt, 0, TDF_SLIM);
 
4029
+    }
 
4030
+
 
4031
+  tree lhs = gimple_assign_lhs (stmt);
 
4032
+  tree type = unsigned_type_for (TREE_TYPE (lhs));
 
4033
+  gimple_seq stmts = NULL;
 
4034
+  for (unsigned i = 1; i < gimple_num_ops (stmt); ++i)
 
4035
+    {
 
4036
+      gimple_seq stmts2 = NULL;
 
4037
+      gimple_set_op (stmt, i,
 
4038
+                    force_gimple_operand (fold_convert (type,
 
4039
+                                                        gimple_op (stmt, i)),
 
4040
+                                          &stmts2, true, NULL_TREE));
 
4041
+      gimple_seq_add_seq (&stmts, stmts2);
 
4042
+    }
 
4043
+  gimple_assign_set_lhs (stmt, make_ssa_name (type, stmt));
 
4044
+  if (gimple_assign_rhs_code (stmt) == POINTER_PLUS_EXPR)
 
4045
+    gimple_assign_set_rhs_code (stmt, PLUS_EXPR);
 
4046
+  gimple_seq_add_stmt (&stmts, stmt);
 
4047
+  gimple cvt = gimple_build_assign_with_ops
 
4048
+      (NOP_EXPR, lhs, gimple_assign_lhs (stmt), NULL_TREE);
 
4049
+  gimple_seq_add_stmt (&stmts, cvt);
 
4050
+
 
4051
+  return stmts;
 
4052
+}
 
4053
+
 
4054
 /* Hoist the statements in basic block BB out of the loops prescribed by
 
4055
    data stored in LIM_DATA structures associated with each statement.  Callback
 
4056
    for walk_dominator_tree.  */
 
4057
@@ -1321,7 +1382,21 @@
 
4058
            }
 
4059
        }
 
4060
       gsi_remove (&bsi, false);
 
4061
-      gsi_insert_on_edge (e, stmt);
 
4062
+      /* In case this is a stmt that is not unconditionally executed
 
4063
+         when the target loop header is executed and the stmt may
 
4064
+        invoke undefined integer or pointer overflow rewrite it to
 
4065
+        unsigned arithmetic.  */
 
4066
+      if (is_gimple_assign (stmt)
 
4067
+         && INTEGRAL_TYPE_P (TREE_TYPE (gimple_assign_lhs (stmt)))
 
4068
+         && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (gimple_assign_lhs (stmt)))
 
4069
+         && arith_code_with_undefined_signed_overflow
 
4070
+              (gimple_assign_rhs_code (stmt))
 
4071
+         && (!ALWAYS_EXECUTED_IN (bb)
 
4072
+             || !(ALWAYS_EXECUTED_IN (bb) == level
 
4073
+                  || flow_loop_nested_p (ALWAYS_EXECUTED_IN (bb), level))))
 
4074
+       gsi_insert_seq_on_edge (e, rewrite_to_defined_overflow (stmt));
 
4075
+      else
 
4076
+       gsi_insert_on_edge (e, stmt);
 
4077
     }
 
4078
 }
 
4079
 
 
4080
Index: gcc/tree-ssa-tail-merge.c
 
4081
===================================================================
 
4082
--- a/src/gcc/tree-ssa-tail-merge.c     (.../tags/gcc_4_8_2_release)
 
4083
+++ b/src/gcc/tree-ssa-tail-merge.c     (.../branches/gcc-4_8-branch)
 
4084
@@ -297,7 +297,8 @@
 
4085
   tree val;
 
4086
   def_operand_p def_p;
 
4087
 
 
4088
-  if (gimple_has_side_effects (stmt))
 
4089
+  if (gimple_has_side_effects (stmt)
 
4090
+      || gimple_vdef (stmt) != NULL_TREE)
 
4091
     return false;
 
4092
 
 
4093
   def_p = SINGLE_SSA_DEF_OPERAND (stmt, SSA_OP_DEF);
 
4094
Index: gcc/cgraphbuild.c
 
4095
===================================================================
 
4096
--- a/src/gcc/cgraphbuild.c     (.../tags/gcc_4_8_2_release)
 
4097
+++ b/src/gcc/cgraphbuild.c     (.../branches/gcc-4_8-branch)
 
4098
@@ -73,7 +73,7 @@
 
4099
       decl = get_base_var (*tp);
 
4100
       if (TREE_CODE (decl) == FUNCTION_DECL)
 
4101
        {
 
4102
-         struct cgraph_node *node = cgraph_get_create_node (decl);
 
4103
+         struct cgraph_node *node = cgraph_get_create_real_symbol_node (decl);
 
4104
          if (!ctx->only_vars)
 
4105
            cgraph_mark_address_taken_node (node);
 
4106
          ipa_record_reference ((symtab_node)ctx->varpool_node,
 
4107
@@ -143,7 +143,7 @@
 
4108
     {
 
4109
       struct cgraph_node *per_node;
 
4110
 
 
4111
-      per_node = cgraph_get_create_node (DECL_FUNCTION_PERSONALITY (node->symbol.decl));
 
4112
+      per_node = cgraph_get_create_real_symbol_node (DECL_FUNCTION_PERSONALITY (node->symbol.decl));
 
4113
       ipa_record_reference ((symtab_node)node, (symtab_node)per_node, IPA_REF_ADDR, NULL);
 
4114
       cgraph_mark_address_taken_node (per_node);
 
4115
     }
 
4116
@@ -223,7 +223,7 @@
 
4117
   addr = get_base_address (addr);
 
4118
   if (TREE_CODE (addr) == FUNCTION_DECL)
 
4119
     {
 
4120
-      struct cgraph_node *node = cgraph_get_create_node (addr);
 
4121
+      struct cgraph_node *node = cgraph_get_create_real_symbol_node (addr);
 
4122
       cgraph_mark_address_taken_node (node);
 
4123
       ipa_record_reference ((symtab_node)data,
 
4124
                            (symtab_node)node,
 
4125
@@ -252,7 +252,7 @@
 
4126
     {
 
4127
       /* ??? This can happen on platforms with descriptors when these are
 
4128
         directly manipulated in the code.  Pretend that it's an address.  */
 
4129
-      struct cgraph_node *node = cgraph_get_create_node (t);
 
4130
+      struct cgraph_node *node = cgraph_get_create_real_symbol_node (t);
 
4131
       cgraph_mark_address_taken_node (node);
 
4132
       ipa_record_reference ((symtab_node)data,
 
4133
                            (symtab_node)node,
 
4134
@@ -330,7 +330,7 @@
 
4135
            {
 
4136
              tree fn = gimple_omp_parallel_child_fn (stmt);
 
4137
              ipa_record_reference ((symtab_node)node,
 
4138
-                                   (symtab_node)cgraph_get_create_node (fn),
 
4139
+                                   (symtab_node)cgraph_get_create_real_symbol_node (fn),
 
4140
                                    IPA_REF_ADDR, stmt);
 
4141
            }
 
4142
          if (gimple_code (stmt) == GIMPLE_OMP_TASK)
 
4143
@@ -338,12 +338,12 @@
 
4144
              tree fn = gimple_omp_task_child_fn (stmt);
 
4145
              if (fn)
 
4146
                ipa_record_reference ((symtab_node)node,
 
4147
-                                     (symtab_node) cgraph_get_create_node (fn),
 
4148
+                                     (symtab_node) cgraph_get_create_real_symbol_node (fn),
 
4149
                                      IPA_REF_ADDR, stmt);
 
4150
              fn = gimple_omp_task_copy_fn (stmt);
 
4151
              if (fn)
 
4152
                ipa_record_reference ((symtab_node)node,
 
4153
-                                     (symtab_node)cgraph_get_create_node (fn),
 
4154
+                                     (symtab_node)cgraph_get_create_real_symbol_node (fn),
 
4155
                                      IPA_REF_ADDR, stmt);
 
4156
            }
 
4157
        }
 
4158
Index: gcc/tree-ssa-loop-niter.c
 
4159
===================================================================
 
4160
--- a/src/gcc/tree-ssa-loop-niter.c     (.../tags/gcc_4_8_2_release)
 
4161
+++ b/src/gcc/tree-ssa-loop-niter.c     (.../branches/gcc-4_8-branch)
 
4162
@@ -2075,7 +2075,8 @@
 
4163
       return NULL;
 
4164
     }
 
4165
 
 
4166
-  if (gimple_code (stmt) != GIMPLE_ASSIGN)
 
4167
+  if (gimple_code (stmt) != GIMPLE_ASSIGN
 
4168
+      || gimple_assign_rhs_class (stmt) == GIMPLE_TERNARY_RHS)
 
4169
     return NULL;
 
4170
 
 
4171
   code = gimple_assign_rhs_code (stmt);
 
4172
@@ -2143,7 +2144,7 @@
 
4173
 {
 
4174
   gimple stmt;
 
4175
 
 
4176
-  gcc_assert (is_gimple_min_invariant (base));
 
4177
+  gcc_checking_assert (is_gimple_min_invariant (base));
 
4178
 
 
4179
   if (!x)
 
4180
     return base;
 
4181
@@ -2152,7 +2153,7 @@
 
4182
   if (gimple_code (stmt) == GIMPLE_PHI)
 
4183
     return base;
 
4184
 
 
4185
-  gcc_assert (is_gimple_assign (stmt));
 
4186
+  gcc_checking_assert (is_gimple_assign (stmt));
 
4187
 
 
4188
   /* STMT must be either an assignment of a single SSA name or an
 
4189
      expression involving an SSA name and a constant.  Try to fold that
 
4190
Index: gcc/c-family/ChangeLog
 
4191
===================================================================
 
4192
--- a/src/gcc/c-family/ChangeLog        (.../tags/gcc_4_8_2_release)
 
4193
+++ b/src/gcc/c-family/ChangeLog        (.../branches/gcc-4_8-branch)
 
4194
@@ -1,3 +1,18 @@
 
4195
+2013-11-29  Jakub Jelinek  <jakub@redhat.com>
 
4196
+
 
4197
+       PR c/59280
 
4198
+       * c-common.c (get_priority): If TREE_VALUE (args) is IDENTIFIER_NODE,
 
4199
+       goto invalid.  If it is error_mark_node, don't issue further
 
4200
+       diagnostics.
 
4201
+
 
4202
+2013-11-04  Marek Polacek  <polacek@redhat.com>
 
4203
+
 
4204
+       Backport from mainline
 
4205
+       2013-11-04  Marek Polacek  <polacek@redhat.com>
 
4206
+
 
4207
+       PR c++/58979
 
4208
+       * c-common.c (invalid_indirection_error): Handle RO_ARROW_STAR case.
 
4209
+
 
4210
 2013-10-16  Release Manager
 
4211
 
 
4212
        * GCC 4.8.2 released.
 
4213
Index: gcc/c-family/c-common.c
 
4214
===================================================================
 
4215
--- a/src/gcc/c-family/c-common.c       (.../tags/gcc_4_8_2_release)
 
4216
+++ b/src/gcc/c-family/c-common.c       (.../branches/gcc-4_8-branch)
 
4217
@@ -6917,6 +6917,10 @@
 
4218
     }
 
4219
 
 
4220
   arg = TREE_VALUE (args);
 
4221
+  if (TREE_CODE (arg) == IDENTIFIER_NODE)
 
4222
+    goto invalid;
 
4223
+  if (arg == error_mark_node)
 
4224
+    return DEFAULT_INIT_PRIORITY;
 
4225
   arg = default_conversion (arg);
 
4226
   if (!host_integerp (arg, /*pos=*/0)
 
4227
       || !INTEGRAL_TYPE_P (TREE_TYPE (arg)))
 
4228
@@ -9763,6 +9767,11 @@
 
4229
                "invalid type argument of %<->%> (have %qT)",
 
4230
                type);
 
4231
       break;
 
4232
+    case RO_ARROW_STAR:
 
4233
+      error_at (loc,
 
4234
+               "invalid type argument of %<->*%> (have %qT)",
 
4235
+               type);
 
4236
+      break;
 
4237
     case RO_IMPLICIT_CONVERSION:
 
4238
       error_at (loc,
 
4239
                "invalid type argument of implicit conversion (have %qT)",
 
4240
Index: gcc/c/c-typeck.c
 
4241
===================================================================
 
4242
--- a/src/gcc/c/c-typeck.c      (.../tags/gcc_4_8_2_release)
 
4243
+++ b/src/gcc/c/c-typeck.c      (.../branches/gcc-4_8-branch)
 
4244
@@ -3629,7 +3629,8 @@
 
4245
       /* Report invalid types.  */
 
4246
 
 
4247
       if (typecode != POINTER_TYPE && typecode != FIXED_POINT_TYPE
 
4248
-         && typecode != INTEGER_TYPE && typecode != REAL_TYPE)
 
4249
+         && typecode != INTEGER_TYPE && typecode != REAL_TYPE
 
4250
+         && typecode != VECTOR_TYPE)
 
4251
        {
 
4252
          if (code == PREINCREMENT_EXPR || code == POSTINCREMENT_EXPR)
 
4253
            error_at (location, "wrong type argument to increment");
 
4254
@@ -3694,7 +3695,9 @@
 
4255
          }
 
4256
        else
 
4257
          {
 
4258
-           inc = integer_one_node;
 
4259
+           inc = (TREE_CODE (argtype) == VECTOR_TYPE
 
4260
+                  ? build_one_cst (argtype)
 
4261
+                  : integer_one_node);
 
4262
            inc = convert (argtype, inc);
 
4263
          }
 
4264
 
 
4265
Index: gcc/c/ChangeLog
 
4266
===================================================================
 
4267
--- a/src/gcc/c/ChangeLog       (.../tags/gcc_4_8_2_release)
 
4268
+++ b/src/gcc/c/ChangeLog       (.../branches/gcc-4_8-branch)
 
4269
@@ -1,3 +1,18 @@
 
4270
+2013-12-03  Marek Polacek  <polacek@redhat.com>
 
4271
+
 
4272
+       Backport from mainline
 
4273
+       2013-12-03  Marek Polacek  <polacek@redhat.com>
 
4274
+
 
4275
+       PR c/59351
 
4276
+       * c-decl.c (build_compound_literal): Allow compound literals with
 
4277
+       empty initial value.
 
4278
+
 
4279
+2013-11-27  Tom de Vries  <tom@codesourcery.com>
 
4280
+           Marc Glisse  <marc.glisse@inria.fr>
 
4281
+
 
4282
+       PR c++/59032
 
4283
+       * c-typeck.c (build_unary_op): Allow vector increment and decrement.
 
4284
+
 
4285
 2013-10-16  Release Manager
 
4286
 
 
4287
        * GCC 4.8.2 released.
 
4288
Index: gcc/c/c-decl.c
 
4289
===================================================================
 
4290
--- a/src/gcc/c/c-decl.c        (.../tags/gcc_4_8_2_release)
 
4291
+++ b/src/gcc/c/c-decl.c        (.../branches/gcc-4_8-branch)
 
4292
@@ -4632,7 +4632,9 @@
 
4293
     {
 
4294
       int failure = complete_array_type (&TREE_TYPE (decl),
 
4295
                                         DECL_INITIAL (decl), true);
 
4296
-      gcc_assert (!failure);
 
4297
+      /* If complete_array_type returns 3, it means that the
 
4298
+         initial value of the compound literal is empty.  Allow it.  */
 
4299
+      gcc_assert (failure == 0 || failure == 3);
 
4300
 
 
4301
       type = TREE_TYPE (decl);
 
4302
       TREE_TYPE (DECL_INITIAL (decl)) = type;
 
4303
Index: gcc/cgraph.c
 
4304
===================================================================
 
4305
--- a/src/gcc/cgraph.c  (.../tags/gcc_4_8_2_release)
 
4306
+++ b/src/gcc/cgraph.c  (.../branches/gcc-4_8-branch)
 
4307
@@ -2596,4 +2596,47 @@
 
4308
   FOR_EACH_FUNCTION (node)
 
4309
     verify_cgraph_node (node);
 
4310
 }
 
4311
+
 
4312
+/* Create external decl node for DECL.
 
4313
+   The difference i nbetween cgraph_get_create_node and
 
4314
+   cgraph_get_create_real_symbol_node is that cgraph_get_create_node
 
4315
+   may return inline clone, while cgraph_get_create_real_symbol_node
 
4316
+   will create a new node in this case.
 
4317
+   FIXME: This function should be removed once clones are put out of decl
 
4318
+   hash.  */
 
4319
+
 
4320
+struct cgraph_node *
 
4321
+cgraph_get_create_real_symbol_node (tree decl)
 
4322
+{
 
4323
+  struct cgraph_node *first_clone = cgraph_get_node (decl);
 
4324
+  struct cgraph_node *node;
 
4325
+  /* create symbol table node.  even if inline clone exists, we can not take
 
4326
+     it as a target of non-inlined call.  */
 
4327
+  node = cgraph_get_node (decl);
 
4328
+  if (node && !node->global.inlined_to)
 
4329
+    return node;
 
4330
+
 
4331
+  node = cgraph_create_node (decl);
 
4332
+
 
4333
+  /* ok, we previously inlined the function, then removed the offline copy and
 
4334
+     now we want it back for external call.  this can happen when devirtualizing
 
4335
+     while inlining function called once that happens after extern inlined and
 
4336
+     virtuals are already removed.  in this case introduce the external node
 
4337
+     and make it available for call.  */
 
4338
+  if (first_clone)
 
4339
+    {
 
4340
+      first_clone->clone_of = node;
 
4341
+      node->clones = first_clone;
 
4342
+      symtab_prevail_in_asm_name_hash ((symtab_node) node);
 
4343
+      symtab_insert_node_to_hashtable ((symtab_node) node);
 
4344
+      if (dump_file)
 
4345
+       fprintf (dump_file, "Introduced new external node "
 
4346
+                "(%s/%i) and turned into root of the clone tree.\n",
 
4347
+                xstrdup (cgraph_node_name (node)), node->uid);
 
4348
+    }
 
4349
+  else if (dump_file)
 
4350
+    fprintf (dump_file, "Introduced new external node "
 
4351
+            "(%s/%i).\n", xstrdup (cgraph_node_name (node)), node->uid);
 
4352
+  return node;
 
4353
+}
 
4354
 #include "gt-cgraph.h"
 
4355
Index: gcc/cgraph.h
 
4356
===================================================================
 
4357
--- a/src/gcc/cgraph.h  (.../tags/gcc_4_8_2_release)
 
4358
+++ b/src/gcc/cgraph.h  (.../branches/gcc-4_8-branch)
 
4359
@@ -575,6 +575,7 @@
 
4360
 struct cgraph_node * cgraph_create_node (tree);
 
4361
 struct cgraph_node * cgraph_create_empty_node (void);
 
4362
 struct cgraph_node * cgraph_get_create_node (tree);
 
4363
+struct cgraph_node * cgraph_get_create_real_symbol_node (tree);
 
4364
 struct cgraph_node * cgraph_same_body_alias (struct cgraph_node *, tree, tree);
 
4365
 struct cgraph_node * cgraph_add_thunk (struct cgraph_node *, tree, tree, bool, HOST_WIDE_INT,
 
4366
                                       HOST_WIDE_INT, tree, tree);
 
4367
Index: gcc/optabs.c
 
4368
===================================================================
 
4369
--- a/src/gcc/optabs.c  (.../tags/gcc_4_8_2_release)
 
4370
+++ b/src/gcc/optabs.c  (.../branches/gcc-4_8-branch)
 
4371
@@ -4558,8 +4558,11 @@
 
4372
   if (!COMPARISON_P (comparison))
 
4373
     return NULL_RTX;
 
4374
 
 
4375
+  /* State variables we need to save and restore if cmove can't be used.  */
 
4376
+  int save_pending_stack_adjust = pending_stack_adjust;
 
4377
+  int save_stack_pointer_delta = stack_pointer_delta;
 
4378
+  last = get_last_insn ();
 
4379
   do_pending_stack_adjust ();
 
4380
-  last = get_last_insn ();
 
4381
   prepare_cmp_insn (XEXP (comparison, 0), XEXP (comparison, 1),
 
4382
                    GET_CODE (comparison), NULL_RTX, unsignedp, OPTAB_WIDEN,
 
4383
                    &comparison, &cmode);
 
4384
@@ -4579,6 +4582,8 @@
 
4385
        }
 
4386
     }
 
4387
   delete_insns_since (last);
 
4388
+  pending_stack_adjust = save_pending_stack_adjust;
 
4389
+  stack_pointer_delta = save_stack_pointer_delta;
 
4390
   return NULL_RTX;
 
4391
 }
 
4392
 
 
4393
@@ -7035,8 +7040,7 @@
 
4394
 
 
4395
       create_output_operand (&ops[0], target, mode);
 
4396
       create_fixed_operand (&ops[1], mem);
 
4397
-      /* VAL may have been promoted to a wider mode.  Shrink it if so.  */
 
4398
-      create_convert_operand_to (&ops[2], val, mode, true);
 
4399
+      create_input_operand (&ops[2], val, mode);
 
4400
       create_integer_operand (&ops[3], model);
 
4401
       if (maybe_expand_insn (icode, 4, ops))
 
4402
        return ops[0].value;
 
4403
@@ -7075,8 +7079,7 @@
 
4404
       struct expand_operand ops[3];
 
4405
       create_output_operand (&ops[0], target, mode);
 
4406
       create_fixed_operand (&ops[1], mem);
 
4407
-      /* VAL may have been promoted to a wider mode.  Shrink it if so.  */
 
4408
-      create_convert_operand_to (&ops[2], val, mode, true);
 
4409
+      create_input_operand (&ops[2], val, mode);
 
4410
       if (maybe_expand_insn (icode, 3, ops))
 
4411
        return ops[0].value;
 
4412
     }
 
4413
@@ -7118,8 +7121,6 @@
 
4414
     {
 
4415
       if (!target || !register_operand (target, mode))
 
4416
        target = gen_reg_rtx (mode);
 
4417
-      if (GET_MODE (val) != VOIDmode && GET_MODE (val) != mode)
 
4418
-       val = convert_modes (mode, GET_MODE (val), val, 1);
 
4419
       if (expand_compare_and_swap_loop (mem, target, val, NULL_RTX))
 
4420
        return target;
 
4421
     }
 
4422
@@ -7331,8 +7332,8 @@
 
4423
       create_output_operand (&ops[0], target_bool, bool_mode);
 
4424
       create_output_operand (&ops[1], target_oval, mode);
 
4425
       create_fixed_operand (&ops[2], mem);
 
4426
-      create_convert_operand_to (&ops[3], expected, mode, true);
 
4427
-      create_convert_operand_to (&ops[4], desired, mode, true);
 
4428
+      create_input_operand (&ops[3], expected, mode);
 
4429
+      create_input_operand (&ops[4], desired, mode);
 
4430
       create_integer_operand (&ops[5], is_weak);
 
4431
       create_integer_operand (&ops[6], succ_model);
 
4432
       create_integer_operand (&ops[7], fail_model);
 
4433
@@ -7353,8 +7354,8 @@
 
4434
 
 
4435
       create_output_operand (&ops[0], target_oval, mode);
 
4436
       create_fixed_operand (&ops[1], mem);
 
4437
-      create_convert_operand_to (&ops[2], expected, mode, true);
 
4438
-      create_convert_operand_to (&ops[3], desired, mode, true);
 
4439
+      create_input_operand (&ops[2], expected, mode);
 
4440
+      create_input_operand (&ops[3], desired, mode);
 
4441
       if (!maybe_expand_insn (icode, 4, ops))
 
4442
        return false;
 
4443
 
 
4444
Index: gcc/DATESTAMP
 
4445
===================================================================
 
4446
--- a/src/gcc/DATESTAMP (.../tags/gcc_4_8_2_release)
 
4447
+++ b/src/gcc/DATESTAMP (.../branches/gcc-4_8-branch)
 
4448
@@ -1 +1 @@
 
4449
-20131016
 
4450
+20131212
 
4451
Index: gcc/configure
 
4452
===================================================================
 
4453
--- a/src/gcc/configure (.../tags/gcc_4_8_2_release)
 
4454
+++ b/src/gcc/configure (.../branches/gcc-4_8-branch)
 
4455
@@ -11202,13 +11202,11 @@
 
4456
        /* | A-Za-z:\\/* ) realsrcdir=${srcdir};;
 
4457
        *) realsrcdir=../${srcdir};;
 
4458
        esac
 
4459
-       saved_CFLAGS="${CFLAGS}"
 
4460
        CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
 
4461
-       LDFLAGS="${LDFLAGS_FOR_BUILD}" \
 
4462
+       LDFLAGS="${LDFLAGS_FOR_BUILD}" GMPINC="" \
 
4463
        ${realsrcdir}/configure \
 
4464
                --enable-languages=${enable_languages-all} \
 
4465
                --target=$target_alias --host=$build_alias --build=$build_alias
 
4466
-       CFLAGS="${saved_CFLAGS}"
 
4467
 
 
4468
        # We just finished tests for the build machine, so rename
 
4469
        # the file auto-build.h in the gcc directory.
 
4470
@@ -11703,6 +11701,7 @@
 
4471
 if test x$build != x$host || test "x$coverage_flags" != x
 
4472
 then
 
4473
     BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
 
4474
+    BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CXXFLAGS_FOR_BUILD)'
 
4475
     BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)'
 
4476
 fi
 
4477
 
 
4478
@@ -17828,7 +17827,7 @@
 
4479
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
 
4480
   lt_status=$lt_dlunknown
 
4481
   cat > conftest.$ac_ext <<_LT_EOF
 
4482
-#line 17831 "configure"
 
4483
+#line 17830 "configure"
 
4484
 #include "confdefs.h"
 
4485
 
 
4486
 #if HAVE_DLFCN_H
 
4487
@@ -17934,7 +17933,7 @@
 
4488
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
 
4489
   lt_status=$lt_dlunknown
 
4490
   cat > conftest.$ac_ext <<_LT_EOF
 
4491
-#line 17937 "configure"
 
4492
+#line 17936 "configure"
 
4493
 #include "confdefs.h"
 
4494
 
 
4495
 #if HAVE_DLFCN_H
 
4496
@@ -24263,6 +24262,43 @@
 
4497
 $as_echo "#define HAVE_AS_SPARC4 1" >>confdefs.h
 
4498
 
 
4499
 fi
 
4500
+
 
4501
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for LEON instructions" >&5
 
4502
+$as_echo_n "checking assembler for LEON instructions... " >&6; }
 
4503
+if test "${gcc_cv_as_sparc_leon+set}" = set; then :
 
4504
+  $as_echo_n "(cached) " >&6
 
4505
+else
 
4506
+  gcc_cv_as_sparc_leon=no
 
4507
+  if test x$gcc_cv_as != x; then
 
4508
+    $as_echo '.text
 
4509
+       .register %g2, #scratch
 
4510
+       .register %g3, #scratch
 
4511
+       .align 4
 
4512
+       smac %g2, %g3, %g1
 
4513
+       umac %g2, %g3, %g1
 
4514
+       cas [%g2], %g3, %g1' > conftest.s
 
4515
+    if { ac_try='$gcc_cv_as $gcc_cv_as_flags -Aleon -o conftest.o conftest.s >&5'
 
4516
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
 
4517
+  (eval $ac_try) 2>&5
 
4518
+  ac_status=$?
 
4519
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 
4520
+  test $ac_status = 0; }; }
 
4521
+    then
 
4522
+       gcc_cv_as_sparc_leon=yes
 
4523
+    else
 
4524
+      echo "configure: failed program was" >&5
 
4525
+      cat conftest.s >&5
 
4526
+    fi
 
4527
+    rm -f conftest.o conftest.s
 
4528
+  fi
 
4529
+fi
 
4530
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_sparc_leon" >&5
 
4531
+$as_echo "$gcc_cv_as_sparc_leon" >&6; }
 
4532
+if test $gcc_cv_as_sparc_leon = yes; then
 
4533
+
 
4534
+$as_echo "#define HAVE_AS_LEON 1" >>confdefs.h
 
4535
+
 
4536
+fi
 
4537
     ;;
 
4538
 
 
4539
   i[34567]86-*-* | x86_64-*-*)
 
4540
@@ -27239,8 +27275,8 @@
 
4541
 $as_echo_n "checking for exported symbols... " >&6; }
 
4542
   if test "x$export_sym_check" != x; then
 
4543
     echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c
 
4544
-    ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest > /dev/null 2>&1
 
4545
-    if $export_sym_check conftest | grep foobar > /dev/null; then
 
4546
+    ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest$ac_exeext > /dev/null 2>&1
 
4547
+    if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then
 
4548
       : # No need to use a flag
 
4549
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 
4550
 $as_echo "yes" >&6; }
 
4551
@@ -27249,8 +27285,8 @@
 
4552
 $as_echo "yes" >&6; }
 
4553
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -rdynamic" >&5
 
4554
 $as_echo_n "checking for -rdynamic... " >&6; }
 
4555
-      ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1
 
4556
-      if $export_sym_check conftest | grep foobar > /dev/null; then
 
4557
+      ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest$ac_exeext > /dev/null 2>&1
 
4558
+      if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then
 
4559
         plugin_rdynamic=yes
 
4560
         pluginlibs="-rdynamic"
 
4561
       else
 
4562
Index: gcc/builtins.c
 
4563
===================================================================
 
4564
--- a/src/gcc/builtins.c        (.../tags/gcc_4_8_2_release)
 
4565
+++ b/src/gcc/builtins.c        (.../branches/gcc-4_8-branch)
 
4566
@@ -1958,6 +1958,7 @@
 
4567
   tree fndecl = get_callee_fndecl (exp);
 
4568
   enum machine_mode mode;
 
4569
   bool errno_set = false;
 
4570
+  bool try_widening = false;
 
4571
   tree arg;
 
4572
 
 
4573
   if (!validate_arglist (exp, REAL_TYPE, VOID_TYPE))
 
4574
@@ -1969,6 +1970,7 @@
 
4575
     {
 
4576
     CASE_FLT_FN (BUILT_IN_SQRT):
 
4577
       errno_set = ! tree_expr_nonnegative_p (arg);
 
4578
+      try_widening = true;
 
4579
       builtin_optab = sqrt_optab;
 
4580
       break;
 
4581
     CASE_FLT_FN (BUILT_IN_EXP):
 
4582
@@ -2025,8 +2027,10 @@
 
4583
   if (! flag_errno_math || ! HONOR_NANS (mode))
 
4584
     errno_set = false;
 
4585
 
 
4586
-  /* Before working hard, check whether the instruction is available.  */
 
4587
-  if (optab_handler (builtin_optab, mode) != CODE_FOR_nothing
 
4588
+  /* Before working hard, check whether the instruction is available, but try
 
4589
+     to widen the mode for specific operations.  */
 
4590
+  if ((optab_handler (builtin_optab, mode) != CODE_FOR_nothing
 
4591
+       || (try_widening && !excess_precision_type (TREE_TYPE (exp))))
 
4592
       && (!errno_set || !optimize_insn_for_size_p ()))
 
4593
     {
 
4594
       rtx result = gen_reg_rtx (mode);
 
4595
Index: gcc/fold-const.c
 
4596
===================================================================
 
4597
--- a/src/gcc/fold-const.c      (.../tags/gcc_4_8_2_release)
 
4598
+++ b/src/gcc/fold-const.c      (.../branches/gcc-4_8-branch)
 
4599
@@ -2664,10 +2664,11 @@
 
4600
        case COMPONENT_REF:
 
4601
          /* Handle operand 2 the same as for ARRAY_REF.  Operand 0
 
4602
             may be NULL when we're called to compare MEM_EXPRs.  */
 
4603
-         if (!OP_SAME_WITH_NULL (0))
 
4604
+         if (!OP_SAME_WITH_NULL (0)
 
4605
+             || !OP_SAME (1))
 
4606
            return 0;
 
4607
          flags &= ~OEP_CONSTANT_ADDRESS_OF;
 
4608
-         return OP_SAME (1) && OP_SAME_WITH_NULL (2);
 
4609
+         return OP_SAME_WITH_NULL (2);
 
4610
 
 
4611
        case BIT_FIELD_REF:
 
4612
          if (!OP_SAME (0))
 
4613
@@ -10927,6 +10928,13 @@
 
4614
                                fold_build2_loc (loc, MULT_EXPR, type,
 
4615
                                             build_int_cst (type, 2) , arg1));
 
4616
 
 
4617
+         /* ((T) (X /[ex] C)) * C cancels out if the conversion is
 
4618
+            sign-changing only.  */
 
4619
+         if (TREE_CODE (arg1) == INTEGER_CST
 
4620
+             && TREE_CODE (arg0) == EXACT_DIV_EXPR
 
4621
+             && operand_equal_p (arg1, TREE_OPERAND (arg0, 1), 0))
 
4622
+           return fold_convert_loc (loc, type, TREE_OPERAND (arg0, 0));
 
4623
+
 
4624
          strict_overflow_p = false;
 
4625
          if (TREE_CODE (arg1) == INTEGER_CST
 
4626
              && 0 != (tem = extract_muldiv (op0, arg1, code, NULL_TREE,
 
4627
@@ -16587,7 +16595,7 @@
 
4628
              unsigned HOST_WIDE_INT indexi = offset * BITS_PER_UNIT;
 
4629
              tree index = bitsize_int (indexi);
 
4630
 
 
4631
-             if (offset/part_widthi <= TYPE_VECTOR_SUBPARTS (op00type))
 
4632
+             if (offset / part_widthi < TYPE_VECTOR_SUBPARTS (op00type))
 
4633
                return fold_build3_loc (loc,
 
4634
                                        BIT_FIELD_REF, type, op00,
 
4635
                                        part_width, index);
 
4636
Index: gcc/ChangeLog
 
4637
===================================================================
 
4638
--- a/src/gcc/ChangeLog (.../tags/gcc_4_8_2_release)
 
4639
+++ b/src/gcc/ChangeLog (.../branches/gcc-4_8-branch)
 
4640
@@ -1,3 +1,716 @@
 
4641
+2013-12-12  Vladimir Makarov  <vmakarov@redhat.com>
 
4642
+
 
4643
+       PR middle-end/59470
 
4644
+       * lra-coalesce.c (lra_coalesce): Invalidate inheritance pseudo
 
4645
+       values if necessary.
 
4646
+
 
4647
+2013-12-12  Jakub Jelinek  <jakub@redhat.com>
 
4648
+
 
4649
+       PR libgomp/59467
 
4650
+       * gimplify.c (omp_check_private): Add copyprivate argument, if it
 
4651
+       is true, don't check omp_privatize_by_reference.
 
4652
+       (gimplify_scan_omp_clauses): For OMP_CLAUSE_COPYPRIVATE verify
 
4653
+       decl is private in outer context.  Adjust omp_check_private caller.
 
4654
+
 
4655
+2013-12-10  Eric Botcazou  <ebotcazou@adacore.com>
 
4656
+
 
4657
+       PR rtl-optimization/58295
 
4658
+       * simplify-rtx.c (simplify_truncation): Restrict the distribution for
 
4659
+       WORD_REGISTER_OPERATIONS targets.
 
4660
+
 
4661
+2013-12-10  Kai Tietz  <ktietz@redhat.com>
 
4662
+
 
4663
+       PR target/56807
 
4664
+       * config/i386/i386.c (ix86_expand_prologue): Address saved
 
4665
+       registers stack-relative, not via frame-pointer.
 
4666
+
 
4667
+2013-12-09  Alan Modra  <amodra@gmail.com>
 
4668
+
 
4669
+       Apply from mainline
 
4670
+       2013-12-05  Alan Modra  <amodra@gmail.com>
 
4671
+       * configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for
 
4672
+       build != host.
 
4673
+       <recursive call for build != host>: Clear GMPINC.  Don't bother
 
4674
+       saving CFLAGS.
 
4675
+       * configure: Regenerate.
 
4676
+
 
4677
+2013-12-08  Uros Bizjak  <ubizjak@gmail.com>
 
4678
+
 
4679
+       Backport from mainline
 
4680
+       2013-12-06  Uros Bizjak  <ubizjak@gmail.com>
 
4681
+
 
4682
+       PR target/59405
 
4683
+       * config/i386/i386.c (type_natural_mode): Properly handle
 
4684
+       size 8 for !TARGET_64BIT.
 
4685
+
 
4686
+2013-12-07  Ralf Corsépius  <ralf.corsepius@rtems.org>
 
4687
+
 
4688
+       * config.gcc (microblaze*-*-rtems*): Add TARGET_BIG_ENDIAN_DEFAULT.
 
4689
+
 
4690
+2013-12-06  Jakub Jelinek  <jakub@redhat.com>
 
4691
+
 
4692
+       PR tree-optimization/59388
 
4693
+       * tree-ssa-reassoc.c (update_range_test): If op == range->exp,
 
4694
+       gimplify tem after stmt rather than before it.
 
4695
+
 
4696
+2013-12-06  Oleg Endo  <olegendo@gcc.gnu.org>
 
4697
+
 
4698
+       Backport from mainline
 
4699
+       2013-11-26  Oleg Endo  <olegendo@gcc.gnu.org>
 
4700
+
 
4701
+       PR target/58314
 
4702
+       PR target/50751
 
4703
+       * config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement):
 
4704
+       Prefix function names with 'sh_'.  Make them non-static.
 
4705
+       * config/sh/sh-protos.h (sh_disp_addr_displacement,
 
4706
+       sh_max_mov_insn_displacement): Add declarations.
 
4707
+       * config/sh/constraints.md (Q): Reject QImode.
 
4708
+       (Sdd): Use match_code "mem".
 
4709
+       (Snd): Fix erroneous matching of non-memory operands.
 
4710
+       * config/sh/predicates.md (short_displacement_mem_operand): New
 
4711
+       predicate.
 
4712
+       (general_movsrc_operand): Disallow PC relative QImode loads.
 
4713
+       * config/sh/sh.md (*mov<mode>_reg_reg): Remove it.
 
4714
+       (*movqi, *movhi): Merge both insns into...
 
4715
+       (*mov<mode>): ... this new insn.  Replace generic 'm' constraints with
 
4716
+       'Snd' and 'Sdd' constraints.  Calculate insn length dynamically based
 
4717
+       on the operand types.
 
4718
+
 
4719
+2013-12-06  Richard Biener  <rguenther@suse.de>
 
4720
+
 
4721
+       Backport from mainline
 
4722
+       2013-11-29  Richard Biener  <rguenther@suse.de>
 
4723
+
 
4724
+       PR tree-optimization/59334
 
4725
+       * tree-ssa-dce.c (eliminate_unnecessary_stmts): Fix bug
 
4726
+       in previous commit.
 
4727
+
 
4728
+       2013-11-28  Richard Biener  <rguenther@suse.de>
 
4729
+
 
4730
+       PR tree-optimization/59330
 
4731
+       * tree-ssa-dce.c (eliminate_unnecessary_stmts): Simplify
 
4732
+       and fix delayed marking of free calls not necessary.
 
4733
+
 
4734
+2013-12-06  Richard Biener  <rguenther@suse.de>
 
4735
+
 
4736
+       Backport from mainline
 
4737
+       2013-11-27  Richard Biener  <rguenther@suse.de>
 
4738
+
 
4739
+       PR tree-optimization/59288
 
4740
+       * tree-vect-loop.c (get_initial_def_for_induction): Do not
 
4741
+       re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
 
4742
+
 
4743
+       2013-11-19  Richard Biener  <rguenther@suse.de>
 
4744
+
 
4745
+       PR tree-optimization/59164
 
4746
+       * tree-vect-loop.c (vect_analyze_loop_operations): Adjust
 
4747
+       check whether we can create an epilogue loop to reflect the
 
4748
+       cases where we create one.
 
4749
+
 
4750
+       2013-09-05  Richard Biener  <rguenther@suse.de>
 
4751
+
 
4752
+       PR tree-optimization/58137
 
4753
+       * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
 
4754
+       Do not create vectors of pointers.
 
4755
+       * tree-vect-loop.c (get_initial_def_for_induction): Use proper
 
4756
+       types for the components of the vector initializer.
 
4757
+       * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
 
4758
+       allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
 
4759
+
 
4760
+2013-12-06  Oleg Endo  <olegendo@gcc.gnu.org>
 
4761
+
 
4762
+       PR target/51244
 
4763
+       PR target/59343
 
4764
+       * config/sh/sh.md (*cbranch_t): Check that there are no labels between
 
4765
+       the s1 insn and the testing insn.  Remove REG_DEAD note from s1 insn.
 
4766
+
 
4767
+2013-12-05  Richard Biener  <rguenther@suse.de>
 
4768
+
 
4769
+       Backport from mainline
 
4770
+       2013-11-19  Richard Biener  <rguenther@suse.de>
 
4771
+
 
4772
+       PR middle-end/58956
 
4773
+       * tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding
 
4774
+       loads into stmts that may clobber it.
 
4775
+
 
4776
+2013-12-04  Jakub Jelinek  <jakub@redhat.com>
 
4777
+
 
4778
+       PR rtl-optimization/58726
 
4779
+       * combine.c (force_to_mode): Fix comment typo.  Don't destructively
 
4780
+       modify x for ROTATE, ROTATERT and IF_THEN_ELSE.
 
4781
+
 
4782
+2013-12-04  Jakub Jelinek  <jakub@redhat.com>
 
4783
+           Uros Bizjak  <ubizjak@gmail.com>
 
4784
+
 
4785
+       PR target/59163
 
4786
+       * config/i386/i386.c (ix86_legitimate_combined_insn): If for
 
4787
+       !TARGET_AVX there is misaligned MEM operand with vector mode
 
4788
+       and get_attr_ssememalign is 0, return false.
 
4789
+       (ix86_expand_special_args_builtin): Add get_pointer_alignment
 
4790
+       computed alignment and for non-temporal loads/stores also
 
4791
+       at least GET_MODE_ALIGNMENT as MEM_ALIGN.
 
4792
+       * config/i386/sse.md
 
4793
+       (<sse>_loadu<ssemodesuffix><avxsizesuffix>,
 
4794
+       <sse>_storeu<ssemodesuffix><avxsizesuffix>,
 
4795
+       <sse2>_loaddqu<avxsizesuffix>,
 
4796
+       <sse2>_storedqu<avxsizesuffix>, <sse3>_lddqu<avxsizesuffix>,
 
4797
+       sse_vmrcpv4sf2, sse_vmrsqrtv4sf2, sse2_cvtdq2pd, sse_movhlps,
 
4798
+       sse_movlhps, sse_storehps, sse_loadhps, sse_loadlps,
 
4799
+       *vec_interleave_highv2df, *vec_interleave_lowv2df,
 
4800
+       *vec_extractv2df_1_sse, sse2_loadhpd, sse2_loadlpd, sse2_movsd,
 
4801
+       sse4_1_<code>v8qiv8hi2, sse4_1_<code>v4qiv4si2,
 
4802
+       sse4_1_<code>v4hiv4si2, sse4_1_<code>v2qiv2di2,
 
4803
+       sse4_1_<code>v2hiv2di2, sse4_1_<code>v2siv2di2, sse4_2_pcmpestr,
 
4804
+       *sse4_2_pcmpestr_unaligned, sse4_2_pcmpestri, sse4_2_pcmpestrm,
 
4805
+       sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, *sse4_2_pcmpistr_unaligned,
 
4806
+       sse4_2_pcmpistri, sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Add
 
4807
+       ssememalign attribute.
 
4808
+       * config/i386/i386.md (ssememalign): New define_attr.
 
4809
+
 
4810
+2013-12-03  Jakub Jelinek  <jakub@redhat.com>
 
4811
+
 
4812
+       PR middle-end/59011
 
4813
+       * gimplify.c (nonlocal_vla_vars): New variable.
 
4814
+       (gimplify_var_or_parm_decl): Put VAR_DECLs for VLAs into
 
4815
+       nonlocal_vla_vars chain.
 
4816
+       (gimplify_body): Call declare_vars on nonlocal_vla_vars chain
 
4817
+       if outer_bind has DECL_INITIAL (current_function_decl) block.
 
4818
+
 
4819
+       PR target/58864
 
4820
+       * optabs.c (emit_conditional_move): Save and restore
 
4821
+       pending_stack_adjust and stack_pointer_delta if cmove can't be used.
 
4822
+
 
4823
+2013-12-02  Jakub Jelinek  <jakub@redhat.com>
 
4824
+
 
4825
+       PR tree-optimization/59358
 
4826
+       * tree-vrp.c (union_ranges): To check for the partially
 
4827
+       overlapping ranges or adjacent ranges, also compare *vr0max
 
4828
+       with vr1max.
 
4829
+
 
4830
+2013-12-02  Richard Biener  <rguenther@suse.de>
 
4831
+
 
4832
+       PR tree-optimization/59139
 
4833
+       * tree-ssa-loop-niter.c (chain_of_csts_start): Properly match
 
4834
+       code in get_val_for.
 
4835
+       (get_val_for): Use gcc_checking_asserts.
 
4836
+
 
4837
+2013-11-27  Tom de Vries  <tom@codesourcery.com>
 
4838
+           Marc Glisse  <marc.glisse@inria.fr>
 
4839
+
 
4840
+       PR middle-end/59037
 
4841
+       * fold-const.c (fold_indirect_ref_1): Don't create out-of-bounds
 
4842
+       BIT_FIELD_REF.
 
4843
+       * gimplify.c (gimple_fold_indirect_ref): Same.
 
4844
+
 
4845
+2013-12-01  Eric Botcazou  <ebotcazou@adacore.com>
 
4846
+
 
4847
+       * config/i386/winnt.c (i386_pe_asm_named_section): Be prepared for an
 
4848
+       identifier node.
 
4849
+
 
4850
+2013-12-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
 
4851
+
 
4852
+       * expr.c (emit_group_store): Fix off-by-one BITFIELD_END argument.
 
4853
+
 
4854
+2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
4855
+
 
4856
+       Backport from mainline
 
4857
+       2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
4858
+
 
4859
+       * config/arm/iterators.md (vrint_conds): New int attribute.
 
4860
+       * config/arm/vfp.md (<vrint_pattern><SDF:mode>2): Set conds attribute.
 
4861
+       (smax<mode>3): Likewise.
 
4862
+       (smin<mode>3): Likewise.
 
4863
+
 
4864
+2013-11-28  Uros Bizjak  <ubizjak@gmail.com>
 
4865
+
 
4866
+       Backport from mainline
 
4867
+       2013-11-27  Uros Bizjak  <ubizjak@gmail.com>
 
4868
+                   Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
 
4869
+
 
4870
+       PR target/56788
 
4871
+       * gcc.target/i386/xop-frczX.c: New test.
 
4872
+
 
4873
+2013-11-28  Terry Guo  <terry.guo@arm.com>
 
4874
+
 
4875
+       Backport mainline r205391
 
4876
+       2013-11-26  Terry Guo  <terry.guo@arm.com>
 
4877
+
 
4878
+       * config/arm/arm.c (require_pic_register): Handle high pic base
 
4879
+       register for thumb-1.
 
4880
+       (arm_load_pic_register): Also initialize high pic base register.
 
4881
+       * doc/invoke.texi: Update documentation for option -mpic-register.
 
4882
+
 
4883
+2013-11-27  Jakub Jelinek  <jakub@redhat.com>
 
4884
+
 
4885
+       Backported from mainline
 
4886
+       2013-11-26  Jakub Jelinek  <jakub@redhat.com>
 
4887
+
 
4888
+       PR tree-optimization/59014
 
4889
+       * tree-vrp.c (register_edge_assert_for_1): Don't look
 
4890
+       through conversions from non-integral types or through
 
4891
+       narrowing conversions.
 
4892
+
 
4893
+2013-11-27  Eric Botcazou  <ebotcazou@adacore.com>
 
4894
+
 
4895
+       PR middle-end/59138
 
4896
+       * expr.c (emit_group_store): Don't write past the end of the structure.
 
4897
+       (store_bit_field): Fix formatting.
 
4898
+
 
4899
+2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
4900
+
 
4901
+       Backport from mainline
 
4902
+       2013-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
4903
+
 
4904
+       * config/sparc/t-rtems: Add leon3 multilibs.
 
4905
+
 
4906
+2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
4907
+
 
4908
+       Backport from mainline
 
4909
+       2013-08-09  Eric Botcazou  <ebotcazou@adacore.com>
 
4910
+
 
4911
+       * configure.ac: Add GAS check for LEON instructions on SPARC.
 
4912
+       * configure: Regenerate.
 
4913
+       * config.in: Likewise.
 
4914
+       * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
 
4915
+       sparc*-*-* block.
 
4916
+       * config/sparc/sparc.opt (LEON, LEON3): New masks.
 
4917
+       * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
 
4918
+       for LEON or LEON3.
 
4919
+       (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
 
4920
+       (AS_LEON_FLAG): New macro.
 
4921
+       * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
 
4922
+       and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
 
4923
+       Deal with LEON and LEON3 for the memory model.
 
4924
+       * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
 
4925
+       (atomic_compare_and_swap<mode>_1): Likewise.
 
4926
+       (*atomic_compare_and_swap<mode>_1): Likewise.
 
4927
+
 
4928
+2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
4929
+
 
4930
+       Backport from mainline
 
4931
+       2013-07-23  Eric Botcazou  <ebotcazou@adacore.com>
 
4932
+
 
4933
+       * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
 
4934
+
 
4935
+2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
4936
+
 
4937
+       Backport from mainline
 
4938
+       2013-07-22  Eric Botcazou  <ebotcazou@adacore.com>
 
4939
+
 
4940
+       * config.gcc (sparc*-*-*): Accept leon3 processor.
 
4941
+       (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
 
4942
+       * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
 
4943
+       * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
 
4944
+       * config/sparc/sparc.opt (enum processor_type): Add leon3.
 
4945
+       (mfix-ut699): Adjust comment.
 
4946
+       * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
 
4947
+       (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
 
4948
+       (CPP_CPU_SPEC): Likewise.
 
4949
+       (ASM_CPU_SPEC): Likewise.
 
4950
+       * config/sparc/sparc.c (leon3_cost): New constant.
 
4951
+       (sparc_option_override): Add leon3 support.
 
4952
+       (mem_ref): New function.
 
4953
+       (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
 
4954
+       (sparc_do_work_around_errata): Look into the instruction in the delay
 
4955
+       slot and adjust accordingly.  Add fix for the data cache nullify issues
 
4956
+       of the UT699.  Change insertion position for the NOP.
 
4957
+       * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
 
4958
+       (leon3_load): New reservation.
 
4959
+       (leon_store): Bump latency to 2.
 
4960
+       (grfpu): New automaton.
 
4961
+       (grfpu_alu): New unit.
 
4962
+       (grfpu_ds): Likewise.
 
4963
+       (leon_fp_alu): Adjust.
 
4964
+       (leon_fp_mult): Delete.
 
4965
+       (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
 
4966
+       (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
 
4967
+       * config/sparc/sparc.md (cpu): Add leon3.
 
4968
+       * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
 
4969
+       (swapsi): Likewise.
 
4970
+       (atomic_test_and_set): Likewise.
 
4971
+       (ldstub): Likewise.
 
4972
+
 
4973
+2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
4974
+
 
4975
+       Backport from mainline
 
4976
+       2013-04-10  Steven Bosscher  <steven@gcc.gnu.org>
 
4977
+
 
4978
+       * config/sparc/sparc.c: Include tree-pass.h.
 
4979
+       (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
 
4980
+       (sparc_reorg): Rename to sparc_do_work_around_errata.  Move to
 
4981
+       head of file.  Change return type.  Split off gate function.
 
4982
+       (sparc_gate_work_around_errata): New function.
 
4983
+       (pass_work_around_errata): New pass definition.
 
4984
+       (insert_pass_work_around_errata) New pass insert definition to
 
4985
+       insert pass_work_around_errata just after delayed-branch scheduling.
 
4986
+       (sparc_option_override): Insert the pass.
 
4987
+       * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
 
4988
+
 
4989
+2013-11-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
4990
+
 
4991
+       Backport from mainline
 
4992
+       2013-05-28  Eric Botcazou  <ebotcazou@adacore.com>
 
4993
+
 
4994
+       * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
 
4995
+       * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
 
4996
+       mode if the instruction isn't available in the original mode.
 
4997
+       * config/sparc/sparc.opt (mfix-ut699): New option.
 
4998
+       * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
 
4999
+       (divdf3): Turn into expander.
 
5000
+       (divdf3_nofix): New insn.
 
5001
+       (divdf3_fix): Likewise.
 
5002
+       (divsf3): Disable if -mfix-ut699.
 
5003
+       (sqrtdf2): Turn into expander.
 
5004
+       (sqrtdf2_nofix): New insn.
 
5005
+       (sqrtdf2_fix): Likewise.
 
5006
+       (sqrtsf2): Disable if -mfix-ut699.
 
5007
+
 
5008
+2013-11-22  Eric Botcazou  <ebotcazou@adacore.com>
 
5009
+
 
5010
+       * print-rtl.c (print_rtx) <case MEM>: Output a space if no MEM_EXPR.
 
5011
+
 
5012
+2013-11-21  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
 
5013
+
 
5014
+       PR bootstrap/57683
 
5015
+       Backport from mainline: r197467 and r198999.
 
5016
+       2013-04-03  Jeff Law  <law@redhat.com>
 
5017
+
 
5018
+       * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
 
5019
+       (lra-eliminations.o): Likewise.
 
5020
+
 
5021
+       2013-05-16  Jeff Law  <law@redhat.com>
 
5022
+
 
5023
+       * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
 
5024
+
 
5025
+2013-11-20  Eric Botcazou  <ebotcazou@adacore.com>
 
5026
+
 
5027
+       PR target/59207
 
5028
+       * config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>:
 
5029
+       Make sure neg2_ovf is set before being used.
 
5030
+
 
5031
+2013-11-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
5032
+           Dominik Vogt  <vogt@linux.vnet.ibm.com>
 
5033
+
 
5034
+       Backport from mainline
 
5035
+       * config/s390/s390.c (s390_canonicalize_comparison): Don't fold
 
5036
+       int comparisons with an out of range condition code.
 
5037
+       (s390_optimize_nonescaping_tx): Skip empty BBs.
 
5038
+       Generate the new tbegin RTX when removing the FPR clobbers (with
 
5039
+       two SETs).
 
5040
+       (s390_expand_tbegin): Fix the retry loop counter.  Copy CC to the
 
5041
+       result before doing the retry calculations.
 
5042
+       (s390_init_builtins): Make tbegin "returns_twice" and tabort
 
5043
+       "noreturn".
 
5044
+       * config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for
 
5045
+       the TDB setting part of an tbegin.
 
5046
+       ("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB.
 
5047
+       ("tx_assist"): Set unused argument to an immediate zero instead of
 
5048
+       loading zero into a GPR and pass it as argument.
 
5049
+       * config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin):
 
5050
+       Remove inline and related attributes.
 
5051
+       (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort)
 
5052
+       (__TM_is_illegal, __TM_is_footprint_exceeded)
 
5053
+       (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value
 
5054
+       check.
 
5055
+
 
5056
+2013-11-19  Uros Bizjak  <ubizjak@gmail.com>
 
5057
+
 
5058
+       Backport from mainline
 
5059
+       2013-11-18  Uros Bizjak  <ubizjak@gmail.com>
 
5060
+
 
5061
+       * config/i386/i386.c (ix86_decompose_address): Use REG_P instead of
 
5062
+       ix86_address_subreg_operand.  Move subreg checks to
 
5063
+       ix86_validate_address_register.  Move address override check to
 
5064
+       ix86_legitimate_address_p.
 
5065
+       (ix86_validate_address_register): New function.
 
5066
+       (ix86_legitimate_address_p): Call ix86_validate_address_register
 
5067
+       to validate base and index registers.  Add address override check
 
5068
+       from ix86_decompose_address.
 
5069
+       (ix86_decompose_address): Remove.
 
5070
+
 
5071
+       Backport from mainline
 
5072
+       2013-11-17  Uros Bizjak  <ubizjak@gmail.com>
 
5073
+
 
5074
+       PR target/59153
 
5075
+       * config/i386/i386.c (ix86_address_subreg_operand): Do not
 
5076
+       reject non-integer subregs.
 
5077
+       (ix86_decompose_address): Do not reject invalid CONST_INT RTXes.
 
5078
+       Move check for invalid x32 constant addresses ...
 
5079
+       (ix86_legitimate_address_p): ... here.
 
5080
+
 
5081
+2013-11-19  Richard Biener  <rguenther@suse.de>
 
5082
+
 
5083
+       Backport from mainline
 
5084
+       2013-11-07  Richard Biener  <rguenther@suse.de>
 
5085
+
 
5086
+       * tree-dfa.c (get_ref_base_and_extent): Fix casting.
 
5087
+
 
5088
+2013-11-19  Richard Biener  <rguenther@suse.de>
 
5089
+
 
5090
+       PR tree-optimization/57517
 
5091
+       * tree-predcom.c (combinable_refs_p): Verify the combination
 
5092
+       is always executed when the refs are.
 
5093
+
 
5094
+2013-11-19  Richard Biener  <rguenther@suse.de>
 
5095
+
 
5096
+       Backport from mainline
 
5097
+       2013-11-05  Richard Biener  <rguenther@suse.de>
 
5098
+
 
5099
+       PR middle-end/58941
 
5100
+       * tree-dfa.c (get_ref_base_and_extent): Merge common code
 
5101
+       in MEM_REF and TARGET_MEM_REF handling.  Make sure to
 
5102
+       process trailing array detection before diving into the
 
5103
+       view-converted object (and possibly apply some extra offset).
 
5104
+
 
5105
+2013-11-18  Richard Biener  <rguenther@suse.de>
 
5106
+
 
5107
+       Backport from mainline
 
5108
+       2013-10-21  Richard Biener  <rguenther@suse.de>
 
5109
+
 
5110
+       PR tree-optimization/58794
 
5111
+       * fold-const.c (operand_equal_p): Compare FIELD_DECL operand
 
5112
+       of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place.
 
5113
+
 
5114
+       2013-10-21  Richard Biener  <rguenther@suse.de>
 
5115
+
 
5116
+       PR middle-end/58742
 
5117
+       * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C
 
5118
+       to (T) X for sign-changing conversions (or no conversion).
 
5119
+
 
5120
+       2013-11-06  Richard Biener  <rguenther@suse.de>
 
5121
+
 
5122
+       PR tree-optimization/58653
 
5123
+       * tree-predcom.c (ref_at_iteration): Rewrite to generate
 
5124
+       a MEM_REF.
 
5125
+       (prepare_initializers_chain): Adjust.
 
5126
+
 
5127
+       PR tree-optimization/59047
 
5128
+       * tree-predcom.c (ref_at_iteration): Handle bitfield accesses
 
5129
+       properly.
 
5130
+
 
5131
+       2013-10-15  Richard Biener  <rguenther@suse.de>
 
5132
+
 
5133
+       PR tree-optimization/58143
 
5134
+       * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
 
5135
+       New function.
 
5136
+       (rewrite_to_defined_overflow): Likewise.
 
5137
+       (move_computations_dom_walker::before_dom): Rewrite stmts
 
5138
+       with undefined signed overflow that are not always executed
 
5139
+       into unsigned arithmetic.
 
5140
+
 
5141
+2013-11-14  Uros Bizjak  <ubizjak@gmail.com>
 
5142
+
 
5143
+       Backport from mainline
 
5144
+       2013-11-10  Uros Bizjak  <ubizjak@gmail.com>
 
5145
+
 
5146
+       * mode-switching.c (optimize_mode_switching): Mark block as
 
5147
+       nontransparent, if last_mode at block exit is different from no_mode.
 
5148
+
 
5149
+       Backport from mainline
 
5150
+       2013-11-06  Uros Bizjak  <ubizjak@gmail.com>
 
5151
+
 
5152
+       PR target/59021
 
5153
+       * config/i386/i386.c (ix86_avx_u128_mode_needed): Require
 
5154
+       AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers.
 
5155
+       (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn
 
5156
+       RTXes that return in AVX256 register.
 
5157
+
 
5158
+2013-11-14  Jakub Jelinek  <jakub@redhat.com>
 
5159
+           Uros Bizjak  <ubizjak@gmail.com>
 
5160
+
 
5161
+       PR target/59101
 
5162
+       * config/i386/i386.md (*anddi_2): Only allow CCZmode if
 
5163
+       operands[2] satisfies_constraint_Z that might have bit 31 set.
 
5164
+
 
5165
+2013-11-12  H.J. Lu  <hongjiu.lu@intel.com>
 
5166
+
 
5167
+       Backported from mainline
 
5168
+       2013-11-12  H.J. Lu  <hongjiu.lu@intel.com>
 
5169
+
 
5170
+       PR target/59088
 
5171
+       * config/i386/i386.c (initial_ix86_tune_features): Set
 
5172
+       X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
 
5173
+       X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for m_HASWELL.
 
5174
+
 
5175
+2013-11-11  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
5176
+
 
5177
+       Backported from mainline
 
5178
+       2013-10-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
5179
+
 
5180
+       PR target/58854
 
5181
+       * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage
 
5182
+
 
5183
+2013-11-11  Jakub Jelinek  <jakub@redhat.com>
 
5184
+
 
5185
+       Backported from mainline
 
5186
+       2013-11-06  Jakub Jelinek  <jakub@redhat.com>
 
5187
+
 
5188
+       PR middle-end/58970
 
5189
+       * expr.c (get_bit_range): Handle *offset == NULL_TREE.
 
5190
+       (expand_assignment): If *bitpos is negative, set *offset
 
5191
+       and adjust *bitpos, so that it is not negative.
 
5192
+
 
5193
+       2013-11-05  Jakub Jelinek  <jakub@redhat.com>
 
5194
+
 
5195
+       PR rtl-optimization/58997
 
5196
+       * loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect
 
5197
+       get_iv_value to be in iv->mode rather than iv->extend_mode.
 
5198
+       (iv_extend): Likewise.  Otherwise, if iv->extend != extend,
 
5199
+       use lowpart_subreg on get_iv_value before calling simplify_gen_unary.
 
5200
+       * loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right
 
5201
+       mode.
 
5202
+
 
5203
+2013-11-10  Karlson2k  <k2k@narod.ru>
 
5204
+           Kai Tietz  <ktietz@redhat.com>
 
5205
+
 
5206
+       Merged from trunk
 
5207
+       PR plugins/52872
 
5208
+       * configure.ac: Adding for exported symbols check
 
5209
+       and for rdynamic-check executable-extension.
 
5210
+       * configure: Regenerated.
 
5211
+
 
5212
+2013-11-07  H.J. Lu  <hongjiu.lu@intel.com>
 
5213
+
 
5214
+       PR target/59034
 
5215
+       * config/i386/i386.md (push peepholer/splitter): Use Pmode
 
5216
+       with stack_pointer_rtx.
 
5217
+
 
5218
+2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
 
5219
+
 
5220
+       * config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos.
 
5221
+
 
5222
+2013-11-05  Jakub Jelinek  <jakub@redhat.com>
 
5223
+
 
5224
+       PR tree-optimization/58984
 
5225
+       * ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument,
 
5226
+       set *SIZE_P if non-NULL on success.
 
5227
+       (ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust
 
5228
+       callers.
 
5229
+       (ipcp_transform_function): Likewise.  Punt if size of access
 
5230
+       is different from TYPE_SIZE on v->value's type.
 
5231
+
 
5232
+2013-11-03  H.J. Lu  <hongjiu.lu@intel.com>
 
5233
+
 
5234
+       Backport from mainline
 
5235
+       2013-10-12  H.J. Lu  <hongjiu.lu@intel.com>
 
5236
+
 
5237
+       PR target/58690
 
5238
+       * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
 
5239
+       (ix86_expand_movmem): Replace copy_addr_to_reg with
 
5240
+       ix86_copy_addr_to_reg.
 
5241
+       (ix86_expand_setmem): Likewise.
 
5242
+
 
5243
+2013-10-29  Uros Bizjak  <ubizjak@gmail.com>
 
5244
+
 
5245
+       Backport from mainline
 
5246
+       2013-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
 
5247
+
 
5248
+       PR rtl-optimization/58079
 
5249
+       * combine.c (combine_simplify_rtx): Avoid using SUBST if
 
5250
+       simplify_comparison has widened a comparison with an integer.
 
5251
+
 
5252
+2013-10-29  Martin Jambor  <mjambor@suse.cz>
 
5253
+
 
5254
+       PR middle-end/58789
 
5255
+       Backport from mainline
 
5256
+       2013-05-09  Martin Jambor  <mjambor@suse.cz>
 
5257
+
 
5258
+       PR lto/57084
 
5259
+       * gimple-fold.c (canonicalize_constructor_val): Call
 
5260
+       cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
 
5261
+
 
5262
+       Backport from mainline
 
5263
+       2013-03-16  Jan Hubicka  <jh@suse.cz>
 
5264
+
 
5265
+       * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
 
5266
+       * cgraph.c (cgraph_get_create_real_symbol_node): New function.
 
5267
+       * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
 
5268
+       of cgraph_get_create_node.
 
5269
+       * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
 
5270
+
 
5271
+2013-10-28  Tom de Vries  <tom@codesourcery.com>
 
5272
+
 
5273
+       * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn.
 
5274
+       Don't commit insertions after NOTE_INSN_FUNCTION_BEG.
 
5275
+
 
5276
+2013-10-26  Uros Bizjak  <ubizjak@gmail.com>
 
5277
+
 
5278
+       Backport from mainline
 
5279
+       2013-10-22  Uros Bizjak  <ubizjak@gmail.com>
 
5280
+
 
5281
+       PR target/58779
 
5282
+       * config/i386/i386.c (put_condition_code) <case GTU, case LEU>:
 
5283
+       Remove CCCmode handling.
 
5284
+       <case LTU>: Return 'c' suffix for CCCmode.
 
5285
+       <case GEU>: Return 'nc' suffix for CCCmode.
 
5286
+       (ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks.
 
5287
+       * config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove.
 
5288
+       (*sub<mode>3_cc_overflow): Ditto.
 
5289
+       (*subsi3_zext_cc_overflow): Ditto.
 
5290
+
 
5291
+2013-10-26  Uros Bizjak  <ubizjak@gmail.com>
 
5292
+
 
5293
+       Backport from mainline
 
5294
+       2013-10-19  Uros Bizjak  <ubizjak@gmail.com>
 
5295
+
 
5296
+       PR target/58792
 
5297
+       * config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
 
5298
+       ST1_REG and XMM1_REG for 32bit and 64bit targets.  Also add DI_REG
 
5299
+       and SI_REG for 64bit SYSV ABI targets.
 
5300
+
 
5301
+2013-08-25  Richard Henderson  <rth@twiddle.net>
 
5302
+
 
5303
+       PR rtl/58542
 
5304
+       * optabs.c (maybe_emit_atomic_exchange): Use create_input_operand
 
5305
+       instead of create_convert_operand_to.
 
5306
+       (maybe_emit_sync_lock_test_and_set): Likewise.
 
5307
+       (expand_atomic_compare_and_swap): Likewise.
 
5308
+       (maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes.
 
5309
+
 
5310
+2013-10-25  Eric Botcazou  <ebotcazou@adacore.com>
 
5311
+
 
5312
+       PR rtl-optimization/58831
 
5313
+       * alias.c (init_alias_analysis): At the beginning of each iteration, set
 
5314
+       the reg_seen[N] bit if static_reg_base_value[N] is non-null.
 
5315
+
 
5316
+2013-10-25  Eric Botcazou  <ebotcazou@adacore.com>
 
5317
+
 
5318
+       * recog.c (search_ofs): New static variable moved from...
 
5319
+       (peep2_find_free_register): ...here.
 
5320
+       (peephole2_optimize): Initialize it.
 
5321
+
 
5322
+2013-10-24  David Edelsohn  <dje.gcc@gmail.com>
 
5323
+
 
5324
+       Backport from mainline
 
5325
+       2013-10-23  David Edelsohn  <dje.gcc@gmail.com>
 
5326
+
 
5327
+       PR target/58838
 
5328
+       * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add
 
5329
+       TARGET_32BIT final condition.
 
5330
+       (mulsi3_internal2 and splitter): Same.
 
5331
+
 
5332
+2013-10-23  Tom de Vries  <tom@codesourcery.com>
 
5333
+
 
5334
+       PR tree-optimization/58805
 
5335
+       * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check.
 
5336
+
 
5337
+2013-10-23  Richard Biener  <rguenther@suse.de>
 
5338
+
 
5339
+       Backport from mainline
 
5340
+       2013-06-24  Richard Biener  <rguenther@suse.de>
 
5341
+
 
5342
+       PR tree-optimization/57488
 
5343
+       * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
 
5344
+
 
5345
+2013-10-16  Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
 
5346
+
 
5347
+       Backport from mainline
 
5348
+       2013-10-16  Ganesh Gopalasubramanian
 
5349
+                   <Ganesh.Gopalasubramanian@amd.com>
 
5350
+
 
5351
+       * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
 
5352
+       for AMD bdver3.
 
5353
+
 
5354
 2013-10-16  Release Manager
 
5355
 
 
5356
        * GCC 4.8.2 released.
 
5357
@@ -639,7 +1357,7 @@
 
5358
 2013-07-31  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
5359
 
 
5360
        Backport from mainline
 
5361
-        2013-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
5362
+       2013-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
5363
 
 
5364
        * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
 
5365
 
 
5366
Index: gcc/testsuite/gcc.target/arm/thumb1-pic-single-base.c
 
5367
===================================================================
 
5368
--- a/src/gcc/testsuite/gcc.target/arm/thumb1-pic-single-base.c (.../tags/gcc_4_8_2_release)
 
5369
+++ b/src/gcc/testsuite/gcc.target/arm/thumb1-pic-single-base.c (.../branches/gcc-4_8-branch)
 
5370
@@ -0,0 +1,11 @@
 
5371
+/* { dg-do compile } */
 
5372
+/* { dg-require-effective-target arm_thumb1_ok } */
 
5373
+/* { dg-options "-mthumb -fpic -msingle-pic-base" } */
 
5374
+
 
5375
+int g_test;
 
5376
+
 
5377
+int
 
5378
+foo (int par)
 
5379
+{
 
5380
+    g_test = par;
 
5381
+}
 
5382
Index: gcc/testsuite/gcc.target/arm/thumb1-pic-high-reg.c
 
5383
===================================================================
 
5384
--- a/src/gcc/testsuite/gcc.target/arm/thumb1-pic-high-reg.c    (.../tags/gcc_4_8_2_release)
 
5385
+++ b/src/gcc/testsuite/gcc.target/arm/thumb1-pic-high-reg.c    (.../branches/gcc-4_8-branch)
 
5386
@@ -0,0 +1,11 @@
 
5387
+/* { dg-do compile } */
 
5388
+/* { dg-require-effective-target arm_thumb1_ok } */
 
5389
+/* { dg-options "-mthumb -fpic -mpic-register=9" } */
 
5390
+
 
5391
+int g_test;
 
5392
+
 
5393
+int
 
5394
+foo (int par)
 
5395
+{
 
5396
+    g_test = par;
 
5397
+}
 
5398
Index: gcc/testsuite/gcc.target/arm/require-pic-register-loc.c
 
5399
===================================================================
 
5400
--- a/src/gcc/testsuite/gcc.target/arm/require-pic-register-loc.c       (.../tags/gcc_4_8_2_release)
 
5401
+++ b/src/gcc/testsuite/gcc.target/arm/require-pic-register-loc.c       (.../branches/gcc-4_8-branch)
 
5402
@@ -0,0 +1,29 @@
 
5403
+/* { dg-do compile } */
 
5404
+/* { dg-options "-g -fPIC" } */
 
5405
+
 
5406
+void *v;
 
5407
+void a (void *x) { }
 
5408
+void b (void) { }
 
5409
+                       /* line 7.  */
 
5410
+int                    /* line 8.  */
 
5411
+main (int argc)        /* line 9.  */
 
5412
+{                      /* line 10.  */
 
5413
+  if (argc == 12345)   /* line 11.  */
 
5414
+    {
 
5415
+      a (v);
 
5416
+      return 1;
 
5417
+    }
 
5418
+  b ();
 
5419
+
 
5420
+  return 0;
 
5421
+}
 
5422
+
 
5423
+/* { dg-final { scan-assembler-not "\.loc 1 7 0" } } */
 
5424
+/* { dg-final { scan-assembler-not "\.loc 1 8 0" } } */
 
5425
+/* { dg-final { scan-assembler-not "\.loc 1 9 0" } } */
 
5426
+
 
5427
+/* The loc at the start of the prologue.  */
 
5428
+/* { dg-final { scan-assembler-times "\.loc 1 10 0" 1 } } */
 
5429
+
 
5430
+/* The loc at the end of the prologue, with the first user line.  */
 
5431
+/* { dg-final { scan-assembler-times "\.loc 1 11 0" 1 } } */
 
5432
Index: gcc/testsuite/gcc.target/arm/vrinta-ce.c
 
5433
===================================================================
 
5434
--- a/src/gcc/testsuite/gcc.target/arm/vrinta-ce.c      (.../tags/gcc_4_8_2_release)
 
5435
+++ b/src/gcc/testsuite/gcc.target/arm/vrinta-ce.c      (.../branches/gcc-4_8-branch)
 
5436
@@ -0,0 +1,15 @@
 
5437
+/* { dg-do compile } */
 
5438
+/* { dg-require-effective-target arm_v8_vfp_ok } */
 
5439
+/* { dg-options "-O2 -marm -march=armv8-a" } */
 
5440
+/* { dg-add-options arm_v8_vfp } */
 
5441
+
 
5442
+double foo (double a)
 
5443
+{
 
5444
+  if (a > 3.0)
 
5445
+    return  __builtin_round (a);
 
5446
+
 
5447
+  return 0.0;
 
5448
+}
 
5449
+
 
5450
+/* { dg-final { scan-assembler-times "vrinta.f64\td\[0-9\]+" 1 } } */
 
5451
+
 
5452
Index: gcc/testsuite/gcc.target/i386/pr59405.c
 
5453
===================================================================
 
5454
--- a/src/gcc/testsuite/gcc.target/i386/pr59405.c       (.../tags/gcc_4_8_2_release)
 
5455
+++ b/src/gcc/testsuite/gcc.target/i386/pr59405.c       (.../branches/gcc-4_8-branch)
 
5456
@@ -0,0 +1,24 @@
 
5457
+/* { dg-do run } */
 
5458
+/* { dg-options "-mmmx -mfpmath=387" } */
 
5459
+
 
5460
+#include "mmx-check.h"
 
5461
+
 
5462
+#include <mmintrin.h>
 
5463
+
 
5464
+typedef float float32x2_t __attribute__ ((vector_size (8)));
 
5465
+
 
5466
+float
 
5467
+foo32x2_be (float32x2_t x)
 
5468
+{
 
5469
+  _mm_empty ();
 
5470
+  return x[1];
 
5471
+}
 
5472
+
 
5473
+static void
 
5474
+mmx_test (void)
 
5475
+{
 
5476
+  float32x2_t b = { 0.0f, 1.0f };
 
5477
+
 
5478
+  if (foo32x2_be (b) != 1.0f)
 
5479
+    abort ();
 
5480
+}
 
5481
Index: gcc/testsuite/gcc.target/i386/pr59034-1.c
 
5482
===================================================================
 
5483
--- a/src/gcc/testsuite/gcc.target/i386/pr59034-1.c     (.../tags/gcc_4_8_2_release)
 
5484
+++ b/src/gcc/testsuite/gcc.target/i386/pr59034-1.c     (.../branches/gcc-4_8-branch)
 
5485
@@ -0,0 +1,10 @@
 
5486
+/* { dg-do compile { target { ! { ia32 } } } } */
 
5487
+/* { dg-require-effective-target maybe_x32 } */
 
5488
+/* { dg-options "-O -mx32 -mtune=corei7 -maddress-mode=short" } */
 
5489
+
 
5490
+extern int foo(int, ...);
 
5491
+int bar(void) {
 
5492
+  long double l = 1.2345E6;
 
5493
+  foo(0, l);
 
5494
+  return 0;
 
5495
+}
 
5496
Index: gcc/testsuite/gcc.target/i386/pr58690.c
 
5497
===================================================================
 
5498
--- a/src/gcc/testsuite/gcc.target/i386/pr58690.c       (.../tags/gcc_4_8_2_release)
 
5499
+++ b/src/gcc/testsuite/gcc.target/i386/pr58690.c       (.../branches/gcc-4_8-branch)
 
5500
@@ -0,0 +1,14 @@
 
5501
+/* { dg-do compile { target { ! { ia32 } } } } */
 
5502
+/* { dg-require-effective-target maybe_x32 } */
 
5503
+/* { dg-options "-O2 -mx32 -maddress-mode=short" } */
 
5504
+
 
5505
+struct gomp_thread
 
5506
+{
 
5507
+  char foo[41];
 
5508
+};
 
5509
+extern __thread struct gomp_thread gomp_tls_data;
 
5510
+void
 
5511
+foo (void)
 
5512
+{
 
5513
+  __builtin_memset (&gomp_tls_data, '\0', sizeof (gomp_tls_data));
 
5514
+}
 
5515
Index: gcc/testsuite/gcc.target/i386/avx-vmovapd-256-2.c
 
5516
===================================================================
 
5517
--- a/src/gcc/testsuite/gcc.target/i386/avx-vmovapd-256-2.c     (.../tags/gcc_4_8_2_release)
 
5518
+++ b/src/gcc/testsuite/gcc.target/i386/avx-vmovapd-256-2.c     (.../branches/gcc-4_8-branch)
 
5519
@@ -15,7 +15,7 @@
 
5520
 avx_test (void)
 
5521
 {
 
5522
   union256d u;
 
5523
-  double e [4] __attribute__ ((aligned (8))) = {0.0};
 
5524
+  double e [4] __attribute__ ((aligned (32))) = {0.0};
 
5525
 
 
5526
   u.x = _mm256_set_pd (39578.467285, 7856.342941, 85632.783567, 47563.234215);
 
5527
 
 
5528
Index: gcc/testsuite/gcc.target/i386/sse2-movapd-1.c
 
5529
===================================================================
 
5530
--- a/src/gcc/testsuite/gcc.target/i386/sse2-movapd-1.c (.../tags/gcc_4_8_2_release)
 
5531
+++ b/src/gcc/testsuite/gcc.target/i386/sse2-movapd-1.c (.../branches/gcc-4_8-branch)
 
5532
@@ -25,7 +25,7 @@
 
5533
 TEST (void)
 
5534
 {
 
5535
   union128d u;
 
5536
-  double e[2] __attribute__ ((aligned (8))) = {2134.3343,1234.635654};
 
5537
+  double e[2] __attribute__ ((aligned (16))) = {2134.3343,1234.635654};
 
5538
 
 
5539
   u.x = test (e);   
 
5540
 
 
5541
Index: gcc/testsuite/gcc.target/i386/pr59021.c
 
5542
===================================================================
 
5543
--- a/src/gcc/testsuite/gcc.target/i386/pr59021.c       (.../tags/gcc_4_8_2_release)
 
5544
+++ b/src/gcc/testsuite/gcc.target/i386/pr59021.c       (.../branches/gcc-4_8-branch)
 
5545
@@ -0,0 +1,23 @@
 
5546
+/* { dg-do compile } */
 
5547
+/* { dg-options "-O2 -mavx -mvzeroupper" } */
 
5548
+
 
5549
+extern void abort (void);
 
5550
+
 
5551
+struct S {
 
5552
+  int i1;
 
5553
+  int i2;
 
5554
+  int i3;
 
5555
+};
 
5556
+
 
5557
+typedef double v4df  __attribute__ ((vector_size (32)));
 
5558
+
 
5559
+extern int foo (v4df, int i1, int i2, int i3, int i4, int i5, struct S s);
 
5560
+
 
5561
+void bar (v4df v, struct S s)
 
5562
+{
 
5563
+  int r = foo (v, 1, 2, 3, 4, 5, s);
 
5564
+  if (r)
 
5565
+    abort ();
 
5566
+}
 
5567
+
 
5568
+/* { dg-final { scan-assembler-not "vzeroupper" } } */
 
5569
Index: gcc/testsuite/gcc.target/i386/pr59034-2.c
 
5570
===================================================================
 
5571
--- a/src/gcc/testsuite/gcc.target/i386/pr59034-2.c     (.../tags/gcc_4_8_2_release)
 
5572
+++ b/src/gcc/testsuite/gcc.target/i386/pr59034-2.c     (.../branches/gcc-4_8-branch)
 
5573
@@ -0,0 +1,10 @@
 
5574
+/* { dg-do compile { target { ! { ia32 } } } } */
 
5575
+/* { dg-require-effective-target maybe_x32 } */
 
5576
+/* { dg-options "-O -mx32 -mtune=corei7 -maddress-mode=long" } */
 
5577
+
 
5578
+extern int foo(int, ...);
 
5579
+int bar(void) {
 
5580
+  long double l = 1.2345E6;
 
5581
+  foo(0, l);
 
5582
+  return 0;
 
5583
+}
 
5584
Index: gcc/testsuite/gcc.target/i386/xop-frczX.c
 
5585
===================================================================
 
5586
--- a/src/gcc/testsuite/gcc.target/i386/xop-frczX.c     (.../tags/gcc_4_8_2_release)
 
5587
+++ b/src/gcc/testsuite/gcc.target/i386/xop-frczX.c     (.../branches/gcc-4_8-branch)
 
5588
@@ -0,0 +1,60 @@
 
5589
+/* { dg-do run } */
 
5590
+/* { dg-require-effective-target xop } */
 
5591
+/* { dg-options "-O2 -mxop" } */
 
5592
+
 
5593
+#include "xop-check.h"
 
5594
+
 
5595
+#include <x86intrin.h>
 
5596
+
 
5597
+void
 
5598
+check_mm_vmfrcz_sd (__m128d __A, __m128d __B)
 
5599
+{
 
5600
+  union128d a, b, c;
 
5601
+  double d[2];
 
5602
+
 
5603
+  a.x = __A;
 
5604
+  b.x = __B;
 
5605
+  c.x = _mm_frcz_sd (__A, __B);
 
5606
+  d[0] = b.a[0] - (int)b.a[0] ;
 
5607
+  d[1] = a.a[1];
 
5608
+  if (check_union128d (c, d))
 
5609
+    abort ();
 
5610
+}
 
5611
+
 
5612
+void
 
5613
+check_mm_vmfrcz_ss (__m128 __A, __m128 __B)
 
5614
+{
 
5615
+  union128 a, b, c;
 
5616
+  float f[4];
 
5617
+
 
5618
+  a.x = __A;
 
5619
+  b.x = __B;
 
5620
+  c.x = _mm_frcz_ss (__A, __B);
 
5621
+  f[0] = b.a[0] - (int)b.a[0] ;
 
5622
+  f[1] = a.a[1];
 
5623
+  f[2] = a.a[2];
 
5624
+  f[3] = a.a[3];
 
5625
+  if (check_union128 (c, f))
 
5626
+    abort ();
 
5627
+}
 
5628
+
 
5629
+static void
 
5630
+xop_test (void)
 
5631
+{
 
5632
+  union128 a, b;
 
5633
+  union128d c,d;
 
5634
+  int i;
 
5635
+
 
5636
+  for (i = 0; i < 4; i++)
 
5637
+    {
 
5638
+       a.a[i] = i + 3.5;
 
5639
+       b.a[i] = i + 7.9;
 
5640
+    }
 
5641
+  for (i = 0; i < 2; i++)
 
5642
+    {
 
5643
+       c.a[i] = i + 3.5;
 
5644
+       d.a[i] = i + 7.987654321;
 
5645
+    }
 
5646
+  check_mm_vmfrcz_ss (a.x, b.x);
 
5647
+  check_mm_vmfrcz_sd (c.x, d.x);
 
5648
+}
 
5649
Index: gcc/testsuite/gcc.target/i386/sse2-movapd-2.c
 
5650
===================================================================
 
5651
--- a/src/gcc/testsuite/gcc.target/i386/sse2-movapd-2.c (.../tags/gcc_4_8_2_release)
 
5652
+++ b/src/gcc/testsuite/gcc.target/i386/sse2-movapd-2.c (.../branches/gcc-4_8-branch)
 
5653
@@ -25,7 +25,7 @@
 
5654
 TEST (void)
 
5655
 {
 
5656
   union128d u;
 
5657
-  double e[2] __attribute__ ((aligned (8))) = {0.0};
 
5658
+  double e[2] __attribute__ ((aligned (16))) = {0.0};
 
5659
 
 
5660
   u.x = _mm_set_pd (2134.3343,1234.635654);
 
5661
 
 
5662
Index: gcc/testsuite/gcc.target/i386/pr58137.c
 
5663
===================================================================
 
5664
--- a/src/gcc/testsuite/gcc.target/i386/pr58137.c       (.../tags/gcc_4_8_2_release)
 
5665
+++ b/src/gcc/testsuite/gcc.target/i386/pr58137.c       (.../branches/gcc-4_8-branch)
 
5666
@@ -0,0 +1,33 @@
 
5667
+/* { dg-do compile } */
 
5668
+/* { dg-options "-O3 -mavx2" } */
 
5669
+
 
5670
+typedef unsigned int U32;
 
5671
+
 
5672
+struct sv {
 
5673
+  void* sv_any;
 
5674
+  U32 sv_refcnt;
 
5675
+  U32 sv_flags;
 
5676
+};
 
5677
+typedef struct sv SV;
 
5678
+
 
5679
+struct xrv {
 
5680
+  SV * xrv_rv;
 
5681
+};
 
5682
+typedef struct xrv XRV;
 
5683
+
 
5684
+extern XRV * PL_xrv_root;
 
5685
+
 
5686
+void
 
5687
+more_xrv (void)
 
5688
+{
 
5689
+  register XRV* xrv;
 
5690
+  register XRV* xrvend;
 
5691
+  xrv = PL_xrv_root;
 
5692
+  xrvend = &xrv[200 / sizeof (XRV) - 1];
 
5693
+  while (xrv < xrvend)
 
5694
+  {
 
5695
+    xrv->xrv_rv = (SV*)(xrv + 1);
 
5696
+    xrv++;
 
5697
+  }
 
5698
+  xrv->xrv_rv = 0;
 
5699
+}
 
5700
Index: gcc/testsuite/gcc.target/i386/pr30315.c
 
5701
===================================================================
 
5702
--- a/src/gcc/testsuite/gcc.target/i386/pr30315.c       (.../tags/gcc_4_8_2_release)
 
5703
+++ b/src/gcc/testsuite/gcc.target/i386/pr30315.c       (.../branches/gcc-4_8-branch)
 
5704
@@ -1,6 +1,6 @@
 
5705
 /* { dg-do compile } */
 
5706
 /* { dg-options "-O2" } */
 
5707
-/* { dg-final { scan-assembler-times "cmp" 4 } } */
 
5708
+/* { dg-final { scan-assembler-not "cmp" } } */
 
5709
 
 
5710
 extern void abort (void);
 
5711
 int c;
 
5712
@@ -34,39 +34,10 @@
 
5713
 }
 
5714
 #define PLUSCCONLY(T, t) PLUSCCONLY1(T, t, a) PLUSCCONLY1(T, t, b)
 
5715
 
 
5716
-#define MINUSCC(T, t)  \
 
5717
-T minuscc##t (T a, T b)        \
 
5718
-{      \
 
5719
-  T difference = a - b;        \
 
5720
-  if (difference > a)  \
 
5721
-    abort ();          \
 
5722
-  return difference;   \
 
5723
-}
 
5724
-
 
5725
-#define DECCC(T, t)    \
 
5726
-T deccc##t (T a, T b)  \
 
5727
-{      \
 
5728
-  T difference = a - b;        \
 
5729
-  if (difference > a)  \
 
5730
-    c --;              \
 
5731
-  return difference;   \
 
5732
-}
 
5733
-
 
5734
-#define MINUSCCONLY(T, t)      \
 
5735
-void minuscconly##t (T a, T b) \
 
5736
-{      \
 
5737
-  T difference = a - b;        \
 
5738
-  if (difference > a)  \
 
5739
-    abort ();          \
 
5740
-}
 
5741
-
 
5742
 #define TEST(T, t)     \
 
5743
   PLUSCC(T, t)         \
 
5744
   PLUSCCONLY(T, t)     \
 
5745
-  INCCC(T, t)          \
 
5746
-  MINUSCC(T, t)                \
 
5747
-  MINUSCCONLY(T, t)    \
 
5748
-  DECCC(T, t)
 
5749
+  INCCC(T, t)
 
5750
 
 
5751
 TEST (unsigned long,  l)
 
5752
 TEST (unsigned int,   i)
 
5753
@@ -84,14 +55,3 @@
 
5754
 
 
5755
 PLUSCCZEXT(a)
 
5756
 PLUSCCZEXT(b)
 
5757
-
 
5758
-#define MINUSCCZEXT    \
 
5759
-unsigned long minuscczext (unsigned int a, unsigned int b)     \
 
5760
-{      \
 
5761
-  unsigned int difference = a - b;     \
 
5762
-  if (difference > a)          \
 
5763
-    abort ();                  \
 
5764
-  return difference;           \
 
5765
-}
 
5766
-
 
5767
-MINUSCCZEXT
 
5768
Index: gcc/testsuite/gcc.target/i386/avx-vmovapd-256-1.c
 
5769
===================================================================
 
5770
--- a/src/gcc/testsuite/gcc.target/i386/avx-vmovapd-256-1.c     (.../tags/gcc_4_8_2_release)
 
5771
+++ b/src/gcc/testsuite/gcc.target/i386/avx-vmovapd-256-1.c     (.../branches/gcc-4_8-branch)
 
5772
@@ -15,7 +15,7 @@
 
5773
 avx_test (void)
 
5774
 {
 
5775
   union256d u;
 
5776
-  double e [4] __attribute__ ((aligned (8)))  = {41124.234,2344.2354,8653.65635,856.43576};
 
5777
+  double e [4] __attribute__ ((aligned (32)))  = {41124.234,2344.2354,8653.65635,856.43576};
 
5778
 
 
5779
   u.x = test (e);
 
5780
 
 
5781
Index: gcc/testsuite/gcc.target/s390/htm-xl-intrin-1.c
 
5782
===================================================================
 
5783
--- a/src/gcc/testsuite/gcc.target/s390/htm-xl-intrin-1.c       (.../tags/gcc_4_8_2_release)
 
5784
+++ b/src/gcc/testsuite/gcc.target/s390/htm-xl-intrin-1.c       (.../branches/gcc-4_8-branch)
 
5785
@@ -1,37 +0,0 @@
 
5786
-/* This checks the availability of the XL compiler intrinsics for
 
5787
-   transactional execution with the expected prototypes.  */
 
5788
-
 
5789
-/* { dg-do compile } */
 
5790
-/* { dg-options "-O3 -march=zEC12 -mzarch" } */
 
5791
-
 
5792
-#include <htmxlintrin.h>
 
5793
-
 
5794
-int a = 0;
 
5795
-unsigned long g;
 
5796
-
 
5797
-int
 
5798
-foo ()
 
5799
-{
 
5800
-  struct __htm_tdb *tdb_struct;
 
5801
-  void * const tdb = tdb_struct;
 
5802
-  long result;
 
5803
-  unsigned char code;
 
5804
-
 
5805
-  result = __TM_simple_begin ();
 
5806
-  result = __TM_begin (tdb);
 
5807
-  result = __TM_end ();
 
5808
-  __TM_abort ();
 
5809
-  __TM_named_abort (42);
 
5810
-  __TM_non_transactional_store (&g, 42);
 
5811
-  result = __TM_nesting_depth (tdb);
 
5812
-
 
5813
-  result = __TM_is_user_abort (tdb);
 
5814
-  result = __TM_is_named_user_abort (tdb, &code);
 
5815
-  result = __TM_is_illegal (tdb);
 
5816
-  result = __TM_is_footprint_exceeded (tdb);
 
5817
-  result = __TM_is_nested_too_deep (tdb);
 
5818
-  result = __TM_is_conflict (tdb);
 
5819
-  result = __TM_is_failure_persistent (result);
 
5820
-  result = __TM_failure_address (tdb);
 
5821
-  result = __TM_failure_code (tdb);
 
5822
-}
 
5823
Index: gcc/testsuite/gcc.target/s390/htm-1.c
 
5824
===================================================================
 
5825
--- a/src/gcc/testsuite/gcc.target/s390/htm-1.c (.../tags/gcc_4_8_2_release)
 
5826
+++ b/src/gcc/testsuite/gcc.target/s390/htm-1.c (.../branches/gcc-4_8-branch)
 
5827
@@ -1,73 +0,0 @@
 
5828
-/* This checks the availability of the low-level builtins introduced
 
5829
-   for transactional execution.  */
 
5830
-
 
5831
-/* { dg-do compile } */
 
5832
-/* { dg-options "-O3 -march=zEC12 -mzarch" } */
 
5833
-
 
5834
-#include <stdint.h>
 
5835
-#include <htmintrin.h>
 
5836
-
 
5837
-int global = 0;
 
5838
-uint64_t g;
 
5839
-struct __htm_tdb global_tdb;
 
5840
-
 
5841
-int
 
5842
-foo (struct __htm_tdb* tdb, int reg, int *mem, uint64_t *mem64)
 
5843
-{
 
5844
-
 
5845
-  int cc;
 
5846
-  int n;
 
5847
-
 
5848
-  cc = __builtin_tbegin (0);
 
5849
-  cc = __builtin_tbegin (tdb);
 
5850
-  cc = __builtin_tbegin (&global_tdb);
 
5851
-
 
5852
-  cc = __builtin_tbegin_nofloat (0);
 
5853
-  cc = __builtin_tbegin_nofloat (&global_tdb);
 
5854
-
 
5855
-  cc = __builtin_tbegin_retry (0, 42);
 
5856
-  cc = __builtin_tbegin_retry (0, reg);
 
5857
-  cc = __builtin_tbegin_retry (0, *mem);
 
5858
-  cc = __builtin_tbegin_retry (0, global);
 
5859
-  cc = __builtin_tbegin_retry (tdb, 42);
 
5860
-  cc = __builtin_tbegin_retry (&global_tdb, 42);
 
5861
-
 
5862
-  cc = __builtin_tbegin_retry_nofloat (0, 42);
 
5863
-  cc = __builtin_tbegin_retry_nofloat (0, reg);
 
5864
-  cc = __builtin_tbegin_retry_nofloat (0, *mem);
 
5865
-  cc = __builtin_tbegin_retry_nofloat (0, global);
 
5866
-  cc = __builtin_tbegin_retry_nofloat (&global_tdb, 42);
 
5867
-
 
5868
-  __builtin_tbeginc ();
 
5869
-
 
5870
-  n = __builtin_tx_nesting_depth();
 
5871
-
 
5872
-  __builtin_non_tx_store(&g, 23);
 
5873
-  __builtin_non_tx_store(mem64, 23);
 
5874
-  __builtin_non_tx_store(&g, reg);
 
5875
-  __builtin_non_tx_store(&g, *mem);
 
5876
-  __builtin_non_tx_store(&g, global);
 
5877
-
 
5878
-  __builtin_tabort (42 + 255);
 
5879
-  __builtin_tabort (reg);
 
5880
-  /* { dg-final { scan-assembler-times "tabort\t255" 1 } } */
 
5881
-  __builtin_tabort (reg + 255);
 
5882
-  __builtin_tabort (*mem);
 
5883
-  __builtin_tabort (global);
 
5884
-  /* Here global + 255 gets reloaded into a reg.  Better would be to
 
5885
-     just reload global or *mem and get the +255 for free as address
 
5886
-     arithmetic.  */
 
5887
-  __builtin_tabort (*mem + 255);
 
5888
-  __builtin_tabort (global + 255);
 
5889
-
 
5890
-  __builtin_tend();
 
5891
-
 
5892
-  __builtin_tx_assist (23);
 
5893
-  __builtin_tx_assist (reg);
 
5894
-  __builtin_tx_assist (*mem);
 
5895
-  __builtin_tx_assist (global);
 
5896
-}
 
5897
-
 
5898
-/* Make sure the tdb NULL argument ends up as immediate value in the
 
5899
-   instruction.  */
 
5900
-/* { dg-final { scan-assembler-times "tbegin\t0," 10 } } */
 
5901
Index: gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c
 
5902
===================================================================
 
5903
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c        (.../tags/gcc_4_8_2_release)
 
5904
+++ b/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c        (.../branches/gcc-4_8-branch)
 
5905
@@ -0,0 +1,165 @@
 
5906
+/* This checks the availability of the low-level builtins introduced
 
5907
+   for transactional execution.  */
 
5908
+
 
5909
+/* { dg-do compile } */
 
5910
+/* { dg-require-effective-target htm } */
 
5911
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
 
5912
+
 
5913
+#include <stdint.h>
 
5914
+#include <htmintrin.h>
 
5915
+
 
5916
+int global = 0;
 
5917
+uint64_t g;
 
5918
+struct __htm_tdb global_tdb;
 
5919
+
 
5920
+int
 
5921
+foo (struct __htm_tdb* tdb, int reg, int *mem, uint64_t *mem64)
 
5922
+{
 
5923
+
 
5924
+  int cc;
 
5925
+  int n;
 
5926
+
 
5927
+  __builtin_tbegin ((void *)0);
 
5928
+  __builtin_tbegin ((void *)-99999);
 
5929
+  __builtin_tbegin ((void *)99999);
 
5930
+  while (__builtin_tbegin ((void *)0) != 0)
 
5931
+  {
 
5932
+  }
 
5933
+  cc = __builtin_tbegin ((void *)0x12345678);
 
5934
+  cc = __builtin_tbegin (tdb);
 
5935
+  cc = __builtin_tbegin (&global_tdb);
 
5936
+  cc = __builtin_tbegin ((void *)(long long)(reg + 0x12345678));
 
5937
+  cc = __builtin_tbegin ((void *)(long long)(reg));
 
5938
+
 
5939
+  __builtin_tbegin_nofloat ((void *)0);
 
5940
+  __builtin_tbegin_nofloat ((void *)-99999);
 
5941
+  __builtin_tbegin_nofloat ((void *)99999);
 
5942
+  cc = __builtin_tbegin_nofloat ((void *)0x12345678);
 
5943
+  cc = __builtin_tbegin_nofloat (tdb);
 
5944
+  cc = __builtin_tbegin_nofloat (&global_tdb);
 
5945
+  cc = __builtin_tbegin_nofloat ((void *)(long long)(reg + 0x12345678));
 
5946
+  cc = __builtin_tbegin_nofloat ((void *)(long long)(reg));
 
5947
+
 
5948
+  __builtin_tbegin_retry ((void *)0, 0);
 
5949
+  cc = __builtin_tbegin_retry ((void *)0, 1);
 
5950
+  cc = __builtin_tbegin_retry ((void *)0, -1);
 
5951
+  cc = __builtin_tbegin_retry ((void *)0, 42);
 
5952
+  cc = __builtin_tbegin_retry ((void *)0, reg);
 
5953
+  cc = __builtin_tbegin_retry ((void *)0, *mem);
 
5954
+  cc = __builtin_tbegin_retry ((void *)0, global);
 
5955
+  cc = __builtin_tbegin_retry (tdb, 42);
 
5956
+  cc = __builtin_tbegin_retry (&global_tdb, 42);
 
5957
+  cc = __builtin_tbegin_retry ((void *)0x12345678, global);
 
5958
+  cc = __builtin_tbegin_retry (
 
5959
+         (void *)(long long) (reg + 0x12345678), global + 1);
 
5960
+  cc = __builtin_tbegin_retry (
 
5961
+         (void *)(long long)(reg), global - 1);
 
5962
+
 
5963
+  __builtin_tbegin_retry_nofloat ((void *)0, 0);
 
5964
+  cc = __builtin_tbegin_retry_nofloat ((void *)0, 1);
 
5965
+  cc = __builtin_tbegin_retry_nofloat ((void *)0, -1);
 
5966
+  cc = __builtin_tbegin_retry_nofloat ((void *)0, 42);
 
5967
+  cc = __builtin_tbegin_retry_nofloat ((void *)0, reg);
 
5968
+  cc = __builtin_tbegin_retry_nofloat ((void *)0, *mem);
 
5969
+  cc = __builtin_tbegin_retry_nofloat ((void *)0, global);
 
5970
+  cc = __builtin_tbegin_retry_nofloat (tdb, 42);
 
5971
+  cc = __builtin_tbegin_retry_nofloat (&global_tdb, 42);
 
5972
+  cc = __builtin_tbegin_retry_nofloat ((void *)0x12345678, global);
 
5973
+  cc = __builtin_tbegin_retry_nofloat (
 
5974
+         (void *)(long long) (reg + 0x12345678), global + 1);
 
5975
+  cc = __builtin_tbegin_retry_nofloat (
 
5976
+         (void *)(long long)(reg), global - 1);
 
5977
+
 
5978
+  __builtin_tbeginc ();
 
5979
+
 
5980
+  __builtin_tx_nesting_depth ();
 
5981
+  n = __builtin_tx_nesting_depth ();
 
5982
+
 
5983
+  __builtin_non_tx_store (mem64, 0);
 
5984
+  {
 
5985
+         const uint64_t val_var = 0x1122334455667788;
 
5986
+
 
5987
+         __builtin_non_tx_store (mem64, val_var);
 
5988
+  }
 
5989
+  __builtin_non_tx_store (mem64, (uint64_t)reg);
 
5990
+  __builtin_non_tx_store (mem64, g);
 
5991
+  __builtin_non_tx_store ((uint64_t *)0, 0);
 
5992
+  __builtin_non_tx_store ((uint64_t *)0x12345678, 0);
 
5993
+  __builtin_non_tx_store (&g, 23);
 
5994
+  __builtin_non_tx_store (&g, reg);
 
5995
+  __builtin_non_tx_store (&g, *mem);
 
5996
+  __builtin_non_tx_store (&g, global);
 
5997
+
 
5998
+  __builtin_tend();
 
5999
+
 
6000
+  __builtin_tx_assist (0);
 
6001
+  __builtin_tx_assist (1);
 
6002
+  __builtin_tx_assist (reg);
 
6003
+  __builtin_tx_assist (*mem);
 
6004
+  __builtin_tx_assist (global);
 
6005
+}
 
6006
+
 
6007
+/* The taborts must go into separate function since they are
 
6008
+   "noreturn".  */
 
6009
+
 
6010
+void
 
6011
+tabort1 ()
 
6012
+{
 
6013
+  __builtin_tabort (256);
 
6014
+}
 
6015
+
 
6016
+void
 
6017
+tabort2 (int reg)
 
6018
+{
 
6019
+  __builtin_tabort (reg);
 
6020
+}
 
6021
+
 
6022
+void
 
6023
+tabort3 (int reg)
 
6024
+{
 
6025
+  /* { dg-final { scan-assembler-times "tabort\t255" 1 } } */
 
6026
+  __builtin_tabort (reg + 255);
 
6027
+}
 
6028
+
 
6029
+void
 
6030
+tabort4 (int *mem)
 
6031
+{
 
6032
+  __builtin_tabort (*mem);
 
6033
+}
 
6034
+
 
6035
+void
 
6036
+tabort5 ()
 
6037
+{
 
6038
+  __builtin_tabort (global);
 
6039
+}
 
6040
+
 
6041
+void
 
6042
+tabort6 (int *mem)
 
6043
+{
 
6044
+  /* Here global + 255 gets reloaded into a reg.  Better would be to
 
6045
+     just reload global or *mem and get the +255 for free as address
 
6046
+     arithmetic.  */
 
6047
+  __builtin_tabort (*mem + 255);
 
6048
+}
 
6049
+
 
6050
+void
 
6051
+tabort7 ()
 
6052
+{
 
6053
+  __builtin_tabort (global + 255);
 
6054
+}
 
6055
+
 
6056
+void
 
6057
+tabort8 ()
 
6058
+{
 
6059
+  __builtin_tabort (-1);
 
6060
+}
 
6061
+
 
6062
+
 
6063
+/* Make sure the tdb NULL argument ends up as immediate value in the
 
6064
+   instruction.  */
 
6065
+/* { dg-final { scan-assembler-times "tbegin\t0," 17 } } */
 
6066
+/* { dg-final { scan-assembler-times "tbegin\t" 41 } } */
 
6067
+/* Check number of occurences of certain instructions.  */
 
6068
+/* { dg-final { scan-assembler-times "tbeginc\t" 1 } } */
 
6069
+/* { dg-final { scan-assembler-times "tabort\t" 8 } } */
 
6070
+/* { dg-final { scan-assembler "ppa\t" } } */
 
6071
Index: gcc/testsuite/gcc.target/s390/htm-builtins-compile-2.c
 
6072
===================================================================
 
6073
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-2.c        (.../tags/gcc_4_8_2_release)
 
6074
+++ b/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-2.c        (.../branches/gcc-4_8-branch)
 
6075
@@ -0,0 +1,13 @@
 
6076
+/* { dg-do compile } */
 
6077
+/* { dg-require-effective-target htm } */
 
6078
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
 
6079
+
 
6080
+void must_not_compile1 (void)
 
6081
+{
 
6082
+  __builtin_tabort (0); /* { dg-error "Invalid transaction abort code:" } */
 
6083
+}
 
6084
+
 
6085
+void must_not_compile2 (void)
 
6086
+{
 
6087
+  __builtin_tabort (255); /* { dg-error "Invalid transaction abort code:" } */
 
6088
+}
 
6089
Index: gcc/testsuite/gcc.target/s390/htm-builtins-compile-3.c
 
6090
===================================================================
 
6091
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-3.c        (.../tags/gcc_4_8_2_release)
 
6092
+++ b/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-3.c        (.../branches/gcc-4_8-branch)
 
6093
@@ -0,0 +1,37 @@
 
6094
+/* This checks the availability of the XL compiler intrinsics for
 
6095
+   transactional execution with the expected prototypes.  */
 
6096
+
 
6097
+/* { dg-do compile } */
 
6098
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
 
6099
+
 
6100
+#include <htmxlintrin.h>
 
6101
+
 
6102
+int a = 0;
 
6103
+unsigned long g;
 
6104
+
 
6105
+int
 
6106
+foo ()
 
6107
+{
 
6108
+  struct __htm_tdb *tdb_struct;
 
6109
+  void * const tdb = tdb_struct;
 
6110
+  long result;
 
6111
+  unsigned char code;
 
6112
+
 
6113
+  result = __TM_simple_begin ();
 
6114
+  result = __TM_begin (tdb);
 
6115
+  result = __TM_end ();
 
6116
+  __TM_abort ();
 
6117
+  __TM_named_abort (42);
 
6118
+  __TM_non_transactional_store (&g, 42);
 
6119
+  result = __TM_nesting_depth (tdb);
 
6120
+
 
6121
+  result = __TM_is_user_abort (tdb);
 
6122
+  result = __TM_is_named_user_abort (tdb, &code);
 
6123
+  result = __TM_is_illegal (tdb);
 
6124
+  result = __TM_is_footprint_exceeded (tdb);
 
6125
+  result = __TM_is_nested_too_deep (tdb);
 
6126
+  result = __TM_is_conflict (tdb);
 
6127
+  result = __TM_is_failure_persistent (result);
 
6128
+  result = __TM_failure_address (tdb);
 
6129
+  result = __TM_failure_code (tdb);
 
6130
+}
 
6131
Index: gcc/testsuite/gcc.target/s390/s390.exp
 
6132
===================================================================
 
6133
--- a/src/gcc/testsuite/gcc.target/s390/s390.exp        (.../tags/gcc_4_8_2_release)
 
6134
+++ b/src/gcc/testsuite/gcc.target/s390/s390.exp        (.../branches/gcc-4_8-branch)
 
6135
@@ -24,6 +24,19 @@
 
6136
 # Load support procs.
 
6137
 load_lib gcc-dg.exp
 
6138
 
 
6139
+# Return 1 if htm (etnd - extract nesting depth) instructions can be
 
6140
+# compiled.
 
6141
+proc check_effective_target_htm { } {
 
6142
+    if { ![check_runtime s390_check_htm [subst {
 
6143
+       int main (void)
 
6144
+       {
 
6145
+           unsigned int nd = 77;
 
6146
+           asm (".insn rre,0xb2ec0000,%0,0" : "=d" (nd));
 
6147
+           return nd;
 
6148
+       }
 
6149
+    }]] } { return 0 } else { return 1 }
 
6150
+}
 
6151
+
 
6152
 # If a testcase doesn't have special options, use these.
 
6153
 global DEFAULT_CFLAGS
 
6154
 if ![info exists DEFAULT_CFLAGS] then {
 
6155
Index: gcc/testsuite/gcc.target/s390/htm-builtins-1.c
 
6156
===================================================================
 
6157
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-1.c        (.../tags/gcc_4_8_2_release)
 
6158
+++ b/src/gcc/testsuite/gcc.target/s390/htm-builtins-1.c        (.../branches/gcc-4_8-branch)
 
6159
@@ -0,0 +1,1073 @@
 
6160
+/* Functional tests of the htm __builtin_... macros.  */
 
6161
+
 
6162
+/* { dg-do run } */
 
6163
+/* { dg-require-effective-target htm } */
 
6164
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
 
6165
+
 
6166
+/* ---------------------------- included header files ---------------------- */
 
6167
+
 
6168
+#include <stdio.h>
 
6169
+#include <string.h>
 
6170
+#include <stdint.h>
 
6171
+#include <htmintrin.h>
 
6172
+
 
6173
+/* ---------------------------- local definitions -------------------------- */
 
6174
+
 
6175
+#define DEFAULT_MAX_REPETITIONS 5
 
6176
+#define DEFAULT_REQUIRED_QUORUM ((DEFAULT_MAX_REPETITIONS) - 1)
 
6177
+#define NUM_WARMUP_RUNS 10
 
6178
+
 
6179
+/* ---------------------------- local macros ------------------------------- */
 
6180
+
 
6181
+#define TEST_DF_REP(name) \
 
6182
+  { #name, name, DEFAULT_MAX_REPETITIONS, DEFAULT_REQUIRED_QUORUM }
 
6183
+#define TEST_NO_REP(name) { #name, name, 1, 1 }
 
6184
+
 
6185
+/* ---------------------------- local types -------------------------------- */
 
6186
+
 
6187
+typedef int (*test_func_t)(void);
 
6188
+
 
6189
+typedef struct
 
6190
+{
 
6191
+  const char *name;
 
6192
+  test_func_t test_func;
 
6193
+  int max_repetitions;
 
6194
+  int required_quorum;
 
6195
+} test_table_entry_t;
 
6196
+
 
6197
+/* ---------------------------- local variables ---------------------------- */
 
6198
+
 
6199
+__attribute__ ((aligned(256))) static struct __htm_tdb local_tdb256;
 
6200
+static struct __htm_tdb local_tdb;
 
6201
+static int do_dump_tdb = 0;
 
6202
+
 
6203
+/* ---------------------------- exported variables (globals) --------------- */
 
6204
+
 
6205
+__attribute__ ((aligned(256))) struct
 
6206
+{
 
6207
+  float float_1;
 
6208
+  float float_2;
 
6209
+  float float_3;
 
6210
+} global = { 1.0, 2.5, 0.0 };
 
6211
+
 
6212
+__attribute__ ((aligned(256))) struct
 
6213
+{
 
6214
+  volatile uint64_t c1;
 
6215
+  volatile uint64_t c2;
 
6216
+  volatile uint64_t c3;
 
6217
+} counters = { 0, 0, 0 };
 
6218
+
 
6219
+/* ---------------------------- local helper functions --------------------- */
 
6220
+
 
6221
+static void dump_tdb (struct __htm_tdb *tdb)
 
6222
+{
 
6223
+  unsigned char *p;
 
6224
+  int i;
 
6225
+  int j;
 
6226
+
 
6227
+  if (do_dump_tdb == 0)
 
6228
+    {
 
6229
+      return;
 
6230
+    }
 
6231
+  p = (unsigned char *)tdb;
 
6232
+  for (i = 0; i < 16; i++)
 
6233
+    {
 
6234
+      fprintf (stderr, "0x%02x  ", i * 16);
 
6235
+      for (j = 0; j < 16; j++)
 
6236
+       {
 
6237
+         fprintf (stderr, "%02x", (int)p[i * 16 + j]);
 
6238
+         if (j < 15)
 
6239
+           {
 
6240
+             fprintf (stderr, " ");
 
6241
+           }
 
6242
+         if (j == 7)
 
6243
+           {
 
6244
+             fprintf (stderr, " ");
 
6245
+           }
 
6246
+       }
 
6247
+      fprintf (stderr, "\n");
 
6248
+    }
 
6249
+
 
6250
+  return;
 
6251
+}
 
6252
+
 
6253
+/* ---------------------------- local test functions ----------------------- */
 
6254
+
 
6255
+/* Check values of the constants defined in htmintrin.h.  */
 
6256
+static int test_constants (void)
 
6257
+{
 
6258
+  if (_HTM_TBEGIN_STARTED != 0)
 
6259
+    {
 
6260
+      return 100 * _HTM_TBEGIN_STARTED + 1;
 
6261
+    }
 
6262
+  if (_HTM_TBEGIN_INDETERMINATE != 1)
 
6263
+    {
 
6264
+      return 100 * _HTM_TBEGIN_INDETERMINATE + 2;
 
6265
+    }
 
6266
+  if (_HTM_TBEGIN_TRANSIENT != 2)
 
6267
+    {
 
6268
+      return 100 * _HTM_TBEGIN_TRANSIENT + 3;
 
6269
+    }
 
6270
+  if (_HTM_TBEGIN_PERSISTENT != 3)
 
6271
+    {
 
6272
+      return 100 * _HTM_TBEGIN_PERSISTENT + 4;
 
6273
+    }
 
6274
+
 
6275
+  return 0;
 
6276
+}
 
6277
+
 
6278
+static int test_tbegin_ntstg_tend (void)
 
6279
+{
 
6280
+  int rc;
 
6281
+
 
6282
+  counters.c1 = 0;
 
6283
+  counters.c2 = 0;
 
6284
+  if ((rc = __builtin_tbegin ((void *)0)) == 0)
 
6285
+    {
 
6286
+      __builtin_non_tx_store ((uint64_t *)&counters.c1, 1);
 
6287
+      counters.c2 = 2;
 
6288
+      rc = __builtin_tend ();
 
6289
+      if (rc != 0)
 
6290
+       {
 
6291
+         return 100 * rc + 5;
 
6292
+       }
 
6293
+      if (counters.c1 != 1)
 
6294
+       {
 
6295
+         return 100 * counters.c1 + 2;
 
6296
+       }
 
6297
+      if (counters.c2 != 2)
 
6298
+       {
 
6299
+         return 100 * counters.c2 + 3;
 
6300
+       }
 
6301
+    }
 
6302
+  else
 
6303
+    {
 
6304
+      return 100 * rc + 4;
 
6305
+    }
 
6306
+
 
6307
+  return 0;
 
6308
+}
 
6309
+
 
6310
+static int test_tbegin_ntstg_tabort (void)
 
6311
+{
 
6312
+  float f;
 
6313
+
 
6314
+  counters.c1 = 0;
 
6315
+  counters.c2 = 0;
 
6316
+  f = 0;
 
6317
+  if (__builtin_tbegin ((void *)0) == 0)
 
6318
+    {
 
6319
+      __builtin_non_tx_store ((uint64_t *)&counters.c1, 1);
 
6320
+      counters.c2 = 2;
 
6321
+      f = 1;
 
6322
+      __builtin_tabort (256);
 
6323
+      return 1;
 
6324
+    }
 
6325
+  if (counters.c1 != 1)
 
6326
+    {
 
6327
+      return 100 * counters.c1 + 2;
 
6328
+    }
 
6329
+  if (counters.c2 != 0)
 
6330
+    {
 
6331
+      return 100 * counters.c2 + 3;
 
6332
+    }
 
6333
+  if (f != 0)
 
6334
+    {
 
6335
+      return 100 * f + 4;
 
6336
+    }
 
6337
+
 
6338
+  return 0;
 
6339
+}
 
6340
+
 
6341
+static int test_tbegin_nofloat (void)
 
6342
+{
 
6343
+  int rc;
 
6344
+
 
6345
+  counters.c1 = 0;
 
6346
+  counters.c2 = 0;
 
6347
+  if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
 
6348
+    {
 
6349
+      __builtin_non_tx_store ((uint64_t *)&counters.c1, 1);
 
6350
+      counters.c2 = 2;
 
6351
+      rc = __builtin_tend ();
 
6352
+      if (rc != 0)
 
6353
+       {
 
6354
+         return 100 * rc + 5;
 
6355
+       }
 
6356
+      if (counters.c1 != 1)
 
6357
+       {
 
6358
+         return 100 * counters.c1 + 2;
 
6359
+       }
 
6360
+      if (counters.c2 != 2)
 
6361
+       {
 
6362
+         return 100 * counters.c2 + 3;
 
6363
+       }
 
6364
+    }
 
6365
+  else
 
6366
+    {
 
6367
+      return 100 * rc + 4;
 
6368
+    }
 
6369
+
 
6370
+  return 0;
 
6371
+}
 
6372
+
 
6373
+static int test_tbegin_retry (void)
 
6374
+{
 
6375
+  int rc;
 
6376
+
 
6377
+  counters.c1 = 0;
 
6378
+  counters.c2 = 0;
 
6379
+  counters.c3 = 0;
 
6380
+  if ((rc = __builtin_tbegin_retry ((void *)0, 5)) == 0)
 
6381
+    {
 
6382
+      int do_abort;
 
6383
+
 
6384
+      do_abort = (counters.c1 == 0) ? 1 : 0;
 
6385
+      __builtin_non_tx_store (
 
6386
+                            (uint64_t *)&counters.c1, counters.c1 + 1);
 
6387
+      if (do_abort == 1)
 
6388
+       {
 
6389
+         __builtin_tabort (256);
 
6390
+       }
 
6391
+      counters.c2 = counters.c2 + 10;
 
6392
+      __builtin_non_tx_store ((uint64_t *)&counters.c3, 3);
 
6393
+      rc = __builtin_tend ();
 
6394
+      if (rc != 0)
 
6395
+       {
 
6396
+         return 100 * rc + 5;
 
6397
+       }
 
6398
+      if (counters.c1 != 2)
 
6399
+       {
 
6400
+         return 100 * counters.c1 + 2;
 
6401
+       }
 
6402
+      if (counters.c2 != 10)
 
6403
+       {
 
6404
+         return 100 * counters.c2 + 3;
 
6405
+       }
 
6406
+      if (counters.c3 != 3)
 
6407
+       {
 
6408
+         return 100 * counters.c3 + 6;
 
6409
+       }
 
6410
+    }
 
6411
+  else
 
6412
+    {
 
6413
+      return 100 * rc + 4;
 
6414
+    }
 
6415
+
 
6416
+  return 0;
 
6417
+}
 
6418
+
 
6419
+static int test_tbegin_retry_nofloat (void)
 
6420
+{
 
6421
+  int rc;
 
6422
+
 
6423
+  counters.c1 = 0;
 
6424
+  counters.c2 = 0;
 
6425
+  counters.c3 = 0;
 
6426
+  if ((rc = __builtin_tbegin_retry_nofloat ((void *)0, 5)) == 0)
 
6427
+    {
 
6428
+      int do_abort;
 
6429
+
 
6430
+      do_abort = (counters.c1 == 0) ? 1 : 0;
 
6431
+      __builtin_non_tx_store (
 
6432
+                            (uint64_t *)&counters.c1, counters.c1 + 1);
 
6433
+      if (do_abort == 1)
 
6434
+       {
 
6435
+         __builtin_tabort (256);
 
6436
+       }
 
6437
+      counters.c2 = counters.c2 + 10;
 
6438
+      __builtin_non_tx_store ((uint64_t *)&counters.c3, 3);
 
6439
+      rc = __builtin_tend ();
 
6440
+      if (rc != 0)
 
6441
+       {
 
6442
+         return 100 * rc + 5;
 
6443
+       }
 
6444
+      if (counters.c1 != 2)
 
6445
+       {
 
6446
+         return 100 * counters.c1 + 2;
 
6447
+       }
 
6448
+      if (counters.c2 != 10)
 
6449
+       {
 
6450
+         return 100 * counters.c2 + 3;
 
6451
+       }
 
6452
+      if (counters.c3 != 3)
 
6453
+       {
 
6454
+         return 100 * counters.c3 + 6;
 
6455
+       }
 
6456
+    }
 
6457
+  else
 
6458
+    {
 
6459
+      return 100 * rc + 4;
 
6460
+    }
 
6461
+
 
6462
+  return 0;
 
6463
+}
 
6464
+
 
6465
+static int test_tbegin_aborts (void)
 
6466
+{
 
6467
+  float f;
 
6468
+  int rc;
 
6469
+
 
6470
+  f = 77;
 
6471
+  if ((rc = __builtin_tbegin ((void *)0)) == 0)
 
6472
+    {
 
6473
+      f = 88;
 
6474
+      __builtin_tabort (256);
 
6475
+      return 2;
 
6476
+    }
 
6477
+  else if (rc != 2)
 
6478
+    {
 
6479
+      return 3;
 
6480
+    }
 
6481
+  if (f != 77)
 
6482
+    {
 
6483
+      return 4;
 
6484
+    }
 
6485
+  f = 66;
 
6486
+  if ((rc = __builtin_tbegin ((void *)0)) == 0)
 
6487
+    {
 
6488
+      f = 99;
 
6489
+      __builtin_tabort (257);
 
6490
+      return 5;
 
6491
+    }
 
6492
+  else if (rc != 3)
 
6493
+    {
 
6494
+      return 100 * rc + 6;
 
6495
+    }
 
6496
+  if (f != 66)
 
6497
+    {
 
6498
+      return 100 * f + 7;
 
6499
+    }
 
6500
+  if ((rc = __builtin_tbegin ((void *)0)) == 0)
 
6501
+    {
 
6502
+      global.float_3 = global.float_1 + global.float_2;
 
6503
+      rc = __builtin_tend ();
 
6504
+      if (rc != 0)
 
6505
+       {
 
6506
+         return 100 * rc + 8;
 
6507
+       }
 
6508
+    }
 
6509
+  else
 
6510
+    {
 
6511
+      return 100 * rc + 9;
 
6512
+    }
 
6513
+  if (global.float_3 != global.float_1 + global.float_2)
 
6514
+    {
 
6515
+      return 100 * rc + 10;
 
6516
+    }
 
6517
+
 
6518
+  return 0;
 
6519
+}
 
6520
+
 
6521
+static __attribute__((noinline)) void indirect_abort(int abort_code)
 
6522
+{
 
6523
+  __builtin_tabort (abort_code);
 
6524
+
 
6525
+  return;
 
6526
+}
 
6527
+
 
6528
+static int test_tbegin_indirect_aborts (void)
 
6529
+{
 
6530
+  float f;
 
6531
+  int rc;
 
6532
+
 
6533
+  f = 77;
 
6534
+  if ((rc = __builtin_tbegin ((void *)0)) == 0)
 
6535
+    {
 
6536
+      f = 88;
 
6537
+      indirect_abort(256);
 
6538
+      return 2;
 
6539
+    }
 
6540
+  else if (rc != 2)
 
6541
+    {
 
6542
+      return 100 * rc + 3;
 
6543
+    }
 
6544
+  if (f != 77)
 
6545
+    {
 
6546
+      return 100 * rc + 4;
 
6547
+    }
 
6548
+  f = 66;
 
6549
+  if ((rc = __builtin_tbegin ((void *)0)) == 0)
 
6550
+    {
 
6551
+      f = 99;
 
6552
+      indirect_abort(257);
 
6553
+      return 5;
 
6554
+    }
 
6555
+  else if (rc != 3)
 
6556
+    {
 
6557
+      return 100 * rc + 6;
 
6558
+    }
 
6559
+  if (f != 66)
 
6560
+    {
 
6561
+      return 100 * f + 7;
 
6562
+    }
 
6563
+
 
6564
+  return 0;
 
6565
+}
 
6566
+
 
6567
+static int test_tbegin_nofloat_aborts (void)
 
6568
+{
 
6569
+  int rc;
 
6570
+
 
6571
+  if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
 
6572
+    {
 
6573
+      __builtin_tabort (256);
 
6574
+      return 2;
 
6575
+    }
 
6576
+  if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
 
6577
+    {
 
6578
+      __builtin_tabort (257);
 
6579
+      return 1005;
 
6580
+    }
 
6581
+  else if (rc != 3)
 
6582
+    {
 
6583
+      return 1000 * rc + 6;
 
6584
+    }
 
6585
+
 
6586
+  return 0;
 
6587
+}
 
6588
+
 
6589
+static int test_tbegin_nofloat_indirect_aborts (void)
 
6590
+{
 
6591
+  int rc;
 
6592
+
 
6593
+  if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
 
6594
+    {
 
6595
+      indirect_abort (256);
 
6596
+      return 2;
 
6597
+    }
 
6598
+  if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
 
6599
+    {
 
6600
+      indirect_abort (257);
 
6601
+      return 1005;
 
6602
+    }
 
6603
+  else if (rc != 3)
 
6604
+    {
 
6605
+      return 1000 * rc + 6;
 
6606
+    }
 
6607
+
 
6608
+  return 0;
 
6609
+}
 
6610
+
 
6611
+static
 
6612
+int _test_tbegin_retry_aborts (int retries, uint64_t abort_code)
 
6613
+{
 
6614
+  int rc;
 
6615
+
 
6616
+  counters.c1 = 0;
 
6617
+  if ((rc = __builtin_tbegin_retry ((void *)0, retries)) == 0)
 
6618
+    {
 
6619
+      __builtin_non_tx_store ((uint64_t *)&counters.c1, counters.c1 + 1);
 
6620
+      __builtin_tabort (abort_code);
 
6621
+      return 2;
 
6622
+    }
 
6623
+  else
 
6624
+    {
 
6625
+      if ((abort_code & 1) == 0)
 
6626
+       {
 
6627
+         if (rc != 2)
 
6628
+           {
 
6629
+             return 100 * rc + 2003;
 
6630
+           }
 
6631
+         else if (counters.c1 != (uint64_t)retries + 1)
 
6632
+           {
 
6633
+             return 1000 * counters.c1 + 100 * retries + 4;
 
6634
+           }
 
6635
+       }
 
6636
+      else
 
6637
+       {
 
6638
+         if (rc != 3)
 
6639
+           {
 
6640
+             return 100 * rc + 3005;
 
6641
+           }
 
6642
+         else if (counters.c1 != 1)
 
6643
+           {
 
6644
+             return 1000 * counters.c1 + 100 * retries + 6;
 
6645
+           }
 
6646
+       }
 
6647
+    }
 
6648
+
 
6649
+  return 0;
 
6650
+}
 
6651
+
 
6652
+static int test_tbegin_retry_aborts (void)
 
6653
+{
 
6654
+  int rc;
 
6655
+  int retries;
 
6656
+
 
6657
+  for (retries = 1; retries <= 3; retries++)
 
6658
+    {
 
6659
+      rc = _test_tbegin_retry_aborts (retries, 256);
 
6660
+      if (rc != 0)
 
6661
+       {
 
6662
+         return 10000 + rc;
 
6663
+       }
 
6664
+    }
 
6665
+  for (retries = 1; retries <= 3; retries++)
 
6666
+    {
 
6667
+      rc = _test_tbegin_retry_aborts (retries, 257);
 
6668
+      if (rc != 0)
 
6669
+       {
 
6670
+         return 20000 + rc;
 
6671
+       }
 
6672
+    }
 
6673
+  if ((rc = __builtin_tbegin_retry ((void *)0, 5)) == 0)
 
6674
+    {
 
6675
+      global.float_3 = global.float_1 + global.float_2;
 
6676
+      rc = __builtin_tend ();
 
6677
+      if (rc != 0)
 
6678
+       {
 
6679
+         return 30000 + 100 * rc + 6;
 
6680
+       }
 
6681
+    }
 
6682
+  else
 
6683
+    {
 
6684
+      return 30000 + 100 * rc + 7;
 
6685
+    }
 
6686
+
 
6687
+  return 0;
 
6688
+}
 
6689
+
 
6690
+static int _test_tbegin_retry_nofloat_aborts (int retries, uint64_t abort_code)
 
6691
+{
 
6692
+  int rc;
 
6693
+
 
6694
+  counters.c1 = 0;
 
6695
+  if ((rc = __builtin_tbegin_retry_nofloat ((void *)0, retries)) == 0)
 
6696
+    {
 
6697
+      __builtin_non_tx_store ((uint64_t *)&counters.c1, counters.c1 + 1);
 
6698
+      __builtin_tabort (abort_code);
 
6699
+      return 2;
 
6700
+    }
 
6701
+  else
 
6702
+    {
 
6703
+      if ((abort_code & 1) == 0)
 
6704
+       {
 
6705
+         if (rc != 2)
 
6706
+           {
 
6707
+             return 100 * rc + 2003;
 
6708
+           }
 
6709
+         else if (counters.c1 != (uint64_t)retries + 1)
 
6710
+           {
 
6711
+             return 1000 * counters.c1 + 100 * retries + 4;
 
6712
+           }
 
6713
+       }
 
6714
+      else
 
6715
+       {
 
6716
+         if (rc != 3)
 
6717
+           {
 
6718
+             return 100 * rc + 3005;
 
6719
+           }
 
6720
+         else if (counters.c1 != 1)
 
6721
+           {
 
6722
+             return 1000 * counters.c1 + 100 * retries + 6;
 
6723
+           }
 
6724
+       }
 
6725
+    }
 
6726
+
 
6727
+  return 0;
 
6728
+}
 
6729
+
 
6730
+static int test_tbegin_retry_nofloat_aborts (void)
 
6731
+{
 
6732
+  int rc;
 
6733
+  int retries;
 
6734
+
 
6735
+  for (retries = 1; retries <= 3; retries++)
 
6736
+    {
 
6737
+      rc = _test_tbegin_retry_nofloat_aborts (retries, 256);
 
6738
+      if (rc != 0)
 
6739
+       {
 
6740
+         return 10 * retries + rc;
 
6741
+       }
 
6742
+    }
 
6743
+  for (retries = 1; retries <= 3; retries++)
 
6744
+    {
 
6745
+      rc = _test_tbegin_retry_nofloat_aborts (retries, 257);
 
6746
+      if (rc != 0)
 
6747
+       {
 
6748
+         return 10000 + 10 * retries + rc;
 
6749
+       }
 
6750
+    }
 
6751
+
 
6752
+  return 0;
 
6753
+}
 
6754
+
 
6755
+static int test_tbegin_tdb (void)
 
6756
+{
 
6757
+  int rc;
 
6758
+
 
6759
+  local_tdb.format = 0;
 
6760
+  if ((rc = __builtin_tbegin (&local_tdb)) == 0)
 
6761
+    {
 
6762
+      rc = __builtin_tend ();
 
6763
+      if (rc != 0)
 
6764
+       {
 
6765
+         return 100 * rc + 1;
 
6766
+       }
 
6767
+      if (local_tdb.format != 0)
 
6768
+       {
 
6769
+         dump_tdb (&local_tdb);
 
6770
+         return 100 * local_tdb.format + 2;
 
6771
+       }
 
6772
+    }
 
6773
+  else
 
6774
+    {
 
6775
+      return 100 * rc + 3;
 
6776
+    }
 
6777
+  local_tdb.format = 0;
 
6778
+  if ((rc = __builtin_tbegin (&local_tdb)) == 0)
 
6779
+    {
 
6780
+      __builtin_tabort (257);
 
6781
+      return 4;
 
6782
+    }
 
6783
+  else
 
6784
+    {
 
6785
+      if (rc != 3)
 
6786
+       {
 
6787
+         return 100 * rc + 5;
 
6788
+       }
 
6789
+      if (local_tdb.format != 1)
 
6790
+       {
 
6791
+         dump_tdb (&local_tdb);
 
6792
+         return 100 * local_tdb.format + 6;
 
6793
+       }
 
6794
+    }
 
6795
+  local_tdb256.format = 0;
 
6796
+  if ((rc = __builtin_tbegin (&local_tdb256)) == 0)
 
6797
+    {
 
6798
+      rc = __builtin_tend ();
 
6799
+      if (rc != 0)
 
6800
+       {
 
6801
+         return 1100 * rc + 1;
 
6802
+       }
 
6803
+      if (local_tdb256.format != 0)
 
6804
+       {
 
6805
+         dump_tdb (&local_tdb256);
 
6806
+         return 1100 * local_tdb256.format + 2;
 
6807
+       }
 
6808
+    }
 
6809
+  else
 
6810
+    {
 
6811
+      return 1100 * rc + 3;
 
6812
+    }
 
6813
+  local_tdb256.format = 0;
 
6814
+  if ((rc = __builtin_tbegin (&local_tdb256)) == 0)
 
6815
+    {
 
6816
+      __builtin_tabort (257);
 
6817
+      return 2004;
 
6818
+    }
 
6819
+  else
 
6820
+    {
 
6821
+      if (rc != 3)
 
6822
+       {
 
6823
+         return 2100 * rc + 5;
 
6824
+       }
 
6825
+      if (local_tdb256.format != 1)
 
6826
+       {
 
6827
+         dump_tdb (&local_tdb256);
 
6828
+         return 2100 * local_tdb256.format + 6;
 
6829
+       }
 
6830
+    }
 
6831
+
 
6832
+  return 0;
 
6833
+}
 
6834
+
 
6835
+static int test_tbegin_nofloat_tdb (void)
 
6836
+{
 
6837
+  int rc;
 
6838
+
 
6839
+  local_tdb.format = 0;
 
6840
+  if ((rc = __builtin_tbegin_nofloat (&local_tdb)) == 0)
 
6841
+    {
 
6842
+      rc = __builtin_tend ();
 
6843
+      if (rc != 0)
 
6844
+       {
 
6845
+         return 100 * rc + 1;
 
6846
+       }
 
6847
+      if (local_tdb.format != 0)
 
6848
+       {
 
6849
+         dump_tdb (&local_tdb);
 
6850
+         return 100 * local_tdb.format + 2;
 
6851
+       }
 
6852
+    }
 
6853
+  else
 
6854
+    {
 
6855
+      return 3;
 
6856
+    }
 
6857
+  local_tdb.format = 0;
 
6858
+  if ((rc = __builtin_tbegin_nofloat (&local_tdb)) == 0)
 
6859
+    {
 
6860
+      __builtin_tabort (257);
 
6861
+      return 4;
 
6862
+    }
 
6863
+  else
 
6864
+    {
 
6865
+      if (rc != 3)
 
6866
+       {
 
6867
+         return 100 * rc + 5;
 
6868
+       }
 
6869
+      if (local_tdb.format != 1)
 
6870
+       {
 
6871
+         dump_tdb (&local_tdb);
 
6872
+         return 100 * local_tdb.format + 6;
 
6873
+       }
 
6874
+    }
 
6875
+  local_tdb256.format = 0;
 
6876
+  if ((rc = __builtin_tbegin_nofloat (&local_tdb256)) == 0)
 
6877
+    {
 
6878
+      rc = __builtin_tend ();
 
6879
+      if (rc != 0)
 
6880
+       {
 
6881
+         return 1100 * rc + 1;
 
6882
+       }
 
6883
+      if (local_tdb256.format != 0)
 
6884
+       {
 
6885
+         dump_tdb (&local_tdb256);
 
6886
+         return 1100 * local_tdb256.format + 2;
 
6887
+       }
 
6888
+    }
 
6889
+  else
 
6890
+    {
 
6891
+      return 1003;
 
6892
+    }
 
6893
+  local_tdb256.format = 0;
 
6894
+  if ((rc = __builtin_tbegin_nofloat (&local_tdb256)) == 0)
 
6895
+    {
 
6896
+      __builtin_tabort (257);
 
6897
+      return 2004;
 
6898
+    }
 
6899
+  else
 
6900
+    {
 
6901
+      if (rc != 3)
 
6902
+       {
 
6903
+         return 2100 * rc + 5;
 
6904
+       }
 
6905
+      if (local_tdb256.format != 1)
 
6906
+       {
 
6907
+         dump_tdb (&local_tdb256);
 
6908
+         return 2100 * local_tdb256.format + 6;
 
6909
+       }
 
6910
+    }
 
6911
+
 
6912
+  return 0;
 
6913
+}
 
6914
+
 
6915
+static int test_tbegin_retry_tdb (void)
 
6916
+{
 
6917
+  int rc;
 
6918
+
 
6919
+  local_tdb256.format = 0;
 
6920
+  if ((rc = __builtin_tbegin_retry (&local_tdb256, 2)) == 0)
 
6921
+    {
 
6922
+      rc = __builtin_tend ();
 
6923
+      if (rc != 0)
 
6924
+       {
 
6925
+         return 1100 * rc + 1;
 
6926
+       }
 
6927
+      if (local_tdb256.format != 0)
 
6928
+       {
 
6929
+         dump_tdb (&local_tdb256);
 
6930
+         return 1100 * local_tdb256.format + 2;
 
6931
+       }
 
6932
+    }
 
6933
+  else
 
6934
+    {
 
6935
+      return 1003;
 
6936
+    }
 
6937
+  local_tdb256.format = 0;
 
6938
+  if ((rc = __builtin_tbegin_retry (&local_tdb256, 2)) == 0)
 
6939
+    {
 
6940
+      __builtin_tabort (257);
 
6941
+      return 2004;
 
6942
+    }
 
6943
+  else
 
6944
+    {
 
6945
+      if (rc != 3)
 
6946
+       {
 
6947
+         return 2100 * rc + 5;
 
6948
+       }
 
6949
+      if (local_tdb256.format != 1)
 
6950
+       {
 
6951
+         dump_tdb (&local_tdb256);
 
6952
+         return 2100 * local_tdb256.format + 6;
 
6953
+       }
 
6954
+    }
 
6955
+
 
6956
+  return 0;
 
6957
+}
 
6958
+
 
6959
+static int test_tbegin_retry_nofloat_tdb (void)
 
6960
+{
 
6961
+  int rc;
 
6962
+
 
6963
+  local_tdb.format = 0;
 
6964
+  if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb, 2)) == 0)
 
6965
+    {
 
6966
+      rc = __builtin_tend ();
 
6967
+      if (rc != 0)
 
6968
+       {
 
6969
+         return 100 * rc + 1;
 
6970
+       }
 
6971
+      if (local_tdb.format != 0)
 
6972
+       {
 
6973
+         dump_tdb (&local_tdb);
 
6974
+         return 100 * local_tdb.format + 2;
 
6975
+       }
 
6976
+    }
 
6977
+  else
 
6978
+    {
 
6979
+      return 100 * rc + 3;
 
6980
+    }
 
6981
+  local_tdb.format = 0;
 
6982
+  if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb, 2)) == 0)
 
6983
+    {
 
6984
+      __builtin_tabort (257);
 
6985
+      return 4;
 
6986
+    }
 
6987
+  else
 
6988
+    {
 
6989
+      if (rc != 3)
 
6990
+       {
 
6991
+         return 100 * rc + 5;
 
6992
+       }
 
6993
+      if (local_tdb.format != 1)
 
6994
+       {
 
6995
+         dump_tdb (&local_tdb);
 
6996
+         return 100 * local_tdb.format + 6;
 
6997
+       }
 
6998
+    }
 
6999
+  local_tdb256.format = 0;
 
7000
+  if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb256, 2)) == 0)
 
7001
+    {
 
7002
+      rc = __builtin_tend ();
 
7003
+      if (rc != 0)
 
7004
+       {
 
7005
+         return 1100 * rc + 1;
 
7006
+       }
 
7007
+      if (local_tdb256.format != 0)
 
7008
+       {
 
7009
+         dump_tdb (&local_tdb256);
 
7010
+         return 1100 * local_tdb256.format + 2;
 
7011
+       }
 
7012
+    }
 
7013
+  else
 
7014
+    {
 
7015
+      return 1100 * rc + 3;
 
7016
+    }
 
7017
+  local_tdb256.format = 0;
 
7018
+  if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb256, 2)) == 0)
 
7019
+    {
 
7020
+      __builtin_tabort (257);
 
7021
+      return 2004;
 
7022
+    }
 
7023
+  else
 
7024
+    {
 
7025
+      if (rc != 3)
 
7026
+       {
 
7027
+         return 2100 * rc + 5;
 
7028
+       }
 
7029
+      if (local_tdb256.format != 1)
 
7030
+       {
 
7031
+         dump_tdb (&local_tdb256);
 
7032
+         return 2100 * local_tdb256.format + 6;
 
7033
+       }
 
7034
+    }
 
7035
+
 
7036
+  return 0;
 
7037
+}
 
7038
+
 
7039
+static int test_etnd (void)
 
7040
+{
 
7041
+  int rc;
 
7042
+
 
7043
+  counters.c1 = 0;
 
7044
+  counters.c2 = 0;
 
7045
+  counters.c3 = 0;
 
7046
+  if ((rc = __builtin_tbegin ((void *)0)) == 0)
 
7047
+    {
 
7048
+      counters.c1 = __builtin_tx_nesting_depth ();
 
7049
+      if (__builtin_tbegin ((void *)0) == 0)
 
7050
+       {
 
7051
+         counters.c2 = __builtin_tx_nesting_depth ();
 
7052
+         if (__builtin_tbegin ((void *)0) == 0)
 
7053
+           {
 
7054
+             counters.c3 = __builtin_tx_nesting_depth ();
 
7055
+             __builtin_tend ();
 
7056
+           }
 
7057
+         __builtin_tend ();
 
7058
+       }
 
7059
+      __builtin_tend ();
 
7060
+    }
 
7061
+  else
 
7062
+    {
 
7063
+      return 100 * rc + 1;
 
7064
+    }
 
7065
+  if (counters.c1 != 1)
 
7066
+    {
 
7067
+      return 100 * counters.c1 + 2;
 
7068
+    }
 
7069
+  if (counters.c2 != 2)
 
7070
+    {
 
7071
+      return 100 * counters.c2 + 3;
 
7072
+    }
 
7073
+  if (counters.c3 != 3)
 
7074
+    {
 
7075
+      return 100 * counters.c3 + 4;
 
7076
+    }
 
7077
+
 
7078
+  return 0;
 
7079
+}
 
7080
+
 
7081
+static int test_tbeginc (void)
 
7082
+{
 
7083
+  int rc;
 
7084
+
 
7085
+  counters.c1 = 0;
 
7086
+  __builtin_tbeginc ();
 
7087
+  counters.c1 = 1;
 
7088
+  rc = __builtin_tend ();
 
7089
+  if (rc != 0)
 
7090
+    {
 
7091
+      return 10000 * rc + 1;
 
7092
+    }
 
7093
+  if (counters.c1 != 1)
 
7094
+    {
 
7095
+      return 100000 * counters.c1 + 3;
 
7096
+    }
 
7097
+
 
7098
+  return 0;
 
7099
+}
 
7100
+
 
7101
+/* ---------------------------- local testing framework functions ---------- */
 
7102
+
 
7103
+static int run_one_test (const test_table_entry_t *test_entry)
 
7104
+{
 
7105
+  int do_print_passes;
 
7106
+  int succeeded;
 
7107
+  int rc;
 
7108
+  int i;
 
7109
+
 
7110
+  /* Warmup run to get all necessary data and instruction pages into the page
 
7111
+   * tables.  */
 
7112
+  {
 
7113
+    int run;
 
7114
+
 
7115
+    do_dump_tdb = 0;
 
7116
+    for (run = 0; run < NUM_WARMUP_RUNS; run++)
 
7117
+      {
 
7118
+       test_entry->test_func ();
 
7119
+      }
 
7120
+    do_dump_tdb = 1;
 
7121
+  }
 
7122
+  do_print_passes = (
 
7123
+                    test_entry->required_quorum != 1 ||
 
7124
+                    test_entry->max_repetitions != 1);
 
7125
+  printf ("RRR RUN  %s\n", test_entry->name);
 
7126
+  if (do_print_passes == 1)
 
7127
+    {
 
7128
+      printf (
 
7129
+            "         (requires %d successful out of %d runs)\n",
 
7130
+            test_entry->required_quorum,
 
7131
+            test_entry->max_repetitions);
 
7132
+    }
 
7133
+  succeeded = 0;
 
7134
+  rc = 0;
 
7135
+  for (rc = 0, i = 0; i < test_entry->max_repetitions; i++)
 
7136
+    {
 
7137
+      if (do_print_passes == 1)
 
7138
+       {
 
7139
+         if (i == 0)
 
7140
+           {
 
7141
+             printf ("        ");
 
7142
+           }
 
7143
+         else
 
7144
+           {
 
7145
+             printf (",");
 
7146
+           }
 
7147
+       }
 
7148
+      rc = test_entry->test_func ();
 
7149
+      if (rc == 0)
 
7150
+       {
 
7151
+         if (do_print_passes == 1)
 
7152
+           {
 
7153
+             printf (" success");
 
7154
+           }
 
7155
+         succeeded++;
 
7156
+         if (succeeded >= test_entry->required_quorum)
 
7157
+           {
 
7158
+             break;
 
7159
+           }
 
7160
+       }
 
7161
+      else
 
7162
+       {
 
7163
+         printf (" failed (rc = %d)", rc);
 
7164
+       }
 
7165
+    }
 
7166
+  if (do_print_passes == 1 || rc != 0)
 
7167
+    {
 
7168
+      printf ("\n");
 
7169
+    }
 
7170
+  if (succeeded >= test_entry->required_quorum)
 
7171
+    {
 
7172
+      printf ("+++ OK   %s\n", test_entry->name);
 
7173
+
 
7174
+      return 0;
 
7175
+    }
 
7176
+  else
 
7177
+    {
 
7178
+      printf ("--- FAIL %s\n", test_entry->name);
 
7179
+
 
7180
+      return (rc != 0) ? rc : -1;
 
7181
+    }
 
7182
+}
 
7183
+
 
7184
+static int run_all_tests (const test_table_entry_t *test_table)
 
7185
+{
 
7186
+  const test_table_entry_t *test;
 
7187
+  int rc;
 
7188
+
 
7189
+  for (
 
7190
+       rc = 0, test = &test_table[0];
 
7191
+       test->test_func != NULL && rc == 0; test++)
 
7192
+    {
 
7193
+      rc = run_one_test (test);
 
7194
+    }
 
7195
+
 
7196
+  return rc;
 
7197
+}
 
7198
+
 
7199
+/* ---------------------------- interface functions ------------------------ */
 
7200
+
 
7201
+int main (void)
 
7202
+{
 
7203
+  const test_table_entry_t test_table[] = {
 
7204
+    TEST_NO_REP (test_constants),
 
7205
+    TEST_DF_REP (test_tbegin_ntstg_tend),
 
7206
+    TEST_DF_REP (test_tbegin_ntstg_tabort),
 
7207
+    TEST_DF_REP (test_tbegin_nofloat),
 
7208
+    TEST_NO_REP (test_tbegin_retry),
 
7209
+    TEST_NO_REP (test_tbegin_retry_nofloat),
 
7210
+    TEST_DF_REP (test_tbegin_aborts),
 
7211
+    TEST_DF_REP (test_tbegin_indirect_aborts),
 
7212
+    TEST_DF_REP (test_tbegin_nofloat_aborts),
 
7213
+    TEST_DF_REP (test_tbegin_nofloat_indirect_aborts),
 
7214
+    TEST_NO_REP (test_tbegin_retry_aborts),
 
7215
+    TEST_NO_REP (test_tbegin_retry_nofloat_aborts),
 
7216
+    TEST_DF_REP (test_tbegin_tdb),
 
7217
+    TEST_DF_REP (test_tbegin_nofloat_tdb),
 
7218
+    TEST_NO_REP (test_tbegin_retry_tdb),
 
7219
+    TEST_NO_REP (test_tbegin_retry_nofloat_tdb),
 
7220
+    TEST_DF_REP (test_etnd),
 
7221
+    TEST_DF_REP (test_tbeginc),
 
7222
+    { (void *)0, 0, 0 }
 
7223
+  };
 
7224
+
 
7225
+  {
 
7226
+    int rc;
 
7227
+
 
7228
+    rc = run_all_tests (test_table);
 
7229
+
 
7230
+    return rc;
 
7231
+  }
 
7232
+}
 
7233
Index: gcc/testsuite/gcc.target/s390/htm-builtins-2.c
 
7234
===================================================================
 
7235
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-2.c        (.../tags/gcc_4_8_2_release)
 
7236
+++ b/src/gcc/testsuite/gcc.target/s390/htm-builtins-2.c        (.../branches/gcc-4_8-branch)
 
7237
@@ -0,0 +1,682 @@
 
7238
+/* Functional tests of the htm __TM_... macros.  */
 
7239
+
 
7240
+/* { dg-do run } */
 
7241
+/* { dg-require-effective-target htm } */
 
7242
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
 
7243
+
 
7244
+/* ---------------------------- included header files ---------------------- */
 
7245
+
 
7246
+#include <stdio.h>
 
7247
+#include <string.h>
 
7248
+#include <inttypes.h>
 
7249
+#include <htmxlintrin.h>
 
7250
+
 
7251
+/* ---------------------------- local definitions -------------------------- */
 
7252
+
 
7253
+#define DEFAULT_MAX_REPETITIONS 5
 
7254
+#define DEFAULT_REQUIRED_QUORUM ((DEFAULT_MAX_REPETITIONS) - 1)
 
7255
+#define DEFAULT_ABORT_ADDRESS (0x12345678u)
 
7256
+
 
7257
+/* ---------------------------- local macros ------------------------------- */
 
7258
+
 
7259
+#define TEST_DF_REP(name) \
 
7260
+  { #name, name, DEFAULT_MAX_REPETITIONS, DEFAULT_REQUIRED_QUORUM }
 
7261
+#define TEST_NO_REP(name) { #name, name, 1, 1 }
 
7262
+
 
7263
+/* ---------------------------- local types -------------------------------- */
 
7264
+
 
7265
+typedef int (*test_func_t)(void);
 
7266
+
 
7267
+typedef struct
 
7268
+{
 
7269
+  const char *name;
 
7270
+  test_func_t test_func;
 
7271
+  int max_repetitions;
 
7272
+  int required_quorum;
 
7273
+} test_table_entry_t;
 
7274
+
 
7275
+typedef enum
 
7276
+{
 
7277
+  ABORT_T_SYSTEM = 0,
 
7278
+  ABORT_T_USER = 1,
 
7279
+} abort_user_t;
 
7280
+
 
7281
+typedef enum
 
7282
+{
 
7283
+  ABORT_T_NONE = 0,
 
7284
+  ABORT_T_ILLEGAL,
 
7285
+  ABORT_T_FOOTPRINT_EXCEEDED,
 
7286
+  ABORT_T_NESTED_TOO_DEEP,
 
7287
+  ABORT_T_CONFLICT,
 
7288
+
 
7289
+  ABORT_T_INVALID_ABORT_CODE
 
7290
+} abort_t;
 
7291
+
 
7292
+/* ---------------------------- local variables ---------------------------- */
 
7293
+
 
7294
+__attribute__ ((aligned(256))) static struct __htm_tdb local_tdb256;
 
7295
+static struct __htm_tdb local_tdb;
 
7296
+
 
7297
+static abort_t const abort_classes[] =
 
7298
+{
 
7299
+  ABORT_T_INVALID_ABORT_CODE,
 
7300
+  ABORT_T_NONE,
 
7301
+  ABORT_T_NONE,
 
7302
+  ABORT_T_NONE,
 
7303
+
 
7304
+  ABORT_T_ILLEGAL,
 
7305
+  ABORT_T_NONE,
 
7306
+  ABORT_T_NONE,
 
7307
+  ABORT_T_FOOTPRINT_EXCEEDED,
 
7308
+
 
7309
+  ABORT_T_FOOTPRINT_EXCEEDED,
 
7310
+  ABORT_T_CONFLICT,
 
7311
+  ABORT_T_CONFLICT,
 
7312
+  ABORT_T_ILLEGAL,
 
7313
+
 
7314
+  ABORT_T_NONE,
 
7315
+  ABORT_T_NESTED_TOO_DEEP,
 
7316
+  ABORT_T_NONE,
 
7317
+  ABORT_T_NONE,
 
7318
+
 
7319
+  ABORT_T_NONE
 
7320
+};
 
7321
+
 
7322
+static size_t num_abort_classes = sizeof(abort_classes) / sizeof(abort_t);
 
7323
+
 
7324
+/* ---------------------------- exported variables (globals) --------------- */
 
7325
+
 
7326
+int global_int = 0;
 
7327
+uint64_t global_u64 = 0;
 
7328
+float global_float_1 = 1.0;
 
7329
+float global_float_2 = 2.5;
 
7330
+float global_float_3 = 0.0;
 
7331
+__attribute__ ((aligned(256))) struct
 
7332
+{
 
7333
+  volatile uint64_t c1;
 
7334
+  volatile uint64_t c2;
 
7335
+  volatile uint64_t c3;
 
7336
+} counters = { 0, 0, 0 };
 
7337
+
 
7338
+/* ---------------------------- local helper functions --------------------- */
 
7339
+
 
7340
+static void dump_tdb(struct __htm_tdb *tdb)
 
7341
+{
 
7342
+  unsigned char *p;
 
7343
+  int i;
 
7344
+  int j;
 
7345
+
 
7346
+  p = (unsigned char *)tdb;
 
7347
+  for (i = 0; i < 16; i++)
 
7348
+    {
 
7349
+      fprintf(stderr, "0x%02x  ", i * 16);
 
7350
+      for (j = 0; j < 16; j++)
 
7351
+       {
 
7352
+         fprintf(stderr, "%02x", (int)p[i * 16 + j]);
 
7353
+         if (j < 15)
 
7354
+           {
 
7355
+             fprintf(stderr, " ");
 
7356
+           }
 
7357
+         if (j == 7)
 
7358
+           {
 
7359
+             fprintf(stderr, " ");
 
7360
+           }
 
7361
+       }
 
7362
+      fprintf(stderr, "\n");
 
7363
+    }
 
7364
+
 
7365
+  return;
 
7366
+}
 
7367
+
 
7368
+static void make_fake_tdb(struct __htm_tdb *tdb)
 
7369
+{
 
7370
+  memset(tdb, 0, sizeof(*tdb));
 
7371
+  tdb->format = 1;
 
7372
+  tdb->nesting_depth = 1;
 
7373
+  tdb->atia = DEFAULT_ABORT_ADDRESS;
 
7374
+  tdb->abort_code = 11;
 
7375
+
 
7376
+  return;
 
7377
+}
 
7378
+
 
7379
+static int check_abort_code_in_tdb(struct __htm_tdb *tdb, uint64_t abort_code)
 
7380
+{
 
7381
+  long expect_rc;
 
7382
+  long rc;
 
7383
+
 
7384
+  if (abort_code != 0)
 
7385
+    {
 
7386
+      long addr;
 
7387
+
 
7388
+      addr = __TM_failure_address(&local_tdb);
 
7389
+      if (addr != DEFAULT_ABORT_ADDRESS)
 
7390
+       {
 
7391
+         return 11;
 
7392
+       }
 
7393
+    }
 
7394
+  {
 
7395
+    long long tdb_abort_code;
 
7396
+
 
7397
+    tdb_abort_code = __TM_failure_code(tdb);
 
7398
+    if ((uint64_t)tdb_abort_code != abort_code)
 
7399
+      {
 
7400
+       fprintf(
 
7401
+               stderr, "tm_ac %" PRIu64 ", ac %" PRIu64
 
7402
+               ", tdb_ac %" PRIu64 "\n",
 
7403
+               (uint64_t)tdb_abort_code, abort_code,
 
7404
+               (uint64_t)tdb->abort_code);
 
7405
+       return 10;
 
7406
+      }
 
7407
+  }
 
7408
+  expect_rc = (abort_code >= 256) ? 1 : 0;
 
7409
+  rc = __TM_is_user_abort(tdb);
 
7410
+  if (rc != expect_rc)
 
7411
+    {
 
7412
+      fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
 
7413
+      return 1;
 
7414
+    }
 
7415
+  {
 
7416
+    unsigned char code;
 
7417
+
 
7418
+    code = 0xffu;
 
7419
+    rc = __TM_is_named_user_abort(tdb, &code);
 
7420
+    if (rc != expect_rc)
 
7421
+      {
 
7422
+       fprintf(
 
7423
+               stderr, "rc %ld, expect_rc %ld\n", rc,
 
7424
+               expect_rc);
 
7425
+       return 2;
 
7426
+      }
 
7427
+    if (expect_rc == 1 && code != abort_code - 256)
 
7428
+      {
 
7429
+       return 3;
 
7430
+      }
 
7431
+  }
 
7432
+  if (abort_code > (uint64_t)num_abort_classes)
 
7433
+    {
 
7434
+      abort_code = (uint64_t)num_abort_classes;
 
7435
+    }
 
7436
+  expect_rc = (abort_classes[abort_code] == ABORT_T_ILLEGAL) ? 1 : 0;
 
7437
+  rc = __TM_is_illegal(tdb);
 
7438
+  if (rc != expect_rc)
 
7439
+    {
 
7440
+      dump_tdb(tdb);
 
7441
+      fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
 
7442
+      return 4;
 
7443
+    }
 
7444
+  expect_rc =
 
7445
+    (abort_classes[abort_code] == ABORT_T_FOOTPRINT_EXCEEDED) ?
 
7446
+    1 : 0;
 
7447
+  rc = __TM_is_footprint_exceeded(tdb);
 
7448
+  if (rc != expect_rc)
 
7449
+    {
 
7450
+      dump_tdb(tdb);
 
7451
+      fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
 
7452
+      return 5;
 
7453
+    }
 
7454
+  expect_rc =
 
7455
+    (abort_classes[abort_code] == ABORT_T_NESTED_TOO_DEEP) ? 1 : 0;
 
7456
+  rc = __TM_is_nested_too_deep(tdb);
 
7457
+  if (rc != expect_rc)
 
7458
+    {
 
7459
+      dump_tdb(tdb);
 
7460
+      fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
 
7461
+      return 6;
 
7462
+    }
 
7463
+  expect_rc = (abort_classes[abort_code] == ABORT_T_CONFLICT) ? 1 : 0;
 
7464
+  rc = __TM_is_conflict(tdb);
 
7465
+  if (rc != expect_rc)
 
7466
+    {
 
7467
+      dump_tdb(tdb);
 
7468
+      fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
 
7469
+      return 7;
 
7470
+    }
 
7471
+
 
7472
+  return 0;
 
7473
+}
 
7474
+
 
7475
+/* ---------------------------- local test functions ----------------------- */
 
7476
+
 
7477
+/* Not a test; make sure that the involved global cachelines are reserved for
 
7478
+ * writing.  */
 
7479
+static int init_cache(void)
 
7480
+{
 
7481
+  make_fake_tdb(&local_tdb);
 
7482
+  make_fake_tdb(&local_tdb256);
 
7483
+  global_int = 0;
 
7484
+  global_u64 = 0;
 
7485
+  global_float_1 = 1.0;
 
7486
+  global_float_2 = 2.5;
 
7487
+  global_float_3 = 0.0;
 
7488
+  counters.c1 = 0;
 
7489
+  counters.c2 = 0;
 
7490
+  counters.c3 = 0;
 
7491
+
 
7492
+  return 0;
 
7493
+}
 
7494
+
 
7495
+static int test_abort_classification(void)
 
7496
+{
 
7497
+  int i;
 
7498
+
 
7499
+  make_fake_tdb(&local_tdb);
 
7500
+  for (i = 0; i <= 256; i++)
 
7501
+    {
 
7502
+      int rc;
 
7503
+
 
7504
+      local_tdb.abort_code = (uint64_t)i;
 
7505
+      rc = check_abort_code_in_tdb(&local_tdb, (uint64_t)i);
 
7506
+      if (rc != 0)
 
7507
+       {
 
7508
+         return 100 * i + rc;
 
7509
+       }
 
7510
+    }
 
7511
+
 
7512
+  return 0;
 
7513
+}
 
7514
+
 
7515
+static int test_cc_classification(void)
 
7516
+{
 
7517
+  long rc;
 
7518
+
 
7519
+  rc = __TM_is_failure_persistent(0);
 
7520
+  if (rc != 0)
 
7521
+    {
 
7522
+      return 1;
 
7523
+    }
 
7524
+  rc = __TM_is_failure_persistent(1);
 
7525
+  if (rc != 0)
 
7526
+    {
 
7527
+      return 2;
 
7528
+    }
 
7529
+  rc = __TM_is_failure_persistent(2);
 
7530
+  if (rc != 0)
 
7531
+    {
 
7532
+      return 3;
 
7533
+    }
 
7534
+  rc = __TM_is_failure_persistent(3);
 
7535
+  if (rc != 1)
 
7536
+    {
 
7537
+      return 4;
 
7538
+    }
 
7539
+
 
7540
+  return 0;
 
7541
+}
 
7542
+
 
7543
+static int test_tbegin_ntstg_tend(void)
 
7544
+{
 
7545
+  long rc;
 
7546
+
 
7547
+  counters.c1 = 0;
 
7548
+  counters.c2 = 0;
 
7549
+  if ((rc = __TM_simple_begin()) == 0)
 
7550
+    {
 
7551
+      __TM_non_transactional_store((uint64_t *)&counters.c1, 1);
 
7552
+      counters.c2 = 2;
 
7553
+      rc = __TM_end();
 
7554
+      if (rc != 0)
 
7555
+       {
 
7556
+         return 100 * rc + 5;
 
7557
+       }
 
7558
+      if (counters.c1 != 1)
 
7559
+       {
 
7560
+         return 100 * counters.c1 + 2;
 
7561
+       }
 
7562
+      if (counters.c2 != 2)
 
7563
+       {
 
7564
+         return 100 * counters.c2 + 3;
 
7565
+       }
 
7566
+    }
 
7567
+  else
 
7568
+    {
 
7569
+      return 100 * rc + 4;
 
7570
+    }
 
7571
+
 
7572
+  return 0;
 
7573
+}
 
7574
+
 
7575
+static int test_tbegin_ntstg_tabort(void)
 
7576
+{
 
7577
+  register float f;
 
7578
+
 
7579
+  counters.c1 = 0;
 
7580
+  counters.c2 = 0;
 
7581
+  f = 0;
 
7582
+  if (__TM_simple_begin() == 0)
 
7583
+    {
 
7584
+      __TM_non_transactional_store((uint64_t *)&counters.c1, 1);
 
7585
+      counters.c2 = 2;
 
7586
+      f = 1;
 
7587
+      __TM_named_abort(0);
 
7588
+      return 1;
 
7589
+    }
 
7590
+  if (counters.c1 != 1)
 
7591
+    {
 
7592
+      return 100 * counters.c1 + 2;
 
7593
+    }
 
7594
+  if (counters.c2 != 0)
 
7595
+    {
 
7596
+      return 100 * counters.c2 + 3;
 
7597
+    }
 
7598
+  if (f != 0)
 
7599
+    {
 
7600
+      return 100 * f + 4;
 
7601
+    }
 
7602
+
 
7603
+  return 0;
 
7604
+}
 
7605
+
 
7606
+static int test_tbegin_aborts(void)
 
7607
+{
 
7608
+  float f;
 
7609
+  long rc;
 
7610
+
 
7611
+  f = 77;
 
7612
+  if ((rc = __TM_simple_begin()) == 0)
 
7613
+    {
 
7614
+      f = 88;
 
7615
+      __TM_abort();
 
7616
+      return 2;
 
7617
+    }
 
7618
+  else if (rc != 2)
 
7619
+    {
 
7620
+      return 3;
 
7621
+    }
 
7622
+  if (f != 77)
 
7623
+    {
 
7624
+      return 4;
 
7625
+    }
 
7626
+  f = 66;
 
7627
+  if ((rc = __TM_simple_begin()) == 0)
 
7628
+    {
 
7629
+      f = 99;
 
7630
+      __TM_named_abort(3);
 
7631
+      return 5;
 
7632
+    }
 
7633
+  else if (rc != 3)
 
7634
+    {
 
7635
+      return 100 * rc + 6;
 
7636
+    }
 
7637
+  if (f != 66)
 
7638
+    {
 
7639
+      return 100 * f + 7;
 
7640
+    }
 
7641
+  if ((rc = __TM_simple_begin()) == 0)
 
7642
+    {
 
7643
+      global_float_3 = global_float_1 + global_float_2;
 
7644
+      rc = __TM_end();
 
7645
+      if (rc != 0)
 
7646
+       {
 
7647
+         return 100 * rc + 8;
 
7648
+       }
 
7649
+    }
 
7650
+  else
 
7651
+    {
 
7652
+      return 100 * rc + 9;
 
7653
+    }
 
7654
+  if (global_float_3 != global_float_1 + global_float_2)
 
7655
+    {
 
7656
+      return 100 * rc + 10;
 
7657
+    }
 
7658
+
 
7659
+  return 0;
 
7660
+}
 
7661
+
 
7662
+static int test_tbegin_tdb(void)
 
7663
+{
 
7664
+  long rc;
 
7665
+
 
7666
+  local_tdb.format = 0;
 
7667
+  if ((rc = __TM_begin(&local_tdb)) == 0)
 
7668
+    {
 
7669
+      rc = __TM_end();
 
7670
+      if (rc != 0)
 
7671
+       {
 
7672
+         return 100 * rc + 1;
 
7673
+       }
 
7674
+      if (local_tdb.format != 0)
 
7675
+       {
 
7676
+         dump_tdb(&local_tdb);
 
7677
+         return 100 * local_tdb.format + 2;
 
7678
+       }
 
7679
+    }
 
7680
+  else
 
7681
+    {
 
7682
+      return 100 * rc + 3;
 
7683
+    }
 
7684
+  local_tdb.format = 0;
 
7685
+  if ((rc = __TM_begin(&local_tdb)) == 0)
 
7686
+    {
 
7687
+      __TM_named_abort(1);
 
7688
+      return 4;
 
7689
+    }
 
7690
+  else
 
7691
+    {
 
7692
+      if (rc != 3)
 
7693
+       {
 
7694
+         return 100 * rc + 5;
 
7695
+       }
 
7696
+      if (local_tdb.format != 1)
 
7697
+       {
 
7698
+         dump_tdb(&local_tdb);
 
7699
+         return 100 * local_tdb.format + 6;
 
7700
+       }
 
7701
+    }
 
7702
+  local_tdb256.format = 0;
 
7703
+  if ((rc = __TM_begin(&local_tdb256)) == 0)
 
7704
+    {
 
7705
+      rc = __TM_end();
 
7706
+      if (rc != 0)
 
7707
+       {
 
7708
+         return 1100 * rc + 1;
 
7709
+       }
 
7710
+      if (local_tdb256.format != 0)
 
7711
+       {
 
7712
+         dump_tdb(&local_tdb256);
 
7713
+         return 1100 * local_tdb256.format + 2;
 
7714
+       }
 
7715
+    }
 
7716
+  else
 
7717
+    {
 
7718
+      return 1100 * rc + 3;
 
7719
+    }
 
7720
+#if 1 /*!!!does not work*/
 
7721
+  local_tdb256.format = 0;
 
7722
+  if ((rc = __TM_begin(&local_tdb256)) == 0)
 
7723
+    {
 
7724
+      __TM_named_abort(1);
 
7725
+      return 2004;
 
7726
+    }
 
7727
+  else
 
7728
+    {
 
7729
+      if (rc != 3)
 
7730
+       {
 
7731
+         return 2100 * rc + 5;
 
7732
+       }
 
7733
+      if (local_tdb256.format != 1)
 
7734
+       {
 
7735
+         dump_tdb(&local_tdb256);
 
7736
+         return 2100 * local_tdb256.format + 6;
 
7737
+       }
 
7738
+    }
 
7739
+#endif
 
7740
+
 
7741
+  return 0;
 
7742
+}
 
7743
+
 
7744
+static int test_etnd(void)
 
7745
+{
 
7746
+  long rc;
 
7747
+
 
7748
+  {
 
7749
+    long nd;
 
7750
+
 
7751
+    make_fake_tdb(&local_tdb);
 
7752
+    local_tdb.nesting_depth = 0;
 
7753
+    nd = __TM_nesting_depth(&local_tdb);
 
7754
+    if (nd != 0)
 
7755
+      {
 
7756
+       return 1;
 
7757
+      }
 
7758
+    local_tdb.nesting_depth = 7;
 
7759
+    nd = __TM_nesting_depth(&local_tdb);
 
7760
+    if (nd != 7)
 
7761
+      {
 
7762
+       return 7;
 
7763
+      }
 
7764
+    local_tdb.format = 0;
 
7765
+    nd = __TM_nesting_depth(&local_tdb);
 
7766
+    if (nd != 0)
 
7767
+      {
 
7768
+       return 2;
 
7769
+      }
 
7770
+  }
 
7771
+  counters.c1 = 0;
 
7772
+  counters.c1 = 0;
 
7773
+  counters.c2 = 0;
 
7774
+  counters.c3 = 0;
 
7775
+  if ((rc = __TM_simple_begin()) == 0)
 
7776
+    {
 
7777
+      counters.c1 = __TM_nesting_depth(0);
 
7778
+      if (__TM_simple_begin() == 0)
 
7779
+       {
 
7780
+         counters.c2 = __TM_nesting_depth(0);
 
7781
+         if (__TM_simple_begin() == 0)
 
7782
+           {
 
7783
+             counters.c3 = __TM_nesting_depth(0);
 
7784
+             __TM_end();
 
7785
+           }
 
7786
+         __TM_end();
 
7787
+       }
 
7788
+      __TM_end();
 
7789
+    }
 
7790
+  else
 
7791
+    {
 
7792
+      return 100 * rc + 1;
 
7793
+    }
 
7794
+  if (counters.c1 != 1)
 
7795
+    {
 
7796
+      return 100 * counters.c1 + 2;
 
7797
+    }
 
7798
+  if (counters.c2 != 2)
 
7799
+    {
 
7800
+      return 100 * counters.c2 + 3;
 
7801
+    }
 
7802
+  if (counters.c3 != 3)
 
7803
+    {
 
7804
+      return 100 * counters.c3 + 4;
 
7805
+    }
 
7806
+
 
7807
+  return 0;
 
7808
+}
 
7809
+
 
7810
+/* ---------------------------- local testing framework functions ---------- */
 
7811
+
 
7812
+static int run_one_test(const test_table_entry_t *test_entry)
 
7813
+{
 
7814
+  int do_print_passes;
 
7815
+  int succeeded;
 
7816
+  int rc;
 
7817
+  int i;
 
7818
+
 
7819
+  do_print_passes = (
 
7820
+                    test_entry->required_quorum != 1 ||
 
7821
+                    test_entry->max_repetitions != 1);
 
7822
+  printf("RRR RUN  %s\n", test_entry->name);
 
7823
+  if (do_print_passes == 1)
 
7824
+    {
 
7825
+      printf(
 
7826
+            "         (requires %d successful out of %d runs)\n",
 
7827
+            test_entry->required_quorum,
 
7828
+            test_entry->max_repetitions);
 
7829
+    }
 
7830
+  succeeded = 0;
 
7831
+  rc = 0;
 
7832
+  for (rc = 0, i = 0; i < test_entry->max_repetitions; i++)
 
7833
+    {
 
7834
+      if (do_print_passes == 1)
 
7835
+       {
 
7836
+         if (i == 0)
 
7837
+           {
 
7838
+             printf("        ");
 
7839
+           }
 
7840
+         else
 
7841
+           {
 
7842
+             printf(",");
 
7843
+           }
 
7844
+       }
 
7845
+      rc = test_entry->test_func();
 
7846
+      if (rc == 0)
 
7847
+       {
 
7848
+         if (do_print_passes == 1)
 
7849
+           {
 
7850
+             printf(" success");
 
7851
+           }
 
7852
+         succeeded++;
 
7853
+         if (succeeded >= test_entry->required_quorum)
 
7854
+           {
 
7855
+             break;
 
7856
+           }
 
7857
+       }
 
7858
+      else
 
7859
+       {
 
7860
+         printf(" failed (rc = %d)", rc);
 
7861
+       }
 
7862
+    }
 
7863
+  if (do_print_passes == 1 || rc != 0)
 
7864
+    {
 
7865
+      printf("\n");
 
7866
+    }
 
7867
+  if (succeeded >= test_entry->required_quorum)
 
7868
+    {
 
7869
+      printf("+++ OK   %s\n", test_entry->name);
 
7870
+
 
7871
+      return 0;
 
7872
+    }
 
7873
+  else
 
7874
+    {
 
7875
+      printf("--- FAIL %s\n", test_entry->name);
 
7876
+
 
7877
+      return (rc != 0) ? rc : -1;
 
7878
+    }
 
7879
+}
 
7880
+
 
7881
+static int run_all_tests(const test_table_entry_t *test_table)
 
7882
+{
 
7883
+  const test_table_entry_t *test;
 
7884
+  int rc;
 
7885
+
 
7886
+  for (
 
7887
+       rc = 0, test = &test_table[0];
 
7888
+       test->test_func != NULL && rc == 0; test++)
 
7889
+    {
 
7890
+      rc = run_one_test(test);
 
7891
+    }
 
7892
+
 
7893
+  return rc;
 
7894
+}
 
7895
+
 
7896
+/* ---------------------------- interface functions ------------------------ */
 
7897
+
 
7898
+int main(void)
 
7899
+{
 
7900
+  const test_table_entry_t test_table[] = {
 
7901
+    TEST_NO_REP(init_cache),
 
7902
+    TEST_NO_REP(test_abort_classification),
 
7903
+    TEST_NO_REP(test_cc_classification),
 
7904
+    TEST_DF_REP(test_tbegin_ntstg_tend),
 
7905
+    TEST_DF_REP(test_tbegin_ntstg_tabort),
 
7906
+    TEST_DF_REP(test_tbegin_aborts),
 
7907
+    TEST_DF_REP(test_tbegin_tdb),
 
7908
+    TEST_DF_REP(test_etnd),
 
7909
+    { (void *)0, 0, 0 }
 
7910
+  };
 
7911
+
 
7912
+  {
 
7913
+    int rc;
 
7914
+
 
7915
+    rc = run_all_tests(test_table);
 
7916
+
 
7917
+    return rc;
 
7918
+  }
 
7919
+}
 
7920
Index: gcc/testsuite/gcc.target/sh/pr51244-19.c
 
7921
===================================================================
 
7922
--- a/src/gcc/testsuite/gcc.target/sh/pr51244-19.c      (.../tags/gcc_4_8_2_release)
 
7923
+++ b/src/gcc/testsuite/gcc.target/sh/pr51244-19.c      (.../branches/gcc-4_8-branch)
 
7924
@@ -22,11 +22,16 @@
 
7925
    unwanted sequences.  Thus, if we see any movt insns, something is not
 
7926
    working as expected.  This test requires -O2 because the T bit stores
 
7927
    in question will be eliminated in additional insn split passes after
 
7928
-   reload.  */
 
7929
+   reload.
 
7930
+
 
7931
+   Notice: When this test case was initially added, the T bit optimization
 
7932
+           was buggy and this test case resulted in wrong code.  The movt
 
7933
+           instructions actually have to be present in this case to get
 
7934
+           correct code.  */
 
7935
 /* { dg-do compile { target "sh*-*-*" } } */
 
7936
 /* { dg-options "-O2" } */
 
7937
 /* { dg-skip-if "" { "sh*-*-*" } { "-m5*" } { "" } } */
 
7938
-/* { dg-final { scan-assembler-not "movt" } } */
 
7939
+/* { dg-final { scan-assembler "movt" } } */
 
7940
 
 
7941
 struct request
 
7942
 {
 
7943
Index: gcc/testsuite/gcc.target/sh/pr54089-3.c
 
7944
===================================================================
 
7945
--- a/src/gcc/testsuite/gcc.target/sh/pr54089-3.c       (.../tags/gcc_4_8_2_release)
 
7946
+++ b/src/gcc/testsuite/gcc.target/sh/pr54089-3.c       (.../branches/gcc-4_8-branch)
 
7947
@@ -5,7 +5,7 @@
 
7948
 /* { dg-options "-O1" } */
 
7949
 /* { dg-skip-if "" { "sh*-*-*" } { "*" } { "-m1*" "-m2" "-m2e*" } } */
 
7950
 /* { dg-final { scan-assembler-not "and" } } */
 
7951
-/* { dg-final { scan-assembler-not "31" } } */
 
7952
+/* { dg-final { scan-assembler-not "#31" } } */
 
7953
 
 
7954
 int
 
7955
 test00 (unsigned int a, int* b, int c, int* d, unsigned int e)
 
7956
Index: gcc/testsuite/gfortran.dg/gomp/pr59467.f90
 
7957
===================================================================
 
7958
--- a/src/gcc/testsuite/gfortran.dg/gomp/pr59467.f90    (.../tags/gcc_4_8_2_release)
 
7959
+++ b/src/gcc/testsuite/gfortran.dg/gomp/pr59467.f90    (.../branches/gcc-4_8-branch)
 
7960
@@ -0,0 +1,24 @@
 
7961
+! PR libgomp/59467
 
7962
+! { dg-do compile }
 
7963
+! { dg-options "-fopenmp" }
 
7964
+  FUNCTION t()
 
7965
+    INTEGER :: a, b, t
 
7966
+    a = 0
 
7967
+    b = 0
 
7968
+    !$OMP PARALLEL REDUCTION(+:b)
 
7969
+      !$OMP SINGLE     ! { dg-error "is not threadprivate or private in outer context" }
 
7970
+        !$OMP ATOMIC WRITE
 
7971
+        a = 6
 
7972
+      !$OMP END SINGLE COPYPRIVATE (a)
 
7973
+      b = a
 
7974
+    !$OMP END PARALLEL
 
7975
+    t = b
 
7976
+    b = 0
 
7977
+    !$OMP PARALLEL REDUCTION(+:b)
 
7978
+      !$OMP SINGLE
 
7979
+        !$OMP ATOMIC WRITE
 
7980
+        b = 6
 
7981
+      !$OMP END SINGLE COPYPRIVATE (b)
 
7982
+    !$OMP END PARALLEL
 
7983
+    t = t + b
 
7984
+  END FUNCTION
 
7985
Index: gcc/testsuite/gfortran.dg/reshape_6.f90
 
7986
===================================================================
 
7987
--- a/src/gcc/testsuite/gfortran.dg/reshape_6.f90       (.../tags/gcc_4_8_2_release)
 
7988
+++ b/src/gcc/testsuite/gfortran.dg/reshape_6.f90       (.../branches/gcc-4_8-branch)
 
7989
@@ -0,0 +1,19 @@
 
7990
+! { dg-do compile }
 
7991
+! PR fortran/58989
 
7992
+!
 
7993
+program test
 
7994
+
 
7995
+  real(8), dimension(4,4) :: fluxes
 
7996
+  real(8), dimension(2,2,2,2) :: f
 
7997
+  integer, dimension(3) :: dmmy 
 
7998
+  integer, parameter :: indx(4)=(/2,2,2,2/)
 
7999
+
 
8000
+  fluxes = 1
 
8001
+
 
8002
+  dmmy = (/2,2,2/)
 
8003
+
 
8004
+  f = reshape(fluxes,(/dmmy,2/))  ! Caused an ICE
 
8005
+  f = reshape(fluxes,(/2,2,2,2/)) ! Works as expected
 
8006
+  f = reshape(fluxes,indx)        ! Works as expected
 
8007
+
 
8008
+end program test
 
8009
Index: gcc/testsuite/gfortran.dg/derived_external_function_1.f90
 
8010
===================================================================
 
8011
--- a/src/gcc/testsuite/gfortran.dg/derived_external_function_1.f90     (.../tags/gcc_4_8_2_release)
 
8012
+++ b/src/gcc/testsuite/gfortran.dg/derived_external_function_1.f90     (.../branches/gcc-4_8-branch)
 
8013
@@ -0,0 +1,27 @@
 
8014
+! { dg-do run }
 
8015
+!
 
8016
+! PR fortran/58771
 
8017
+!
 
8018
+! Contributed by Vittorio Secca  <zeccav@gmail.com>
 
8019
+!
 
8020
+! ICEd on the write statement with f() because the derived type backend
 
8021
+! declaration not built.
 
8022
+!
 
8023
+module m
 
8024
+  type t
 
8025
+    integer(4) g
 
8026
+  end type
 
8027
+end
 
8028
+
 
8029
+type(t) function f() result(ff)
 
8030
+  use m
 
8031
+  ff%g = 42
 
8032
+end
 
8033
+
 
8034
+  use m
 
8035
+  character (20) :: line1, line2
 
8036
+  type(t)  f
 
8037
+  write (line1, *) f()
 
8038
+  write (line2, *) 42_4
 
8039
+  if (line1 .ne. line2) call abort
 
8040
+end
 
8041
Index: gcc/testsuite/gfortran.dg/constructor_9.f90
 
8042
===================================================================
 
8043
--- a/src/gcc/testsuite/gfortran.dg/constructor_9.f90   (.../tags/gcc_4_8_2_release)
 
8044
+++ b/src/gcc/testsuite/gfortran.dg/constructor_9.f90   (.../branches/gcc-4_8-branch)
 
8045
@@ -0,0 +1,22 @@
 
8046
+! { dg-do compile }
 
8047
+! { dg-options "-Wall" }
 
8048
+!
 
8049
+! PR 58471: [4.8/4.9 Regression] ICE on invalid with missing type constructor and -Wall
 
8050
+!
 
8051
+! Contributed by Andrew Benson <abensonca@gmail.com>
 
8052
+
 
8053
+module cf
 
8054
+  implicit none
 
8055
+  type :: cfmde
 
8056
+  end type
 
8057
+  interface cfmde
 
8058
+     module procedure mdedc   ! { dg-error "is neither function nor subroutine" }
 
8059
+  end interface
 
8060
+contains
 
8061
+  subroutine cfi()
 
8062
+    type(cfmde), pointer :: cfd
 
8063
+    cfd=cfmde()                  ! { dg-error "Can't convert" }
 
8064
+  end subroutine
 
8065
+end module
 
8066
+
 
8067
+! { dg-final { cleanup-modules "cf" } }
 
8068
Index: gcc/testsuite/gfortran.dg/proc_ptr_43.f90
 
8069
===================================================================
 
8070
--- a/src/gcc/testsuite/gfortran.dg/proc_ptr_43.f90     (.../tags/gcc_4_8_2_release)
 
8071
+++ b/src/gcc/testsuite/gfortran.dg/proc_ptr_43.f90     (.../branches/gcc-4_8-branch)
 
8072
@@ -0,0 +1,19 @@
 
8073
+! { dg-do compile }
 
8074
+!
 
8075
+! PR 58099: [4.8/4.9 Regression] [F03] over-zealous procedure-pointer error checking
 
8076
+!
 
8077
+! Contributed by Daniel Price <daniel.price@monash.edu>
 
8078
+
 
8079
+  implicit none
 
8080
+  procedure(real), pointer :: wfunc
 
8081
+
 
8082
+  wfunc => w_cubic 
 
8083
 
8084
+contains
 
8085
+
 
8086
+  pure real function w_cubic(q2)
 
8087
+    real, intent(in) :: q2
 
8088
+    w_cubic = 0.
 
8089
+  end function
 
8090
+
 
8091
+end
 
8092
Index: gcc/testsuite/gfortran.dg/extends_15.f90
 
8093
===================================================================
 
8094
--- a/src/gcc/testsuite/gfortran.dg/extends_15.f90      (.../tags/gcc_4_8_2_release)
 
8095
+++ b/src/gcc/testsuite/gfortran.dg/extends_15.f90      (.../branches/gcc-4_8-branch)
 
8096
@@ -0,0 +1,16 @@
 
8097
+! { dg-do compile }
 
8098
+!
 
8099
+! PR 58355: [4.7/4.8/4.9 Regression] [F03] ICE with TYPE, EXTENDS before parent TYPE defined
 
8100
+!
 
8101
+! Contributed by Andrew Benson <abensonca@gmail.com>
 
8102
+
 
8103
+module ct
 
8104
+  public :: t1
 
8105
+
 
8106
+  type, extends(t1) :: t2   ! { dg-error "has not been previously defined" }
 
8107
+
 
8108
+  type :: t1
 
8109
+  end type
 
8110
+end
 
8111
+
 
8112
+! { dg-final { cleanup-modules "ct" } }
 
8113
Index: gcc/testsuite/gfortran.dg/optional_class_1.f90
 
8114
===================================================================
 
8115
--- a/src/gcc/testsuite/gfortran.dg/optional_class_1.f90        (.../tags/gcc_4_8_2_release)
 
8116
+++ b/src/gcc/testsuite/gfortran.dg/optional_class_1.f90        (.../branches/gcc-4_8-branch)
 
8117
@@ -0,0 +1,45 @@
 
8118
+! { dg-do run }
 
8119
+!
 
8120
+! PR fortran/57445
 
8121
+!
 
8122
+! Contributed by Tobias Burnus  <burnus@gcc.gnu.org>
 
8123
+!
 
8124
+! Spurious assert was added at revision 192495
 
8125
+!
 
8126
+module m
 
8127
+  implicit none
 
8128
+  type t
 
8129
+    integer :: i
 
8130
+  end type t
 
8131
+contains
 
8132
+  subroutine opt(xa, xc, xaa, xca)
 
8133
+    type(t),  allocatable, intent(out), optional :: xa
 
8134
+    class(t), allocatable, intent(out), optional :: xc
 
8135
+    type(t),  allocatable, intent(out), optional :: xaa(:)
 
8136
+    class(t), allocatable, intent(out), optional :: xca(:)
 
8137
+    if (present (xca)) call foo_opt(xca=xca)
 
8138
+  end subroutine opt
 
8139
+  subroutine foo_opt(xa, xc, xaa, xca)
 
8140
+    type(t),  allocatable, intent(out), optional :: xa
 
8141
+    class(t), allocatable, intent(out), optional :: xc
 
8142
+    type(t),  allocatable, intent(out), optional :: xaa(:)
 
8143
+    class(t), allocatable, intent(out), optional :: xca(:)
 
8144
+    if (present (xca)) then
 
8145
+      if (allocated (xca)) deallocate (xca)
 
8146
+      allocate (xca(3), source = [t(9),t(99),t(999)])
 
8147
+    end if
 
8148
+  end subroutine foo_opt
 
8149
+end module m
 
8150
+  use m
 
8151
+  class(t), allocatable :: xca(:)
 
8152
+  allocate (xca(1), source = t(42))
 
8153
+  select type (xca)
 
8154
+    type is (t)
 
8155
+      if (any (xca%i .ne. [42])) call abort
 
8156
+  end select
 
8157
+  call opt (xca = xca)
 
8158
+  select type (xca)
 
8159
+    type is (t)
 
8160
+      if (any (xca%i .ne. [9,99,999])) call abort
 
8161
+  end select
 
8162
+end
 
8163
Index: gcc/testsuite/gcc.c-torture/execute/pr58984.c
 
8164
===================================================================
 
8165
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr58984.c (.../tags/gcc_4_8_2_release)
 
8166
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr58984.c (.../branches/gcc-4_8-branch)
 
8167
@@ -0,0 +1,57 @@
 
8168
+/* PR tree-optimization/58984 */
 
8169
+
 
8170
+struct S { int f0 : 8; int : 6; int f1 : 5; };
 
8171
+struct T { char f0; int : 6; int f1 : 5; };
 
8172
+
 
8173
+int a, *c = &a, e, n, b, m;
 
8174
+
 
8175
+static int
 
8176
+foo (struct S p)
 
8177
+{
 
8178
+  const unsigned short *f[36];
 
8179
+  for (; e < 2; e++)
 
8180
+    {
 
8181
+      const unsigned short **i = &f[0];
 
8182
+      *c ^= 1;
 
8183
+      if (p.f1)
 
8184
+       {
 
8185
+         *i = 0;
 
8186
+         return b;
 
8187
+       }
 
8188
+    }
 
8189
+  return 0;
 
8190
+}
 
8191
+
 
8192
+static int
 
8193
+bar (struct T p)
 
8194
+{
 
8195
+  const unsigned short *f[36];
 
8196
+  for (; e < 2; e++)
 
8197
+    {
 
8198
+      const unsigned short **i = &f[0];
 
8199
+      *c ^= 1;
 
8200
+      if (p.f1)
 
8201
+       {
 
8202
+         *i = 0;
 
8203
+         return b;
 
8204
+       }
 
8205
+    }
 
8206
+  return 0;
 
8207
+}
 
8208
+
 
8209
+int
 
8210
+main ()
 
8211
+{
 
8212
+  struct S o = { 1, 1 };
 
8213
+  foo (o);
 
8214
+  m = n || o.f0;
 
8215
+  if (a != 1)
 
8216
+    __builtin_abort ();
 
8217
+  e = 0;
 
8218
+  struct T p = { 1, 1 };
 
8219
+  bar (p);
 
8220
+  m |= n || p.f0;
 
8221
+  if (a != 0)
 
8222
+    __builtin_abort ();
 
8223
+  return 0;
 
8224
+}
 
8225
Index: gcc/testsuite/gcc.c-torture/execute/20131127-1.c
 
8226
===================================================================
 
8227
--- a/src/gcc/testsuite/gcc.c-torture/execute/20131127-1.c      (.../tags/gcc_4_8_2_release)
 
8228
+++ b/src/gcc/testsuite/gcc.c-torture/execute/20131127-1.c      (.../branches/gcc-4_8-branch)
 
8229
@@ -0,0 +1,34 @@
 
8230
+/* PR middle-end/59138 */
 
8231
+/* Testcase by John Regehr <regehr@cs.utah.edu> */
 
8232
+
 
8233
+extern void abort (void);
 
8234
+
 
8235
+#pragma pack(1)
 
8236
+
 
8237
+struct S0 {
 
8238
+  int f0;
 
8239
+  int f1;
 
8240
+  int f2;
 
8241
+  short f3;
 
8242
+};
 
8243
+
 
8244
+short a = 1;
 
8245
+
 
8246
+struct S0 b = { 1 }, c, d, e;
 
8247
+
 
8248
+struct S0 fn1() { return c; }
 
8249
+
 
8250
+void fn2 (void)
 
8251
+{
 
8252
+  b = fn1 ();
 
8253
+  a = 0;
 
8254
+  d = e;
 
8255
+}
 
8256
+
 
8257
+int main (void)
 
8258
+{
 
8259
+  fn2 ();
 
8260
+  if (a != 0)
 
8261
+    abort ();
 
8262
+  return 0;
 
8263
+}
 
8264
Index: gcc/testsuite/gcc.c-torture/execute/pr59358.c
 
8265
===================================================================
 
8266
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr59358.c (.../tags/gcc_4_8_2_release)
 
8267
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr59358.c (.../branches/gcc-4_8-branch)
 
8268
@@ -0,0 +1,44 @@
 
8269
+/* PR tree-optimization/59358 */
 
8270
+
 
8271
+__attribute__((noinline, noclone)) int
 
8272
+foo (int *x, int y)
 
8273
+{
 
8274
+  int z = *x;
 
8275
+  if (y > z && y <= 16)
 
8276
+    while (y > z)
 
8277
+      z *= 2;
 
8278
+  return z;
 
8279
+}
 
8280
+
 
8281
+int
 
8282
+main ()
 
8283
+{
 
8284
+  int i;
 
8285
+  for (i = 1; i < 17; i++)
 
8286
+    {
 
8287
+      int j = foo (&i, 16);
 
8288
+      int k;
 
8289
+      if (i >= 8 && i <= 15)
 
8290
+       k = 16 + (i - 8) * 2;
 
8291
+      else if (i >= 4 && i <= 7)
 
8292
+       k = 16 + (i - 4) * 4;
 
8293
+      else if (i == 3)
 
8294
+       k = 24;
 
8295
+      else
 
8296
+       k = 16;
 
8297
+      if (j != k)
 
8298
+       __builtin_abort ();
 
8299
+      j = foo (&i, 7);
 
8300
+      if (i >= 7)
 
8301
+       k = i;
 
8302
+      else if (i >= 4)
 
8303
+       k = 8 + (i - 4) * 2;
 
8304
+      else if (i == 3)
 
8305
+       k = 12;
 
8306
+      else
 
8307
+       k = 8;
 
8308
+      if (j != k)
 
8309
+       __builtin_abort ();
 
8310
+    }
 
8311
+  return 0;
 
8312
+}
 
8313
Index: gcc/testsuite/gcc.c-torture/execute/pr59014-2.c
 
8314
===================================================================
 
8315
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr59014-2.c       (.../tags/gcc_4_8_2_release)
 
8316
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr59014-2.c       (.../branches/gcc-4_8-branch)
 
8317
@@ -0,0 +1,23 @@
 
8318
+/* PR tree-optimization/59014 */
 
8319
+
 
8320
+__attribute__((noinline, noclone)) long long int
 
8321
+foo (long long int x, long long int y)
 
8322
+{
 
8323
+  if (((int) x | (int) y) != 0)
 
8324
+    return 6;
 
8325
+  return x + y;
 
8326
+}
 
8327
+
 
8328
+int
 
8329
+main ()
 
8330
+{
 
8331
+  if (sizeof (long long) == sizeof (int))
 
8332
+    return 0;
 
8333
+  int shift_half = sizeof (int) * __CHAR_BIT__ / 2;
 
8334
+  long long int x = (3LL << shift_half) << shift_half;
 
8335
+  long long int y = (5LL << shift_half) << shift_half;
 
8336
+  long long int z = foo (x, y);
 
8337
+  if (z != ((8LL << shift_half) << shift_half))
 
8338
+    __builtin_abort ();
 
8339
+  return 0;
 
8340
+}
 
8341
Index: gcc/testsuite/gcc.c-torture/execute/pr59101.c
 
8342
===================================================================
 
8343
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr59101.c (.../tags/gcc_4_8_2_release)
 
8344
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr59101.c (.../branches/gcc-4_8-branch)
 
8345
@@ -0,0 +1,15 @@
 
8346
+/* PR target/59101 */
 
8347
+
 
8348
+__attribute__((noinline, noclone)) int
 
8349
+foo (int a)
 
8350
+{
 
8351
+  return (~a & 4102790424LL) > 0 | 6;
 
8352
+}
 
8353
+
 
8354
+int
 
8355
+main ()
 
8356
+{
 
8357
+  if (foo (0) != 7)
 
8358
+    __builtin_abort ();
 
8359
+  return 0;
 
8360
+}
 
8361
Index: gcc/testsuite/gcc.c-torture/execute/pr58831.c
 
8362
===================================================================
 
8363
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr58831.c (.../tags/gcc_4_8_2_release)
 
8364
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr58831.c (.../branches/gcc-4_8-branch)
 
8365
@@ -0,0 +1,40 @@
 
8366
+#include <assert.h>
 
8367
+
 
8368
+int a, *b, c, d, f, **i, p, q, *r;
 
8369
+short o, j;
 
8370
+
 
8371
+static int __attribute__((noinline, noclone))
 
8372
+fn1 (int *p1, int **p2)
 
8373
+{
 
8374
+  int **e = &b;
 
8375
+  for (; p; p++)
 
8376
+    *p1 = 1;
 
8377
+  *e = *p2 = &d;
 
8378
+
 
8379
+  assert (r);
 
8380
+
 
8381
+  return c;
 
8382
+}
 
8383
+
 
8384
+static int ** __attribute__((noinline, noclone))
 
8385
+fn2 (void)
 
8386
+{
 
8387
+  for (f = 0; f != 42; f++)
 
8388
+    {
 
8389
+      int *g[3] = {0, 0, 0};
 
8390
+      for (o = 0; o; o--)
 
8391
+        for (; a > 1;)
 
8392
+          {
 
8393
+            int **h[1] = { &g[2] };
 
8394
+          }
 
8395
+    }
 
8396
+  return &r;
 
8397
+}
 
8398
+
 
8399
+int
 
8400
+main (void)
 
8401
+{
 
8402
+  i = fn2 ();
 
8403
+  fn1 (b, i);
 
8404
+  return 0;
 
8405
+}
 
8406
Index: gcc/testsuite/gcc.c-torture/execute/pr58726.c
 
8407
===================================================================
 
8408
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr58726.c (.../tags/gcc_4_8_2_release)
 
8409
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr58726.c (.../branches/gcc-4_8-branch)
 
8410
@@ -0,0 +1,26 @@
 
8411
+/* PR rtl-optimization/58726 */
 
8412
+
 
8413
+int a, c;
 
8414
+union { int f1; int f2 : 1; } b;
 
8415
+
 
8416
+short
 
8417
+foo (short p)
 
8418
+{
 
8419
+  return p < 0 ? p : a;
 
8420
+}
 
8421
+
 
8422
+int
 
8423
+main ()
 
8424
+{
 
8425
+  if (sizeof (short) * __CHAR_BIT__ != 16
 
8426
+      || sizeof (int) * __CHAR_BIT__ != 32)
 
8427
+    return 0;
 
8428
+  b.f1 = 56374;
 
8429
+  unsigned short d;
 
8430
+  int e = b.f2;
 
8431
+  d = e == 0 ? b.f1 : 0;
 
8432
+  c = foo (d);
 
8433
+  if (c != (short) 56374)
 
8434
+    __builtin_abort ();
 
8435
+  return 0;
 
8436
+}
 
8437
Index: gcc/testsuite/gcc.c-torture/execute/pr59014.c
 
8438
===================================================================
 
8439
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr59014.c (.../tags/gcc_4_8_2_release)
 
8440
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr59014.c (.../branches/gcc-4_8-branch)
 
8441
@@ -0,0 +1,25 @@
 
8442
+/* PR tree-optimization/59014 */
 
8443
+
 
8444
+int a = 2, b, c, d;
 
8445
+
 
8446
+int
 
8447
+foo ()
 
8448
+{
 
8449
+  for (;; c++)
 
8450
+    if ((b > 0) | (a & 1))
 
8451
+      ;
 
8452
+    else
 
8453
+      {
 
8454
+       d = a;
 
8455
+       return 0;
 
8456
+      }
 
8457
+}
 
8458
+
 
8459
+int
 
8460
+main ()
 
8461
+{
 
8462
+  foo ();
 
8463
+  if (d != 2)
 
8464
+    __builtin_abort ();
 
8465
+  return 0;
 
8466
+}
 
8467
Index: gcc/testsuite/gcc.c-torture/execute/pr59388.c
 
8468
===================================================================
 
8469
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr59388.c (.../tags/gcc_4_8_2_release)
 
8470
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr59388.c (.../branches/gcc-4_8-branch)
 
8471
@@ -0,0 +1,11 @@
 
8472
+/* PR tree-optimization/59388 */
 
8473
+
 
8474
+int a;
 
8475
+struct S { unsigned int f:1; } b;
 
8476
+
 
8477
+int
 
8478
+main ()
 
8479
+{
 
8480
+  a = (0 < b.f) | b.f;
 
8481
+  return a;
 
8482
+}
 
8483
Index: gcc/testsuite/gcc.c-torture/compile/pr58970-1.c
 
8484
===================================================================
 
8485
--- a/src/gcc/testsuite/gcc.c-torture/compile/pr58970-1.c       (.../tags/gcc_4_8_2_release)
 
8486
+++ b/src/gcc/testsuite/gcc.c-torture/compile/pr58970-1.c       (.../branches/gcc-4_8-branch)
 
8487
@@ -0,0 +1,11 @@
 
8488
+/* PR middle-end/58970 */
 
8489
+
 
8490
+struct T { int b : 1; };
 
8491
+struct S { struct T t[1]; };
 
8492
+
 
8493
+void
 
8494
+foo (int x, struct S *s)
 
8495
+{
 
8496
+  if (x == -1)
 
8497
+    s->t[x].b = 0;
 
8498
+}
 
8499
Index: gcc/testsuite/gcc.c-torture/compile/pr58997.c
 
8500
===================================================================
 
8501
--- a/src/gcc/testsuite/gcc.c-torture/compile/pr58997.c (.../tags/gcc_4_8_2_release)
 
8502
+++ b/src/gcc/testsuite/gcc.c-torture/compile/pr58997.c (.../branches/gcc-4_8-branch)
 
8503
@@ -0,0 +1,19 @@
 
8504
+/* PR rtl-optimization/58997 */
 
8505
+
 
8506
+int a, b, c, e;
 
8507
+short d;
 
8508
+char h;
 
8509
+
 
8510
+void
 
8511
+foo ()
 
8512
+{
 
8513
+  while (b)
 
8514
+    {
 
8515
+      d = a ? c : 1 % a;
 
8516
+      c = d;
 
8517
+      h = d;
 
8518
+      if (!h)
 
8519
+       while (e)
 
8520
+         ;
 
8521
+    }
 
8522
+}
 
8523
Index: gcc/testsuite/gcc.c-torture/compile/pr58970-2.c
 
8524
===================================================================
 
8525
--- a/src/gcc/testsuite/gcc.c-torture/compile/pr58970-2.c       (.../tags/gcc_4_8_2_release)
 
8526
+++ b/src/gcc/testsuite/gcc.c-torture/compile/pr58970-2.c       (.../branches/gcc-4_8-branch)
 
8527
@@ -0,0 +1,11 @@
 
8528
+/* PR middle-end/58970 */
 
8529
+
 
8530
+struct T { char a : 8; char b : 1; };
 
8531
+struct S { char x; struct T t[1]; };
 
8532
+
 
8533
+void
 
8534
+foo (int x, struct S *s)
 
8535
+{
 
8536
+  if (x == -1)
 
8537
+    s->t[x].b = 0;
 
8538
+}
 
8539
Index: gcc/testsuite/gcc.dg/pr57518.c
 
8540
===================================================================
 
8541
--- a/src/gcc/testsuite/gcc.dg/pr57518.c        (.../tags/gcc_4_8_2_release)
 
8542
+++ b/src/gcc/testsuite/gcc.dg/pr57518.c        (.../branches/gcc-4_8-branch)
 
8543
@@ -1,8 +1,8 @@
 
8544
-/* PR rtl-optimization/57130 */
 
8545
+/* PR rtl-optimization/57518 */
 
8546
 
 
8547
 /* { dg-do compile } */
 
8548
 /* { dg-options "-O2 -fdump-rtl-ira" } */
 
8549
-/* { dg-final { scan-rtl-dump-not "REG_EQUIV.*mem.*\"ip\"" "ira" } } */
 
8550
+/* { dg-final { scan-rtl-dump-not "REG_EQUIV\[^\n\]*mem\[^\n\]*\"ip\".*subreg" "ira" } } */
 
8551
 
 
8552
 char ip[10];
 
8553
 int total;
 
8554
Index: gcc/testsuite/gcc.dg/20050922-1.c
 
8555
===================================================================
 
8556
--- a/src/gcc/testsuite/gcc.dg/20050922-1.c     (.../tags/gcc_4_8_2_release)
 
8557
+++ b/src/gcc/testsuite/gcc.dg/20050922-1.c     (.../branches/gcc-4_8-branch)
 
8558
@@ -4,7 +4,7 @@
 
8559
 /* { dg-do run } */
 
8560
 /* { dg-options "-O1 -std=c99" } */
 
8561
 
 
8562
-#include <stdlib.h>
 
8563
+extern void abort (void);
 
8564
 
 
8565
 #if __INT_MAX__ == 2147483647
 
8566
 typedef unsigned int uint32_t;
 
8567
Index: gcc/testsuite/gcc.dg/atomic-store-6.c
 
8568
===================================================================
 
8569
--- a/src/gcc/testsuite/gcc.dg/atomic-store-6.c (.../tags/gcc_4_8_2_release)
 
8570
+++ b/src/gcc/testsuite/gcc.dg/atomic-store-6.c (.../branches/gcc-4_8-branch)
 
8571
@@ -0,0 +1,13 @@
 
8572
+/* { dg-do run } */
 
8573
+/* { dg-require-effective-target sync_int_128_runtime } */
 
8574
+/* { dg-options "-mcx16" { target { i?86-*-* x86_64-*-* } } } */
 
8575
+
 
8576
+__int128_t i;
 
8577
+
 
8578
+int main()
 
8579
+{
 
8580
+  __atomic_store_16(&i, -1, 0);
 
8581
+  if (i != -1)
 
8582
+    __builtin_abort();
 
8583
+  return 0;
 
8584
+}
 
8585
Index: gcc/testsuite/gcc.dg/pr59351.c
 
8586
===================================================================
 
8587
--- a/src/gcc/testsuite/gcc.dg/pr59351.c        (.../tags/gcc_4_8_2_release)
 
8588
+++ b/src/gcc/testsuite/gcc.dg/pr59351.c        (.../branches/gcc-4_8-branch)
 
8589
@@ -0,0 +1,8 @@
 
8590
+/* { dg-do compile } */
 
8591
+/* { dg-options "-std=c99 -Wpedantic" } */
 
8592
+
 
8593
+unsigned int
 
8594
+foo (void)
 
8595
+{
 
8596
+  return sizeof ((int[]) {}); /* { dg-warning "ISO C forbids empty initializer braces" } */
 
8597
+}
 
8598
Index: gcc/testsuite/gcc.dg/20050922-2.c
 
8599
===================================================================
 
8600
--- a/src/gcc/testsuite/gcc.dg/20050922-2.c     (.../tags/gcc_4_8_2_release)
 
8601
+++ b/src/gcc/testsuite/gcc.dg/20050922-2.c     (.../branches/gcc-4_8-branch)
 
8602
@@ -4,7 +4,8 @@
 
8603
 /* { dg-do run } */
 
8604
 /* { dg-options "-O1 -std=c99" } */
 
8605
 
 
8606
-#include <stdlib.h>
 
8607
+extern void abort (void);
 
8608
+extern void exit (int);
 
8609
 
 
8610
 #if __INT_MAX__ == 2147483647
 
8611
 typedef unsigned int uint32_t;
 
8612
Index: gcc/testsuite/gcc.dg/pr59011.c
 
8613
===================================================================
 
8614
--- a/src/gcc/testsuite/gcc.dg/pr59011.c        (.../tags/gcc_4_8_2_release)
 
8615
+++ b/src/gcc/testsuite/gcc.dg/pr59011.c        (.../branches/gcc-4_8-branch)
 
8616
@@ -0,0 +1,22 @@
 
8617
+/* PR middle-end/59011 */
 
8618
+/* { dg-do compile } */
 
8619
+/* { dg-options "-std=gnu99" } */
 
8620
+
 
8621
+void
 
8622
+foo (int m)
 
8623
+{
 
8624
+  int a[m];
 
8625
+  void
 
8626
+  bar (void)
 
8627
+  {
 
8628
+    {
 
8629
+      int
 
8630
+      baz (void)
 
8631
+      {
 
8632
+       return a[0];
 
8633
+      }
 
8634
+    }
 
8635
+    a[0] = 42;
 
8636
+  }
 
8637
+  bar ();
 
8638
+}
 
8639
Index: gcc/testsuite/gcc.dg/pr58805.c
 
8640
===================================================================
 
8641
--- a/src/gcc/testsuite/gcc.dg/pr58805.c        (.../tags/gcc_4_8_2_release)
 
8642
+++ b/src/gcc/testsuite/gcc.dg/pr58805.c        (.../branches/gcc-4_8-branch)
 
8643
@@ -0,0 +1,24 @@
 
8644
+/* { dg-do compile } */
 
8645
+/* { dg-options "-O2 -ftree-tail-merge -fdump-tree-pre" } */
 
8646
+
 
8647
+/* Type that matches the 'p' constraint.  */
 
8648
+#define TYPE void *
 
8649
+
 
8650
+static inline
 
8651
+void bar (TYPE *r)
 
8652
+{
 
8653
+  TYPE t;
 
8654
+  __asm__ ("" : "=&p" (t), "=p" (*r));
 
8655
+}
 
8656
+
 
8657
+void
 
8658
+foo (int n, TYPE *x, TYPE *y)
 
8659
+{
 
8660
+  if (n == 0)
 
8661
+    bar (x);
 
8662
+  else
 
8663
+    bar (y);
 
8664
+}
 
8665
+
 
8666
+/* { dg-final { scan-tree-dump-times "__asm__" 2 "pre"} } */
 
8667
+/* { dg-final { cleanup-tree-dump "pre" } } */
 
8668
Index: gcc/testsuite/gcc.dg/torture/pr59047.c
 
8669
===================================================================
 
8670
--- a/src/gcc/testsuite/gcc.dg/torture/pr59047.c        (.../tags/gcc_4_8_2_release)
 
8671
+++ b/src/gcc/testsuite/gcc.dg/torture/pr59047.c        (.../branches/gcc-4_8-branch)
 
8672
@@ -0,0 +1,39 @@
 
8673
+/* { dg-do run } */
 
8674
+
 
8675
+extern void abort (void);
 
8676
+
 
8677
+struct
 
8678
+{
 
8679
+  int f0;
 
8680
+  int f1:1;
 
8681
+  int f2:2;
 
8682
+} a = {0, 0, 1};
 
8683
+
 
8684
+int b, c, *d, e, f;
 
8685
+
 
8686
+int
 
8687
+fn1 ()
 
8688
+{
 
8689
+  for (; b < 1; ++b)
 
8690
+    {
 
8691
+      for (e = 0; e < 1; e = 1)
 
8692
+       {
 
8693
+         int **g = &d;
 
8694
+         *g = &c;
 
8695
+       } 
 
8696
+      *d = 0;
 
8697
+      f = a.f1;
 
8698
+      if (f)
 
8699
+       return 0;
 
8700
+    }
 
8701
+  return 0;
 
8702
+}
 
8703
+
 
8704
+int
 
8705
+main ()
 
8706
+{
 
8707
+  fn1 ();
 
8708
+  if (b != 1)
 
8709
+    abort ();
 
8710
+  return 0;
 
8711
+}
 
8712
Index: gcc/testsuite/gcc.dg/torture/pr58956.c
 
8713
===================================================================
 
8714
--- a/src/gcc/testsuite/gcc.dg/torture/pr58956.c        (.../tags/gcc_4_8_2_release)
 
8715
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58956.c        (.../branches/gcc-4_8-branch)
 
8716
@@ -0,0 +1,30 @@
 
8717
+/* { dg-do run } */
 
8718
+
 
8719
+extern void abort (void);
 
8720
+
 
8721
+struct S
 
8722
+{
 
8723
+  int f0;
 
8724
+} a = {1}, b, g, *c = &b, **f = &c;
 
8725
+
 
8726
+int *d, **e = &d, h;
 
8727
+
 
8728
+struct S
 
8729
+foo ()
 
8730
+{
 
8731
+  *e = &h;
 
8732
+  if (!d) 
 
8733
+    __builtin_unreachable ();
 
8734
+  *f = &g;
 
8735
+  return a;
 
8736
+}
 
8737
+
 
8738
+int
 
8739
+main ()
 
8740
+{
 
8741
+  struct S *i = c;
 
8742
+  *i = foo ();
 
8743
+  if (b.f0 != 1)
 
8744
+    abort ();
 
8745
+  return 0;
 
8746
+}
 
8747
Index: gcc/testsuite/gcc.dg/torture/pr57517.c
 
8748
===================================================================
 
8749
--- a/src/gcc/testsuite/gcc.dg/torture/pr57517.c        (.../tags/gcc_4_8_2_release)
 
8750
+++ b/src/gcc/testsuite/gcc.dg/torture/pr57517.c        (.../branches/gcc-4_8-branch)
 
8751
@@ -0,0 +1,16 @@
 
8752
+/* { dg-do compile } */
 
8753
+
 
8754
+int x[1024], y[1024], z[1024], w[1024];
 
8755
+void foo (void)
 
8756
+{
 
8757
+  int i;
 
8758
+  for (i = 1; i < 1024; ++i)
 
8759
+    {
 
8760
+      int a = x[i];
 
8761
+      int b = y[i];
 
8762
+      int c = x[i-1];
 
8763
+      int d = y[i-1];
 
8764
+      if (w[i])
 
8765
+       z[i] = (a + b) + (c + d);
 
8766
+    }
 
8767
+}
 
8768
Index: gcc/testsuite/gcc.dg/torture/pr59164.c
 
8769
===================================================================
 
8770
--- a/src/gcc/testsuite/gcc.dg/torture/pr59164.c        (.../tags/gcc_4_8_2_release)
 
8771
+++ b/src/gcc/testsuite/gcc.dg/torture/pr59164.c        (.../branches/gcc-4_8-branch)
 
8772
@@ -0,0 +1,21 @@
 
8773
+/* { dg-do compile } */
 
8774
+
 
8775
+int a, d, e;
 
8776
+long b[10];
 
8777
+int c[10][8];
 
8778
+
 
8779
+int fn1(p1)
 
8780
+{ 
 
8781
+  return 1 >> p1; 
 
8782
+}
 
8783
+
 
8784
+void fn2(void)
 
8785
+{
 
8786
+  int f;
 
8787
+  for (a=1; a <= 4; a++)
 
8788
+    {
 
8789
+      f = fn1(0 < c[a][0]);
 
8790
+      if (f || d)
 
8791
+       e = b[a] = 1;
 
8792
+    }
 
8793
+}
 
8794
Index: gcc/testsuite/gcc.dg/torture/pr58779.c
 
8795
===================================================================
 
8796
--- a/src/gcc/testsuite/gcc.dg/torture/pr58779.c        (.../tags/gcc_4_8_2_release)
 
8797
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58779.c        (.../branches/gcc-4_8-branch)
 
8798
@@ -0,0 +1,12 @@
 
8799
+/* { dg-do run } */
 
8800
+
 
8801
+int a, c;
 
8802
+
 
8803
+int main ()
 
8804
+{
 
8805
+  int e = -1;
 
8806
+  short d = (c <= 0) ^ e;
 
8807
+  if ((unsigned int) a - (a || d) <= (unsigned int) a)
 
8808
+    __builtin_abort ();
 
8809
+  return 0;
 
8810
+}
 
8811
Index: gcc/testsuite/gcc.dg/torture/pr59139.c
 
8812
===================================================================
 
8813
--- a/src/gcc/testsuite/gcc.dg/torture/pr59139.c        (.../tags/gcc_4_8_2_release)
 
8814
+++ b/src/gcc/testsuite/gcc.dg/torture/pr59139.c        (.../branches/gcc-4_8-branch)
 
8815
@@ -0,0 +1,20 @@
 
8816
+/* { dg-do compile } */
 
8817
+
 
8818
+int a, b, c, d, e;
 
8819
+int fn1(p1, p2) { return p2 == 0 ? p1 : 1 % p2; }
 
8820
+
 
8821
+void fn2()
 
8822
+{
 
8823
+  c = 0;
 
8824
+  for (;; c = (unsigned short)c)
 
8825
+    {
 
8826
+      b = 2;
 
8827
+      for (; b; b = a)
 
8828
+       {
 
8829
+         e = fn1(2, c && 1);
 
8830
+         d = c == 0 ? e : c;
 
8831
+         if (d)
 
8832
+           return;
 
8833
+       }
 
8834
+    }
 
8835
+}
 
8836
Index: gcc/testsuite/gcc.dg/torture/pr58079.c
 
8837
===================================================================
 
8838
--- a/src/gcc/testsuite/gcc.dg/torture/pr58079.c        (.../tags/gcc_4_8_2_release)
 
8839
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58079.c        (.../branches/gcc-4_8-branch)
 
8840
@@ -0,0 +1,107 @@
 
8841
+/* { dg-options "-mlong-calls" { target mips*-*-* } } */
 
8842
+
 
8843
+typedef unsigned char u8;
 
8844
+typedef unsigned short u16;
 
8845
+typedef unsigned int __kernel_size_t;
 
8846
+typedef __kernel_size_t size_t;
 
8847
+struct list_head {
 
8848
+ struct list_head *next;
 
8849
+};
 
8850
+
 
8851
+struct dmx_ts_feed {
 
8852
+ int is_filtering;
 
8853
+};
 
8854
+struct dmx_section_feed {
 
8855
+ u16 secbufp;
 
8856
+ u16 seclen;
 
8857
+ u16 tsfeedp;
 
8858
+};
 
8859
+
 
8860
+typedef int (*dmx_ts_cb) (
 
8861
+       const u8 * buffer1,
 
8862
+      size_t buffer1_length,
 
8863
+      const u8 * buffer2,
 
8864
+      size_t buffer2_length
 
8865
+);
 
8866
+
 
8867
+struct dvb_demux_feed {
 
8868
+ union {
 
8869
+  struct dmx_ts_feed ts;
 
8870
+  struct dmx_section_feed sec;
 
8871
+ } feed;
 
8872
+ union {
 
8873
+  dmx_ts_cb ts;
 
8874
+ } cb;
 
8875
+ int type;
 
8876
+ u16 pid;
 
8877
+ int ts_type;
 
8878
+ struct list_head list_head;
 
8879
+};
 
8880
+
 
8881
+struct dvb_demux {
 
8882
+ int (*stop_feed)(struct dvb_demux_feed *feed);
 
8883
+ struct list_head feed_list;
 
8884
+};
 
8885
+
 
8886
+
 
8887
+static
 
8888
+inline
 
8889
+__attribute__((always_inline))
 
8890
+u8
 
8891
+payload(const u8 *tsp)
 
8892
+{
 
8893
+ if (tsp[3] & 0x20) {
 
8894
+   return 184 - 1 - tsp[4];
 
8895
+ }
 
8896
+ return 184;
 
8897
+}
 
8898
+
 
8899
+static
 
8900
+inline
 
8901
+__attribute__((always_inline))
 
8902
+int
 
8903
+dvb_dmx_swfilter_payload(struct dvb_demux_feed *feed, const u8 *buf)
 
8904
+{
 
8905
+ int count = payload(buf);
 
8906
+ int p;
 
8907
+ if (count == 0)
 
8908
+  return -1;
 
8909
+ return feed->cb.ts(&buf[p], count, ((void *)0), 0);
 
8910
+}
 
8911
+
 
8912
+static
 
8913
+inline
 
8914
+__attribute__((always_inline))
 
8915
+void
 
8916
+dvb_dmx_swfilter_packet_type(struct dvb_demux_feed *feed, const u8 *buf)
 
8917
+{
 
8918
+ switch (feed->type) {
 
8919
+ case 0:
 
8920
+  if (feed->ts_type & 1) {
 
8921
+    dvb_dmx_swfilter_payload(feed, buf);
 
8922
+  }
 
8923
+  if (dvb_dmx_swfilter_section_packet(feed, buf) < 0)
 
8924
+   feed->feed.sec.seclen = feed->feed.sec.secbufp = 0;
 
8925
+ }
 
8926
+}
 
8927
+
 
8928
+static
 
8929
+void
 
8930
+dvb_dmx_swfilter_packet(struct dvb_demux *demux, const u8 *buf)
 
8931
+{
 
8932
+ struct dvb_demux_feed *feed;
 
8933
+ int dvr_done = 0;
 
8934
+
 
8935
+ 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) );})) {
 
8936
+  if (((((feed)->type == 0) && ((feed)->feed.ts.is_filtering) && (((feed)->ts_type & (1 | 8)) == 1))) && (dvr_done++))
 
8937
+   dvb_dmx_swfilter_packet_type(feed, buf);
 
8938
+  else if (feed->pid == 0x2000)
 
8939
+   feed->cb.ts(buf, 188, ((void *)0), 0);
 
8940
+ }
 
8941
+}
 
8942
+void dvb_dmx_swfilter_packets(struct dvb_demux *demux, const u8 *buf, size_t count)
 
8943
+{
 
8944
+ while (count--) {
 
8945
+   dvb_dmx_swfilter_packet(demux, buf);
 
8946
+ }
 
8947
+}
 
8948
Index: gcc/testsuite/gcc.dg/torture/pr58830.c
 
8949
===================================================================
 
8950
--- a/src/gcc/testsuite/gcc.dg/torture/pr58830.c        (.../tags/gcc_4_8_2_release)
 
8951
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58830.c        (.../branches/gcc-4_8-branch)
 
8952
@@ -0,0 +1,42 @@
 
8953
+/* { dg-do run } */
 
8954
+/* { dg-additional-options "-ftree-pre -ftree-partial-pre" } */
 
8955
+
 
8956
+extern void abort (void);
 
8957
+
 
8958
+int b, c, d, f, g, h, i, j[6], *l = &b, *m, n, *o, r; 
 
8959
+char k;
 
8960
+
 
8961
+static int
 
8962
+foo ()
 
8963
+{
 
8964
+  char *p = &k;
 
8965
+
 
8966
+  for (; d; d++)
 
8967
+    if (i)
 
8968
+      h = 0;
 
8969
+    else
 
8970
+      h = c || (r = 0);
 
8971
+
 
8972
+  for (f = 0; f < 2; f++)
 
8973
+    {
 
8974
+      unsigned int q;
 
8975
+      *l = 0;
 
8976
+      if (n)
 
8977
+       *m = g;
 
8978
+      if (g)
 
8979
+       o = 0;
 
8980
+      for (q = -8; q >= 5; q++)
 
8981
+       (*p)--;
 
8982
+    }
 
8983
+
 
8984
+  return 0;
 
8985
+}
 
8986
+
 
8987
+int
 
8988
+main ()
 
8989
+{
 
8990
+  foo ();
 
8991
+  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)
 
8992
+    abort ();
 
8993
+  return 0;
 
8994
+}
 
8995
Index: gcc/testsuite/gcc.dg/torture/pr58143-1.c
 
8996
===================================================================
 
8997
--- a/src/gcc/testsuite/gcc.dg/torture/pr58143-1.c      (.../tags/gcc_4_8_2_release)
 
8998
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58143-1.c      (.../branches/gcc-4_8-branch)
 
8999
@@ -0,0 +1,51 @@
 
9000
+/* { dg-do run } */
 
9001
+/* { dg-additional-options "-fstrict-overflow" } */
 
9002
+
 
9003
+extern void abort (void);
 
9004
+
 
9005
+int a, b, c, d, e, f, g, h = 1, i;
 
9006
+
 
9007
+int foo (int p)
 
9008
+{
 
9009
+  return p < 0 && a < - __INT_MAX__ - 1 - p ? 0 : 1;
 
9010
+}
 
9011
+
 
9012
+int *bar ()
 
9013
+{
 
9014
+  int j; 
 
9015
+  i = h ? 0 : 1 % h;
 
9016
+  for (j = 0; j < 1; j++)
 
9017
+    for (d = 0; d; d++)
 
9018
+      for (e = 1; e;)
 
9019
+       return 0;
 
9020
+  return 0;
 
9021
+}
 
9022
+
 
9023
+int baz ()
 
9024
+{
 
9025
+  for (; b >= 0; b--)
 
9026
+    for (c = 1; c >= 0; c--)
 
9027
+      {
 
9028
+       int *k = &c;
 
9029
+       for (;;)
 
9030
+         {
 
9031
+           for (f = 0; f < 1; f++)
 
9032
+             {
 
9033
+               g = foo (*k);
 
9034
+               bar ();
 
9035
+             }
 
9036
+           if (*k)
 
9037
+             break;
 
9038
+           return 0;
 
9039
+         }
 
9040
+      }
 
9041
+  return 0;
 
9042
+}
 
9043
+
 
9044
+int main ()
 
9045
+{
 
9046
+  baz ();
 
9047
+  if (b != 0)
 
9048
+    abort ();
 
9049
+  return 0;
 
9050
+}
 
9051
Index: gcc/testsuite/gcc.dg/torture/pr58143-2.c
 
9052
===================================================================
 
9053
--- a/src/gcc/testsuite/gcc.dg/torture/pr58143-2.c      (.../tags/gcc_4_8_2_release)
 
9054
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58143-2.c      (.../branches/gcc-4_8-branch)
 
9055
@@ -0,0 +1,34 @@
 
9056
+/* { dg-do run } */
 
9057
+/* { dg-additional-options "-fstrict-overflow" } */
 
9058
+
 
9059
+int a, b, d, e, f, *g, h, i;
 
9060
+volatile int c;
 
9061
+
 
9062
+char foo (unsigned char p)
 
9063
+{
 
9064
+  return p + 1;
 
9065
+}
 
9066
+
 
9067
+int bar () 
 
9068
+{
 
9069
+  for (h = 0; h < 3; h = foo (h))
 
9070
+    {
 
9071
+      c;
 
9072
+      for (f = 0; f < 1; f++)
 
9073
+       {
 
9074
+         i = a && 0 < -__INT_MAX__ - h ? 0 : 1;
 
9075
+         if (e)
 
9076
+           for (; d;)
 
9077
+             b = 0;
 
9078
+         else
 
9079
+           g = 0;
 
9080
+       }
 
9081
+    }
 
9082
+  return 0;
 
9083
+}
 
9084
+
 
9085
+int main ()
 
9086
+{
 
9087
+  bar ();
 
9088
+  return 0;
 
9089
+}
 
9090
Index: gcc/testsuite/gcc.dg/torture/pr58941.c
 
9091
===================================================================
 
9092
--- a/src/gcc/testsuite/gcc.dg/torture/pr58941.c        (.../tags/gcc_4_8_2_release)
 
9093
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58941.c        (.../branches/gcc-4_8-branch)
 
9094
@@ -0,0 +1,33 @@
 
9095
+/* { dg-do run } */
 
9096
+
 
9097
+extern void abort (void);
 
9098
+
 
9099
+typedef struct {
 
9100
+    int msgLength;
 
9101
+    unsigned char data[1000];
 
9102
+} SMsg;
 
9103
+
 
9104
+typedef struct {
 
9105
+    int dummy;
 
9106
+    int d[0];
 
9107
+} SData;
 
9108
+
 
9109
+int condition = 3;
 
9110
+
 
9111
+int main()
 
9112
+{
 
9113
+  SMsg msg;
 
9114
+  SData *pData = (SData*)(msg.data);
 
9115
+  unsigned int i = 0;
 
9116
+  for (i = 0; i < 1; i++)
 
9117
+    {
 
9118
+      pData->d[i] = 0;
 
9119
+      if(condition & 1)
 
9120
+       pData->d[i] |= 0x55;
 
9121
+      if(condition & 2)
 
9122
+       pData->d[i] |= 0xaa;
 
9123
+    }
 
9124
+  if (pData->d[0] != 0xff)
 
9125
+    abort ();
 
9126
+  return 0;
 
9127
+}
 
9128
Index: gcc/testsuite/gcc.dg/torture/pr57488.c
 
9129
===================================================================
 
9130
--- a/src/gcc/testsuite/gcc.dg/torture/pr57488.c        (.../tags/gcc_4_8_2_release)
 
9131
+++ b/src/gcc/testsuite/gcc.dg/torture/pr57488.c        (.../branches/gcc-4_8-branch)
 
9132
@@ -0,0 +1,58 @@
 
9133
+/* { dg-do run } */
 
9134
+
 
9135
+extern void abort (void);
 
9136
+
 
9137
+int i, j, *pj = &j, **ppj = &pj;
 
9138
+int x, *px = &x;
 
9139
+
 
9140
+short s, *ps = &s, k;
 
9141
+
 
9142
+unsigned short u, *pu = &u, **ppu = &pu;
 
9143
+
 
9144
+char c, *pc = &c;
 
9145
+
 
9146
+unsigned char v = 48;
 
9147
+
 
9148
+static int
 
9149
+bar (int p)
 
9150
+{
 
9151
+  p = k;
 
9152
+  *px = **ppu = i;
 
9153
+  *ppj = &p;
 
9154
+  if (**ppj)
 
9155
+    *pj = p;
 
9156
+  return p;
 
9157
+}
 
9158
+
 
9159
+void __attribute__((noinline))
 
9160
+foo ()
 
9161
+{
 
9162
+  for (; i <= 3; i++)
 
9163
+    for (; j; j--);
 
9164
+
 
9165
+  u ^= bar (*pj);
 
9166
+
 
9167
+  for (k = 1; k >= 0; k--)
 
9168
+    {
 
9169
+      int l;
 
9170
+      bar (0);
 
9171
+      for (l = 1; l < 5; l++)
 
9172
+       {
 
9173
+         int m;
 
9174
+         for (m = 6; m; m--)
 
9175
+           {
 
9176
+             v--;
 
9177
+             *ps = *pc;
 
9178
+           }
 
9179
+       }
 
9180
+    }
 
9181
+}
 
9182
+
 
9183
+int
 
9184
+main ()
 
9185
+{
 
9186
+  foo ();
 
9187
+  if (v != 0)
 
9188
+    abort ();
 
9189
+  return 0;
 
9190
+}
 
9191
Index: gcc/testsuite/gcc.dg/torture/pr58143-3.c
 
9192
===================================================================
 
9193
--- a/src/gcc/testsuite/gcc.dg/torture/pr58143-3.c      (.../tags/gcc_4_8_2_release)
 
9194
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58143-3.c      (.../branches/gcc-4_8-branch)
 
9195
@@ -0,0 +1,18 @@
 
9196
+/* { dg-do run } */
 
9197
+/* { dg-additional-options "-fstrict-overflow" } */
 
9198
+
 
9199
+int a, b, c, d, e;
 
9200
+
 
9201
+int
 
9202
+main ()
 
9203
+{
 
9204
+  for (b = 4; b > -30; b--)
 
9205
+    for (; c;)
 
9206
+      for (;;)
 
9207
+       {
 
9208
+         e = a > __INT_MAX__ - b;
 
9209
+         if (d)
 
9210
+           break;
 
9211
+       }
 
9212
+  return 0;
 
9213
+}
 
9214
Index: gcc/testsuite/gcc.dg/torture/pr59288.c
 
9215
===================================================================
 
9216
--- a/src/gcc/testsuite/gcc.dg/torture/pr59288.c        (.../tags/gcc_4_8_2_release)
 
9217
+++ b/src/gcc/testsuite/gcc.dg/torture/pr59288.c        (.../branches/gcc-4_8-branch)
 
9218
@@ -0,0 +1,9 @@
 
9219
+/* { dg-do compile } */
 
9220
+
 
9221
+void
 
9222
+baz (int *d)
 
9223
+{
 
9224
+  long int i, j, k;
 
9225
+  for (i = 0, j = 0, k = 0; i < 512; i = (int) i + 1, j = (int) j + 1, k = (int) k + 3)
 
9226
+    d[i] = j ^ (i * 3) ^ (2 * k + 2);
 
9227
+}
 
9228
Index: gcc/testsuite/gcc.dg/torture/pr59330.c
 
9229
===================================================================
 
9230
--- a/src/gcc/testsuite/gcc.dg/torture/pr59330.c        (.../tags/gcc_4_8_2_release)
 
9231
+++ b/src/gcc/testsuite/gcc.dg/torture/pr59330.c        (.../branches/gcc-4_8-branch)
 
9232
@@ -0,0 +1,17 @@
 
9233
+/* { dg-do run } */
 
9234
+
 
9235
+void free(void *ptr)
 
9236
+{
 
9237
+}
 
9238
+
 
9239
+void *foo(void)
 
9240
+{
 
9241
+  return 0;
 
9242
+}
 
9243
+
 
9244
+int main(void)
 
9245
+{
 
9246
+  void *p = foo();
 
9247
+  free(p);
 
9248
+  return 0;
 
9249
+}
 
9250
Index: gcc/testsuite/gcc.dg/tree-ssa/predcom-6.c
 
9251
===================================================================
 
9252
--- a/src/gcc/testsuite/gcc.dg/tree-ssa/predcom-6.c     (.../tags/gcc_4_8_2_release)
 
9253
+++ b/src/gcc/testsuite/gcc.dg/tree-ssa/predcom-6.c     (.../branches/gcc-4_8-branch)
 
9254
@@ -0,0 +1,14 @@
 
9255
+/* { dg-do run } */
 
9256
+/* { dg-options "-O3" } */
 
9257
+
 
9258
+int a, c, e[5][2]; 
 
9259
+unsigned int d;
 
9260
+
 
9261
+int
 
9262
+main ()
 
9263
+{
 
9264
+  for (d = 0; d < 2; d++)
 
9265
+    if (a ? 0 : e[c + 3][d] & e[c + 4][d])
 
9266
+      break;
 
9267
+  return 0;
 
9268
+}
 
9269
Index: gcc/testsuite/gcc.dg/tree-ssa/predcom-7.c
 
9270
===================================================================
 
9271
--- a/src/gcc/testsuite/gcc.dg/tree-ssa/predcom-7.c     (.../tags/gcc_4_8_2_release)
 
9272
+++ b/src/gcc/testsuite/gcc.dg/tree-ssa/predcom-7.c     (.../branches/gcc-4_8-branch)
 
9273
@@ -0,0 +1,18 @@
 
9274
+/* { dg-do run } */
 
9275
+/* { dg-options "-O3 -fdump-tree-pcom-details" } */
 
9276
+
 
9277
+int b, f, d[5][2];
 
9278
+unsigned int c;
 
9279
+
 
9280
+int
 
9281
+main ()
 
9282
+{
 
9283
+  for (c = 0; c < 2; c++)
 
9284
+    if (d[b + 3][c] & d[b + 4][c])
 
9285
+      if (f)
 
9286
+       break;
 
9287
+  return 0;
 
9288
+}
 
9289
+
 
9290
+/* { dg-final { scan-tree-dump "Executing predictive commoning" "pcom" } } */
 
9291
+/* { dg-final { cleanup-tree-dump "pcom" } } */
 
9292
Index: gcc/testsuite/ChangeLog
 
9293
===================================================================
 
9294
--- a/src/gcc/testsuite/ChangeLog       (.../tags/gcc_4_8_2_release)
 
9295
+++ b/src/gcc/testsuite/ChangeLog       (.../branches/gcc-4_8-branch)
 
9296
@@ -1,3 +1,422 @@
 
9297
+2013-12-12  Jakub Jelinek  <jakub@redhat.com>
 
9298
+
 
9299
+       PR middle-end/59470
 
9300
+       * g++.dg/opt/pr59470.C: New test.
 
9301
+
 
9302
+       PR libgomp/59467
 
9303
+       * gfortran.dg/gomp/pr59467.f90: New test.
 
9304
+       * c-c++-common/gomp/pr59467.c: New test.
 
9305
+
 
9306
+2013-12-12  Uros Bizjak  <ubizjak@gmail.com>
 
9307
+
 
9308
+       Backport from mainline
 
9309
+       2013-12-12  Ryan Mansfield  <rmansfield@qnx.com>
 
9310
+
 
9311
+       PR testsuite/59442
 
9312
+       * gcc.target/i386/sse2-movapd-1.c: Fix alignment attributes.
 
9313
+       * gcc.target/i386/sse2-movapd-2.c: Likewise.
 
9314
+       * gcc.target/i386/avx-vmovapd-256-1.c: Likewise.
 
9315
+       * gcc.target/i386/avx-vmovapd-256-2.c: Likewise.
 
9316
+
 
9317
+2013-12-08  Uros Bizjak  <ubizjak@gmail.com>
 
9318
+
 
9319
+       Backport from mainline
 
9320
+       2013-12-06  Uros Bizjak  <ubizjak@gmail.com>
 
9321
+
 
9322
+       PR target/59405
 
9323
+       * gcc.target/i386/pr59405.c: New test.
 
9324
+
 
9325
+2013-12-06  Jakub Jelinek  <jakub@redhat.com>
 
9326
+
 
9327
+       PR tree-optimization/59388
 
9328
+       * gcc.c-torture/execute/pr59388.c: New test.
 
9329
+
 
9330
+2013-12-06  Richard Biener  <rguenther@suse.de>
 
9331
+
 
9332
+       Backport from mainline
 
9333
+       2013-11-28  Richard Biener  <rguenther@suse.de>
 
9334
+
 
9335
+       PR tree-optimization/59330
 
9336
+       * gcc.dg/torture/pr59330.c: New testcase.
 
9337
+
 
9338
+2013-12-06  Richard Biener  <rguenther@suse.de>
 
9339
+
 
9340
+       Backport from mainline
 
9341
+       2013-11-27  Richard Biener  <rguenther@suse.de>
 
9342
+
 
9343
+       PR tree-optimization/59288
 
9344
+       * gcc.dg/torture/pr59288.c: New testcase.
 
9345
+
 
9346
+       2013-11-19  Richard Biener  <rguenther@suse.de>
 
9347
+
 
9348
+       PR tree-optimization/59164
 
9349
+       * gcc.dg/torture/pr59164.c: New testcase.
 
9350
+
 
9351
+       2013-09-05  Richard Biener  <rguenther@suse.de>
 
9352
+
 
9353
+       PR tree-optimization/58137
 
9354
+       * gcc.target/i386/pr58137.c: New testcase.
 
9355
+
 
9356
+2013-12-06  Oleg Endo  <olegendo@gcc.gnu.org>
 
9357
+
 
9358
+       PR target/51244
 
9359
+       PR target/59343
 
9360
+       * gcc.target/sh/pr51244-19.c: Adjust test case.
 
9361
+
 
9362
+2013-12-05  Richard Biener  <rguenther@suse.de>
 
9363
+
 
9364
+       Backport from mainline
 
9365
+       2013-11-19  Richard Biener  <rguenther@suse.de>
 
9366
+
 
9367
+       PR middle-end/58956
 
9368
+       * gcc.dg/torture/pr58956.c: New testcase.
 
9369
+
 
9370
+2013-12-04  Jakub Jelinek  <jakub@redhat.com>
 
9371
+
 
9372
+       PR c++/59268
 
9373
+       * g++.dg/cpp0x/constexpr-template6.C: New test.
 
9374
+
 
9375
+       PR rtl-optimization/58726
 
9376
+       * gcc.c-torture/execute/pr58726.c: New test.
 
9377
+
 
9378
+       PR target/59163
 
9379
+       * g++.dg/torture/pr59163.C: New test.
 
9380
+
 
9381
+2013-12-03  Marek Polacek  <polacek@redhat.com>
 
9382
+
 
9383
+       Backport from mainline
 
9384
+       2013-12-03  Marek Polacek  <polacek@redhat.com>
 
9385
+
 
9386
+       PR c/59351
 
9387
+       * gcc.dg/pr59351.c: New test.
 
9388
+
 
9389
+2013-12-03  Jakub Jelinek  <jakub@redhat.com>
 
9390
+
 
9391
+       PR middle-end/59011
 
9392
+       * gcc.dg/pr59011.c: New test.
 
9393
+
 
9394
+       PR target/58864
 
9395
+       * g++.dg/opt/pr58864.C: New test.
 
9396
+
 
9397
+2013-12-02  Jakub Jelinek  <jakub@redhat.com>
 
9398
+
 
9399
+       PR tree-optimization/59358
 
9400
+       * gcc.c-torture/execute/pr59358.c: New test.
 
9401
+
 
9402
+2013-12-02  Richard Biener  <rguenther@suse.de>
 
9403
+
 
9404
+       PR tree-optimization/59139
 
9405
+       * gcc.dg/torture/pr59139.c: New testcase.
 
9406
+
 
9407
+2013-11-27  Tom de Vries  <tom@codesourcery.com>
 
9408
+           Marc Glisse  <marc.glisse@inria.fr>
 
9409
+
 
9410
+       PR c++/59032
 
9411
+       * c-c++-common/pr59032.c: New testcase.
 
9412
+
 
9413
+2013-11-27  Tom de Vries  <tom@codesourcery.com>
 
9414
+           Marc Glisse  <marc.glisse@inria.fr>
 
9415
+
 
9416
+       PR middle-end/59037
 
9417
+       * c-c++-common/pr59037.c: New testcase.
 
9418
+
 
9419
+2013-11-30  Paul Thomas  <pault@gcc.gnu.org>
 
9420
+
 
9421
+       Backport from mainline
 
9422
+       2013-11-04  Paul Thomas  <pault@gcc.gnu.org>
 
9423
+
 
9424
+       PR fortran/57445
 
9425
+       * gfortran.dg/optional_class_1.f90 : New test
 
9426
+
 
9427
+2013-11-29  Jakub Jelinek  <jakub@redhat.com>
 
9428
+
 
9429
+       PR c/59280
 
9430
+       * c-c++-common/pr59280.c: New test.
 
9431
+
 
9432
+2013-11-28  Jakub Jelinek  <jakub@redhat.com>
 
9433
+
 
9434
+       PR c++/59297
 
9435
+       * g++.dg/gomp/pr59297.C: New test.
 
9436
+
 
9437
+2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
9438
+
 
9439
+       Backport from mainline
 
9440
+       2013-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
9441
+
 
9442
+       * gcc.target/arm/vrinta-ce.c: New testcase.
 
9443
+
 
9444
+2013-11-28  Uros Bizjak  <ubizjak@gmail.com>
 
9445
+
 
9446
+       Backport from mainline
 
9447
+       2013-11-23  Uros Bizjak  <ubizjak@gmail.com>
 
9448
+
 
9449
+       PR target/56788
 
9450
+       * config/i386/i386.c (bdesc_multi_arg) <IX86_BUILTIN_VFRCZSS>:
 
9451
+       Declare as MULTI_ARG_1_SF instruction.
 
9452
+       <IX86_BUILTIN_VFRCZSD>: Decleare as MULTI_ARG_1_DF instruction.
 
9453
+       * config/i386/sse.md (*xop_vmfrcz<mode>2): Rename
 
9454
+       from *xop_vmfrcz_<mode>.
 
9455
+       * config/i386/xopintrin.h (_mm_frcz_ss): Use __builtin_ia32_movss
 
9456
+       to merge scalar result with __A.
 
9457
+       (_mm_frcz_sd): Use __builtin_ia32_movsd to merge scalar
 
9458
+       result with __A.
 
9459
+
 
9460
+2013-11-28  Terry Guo  <terry.guo@arm.com>
 
9461
+
 
9462
+       Backport mainline r205391
 
9463
+       2013-11-26  Terry Guo  <terry.guo@arm.com>
 
9464
+
 
9465
+       * gcc.target/arm/thumb1-pic-high-reg.c: New case.
 
9466
+       * gcc.target/arm/thumb1-pic-single-base.c: New case.
 
9467
+
 
9468
+2013-11-27  Jakub Jelinek  <jakub@redhat.com>
 
9469
+
 
9470
+       Backported from mainline
 
9471
+       2013-11-27  Jakub Jelinek  <jakub@redhat.com>
 
9472
+
 
9473
+       PR tree-optimization/59014
 
9474
+       * gcc.c-torture/execute/pr59014-2.c: New test.
 
9475
+
 
9476
+       2013-11-26  Jakub Jelinek  <jakub@redhat.com>
 
9477
+
 
9478
+       PR tree-optimization/59014
 
9479
+       * gcc.c-torture/execute/pr59014.c: New test.
 
9480
+
 
9481
+2013-11-27  Eric Botcazou  <ebotcazou@adacore.com>
 
9482
+
 
9483
+       * gcc.c-torture/execute/20131127-1.c: New test.
 
9484
+
 
9485
+2013-11-25  Vidya Praveen  <vidyapraveen@arm.com>
 
9486
+
 
9487
+       Backport from mainline
 
9488
+       2013-10-21  Vidya Praveen  <vidyapraveen@arm.com>
 
9489
+
 
9490
+       * gcc.dg/20050922-1.c: Remove stdlib.h and declare abort().
 
9491
+       * gcc.dg/20050922-1.c: Remove stdlib.h and declare abort() and exit().
 
9492
+
 
9493
+2013-11-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>
 
9494
+
 
9495
+       Backport from mainline
 
9496
+       * gcc.target/s390/htm-1.c: Rename to ...
 
9497
+       * gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c: ... this
 
9498
+       one.
 
9499
+       * gcc.target/s390/htm-xl-intrin-1.c: Rename to ...
 
9500
+       * gcc.target/s390/htm-builtins-compile-3.c: ... this one.
 
9501
+       * gcc.target/s390/htm-builtins-compile-2.c: New testcase.
 
9502
+       * gcc.target/s390/htm-builtins-1.c: New testcase.
 
9503
+       * gcc.target/s390/htm-builtins-2.c: New testcase.
 
9504
+       * gcc.target/s390/s390.exp: Add check for htm machine.
 
9505
+
 
9506
+2013-11-19  Richard Biener  <rguenther@suse.de>
 
9507
+
 
9508
+       PR tree-optimization/57517
 
9509
+       * gfortran.fortran-torture/compile/pr57517.f90: New testcase.
 
9510
+       * gcc.dg/torture/pr57517.c: Likewise.
 
9511
+
 
9512
+2013-11-19  Richard Biener  <rguenther@suse.de>
 
9513
+
 
9514
+       Backport from mainline
 
9515
+       2013-11-05  Richard Biener  <rguenther@suse.de>
 
9516
+
 
9517
+       PR middle-end/58941
 
9518
+       * gcc.dg/torture/pr58941.c: New testcase.
 
9519
+
 
9520
+2013-11-18  Richard Biener  <rguenther@suse.de>
 
9521
+
 
9522
+       Backport from mainline
 
9523
+       2013-10-21  Richard Biener  <rguenther@suse.de>
 
9524
+
 
9525
+       PR tree-optimization/58794
 
9526
+       * c-c++-common/torture/pr58794-1.c: New testcase.
 
9527
+       * c-c++-common/torture/pr58794-2.c: Likewise.
 
9528
+
 
9529
+       2013-10-21  Richard Biener  <rguenther@suse.de>
 
9530
+
 
9531
+       PR middle-end/58742
 
9532
+       * c-c++-common/fold-divmul-1.c: New testcase.
 
9533
+
 
9534
+       2013-11-06  Richard Biener  <rguenther@suse.de>
 
9535
+
 
9536
+       PR tree-optimization/58653
 
9537
+       * gcc.dg/tree-ssa/predcom-6.c: New testcase.
 
9538
+       * gcc.dg/tree-ssa/predcom-7.c: Likewise.
 
9539
+
 
9540
+       PR tree-optimization/59047
 
9541
+       * gcc.dg/torture/pr59047.c: New testcase.
 
9542
+
 
9543
+       2013-10-15  Richard Biener  <rguenther@suse.de>
 
9544
+
 
9545
+       PR tree-optimization/58143
 
9546
+       * gcc.dg/torture/pr58143-1.c: New testcase.
 
9547
+       * gcc.dg/torture/pr58143-2.c: Likewise.
 
9548
+       * gcc.dg/torture/pr58143-3.c: Likewise.
 
9549
+
 
9550
+2013-11-17  Janus Weil  <janus@gcc.gnu.org>
 
9551
+
 
9552
+       Backport from mainline
 
9553
+       2013-11-07  Janus Weil  <janus@gcc.gnu.org>
 
9554
+
 
9555
+       PR fortran/58471
 
9556
+       * gfortran.dg/constructor_9.f90: New.
 
9557
+
 
9558
+2013-11-16  Janus Weil  <janus@gcc.gnu.org>
 
9559
+
 
9560
+       Backport from mainline
 
9561
+       2013-09-20  Janus Weil  <janus@gcc.gnu.org>
 
9562
+
 
9563
+       PR fortran/58099
 
9564
+       * gfortran.dg/proc_ptr_43.f90: New.
 
9565
+
 
9566
+2013-11-16  Paul Thomas  <pault@gcc.gnu.org>
 
9567
+
 
9568
+       PR fortran/58771
 
9569
+       * gfortran.dg/derived_external_function_1.f90 : New test
 
9570
+
 
9571
+2013-11-14  Uros Bizjak  <ubizjak@gmail.com>
 
9572
+
 
9573
+       Backport from mainline
 
9574
+       2013-11-06  Uros Bizjak  <ubizjak@gmail.com>
 
9575
+
 
9576
+       PR target/59021
 
9577
+       * gcc.target/i386/pr59021.c: New test.
 
9578
+
 
9579
+2013-11-14  Jakub Jelinek  <jakub@redhat.com>
 
9580
+
 
9581
+       PR target/59101
 
9582
+       * gcc.c-torture/execute/pr59101.c: New test.
 
9583
+
 
9584
+2013-11-11  Jakub Jelinek  <jakub@redhat.com>
 
9585
+
 
9586
+       Backported from mainline
 
9587
+       2013-11-06  Jakub Jelinek  <jakub@redhat.com>
 
9588
+
 
9589
+       PR middle-end/58970
 
9590
+       * gcc.c-torture/compile/pr58970-1.c: New test.
 
9591
+       * gcc.c-torture/compile/pr58970-2.c: New test.
 
9592
+
 
9593
+       2013-11-05  Jakub Jelinek  <jakub@redhat.com>
 
9594
+
 
9595
+       PR rtl-optimization/58997
 
9596
+       * gcc.c-torture/compile/pr58997.c: New test.
 
9597
+
 
9598
+2013-11-10  Wei Mi  <wmi@google.com>
 
9599
+
 
9600
+       * testsuite/gcc.dg/pr57518.c: Backport regex fix from r200720.
 
9601
+
 
9602
+2013-11-07  H.J. Lu  <hongjiu.lu@intel.com>
 
9603
+
 
9604
+       Backport from mainline
 
9605
+       2013-11-07  H.J. Lu  <hongjiu.lu@intel.com>
 
9606
+
 
9607
+       PR target/59034
 
9608
+       * gcc.target/i386/pr59034-1.c: New test.
 
9609
+       * gcc.target/i386/pr59034-2.c: Likewise.
 
9610
+
 
9611
+2013-11-06  Wei Mi  <wmi@google.com>
 
9612
+
 
9613
+       PR regression/58985
 
9614
+       * testsuite/gcc.dg/pr57518.c: Add subreg in regexp pattern.
 
9615
+
 
9616
+2013-11-05  Steven G. Kargl <kargl@gcc.gnu.org>
 
9617
+
 
9618
+       PR fortran/58989
 
9619
+       * gfortran.dg/reshape_6.f90: New test.
 
9620
+
 
9621
+2013-11-05  Jakub Jelinek  <jakub@redhat.com>
 
9622
+
 
9623
+       PR tree-optimization/58984
 
9624
+       * gcc.c-torture/execute/pr58984.c: New test.
 
9625
+
 
9626
+2013-11-04  Marek Polacek  <polacek@redhat.com>
 
9627
+
 
9628
+       Backport from mainline
 
9629
+       2013-11-04  Marek Polacek  <polacek@redhat.com>
 
9630
+
 
9631
+       PR c++/58979
 
9632
+       * g++.dg/diagnostic/pr58979.C: New test.
 
9633
+
 
9634
+2013-11-03  H.J. Lu  <hongjiu.lu@intel.com>
 
9635
+
 
9636
+       Backport from mainline
 
9637
+       2013-10-12  H.J. Lu  <hongjiu.lu@intel.com>
 
9638
+
 
9639
+       PR target/58690
 
9640
+       * gcc.target/i386/pr58690.c: New test
 
9641
+
 
9642
+2013-11-02  Janus Weil  <janus@gcc.gnu.org>
 
9643
+
 
9644
+       Backport from mainline
 
9645
+       2013-09-23  Janus Weil  <janus@gcc.gnu.org>
 
9646
+
 
9647
+       PR fortran/58355
 
9648
+       * gfortran.dg/extends_15.f90: New.
 
9649
+
 
9650
+2013-10-29  Uros Bizjak  <ubizjak@gmail.com>
 
9651
+
 
9652
+       Backport from mainline
 
9653
+       2013-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
 
9654
+
 
9655
+       PR rtl-optimization/58079
 
9656
+       * gcc.dg/torture/pr58079.c: New test.
 
9657
+
 
9658
+2013-10-28  Tom de Vries  <tom@codesourcery.com>
 
9659
+
 
9660
+       * gcc.target/arm/require-pic-register-loc.c: New test.
 
9661
+
 
9662
+2013-10-26  Uros Bizjak  <ubizjak@gmail.com>
 
9663
+
 
9664
+       Backport from mainline
 
9665
+       2013-10-22  Uros Bizjak  <ubizjak@gmail.com>
 
9666
+
 
9667
+       PR target/58779
 
9668
+       * gcc.target/i386/pr30315.c: Remove MINUSCC, DECCC, MINUSCCONLY
 
9669
+       and MINUSCCZEXT defines. Update scan-assembler dg directive.
 
9670
+       * gcc.dg/torture/pr58779.c: New test.
 
9671
+
 
9672
+2013-10-25  Richard Henderson  <rth@redhat.com>
 
9673
+
 
9674
+       PR rtl/58542
 
9675
+       * gcc.dg/atomic-store-6.c: New.
 
9676
+
 
9677
+2013-10-25  Tom de Vries  <tom@codesourcery.com>
 
9678
+
 
9679
+       PR c++/58282
 
9680
+       * g++.dg/tm/noexcept-6.C: New test.
 
9681
+
 
9682
+2013-10-25  Eric Botcazou  <ebotcazou@adacore.com>
 
9683
+
 
9684
+       * gcc.c-torture/execute/pr58831.c: New test.
 
9685
+
 
9686
+2013-10-23  Tom de Vries  <tom@codesourcery.com>
 
9687
+
 
9688
+       PR tree-optimization/58805
 
9689
+       * gcc.dg/pr58805.c: New test.
 
9690
+
 
9691
+2013-10-23  Richard Biener  <rguenther@suse.de>
 
9692
+
 
9693
+       * gcc.dg/torture/pr58830.c: New testcase.
 
9694
+
 
9695
+       Backport from mainline
 
9696
+       2013-06-24  Richard Biener  <rguenther@suse.de>
 
9697
+
 
9698
+       PR tree-optimization/57488
 
9699
+       * gcc.dg/torture/pr57488.c: New testcase.
 
9700
+
 
9701
+2013-10-19  Oleg Endo  <olegendo@gcc.gnu.org>
 
9702
+
 
9703
+       * gcc.target/sh/pr54089-3.c: Fix test for load of constant 31.
 
9704
+
 
9705
+2013-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
 
9706
+
 
9707
+       PR c++/58596
 
9708
+       * g++.dg/cpp0x/lambda/lambda-nsdmi5.C: New
 
9709
+
 
9710
+2013-10-16  Paolo Carlini  <paolo.carlini@oracle.com>
 
9711
+
 
9712
+       PR c++/58633
 
9713
+       * g++.dg/cpp0x/decltype57.C: New.
 
9714
+       * g++.dg/cpp0x/enum18.C: Revert r174385 changes.
 
9715
+
 
9716
 2013-10-16  Release Manager
 
9717
 
 
9718
        * GCC 4.8.2 released.
 
9719
@@ -39,9 +458,9 @@
 
9720
        Backport from mainline
 
9721
        2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
 
9722
 
 
9723
-        * gcc.target/s390/htm-1.c: New file.
 
9724
-        * gcc.target/s390/htm-nofloat-1.c: New file.
 
9725
-        * gcc.target/s390/htm-xl-intrin-1.c: New file.
 
9726
+       * gcc.target/s390/htm-1.c: New file.
 
9727
+       * gcc.target/s390/htm-nofloat-1.c: New file.
 
9728
+       * gcc.target/s390/htm-xl-intrin-1.c: New file.
 
9729
 
 
9730
 2013-10-04  Tobias Burnus  <burnus@net-b.de>
 
9731
 
 
9732
@@ -307,8 +726,8 @@
 
9733
        Backport from mainline
 
9734
        2013-08-12  Perez Read  <netfirewall@gmail.com>
 
9735
 
 
9736
-        PR target/58132
 
9737
-        * gcc.target/i386/movabs-1.c: New test.
 
9738
+       PR target/58132
 
9739
+       * gcc.target/i386/movabs-1.c: New test.
 
9740
 
 
9741
 2013-08-11  Janus Weil  <janus@gcc.gnu.org>
 
9742
 
 
9743
@@ -623,8 +1042,8 @@
 
9744
 
 
9745
 2013-05-09  Martin Jambor  <mjambor@suse.cz>
 
9746
 
 
9747
-        PR middle-end/56988
 
9748
-        * gcc.dg/ipa/pr56988.c: New test.
 
9749
+       PR middle-end/56988
 
9750
+       * gcc.dg/ipa/pr56988.c: New test.
 
9751
 
 
9752
 2013-05-08  Marc Glisse  <marc.glisse@inria.fr>
 
9753
 
 
9754
@@ -701,7 +1120,7 @@
 
9755
        2013-04-25  Marek Polacek  <polacek@redhat.com>
 
9756
 
 
9757
        PR tree-optimization/57066
 
9758
-        * gcc.dg/torture/builtin-logb-1.c: Adjust testcase.
 
9759
+       * gcc.dg/torture/builtin-logb-1.c: Adjust testcase.
 
9760
 
 
9761
 2013-05-02  Jakub Jelinek  <jakub@redhat.com>
 
9762
 
 
9763
@@ -727,32 +1146,32 @@
 
9764
        Backport from mainline
 
9765
        2013-04-24  Vladimir Makarov  <vmakarov@redhat.com>
 
9766
 
 
9767
-        PR rtl-optimizations/57046
 
9768
-        * gcc.target/i386/pr57046.c: New test.
 
9769
+       PR rtl-optimizations/57046
 
9770
+       * gcc.target/i386/pr57046.c: New test.
 
9771
 
 
9772
 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
 
9773
 
 
9774
        Backport from mainline
 
9775
        2013-04-22  Vladimir Makarov  <vmakarov@redhat.com>
 
9776
 
 
9777
-        PR target/57018
 
9778
-        * gcc.target/i386/pr57018.c: New test.
 
9779
+       PR target/57018
 
9780
+       * gcc.target/i386/pr57018.c: New test.
 
9781
 
 
9782
 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
 
9783
 
 
9784
        Backport from mainline
 
9785
        2013-04-18  Jakub Jelinek  <jakub@redhat.com>
 
9786
 
 
9787
-        PR rtl-optimization/56999
 
9788
-        * g++.dg/opt/pr56999.C: New test.
 
9789
+       PR rtl-optimization/56999
 
9790
+       * g++.dg/opt/pr56999.C: New test.
 
9791
 
 
9792
 2013-05-02  Vladimir Makarov  <vmakarov@redhat.com>
 
9793
 
 
9794
        Backport from mainline
 
9795
        2013-04-19  Vladimir Makarov  <vmakarov@redhat.com>
 
9796
 
 
9797
-        PR rtl-optimization/56847
 
9798
-        * gcc.dg/pr56847.c: New test.
 
9799
+       PR rtl-optimization/56847
 
9800
+       * gcc.dg/pr56847.c: New test.
 
9801
 
 
9802
 2013-05-02  Ian Bolton  <ian.bolton@arm.com>
 
9803
 
 
9804
Index: gcc/testsuite/gfortran.fortran-torture/compile/pr57517.f90
 
9805
===================================================================
 
9806
--- a/src/gcc/testsuite/gfortran.fortran-torture/compile/pr57517.f90    (.../tags/gcc_4_8_2_release)
 
9807
+++ b/src/gcc/testsuite/gfortran.fortran-torture/compile/pr57517.f90    (.../branches/gcc-4_8-branch)
 
9808
@@ -0,0 +1,13 @@
 
9809
+SUBROUTINE cal_helicity (uh, ph, phb, wavg, ims, ime, its, ite)
 
9810
+  INTEGER, INTENT( IN ) :: ims, ime, its, ite
 
9811
+  REAL, DIMENSION( ims:ime), INTENT( IN ) :: ph, phb, wavg
 
9812
+  REAL, DIMENSION( ims:ime), INTENT( INOUT ) :: uh
 
9813
+  INTEGER :: i
 
9814
+  REAL :: zu
 
9815
+  DO i = its, ite
 
9816
+    zu =  (ph(i ) + phb(i)) + (ph(i-1) + phb(i-1))
 
9817
+    IF (wavg(i) .GT. 0) THEN
 
9818
+      uh(i) = uh(i) + zu 
 
9819
+    ENDIF
 
9820
+  END DO
 
9821
+END SUBROUTINE cal_helicity
 
9822
Index: gcc/testsuite/g++.dg/opt/pr59470.C
 
9823
===================================================================
 
9824
--- a/src/gcc/testsuite/g++.dg/opt/pr59470.C    (.../tags/gcc_4_8_2_release)
 
9825
+++ b/src/gcc/testsuite/g++.dg/opt/pr59470.C    (.../branches/gcc-4_8-branch)
 
9826
@@ -0,0 +1,188 @@
 
9827
+// PR middle-end/59470
 
9828
+// { dg-do run }
 
9829
+// { dg-options "-O2 -fstack-protector" }
 
9830
+// { dg-additional-options "-fPIC" { target fpic } }
 
9831
+// { dg-require-effective-target fstack_protector }
 
9832
+
 
9833
+struct A
 
9834
+{
 
9835
+  int a1;
 
9836
+  A () throw () : a1 (0) {}
 
9837
+};
 
9838
+
 
9839
+struct B
 
9840
+{
 
9841
+  unsigned int b1 () throw ();
 
9842
+};
 
9843
+
 
9844
+__attribute__((noinline, noclone)) unsigned int
 
9845
+B::b1 () throw ()
 
9846
+{
 
9847
+  asm volatile ("" : : : "memory");
 
9848
+  return 0;
 
9849
+}
 
9850
+
 
9851
+struct C
 
9852
+{
 
9853
+  const A **c1;
 
9854
+  void c2 (const A *, unsigned int);
 
9855
+};
 
9856
+
 
9857
+__attribute__((noinline, noclone)) void
 
9858
+C::c2 (const A *, unsigned int)
 
9859
+{
 
9860
+  asm volatile ("" : : : "memory");
 
9861
+}
 
9862
+
 
9863
+struct D
 
9864
+{
 
9865
+  C *d1;
 
9866
+};
 
9867
+
 
9868
+struct E
 
9869
+{
 
9870
+  int e1;
 
9871
+  int e2;
 
9872
+  D e3;
 
9873
+};
 
9874
+
 
9875
+struct F
 
9876
+{
 
9877
+  virtual int f1 (const char * s, int n);
 
9878
+};
 
9879
+
 
9880
+struct G
 
9881
+{
 
9882
+  F *g1;
 
9883
+  bool g2;
 
9884
+  G & g3 (const char * ws, int len)
 
9885
+  {
 
9886
+    if (__builtin_expect (!g2, true)
 
9887
+       && __builtin_expect (this->g1->f1 (ws, len) != len, false))
 
9888
+      g2 = true;
 
9889
+    return *this;
 
9890
+  }
 
9891
+};
 
9892
+
 
9893
+struct H : public A
 
9894
+{
 
9895
+  const char *h1;
 
9896
+  unsigned int h2;
 
9897
+  bool h3;
 
9898
+  const char *h4;
 
9899
+  char h5;
 
9900
+  char h6;
 
9901
+  char h7[31];
 
9902
+  bool h8;
 
9903
+  H () : h1 (0), h2 (0), h4 (0), h5 (0), h6 (0), h8 (false) {}
 
9904
+  void h9 (const D &) __attribute__((noinline, noclone));
 
9905
+};
 
9906
+
 
9907
+void
 
9908
+H::h9 (const D &)
 
9909
+{
 
9910
+  h3 = true;
 
9911
+  __builtin_memset (h7, 0, sizeof (h7));
 
9912
+  asm volatile ("" : : : "memory");
 
9913
+};
 
9914
+
 
9915
+B b;
 
9916
+
 
9917
+inline const H *
 
9918
+foo (const D &x)
 
9919
+{
 
9920
+  const unsigned int i = b.b1 ();
 
9921
+  const A **j = x.d1->c1;
 
9922
+  if (!j[i])
 
9923
+    {
 
9924
+      H *k = 0;
 
9925
+      try
 
9926
+       {
 
9927
+         k = new H;
 
9928
+         k->h9 (x);
 
9929
+       }
 
9930
+      catch (...)
 
9931
+       {
 
9932
+       }
 
9933
+      x.d1->c2 (k, i);
 
9934
+    }
 
9935
+    return static_cast <const H *>(j[i]);
 
9936
+}
 
9937
+
 
9938
+__attribute__((noinline, noclone)) int
 
9939
+bar (char *x, unsigned long v, const char *y, int z, bool w)
 
9940
+{
 
9941
+  asm volatile ("" : : "r" (x), "r" (v), "r" (y) : "memory");
 
9942
+  asm volatile ("" : : "r" (z), "r" (w) : "memory");
 
9943
+  return 8;
 
9944
+}
 
9945
+
 
9946
+__attribute__((noinline, noclone)) void
 
9947
+baz (void *z, const char *g, unsigned int h, char s, E &e, char *n, char *c, int &l)
 
9948
+{
 
9949
+  asm volatile ("" : : "r" (z), "r" (g), "r" (h) : "memory");
 
9950
+  asm volatile ("" : : "r" (s), "r" (&e), "r" (n) : "memory");
 
9951
+  asm volatile ("" : : "r" (c), "r" (&l) : "memory");
 
9952
+  if (n == c)
 
9953
+    __builtin_abort ();
 
9954
+  int i = 0;
 
9955
+  asm ("" : "+r" (i));
 
9956
+  if (i == 0)
 
9957
+    __builtin_exit (0);
 
9958
+}
 
9959
+
 
9960
+__attribute__((noinline, noclone)) G
 
9961
+test (void *z, G s, E &x, char, long v)
 
9962
+{
 
9963
+  const D &d = x.e3;
 
9964
+  const H *h = foo (d);
 
9965
+  const char *q = h->h7;
 
9966
+  const int f = x.e2;
 
9967
+  const int i = 5 * sizeof (long);
 
9968
+  char *c = static_cast <char *>(__builtin_alloca (i));
 
9969
+  const int b = f & 74;
 
9970
+  const bool e = (b != 64 && b != 8);
 
9971
+  const unsigned long u = ((v > 0 || !e) ? (unsigned long) v : -(unsigned long) v);
 
9972
+  int l = bar (c + i, u, q, f, e);
 
9973
+  c += i - l;
 
9974
+  if (h->h3)
 
9975
+    {
 
9976
+      char *c2 = static_cast <char *>(__builtin_alloca ((l + 1) * 2));
 
9977
+      baz (z, h->h1, h->h2, h->h6, x, c2 + 2, c, l);
 
9978
+      c = c2 + 2;
 
9979
+    }
 
9980
+  if (__builtin_expect (e, true))
 
9981
+    {
 
9982
+    }
 
9983
+  else if ((f & 4096) && v)
 
9984
+    {
 
9985
+      {
 
9986
+       const bool m = f & 176;
 
9987
+       *--c = q[m];
 
9988
+       *--c = q[1];
 
9989
+      }
 
9990
+    }
 
9991
+  const int w = x.e1;
 
9992
+  if (w > l)
 
9993
+    {
 
9994
+      char * c3 = static_cast <char *>(__builtin_alloca (w));
 
9995
+      c = c3;
 
9996
+    }
 
9997
+  return s.g3 (c, l);
 
9998
+}
 
9999
+
 
10000
+int
 
10001
+main ()
 
10002
+{
 
10003
+  H h;
 
10004
+  const A *j[1];
 
10005
+  C c;
 
10006
+  G g;
 
10007
+  E e;
 
10008
+  h.h9 (e.e3);
 
10009
+  j[0] = &h;
 
10010
+  c.c1 = j;
 
10011
+  e.e3.d1 = &c;
 
10012
+  test (0, g, e, 0, 0);
 
10013
+  __builtin_abort ();
 
10014
+}
 
10015
Index: gcc/testsuite/g++.dg/opt/pr58864.C
 
10016
===================================================================
 
10017
--- a/src/gcc/testsuite/g++.dg/opt/pr58864.C    (.../tags/gcc_4_8_2_release)
 
10018
+++ b/src/gcc/testsuite/g++.dg/opt/pr58864.C    (.../branches/gcc-4_8-branch)
 
10019
@@ -0,0 +1,21 @@
 
10020
+// PR target/58864
 
10021
+// { dg-do compile }
 
10022
+// { dg-options "-Os" }
 
10023
+// { dg-additional-options "-march=i686" { target { { i?86-*-* x86_64-*-* } && ia32 } } }
 
10024
+
 
10025
+struct A { A (); ~A (); };
 
10026
+struct B { B (); };
 
10027
+
 
10028
+float d, e;
 
10029
+
 
10030
+void
 
10031
+foo ()
 
10032
+{
 
10033
+  A a;
 
10034
+  float c = d;
 
10035
+  while (1)
 
10036
+    {
 
10037
+      B b;
 
10038
+      e = c ? -c : 0;
 
10039
+    }
 
10040
+}
 
10041
Index: gcc/testsuite/g++.dg/gomp/pr59297.C
 
10042
===================================================================
 
10043
--- a/src/gcc/testsuite/g++.dg/gomp/pr59297.C   (.../tags/gcc_4_8_2_release)
 
10044
+++ b/src/gcc/testsuite/g++.dg/gomp/pr59297.C   (.../branches/gcc-4_8-branch)
 
10045
@@ -0,0 +1,25 @@
 
10046
+// PR c++/59297
 
10047
+// { dg-do compile }
 
10048
+// { dg-options "-fopenmp" }
 
10049
+
 
10050
+template <typename T>
 
10051
+struct A
 
10052
+{
 
10053
+  ~A ();
 
10054
+  const T &operator[] (int) const;
 
10055
+};
 
10056
+
 
10057
+struct B
 
10058
+{
 
10059
+  int &operator () (A <int>);
 
10060
+};
 
10061
+
 
10062
+void
 
10063
+foo (B &x, int &z)
 
10064
+{
 
10065
+  A<A<int> > y;
 
10066
+  #pragma omp atomic
 
10067
+  x (y[0]) += 1;
 
10068
+  #pragma omp atomic
 
10069
+  z += x(y[1]);
 
10070
+}
 
10071
Index: gcc/testsuite/g++.dg/diagnostic/pr58979.C
 
10072
===================================================================
 
10073
--- a/src/gcc/testsuite/g++.dg/diagnostic/pr58979.C     (.../tags/gcc_4_8_2_release)
 
10074
+++ b/src/gcc/testsuite/g++.dg/diagnostic/pr58979.C     (.../branches/gcc-4_8-branch)
 
10075
@@ -0,0 +1,4 @@
 
10076
+// PR c++/58979
 
10077
+// { dg-do compile }
 
10078
+
 
10079
+int i = 0->*0; // { dg-error "invalid type argument of" }
 
10080
Index: gcc/testsuite/g++.dg/tm/noexcept-6.C
 
10081
===================================================================
 
10082
--- a/src/gcc/testsuite/g++.dg/tm/noexcept-6.C  (.../tags/gcc_4_8_2_release)
 
10083
+++ b/src/gcc/testsuite/g++.dg/tm/noexcept-6.C  (.../branches/gcc-4_8-branch)
 
10084
@@ -0,0 +1,23 @@
 
10085
+// { dg-do compile }
 
10086
+// { dg-options "-fno-exceptions -fgnu-tm -O -std=c++0x -fdump-tree-tmlower" }
 
10087
+
 
10088
+struct TrueFalse
 
10089
+{
 
10090
+  static constexpr bool v() { return true; }
 
10091
+};
 
10092
+
 
10093
+int global;
 
10094
+
 
10095
+template<typename T> int foo()
 
10096
+{
 
10097
+  return __transaction_atomic noexcept(T::v()) (global + 1);
 
10098
+}
 
10099
+
 
10100
+int f1()
 
10101
+{
 
10102
+  return foo<TrueFalse>();
 
10103
+}
 
10104
+
 
10105
+/* { dg-final { scan-tree-dump-times "eh_must_not_throw" 0 "tmlower" } } */
 
10106
+/* { dg-final { scan-tree-dump-times "__transaction_atomic" 1 "tmlower" } } */
 
10107
+/* { dg-final { cleanup-tree-dump "tmlower" } } */
 
10108
Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi5.C
 
10109
===================================================================
 
10110
--- a/src/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi5.C     (.../tags/gcc_4_8_2_release)
 
10111
+++ b/src/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi5.C     (.../branches/gcc-4_8-branch)
 
10112
@@ -0,0 +1,7 @@
 
10113
+// PR c++/58596
 
10114
+// { dg-do compile { target c++11 } }
 
10115
+
 
10116
+struct A
 
10117
+{
 
10118
+  int i = [] { return decltype(i)(); }();
 
10119
+};
 
10120
Index: gcc/testsuite/g++.dg/cpp0x/enum18.C
 
10121
===================================================================
 
10122
--- a/src/gcc/testsuite/g++.dg/cpp0x/enum18.C   (.../tags/gcc_4_8_2_release)
 
10123
+++ b/src/gcc/testsuite/g++.dg/cpp0x/enum18.C   (.../branches/gcc-4_8-branch)
 
10124
@@ -4,5 +4,5 @@
 
10125
 int main(void) {
 
10126
   enum e {};
 
10127
   e ev;
 
10128
-  ev.e::~e_u();        // { dg-error "e_u. has not been declared" }
 
10129
+  ev.e::~e_u();        // { dg-error "" }
 
10130
 }
 
10131
Index: gcc/testsuite/g++.dg/cpp0x/constexpr-template6.C
 
10132
===================================================================
 
10133
--- a/src/gcc/testsuite/g++.dg/cpp0x/constexpr-template6.C      (.../tags/gcc_4_8_2_release)
 
10134
+++ b/src/gcc/testsuite/g++.dg/cpp0x/constexpr-template6.C      (.../branches/gcc-4_8-branch)
 
10135
@@ -0,0 +1,20 @@
 
10136
+// PR c++/59268
 
10137
+// { dg-do compile }
 
10138
+// { dg-options "-std=c++11" }
 
10139
+
 
10140
+template <typename>
 
10141
+struct A
 
10142
+{
 
10143
+  constexpr A (int) {}
 
10144
+  virtual void foo ()
 
10145
+  {
 
10146
+    constexpr A<void> a (0);
 
10147
+  }
 
10148
+};
 
10149
+
 
10150
+void
 
10151
+bar ()
 
10152
+{
 
10153
+  A<int> a (3);
 
10154
+  a.foo ();
 
10155
+}
 
10156
Index: gcc/testsuite/g++.dg/cpp0x/nsdmi9.C
 
10157
===================================================================
 
10158
--- a/src/gcc/testsuite/g++.dg/cpp0x/nsdmi9.C   (.../tags/gcc_4_8_2_release)
 
10159
+++ b/src/gcc/testsuite/g++.dg/cpp0x/nsdmi9.C   (.../branches/gcc-4_8-branch)
 
10160
@@ -0,0 +1,13 @@
 
10161
+// PR c++/58162
 
10162
+// { dg-require-effective-target c++11 }
 
10163
+
 
10164
+struct A {
 
10165
+ A();
 
10166
+ A(A&&);
 
10167
+};
 
10168
+
 
10169
+struct B {
 
10170
+ A const a = A();
 
10171
+};
 
10172
+
 
10173
+B b;
 
10174
Index: gcc/testsuite/g++.dg/cpp0x/decltype57.C
 
10175
===================================================================
 
10176
--- a/src/gcc/testsuite/g++.dg/cpp0x/decltype57.C       (.../tags/gcc_4_8_2_release)
 
10177
+++ b/src/gcc/testsuite/g++.dg/cpp0x/decltype57.C       (.../branches/gcc-4_8-branch)
 
10178
@@ -0,0 +1,8 @@
 
10179
+// PR c++/58633
 
10180
+// { dg-do compile { target c++11 } }
 
10181
+
 
10182
+void foo(int i)
 
10183
+{
 
10184
+  typedef int I;
 
10185
+  decltype(i.I::~I())* p;
 
10186
+}
 
10187
Index: gcc/testsuite/g++.dg/inherit/virtual11.C
 
10188
===================================================================
 
10189
--- a/src/gcc/testsuite/g++.dg/inherit/virtual11.C      (.../tags/gcc_4_8_2_release)
 
10190
+++ b/src/gcc/testsuite/g++.dg/inherit/virtual11.C      (.../branches/gcc-4_8-branch)
 
10191
@@ -0,0 +1,17 @@
 
10192
+// PR c++/59031
 
10193
+// { dg-do compile }
 
10194
+// { dg-options "-fdump-tree-gimple " }
 
10195
+class B {
 
10196
+ public:
 
10197
+  virtual int add (int a, int b) {return a+ b;}
 
10198
+};
 
10199
+
 
10200
+class D : public B {
 
10201
+};
 
10202
+
 
10203
+int foo (int a, int b) {
 
10204
+  D d;
 
10205
+  return d.add(a, b);
 
10206
+}
 
10207
+// { dg-final { scan-tree-dump-not "OBJ_TYPE_REF" "gimple" } }
 
10208
+// { dg-final { cleanup-tree-dump "gimple" } }
 
10209
Index: gcc/testsuite/g++.dg/torture/pr59163.C
 
10210
===================================================================
 
10211
--- a/src/gcc/testsuite/g++.dg/torture/pr59163.C        (.../tags/gcc_4_8_2_release)
 
10212
+++ b/src/gcc/testsuite/g++.dg/torture/pr59163.C        (.../branches/gcc-4_8-branch)
 
10213
@@ -0,0 +1,30 @@
 
10214
+// PR target/59163
 
10215
+// { dg-do run }
 
10216
+
 
10217
+struct A { float a[4]; };
 
10218
+struct B { int b; A a; };
 
10219
+
 
10220
+__attribute__((noinline, noclone)) void
 
10221
+bar (A &a)
 
10222
+{
 
10223
+  if (a.a[0] != 36.0f || a.a[1] != 42.0f || a.a[2] != 48.0f || a.a[3] != 54.0f)
 
10224
+    __builtin_abort ();
 
10225
+}
 
10226
+
 
10227
+__attribute__((noinline, noclone)) void
 
10228
+foo (A &a)
 
10229
+{
 
10230
+  int i;
 
10231
+  A c = a;
 
10232
+  for (i = 0; i < 4; i++)
 
10233
+    c.a[i] *= 6.0f;
 
10234
+  a = c;
 
10235
+  bar (a);
 
10236
+}
 
10237
+
 
10238
+int
 
10239
+main ()
 
10240
+{
 
10241
+  B b = { 5, { 6, 7, 8, 9 } };
 
10242
+  foo (b.a);
 
10243
+}
 
10244
Index: gcc/testsuite/g++.dg/template/partial14.C
 
10245
===================================================================
 
10246
--- a/src/gcc/testsuite/g++.dg/template/partial14.C     (.../tags/gcc_4_8_2_release)
 
10247
+++ b/src/gcc/testsuite/g++.dg/template/partial14.C     (.../branches/gcc-4_8-branch)
 
10248
@@ -0,0 +1,16 @@
 
10249
+// PR c++/59044
 
10250
+
 
10251
+template <class T>
 
10252
+class C {
 
10253
+private:
 
10254
+  template <T a, T b>
 
10255
+  struct Implementation {};
 
10256
+public:
 
10257
+  typedef typename Implementation<0, 0>::Typedef Type;
 
10258
+};
 
10259
+
 
10260
+template <class T>
 
10261
+template <T b>
 
10262
+struct C<T>::Implementation<0, b> { typedef void Typedef; };
 
10263
+
 
10264
+template class C<unsigned>;
 
10265
Index: gcc/testsuite/c-c++-common/pr59037.c
 
10266
===================================================================
 
10267
--- a/src/gcc/testsuite/c-c++-common/pr59037.c  (.../tags/gcc_4_8_2_release)
 
10268
+++ b/src/gcc/testsuite/c-c++-common/pr59037.c  (.../branches/gcc-4_8-branch)
 
10269
@@ -0,0 +1,12 @@
 
10270
+/* { dg-do compile } */
 
10271
+/* { dg-options "-O3" } */
 
10272
+
 
10273
+typedef int v4si __attribute__ ((vector_size (16)));
 
10274
+
 
10275
+int
 
10276
+main (int argc, char** argv)
 
10277
+{
 
10278
+  v4si x = {0,1,2,3};
 
10279
+  x = (v4si) {(x)[3], (x)[2], (x)[1], (x)[0]};
 
10280
+  return x[4];
 
10281
+}
 
10282
Index: gcc/testsuite/c-c++-common/pr59280.c
 
10283
===================================================================
 
10284
--- a/src/gcc/testsuite/c-c++-common/pr59280.c  (.../tags/gcc_4_8_2_release)
 
10285
+++ b/src/gcc/testsuite/c-c++-common/pr59280.c  (.../branches/gcc-4_8-branch)
 
10286
@@ -0,0 +1,4 @@
 
10287
+/* PR c/59280 */
 
10288
+/* { dg-do compile } */
 
10289
+
 
10290
+void bar (char *) __attribute__((constructor(foo))); /* { dg-error "constructor priorities must be integers|was not declared|constructor priorities are not supported" } */
 
10291
Index: gcc/testsuite/c-c++-common/fold-divmul-1.c
 
10292
===================================================================
 
10293
--- a/src/gcc/testsuite/c-c++-common/fold-divmul-1.c    (.../tags/gcc_4_8_2_release)
 
10294
+++ b/src/gcc/testsuite/c-c++-common/fold-divmul-1.c    (.../branches/gcc-4_8-branch)
 
10295
@@ -0,0 +1,11 @@
 
10296
+/* { dg-do compile } */
 
10297
+/* { dg-options "-fdump-tree-original" } */
 
10298
+
 
10299
+int *
 
10300
+fx (int *b, int *e)
 
10301
+{
 
10302
+  return b + (e - b);
 
10303
+}
 
10304
+
 
10305
+/* { dg-final { scan-tree-dump-not "/\\\[ex\\\]" "original" } } */
 
10306
+/* { dg-final { cleanup-tree-dump "original" } } */
 
10307
Index: gcc/testsuite/c-c++-common/torture/pr58794-1.c
 
10308
===================================================================
 
10309
--- a/src/gcc/testsuite/c-c++-common/torture/pr58794-1.c        (.../tags/gcc_4_8_2_release)
 
10310
+++ b/src/gcc/testsuite/c-c++-common/torture/pr58794-1.c        (.../branches/gcc-4_8-branch)
 
10311
@@ -0,0 +1,29 @@
 
10312
+/* { dg-do compile } */
 
10313
+
 
10314
+struct S0
 
10315
+{
 
10316
+  int f;
 
10317
+};
 
10318
+
 
10319
+struct S1
 
10320
+{
 
10321
+  struct S0 f1;
 
10322
+  volatile int f2;
 
10323
+};
 
10324
+
 
10325
+struct S2
 
10326
+{
 
10327
+  struct S1 g;
 
10328
+} a, b; 
 
10329
+
 
10330
+static int *c[1][2] = {{0, (int *)&a.g.f2}};
 
10331
+static int d; 
 
10332
+
 
10333
+int
 
10334
+main ()
 
10335
+{
 
10336
+  for (d = 0; d < 1; d++)
 
10337
+    for (b.g.f1.f = 0; b.g.f1.f < 1; b.g.f1.f++)
 
10338
+      *c[b.g.f1.f][d + 1] = 0;
 
10339
+  return 0;
 
10340
+}
 
10341
Index: gcc/testsuite/c-c++-common/torture/pr58794-2.c
 
10342
===================================================================
 
10343
--- a/src/gcc/testsuite/c-c++-common/torture/pr58794-2.c        (.../tags/gcc_4_8_2_release)
 
10344
+++ b/src/gcc/testsuite/c-c++-common/torture/pr58794-2.c        (.../branches/gcc-4_8-branch)
 
10345
@@ -0,0 +1,21 @@
 
10346
+/* { dg-do compile } */
 
10347
+
 
10348
+struct S 
 
10349
+{
 
10350
+  volatile int f;
 
10351
+} a;
 
10352
+
 
10353
+unsigned int b;
 
10354
+
 
10355
+static int *c[1][2] = {{0, (int *)&a.f}};
 
10356
+static unsigned int d;
 
10357
+
 
10358
+int 
 
10359
+main ()
 
10360
+{
 
10361
+  for (; d < 1; d++)
 
10362
+    for (; b < 1; b++)
 
10363
+      *c[b][d + 1] = 0;
 
10364
+
 
10365
+  return 0;
 
10366
+}
 
10367
Index: gcc/testsuite/c-c++-common/gomp/pr59467.c
 
10368
===================================================================
 
10369
--- a/src/gcc/testsuite/c-c++-common/gomp/pr59467.c     (.../tags/gcc_4_8_2_release)
 
10370
+++ b/src/gcc/testsuite/c-c++-common/gomp/pr59467.c     (.../branches/gcc-4_8-branch)
 
10371
@@ -0,0 +1,68 @@
 
10372
+/* PR libgomp/59467 */
 
10373
+
 
10374
+int v;
 
10375
+
 
10376
+void
 
10377
+foo (void)
 
10378
+{
 
10379
+  int x = 0, y = 0;
 
10380
+  #pragma omp parallel
 
10381
+  {
 
10382
+    int z;
 
10383
+    #pragma omp single copyprivate (x) /* { dg-error "is not threadprivate or private in outer context" } */
 
10384
+    {
 
10385
+      #pragma omp atomic write
 
10386
+       x = 6;
 
10387
+    }
 
10388
+    #pragma omp atomic read
 
10389
+    z = x;
 
10390
+    #pragma omp atomic
 
10391
+    y += z;
 
10392
+  }
 
10393
+  #pragma omp parallel
 
10394
+  {
 
10395
+    int z;
 
10396
+    #pragma omp single copyprivate (v) /* { dg-error "is not threadprivate or private in outer context" } */
 
10397
+    {
 
10398
+      #pragma omp atomic write
 
10399
+       v = 6;
 
10400
+    }
 
10401
+    #pragma omp atomic read
 
10402
+    z = v;
 
10403
+    #pragma omp atomic
 
10404
+    y += z;
 
10405
+  }
 
10406
+  #pragma omp parallel private (x)
 
10407
+  {
 
10408
+    int z;
 
10409
+    #pragma omp single copyprivate (x)
 
10410
+    {
 
10411
+      #pragma omp atomic write
 
10412
+       x = 6;
 
10413
+    }
 
10414
+    #pragma omp atomic read
 
10415
+    z = x;
 
10416
+    #pragma omp atomic
 
10417
+    y += z;
 
10418
+  }
 
10419
+  x = 0;
 
10420
+  #pragma omp parallel reduction (+:x)
 
10421
+  {
 
10422
+    #pragma omp single copyprivate (x)
 
10423
+    {
 
10424
+      #pragma omp atomic write
 
10425
+       x = 6;
 
10426
+    }
 
10427
+    #pragma omp atomic
 
10428
+    y += x;
 
10429
+  }
 
10430
+  #pragma omp single copyprivate (x)
 
10431
+  {
 
10432
+    x = 7;
 
10433
+  }
 
10434
+  #pragma omp single copyprivate (v)   /* { dg-error "is not threadprivate or private in outer context" } */
 
10435
+  {
 
10436
+    #pragma omp atomic write
 
10437
+      v = 6;
 
10438
+  }
 
10439
+}
 
10440
Index: gcc/testsuite/c-c++-common/pr59032.c
 
10441
===================================================================
 
10442
--- a/src/gcc/testsuite/c-c++-common/pr59032.c  (.../tags/gcc_4_8_2_release)
 
10443
+++ b/src/gcc/testsuite/c-c++-common/pr59032.c  (.../branches/gcc-4_8-branch)
 
10444
@@ -0,0 +1,30 @@
 
10445
+/* { dg-do compile } */
 
10446
+/* { dg-options "-O2" } */
 
10447
+
 
10448
+void
 
10449
+foo()
 
10450
+{
 
10451
+  float v __attribute__((vector_size(8)));
 
10452
+  v++;
 
10453
+}
 
10454
+
 
10455
+void
 
10456
+foo2 ()
 
10457
+{
 
10458
+  float v __attribute__((vector_size(8)));
 
10459
+  ++v;
 
10460
+}
 
10461
+
 
10462
+void
 
10463
+foo3 ()
 
10464
+{
 
10465
+  float v __attribute__((vector_size(8)));
 
10466
+  v--;
 
10467
+}
 
10468
+
 
10469
+void
 
10470
+foo4 ()
 
10471
+{
 
10472
+  float v __attribute__((vector_size(8)));
 
10473
+  --v;
 
10474
+}
 
10475
Index: gcc/cp/typeck.c
 
10476
===================================================================
 
10477
--- a/src/gcc/cp/typeck.c       (.../tags/gcc_4_8_2_release)
 
10478
+++ b/src/gcc/cp/typeck.c       (.../branches/gcc-4_8-branch)
 
10479
@@ -5588,7 +5588,9 @@
 
10480
            inc = cxx_sizeof_nowarn (TREE_TYPE (argtype));
 
10481
          }
 
10482
        else
 
10483
-         inc = integer_one_node;
 
10484
+         inc = (TREE_CODE (argtype) == VECTOR_TYPE
 
10485
+                ? build_one_cst (argtype)
 
10486
+                : integer_one_node);
 
10487
 
 
10488
        inc = cp_convert (argtype, inc, complain);
 
10489
 
 
10490
@@ -7611,7 +7613,7 @@
 
10491
   /* Handle null pointer to member function conversions.  */
 
10492
   if (null_ptr_cst_p (pfn))
 
10493
     {
 
10494
-      pfn = build_c_cast (input_location, type, pfn);
 
10495
+      pfn = cp_build_c_cast (type, pfn, complain);
 
10496
       return build_ptrmemfunc1 (to_type,
 
10497
                                integer_zero_node,
 
10498
                                pfn);
 
10499
Index: gcc/cp/except.c
 
10500
===================================================================
 
10501
--- a/src/gcc/cp/except.c       (.../tags/gcc_4_8_2_release)
 
10502
+++ b/src/gcc/cp/except.c       (.../branches/gcc-4_8-branch)
 
10503
@@ -380,6 +380,9 @@
 
10504
 {
 
10505
   tree type = body ? TREE_TYPE (body) : void_type_node;
 
10506
 
 
10507
+  if (!flag_exceptions)
 
10508
+    return body;
 
10509
+
 
10510
   if (cond && !value_dependent_expression_p (cond))
 
10511
     {
 
10512
       cond = cxx_constant_value (cond);
 
10513
Index: gcc/cp/ChangeLog
 
10514
===================================================================
 
10515
--- a/src/gcc/cp/ChangeLog      (.../tags/gcc_4_8_2_release)
 
10516
+++ b/src/gcc/cp/ChangeLog      (.../branches/gcc-4_8-branch)
 
10517
@@ -1,3 +1,78 @@
 
10518
+2013-12-05  Jason Merrill  <jason@redhat.com>
 
10519
+
 
10520
+       PR c++/59044
 
10521
+       PR c++/59052
 
10522
+       * pt.c (most_specialized_class): Use the partially instantiated
 
10523
+       template for deduction.  Drop the TMPL parameter.
 
10524
+
 
10525
+2013-12-04  Jakub Jelinek  <jakub@redhat.com>
 
10526
+
 
10527
+       PR c++/59268
 
10528
+       * pt.c (tsubst_copy_and_build): Handle POINTER_PLUS_EXPR.
 
10529
+
 
10530
+2013-11-27  Tom de Vries  <tom@codesourcery.com>
 
10531
+           Marc Glisse  <marc.glisse@inria.fr>
 
10532
+
 
10533
+       PR c++/59032
 
10534
+       * typeck.c (cp_build_unary_op): Allow vector increment and decrement.
 
10535
+
 
10536
+2013-11-27  Tom de Vries  <tom@codesourcery.com>
 
10537
+           Marc Glisse  <marc.glisse@inria.fr>
 
10538
+
 
10539
+       PR middle-end/59037
 
10540
+       * semantics.c (cxx_fold_indirect_ref): Don't create out-of-bounds
 
10541
+       BIT_FIELD_REF.
 
10542
+
 
10543
+2013-11-28  Jakub Jelinek  <jakub@redhat.com>
 
10544
+
 
10545
+       PR c++/59297
 
10546
+       * semantics.c (finish_omp_atomic): Call finish_expr_stmt
 
10547
+       rather than add_stmt.
 
10548
+
 
10549
+2013-11-23  Easwaran Raman  <eraman@google.com>
 
10550
+
 
10551
+       PR c++/59031
 
10552
+       * call.c (build_new_method_call_1): Comnpare function context
 
10553
+       with BASELINK_BINFO type rather than instance type before
 
10554
+       marking the call with LOOKUP_NONVIRTUAL.
 
10555
+
 
10556
+2013-10-31  Jason Merrill  <jason@redhat.com>
 
10557
+
 
10558
+       PR c++/58162
 
10559
+       * parser.c (cp_parser_late_parse_one_default_arg): Set
 
10560
+       TARGET_EXPR_DIRECT_INIT_P.
 
10561
+
 
10562
+2013-11-11  Paolo Carlini  <paolo.carlini@oracle.com>
 
10563
+
 
10564
+       * cvt.c (cp_convert_to_pointer): Call build_ptrmemfunc before
 
10565
+       maybe_warn_zero_as_null_pointer_constant to avoid duplicate
 
10566
+       -Wzero-as-null-pointer-constant diagnostics.
 
10567
+
 
10568
+       * typeck.c (build_ptrmemfunc): Use cp_build_c_cast.
 
10569
+
 
10570
+2013-10-25  Tom de Vries  <tom@codesourcery.com>
 
10571
+
 
10572
+       PR c++/58282
 
10573
+       * except.c (build_must_not_throw_expr): Handle
 
10574
+       flag_exceptions.
 
10575
+
 
10576
+2013-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
 
10577
+
 
10578
+       PR c++/58596
 
10579
+       * semantics.c (lambda_expr_this_capture): Handle NSDMIs in the
 
10580
+       cp_unevaluated_operand case.
 
10581
+
 
10582
+2013-10-16  Paolo Carlini  <paolo.carlini@oracle.com>
 
10583
+
 
10584
+       PR c++/58633
 
10585
+       * parser.c (cp_parser_pseudo_destructor_name): Revert r174385 changes.
 
10586
+
 
10587
+2013-10-16  Jason Merrill  <jason@redhat.com>
 
10588
+
 
10589
+       PR c++/57850
 
10590
+       * decl2.c (dump_tu): Split out from...
 
10591
+       (cp_write_global_declarations): ...here.  Call it in PCH mode.
 
10592
+
 
10593
 2013-10-16  Release Manager
 
10594
 
 
10595
        * GCC 4.8.2 released.
 
10596
Index: gcc/cp/pt.c
 
10597
===================================================================
 
10598
--- a/src/gcc/cp/pt.c   (.../tags/gcc_4_8_2_release)
 
10599
+++ b/src/gcc/cp/pt.c   (.../branches/gcc-4_8-branch)
 
10600
@@ -170,7 +170,7 @@
 
10601
 static tree tsubst_template_args (tree, tree, tsubst_flags_t, tree);
 
10602
 static tree tsubst_template_parms (tree, tree, tsubst_flags_t);
 
10603
 static void regenerate_decl_from_template (tree, tree);
 
10604
-static tree most_specialized_class (tree, tree, tsubst_flags_t);
 
10605
+static tree most_specialized_class (tree, tsubst_flags_t);
 
10606
 static tree tsubst_aggr_type (tree, tree, tsubst_flags_t, tree, int);
 
10607
 static tree tsubst_arg_types (tree, tree, tree, tsubst_flags_t, tree);
 
10608
 static tree tsubst_function_type (tree, tree, tsubst_flags_t, tree);
 
10609
@@ -4261,7 +4261,7 @@
 
10610
       if (COMPLETE_TYPE_P (inst_type)
 
10611
          && CLASSTYPE_IMPLICIT_INSTANTIATION (inst_type))
 
10612
        {
 
10613
-         tree spec = most_specialized_class (inst_type, maintmpl, tf_none);
 
10614
+         tree spec = most_specialized_class (inst_type, tf_none);
 
10615
          if (spec && TREE_TYPE (spec) == type)
 
10616
            permerror (input_location,
 
10617
                       "partial specialization of %qT after instantiation "
 
10618
@@ -8572,7 +8572,7 @@
 
10619
 
 
10620
   /* Determine what specialization of the original template to
 
10621
      instantiate.  */
 
10622
-  t = most_specialized_class (type, templ, tf_warning_or_error);
 
10623
+  t = most_specialized_class (type, tf_warning_or_error);
 
10624
   if (t == error_mark_node)
 
10625
     {
 
10626
       TYPE_BEING_DEFINED (type) = 1;
 
10627
@@ -13710,6 +13710,10 @@
 
10628
        RETURN (r);
 
10629
       }
 
10630
 
 
10631
+    case POINTER_PLUS_EXPR:
 
10632
+      return fold_build_pointer_plus (RECUR (TREE_OPERAND (t, 0)),
 
10633
+                                     RECUR (TREE_OPERAND (t, 1)));
 
10634
+
 
10635
     case SCOPE_REF:
 
10636
       RETURN (tsubst_qualified_id (t, args, complain, in_decl, /*done=*/true,
 
10637
                                  /*address_p=*/false));
 
10638
@@ -17553,7 +17557,7 @@
 
10639
     return -1;
 
10640
 }
 
10641
 
 
10642
-/* Determine which of two partial specializations of MAIN_TMPL is more
 
10643
+/* Determine which of two partial specializations of TMPL is more
 
10644
    specialized.
 
10645
 
 
10646
    PAT1 is a TREE_LIST whose TREE_TYPE is the _TYPE node corresponding
 
10647
@@ -17569,7 +17573,7 @@
 
10648
    two templates is more specialized.  */
 
10649
 
 
10650
 static int
 
10651
-more_specialized_class (tree main_tmpl, tree pat1, tree pat2)
 
10652
+more_specialized_class (tree tmpl, tree pat1, tree pat2)
 
10653
 {
 
10654
   tree targs;
 
10655
   tree tmpl1, tmpl2;
 
10656
@@ -17584,7 +17588,7 @@
 
10657
      types in the arguments, and we need our dependency check functions
 
10658
      to behave correctly.  */
 
10659
   ++processing_template_decl;
 
10660
-  targs = get_class_bindings (main_tmpl, TREE_VALUE (pat1),
 
10661
+  targs = get_class_bindings (tmpl, TREE_VALUE (pat1),
 
10662
                              CLASSTYPE_TI_ARGS (tmpl1),
 
10663
                              CLASSTYPE_TI_ARGS (tmpl2));
 
10664
   if (targs)
 
10665
@@ -17593,7 +17597,7 @@
 
10666
       any_deductions = true;
 
10667
     }
 
10668
 
 
10669
-  targs = get_class_bindings (main_tmpl, TREE_VALUE (pat2),
 
10670
+  targs = get_class_bindings (tmpl, TREE_VALUE (pat2),
 
10671
                              CLASSTYPE_TI_ARGS (tmpl2),
 
10672
                              CLASSTYPE_TI_ARGS (tmpl1));
 
10673
   if (targs)
 
10674
@@ -17673,7 +17677,7 @@
 
10675
 }
 
10676
 
 
10677
 /* Return the innermost template arguments that, when applied to a partial
 
10678
-   specialization of MAIN_TMPL whose innermost template parameters are
 
10679
+   specialization of TMPL whose innermost template parameters are
 
10680
    TPARMS, and whose specialization arguments are SPEC_ARGS, yield the
 
10681
    ARGS.
 
10682
 
 
10683
@@ -17688,7 +17692,7 @@
 
10684
    is bound to `double'.  */
 
10685
 
 
10686
 static tree
 
10687
-get_class_bindings (tree main_tmpl, tree tparms, tree spec_args, tree args)
 
10688
+get_class_bindings (tree tmpl, tree tparms, tree spec_args, tree args)
 
10689
 {
 
10690
   int i, ntparms = TREE_VEC_LENGTH (tparms);
 
10691
   tree deduced_args;
 
10692
@@ -17728,8 +17732,8 @@
 
10693
      `T' is `A' but unify () does not check whether `typename T::X'
 
10694
      is `int'.  */
 
10695
   spec_args = tsubst (spec_args, deduced_args, tf_none, NULL_TREE);
 
10696
-  spec_args = coerce_template_parms (DECL_INNERMOST_TEMPLATE_PARMS (main_tmpl),
 
10697
-                                    spec_args, main_tmpl,
 
10698
+  spec_args = coerce_template_parms (DECL_INNERMOST_TEMPLATE_PARMS (tmpl),
 
10699
+                                    spec_args, tmpl,
 
10700
                                     tf_none, false, false);
 
10701
   if (spec_args == error_mark_node
 
10702
       /* We only need to check the innermost arguments; the other
 
10703
@@ -17877,30 +17881,30 @@
 
10704
 }
 
10705
 
 
10706
 /* Return the most specialized of the class template partial
 
10707
-   specializations of TMPL which can produce TYPE, a specialization of
 
10708
-   TMPL.  The value returned is actually a TREE_LIST; the TREE_TYPE is
 
10709
+   specializations which can produce TYPE, a specialization of some class
 
10710
+   template.  The value returned is actually a TREE_LIST; the TREE_TYPE is
 
10711
    a _TYPE node corresponding to the partial specialization, while the
 
10712
    TREE_PURPOSE is the set of template arguments that must be
 
10713
    substituted into the TREE_TYPE in order to generate TYPE.
 
10714
 
 
10715
    If the choice of partial specialization is ambiguous, a diagnostic
 
10716
    is issued, and the error_mark_node is returned.  If there are no
 
10717
-   partial specializations of TMPL matching TYPE, then NULL_TREE is
 
10718
-   returned.  */
 
10719
+   partial specializations matching TYPE, then NULL_TREE is
 
10720
+   returned, indicating that the primary template should be used.  */
 
10721
 
 
10722
 static tree
 
10723
-most_specialized_class (tree type, tree tmpl, tsubst_flags_t complain)
 
10724
+most_specialized_class (tree type, tsubst_flags_t complain)
 
10725
 {
 
10726
   tree list = NULL_TREE;
 
10727
   tree t;
 
10728
   tree champ;
 
10729
   int fate;
 
10730
   bool ambiguous_p;
 
10731
-  tree args;
 
10732
   tree outer_args = NULL_TREE;
 
10733
 
 
10734
-  tmpl = most_general_template (tmpl);
 
10735
-  args = CLASSTYPE_TI_ARGS (type);
 
10736
+  tree tmpl = CLASSTYPE_TI_TEMPLATE (type);
 
10737
+  tree main_tmpl = most_general_template (tmpl);
 
10738
+  tree args = CLASSTYPE_TI_ARGS (type);
 
10739
 
 
10740
   /* For determining which partial specialization to use, only the
 
10741
      innermost args are interesting.  */
 
10742
@@ -17910,7 +17914,7 @@
 
10743
       args = INNERMOST_TEMPLATE_ARGS (args);
 
10744
     }
 
10745
 
 
10746
-  for (t = DECL_TEMPLATE_SPECIALIZATIONS (tmpl); t; t = TREE_CHAIN (t))
 
10747
+  for (t = DECL_TEMPLATE_SPECIALIZATIONS (main_tmpl); t; t = TREE_CHAIN (t))
 
10748
     {
 
10749
       tree partial_spec_args;
 
10750
       tree spec_args;
 
10751
@@ -17944,8 +17948,7 @@
 
10752
 
 
10753
       partial_spec_args =
 
10754
          coerce_template_parms (DECL_INNERMOST_TEMPLATE_PARMS (tmpl),
 
10755
-                                add_to_template_args (outer_args,
 
10756
-                                                      partial_spec_args),
 
10757
+                                partial_spec_args,
 
10758
                                 tmpl, tf_none,
 
10759
                                 /*require_all_args=*/true,
 
10760
                                 /*use_default_args=*/true);
 
10761
Index: gcc/cp/semantics.c
 
10762
===================================================================
 
10763
--- a/src/gcc/cp/semantics.c    (.../tags/gcc_4_8_2_release)
 
10764
+++ b/src/gcc/cp/semantics.c    (.../branches/gcc-4_8-branch)
 
10765
@@ -5059,7 +5059,7 @@
 
10766
        }
 
10767
       stmt = build2 (OMP_ATOMIC, void_type_node, integer_zero_node, stmt);
 
10768
     }
 
10769
-  add_stmt (stmt);
 
10770
+  finish_expr_stmt (stmt);
 
10771
 }
 
10772
 
 
10773
 void
 
10774
@@ -7543,7 +7543,7 @@
 
10775
              unsigned HOST_WIDE_INT indexi = offset * BITS_PER_UNIT;
 
10776
              tree index = bitsize_int (indexi);
 
10777
 
 
10778
-             if (offset/part_widthi <= TYPE_VECTOR_SUBPARTS (op00type))
 
10779
+             if (offset / part_widthi < TYPE_VECTOR_SUBPARTS (op00type))
 
10780
                return fold_build3_loc (loc,
 
10781
                                        BIT_FIELD_REF, type, op00,
 
10782
                                        part_width, index);
 
10783
@@ -9481,7 +9481,14 @@
 
10784
   /* In unevaluated context this isn't an odr-use, so just return the
 
10785
      nearest 'this'.  */
 
10786
   if (cp_unevaluated_operand)
 
10787
-    return lookup_name (this_identifier);
 
10788
+    {
 
10789
+      /* In an NSDMI the fake 'this' pointer that we're using for
 
10790
+        parsing is in scope_chain.  */
 
10791
+      if (LAMBDA_EXPR_EXTRA_SCOPE (lambda)
 
10792
+         && TREE_CODE (LAMBDA_EXPR_EXTRA_SCOPE (lambda)) == FIELD_DECL)
 
10793
+       return scope_chain->x_current_class_ptr;
 
10794
+      return lookup_name (this_identifier);
 
10795
+    }
 
10796
 
 
10797
   /* Try to default capture 'this' if we can.  */
 
10798
   if (!this_capture
 
10799
Index: gcc/cp/decl2.c
 
10800
===================================================================
 
10801
--- a/src/gcc/cp/decl2.c        (.../tags/gcc_4_8_2_release)
 
10802
+++ b/src/gcc/cp/decl2.c        (.../branches/gcc-4_8-branch)
 
10803
@@ -3960,6 +3960,22 @@
 
10804
   expand_or_defer_fn (finish_function (0));
 
10805
 }
 
10806
 
 
10807
+/* The entire file is now complete.  If requested, dump everything
 
10808
+   to a file.  */
 
10809
+
 
10810
+static void
 
10811
+dump_tu (void)
 
10812
+{
 
10813
+  int flags;
 
10814
+  FILE *stream = dump_begin (TDI_tu, &flags);
 
10815
+
 
10816
+  if (stream)
 
10817
+    {
 
10818
+      dump_node (global_namespace, flags & ~TDF_SLIM, stream);
 
10819
+      dump_end (TDI_tu, stream);
 
10820
+    }
 
10821
+}
 
10822
+
 
10823
 /* This routine is called at the end of compilation.
 
10824
    Its job is to create all the code needed to initialize and
 
10825
    destroy the global aggregates.  We do the destruction
 
10826
@@ -3990,6 +4006,7 @@
 
10827
   if (pch_file)
 
10828
     {
 
10829
       c_common_write_pch ();
 
10830
+      dump_tu ();
 
10831
       return;
 
10832
     }
 
10833
 
 
10834
@@ -4359,17 +4376,8 @@
 
10835
 
 
10836
   /* The entire file is now complete.  If requested, dump everything
 
10837
      to a file.  */
 
10838
-  {
 
10839
-    int flags;
 
10840
-    FILE *stream = dump_begin (TDI_tu, &flags);
 
10841
+  dump_tu ();
 
10842
 
 
10843
-    if (stream)
 
10844
-      {
 
10845
-       dump_node (global_namespace, flags & ~TDF_SLIM, stream);
 
10846
-       dump_end (TDI_tu, stream);
 
10847
-      }
 
10848
-  }
 
10849
-
 
10850
   if (flag_detailed_statistics)
 
10851
     {
 
10852
       dump_tree_statistics ();
 
10853
Index: gcc/cp/parser.c
 
10854
===================================================================
 
10855
--- a/src/gcc/cp/parser.c       (.../tags/gcc_4_8_2_release)
 
10856
+++ b/src/gcc/cp/parser.c       (.../branches/gcc-4_8-branch)
 
10857
@@ -6421,10 +6421,6 @@
 
10858
   /* Look for the `~'.  */
 
10859
   cp_parser_require (parser, CPP_COMPL, RT_COMPL);
 
10860
 
 
10861
-  /* Once we see the ~, this has to be a pseudo-destructor.  */
 
10862
-  if (!processing_template_decl && !cp_parser_error_occurred (parser))
 
10863
-    cp_parser_commit_to_tentative_parse (parser);
 
10864
-
 
10865
   /* Look for the type-name again.  We are not responsible for
 
10866
      checking that it matches the first type-name.  */
 
10867
   *type = cp_parser_nonclass_name (parser);
 
10868
@@ -22576,6 +22572,9 @@
 
10869
              && CONSTRUCTOR_IS_DIRECT_INIT (parsed_arg))
 
10870
            flags = LOOKUP_NORMAL;
 
10871
          parsed_arg = digest_init_flags (TREE_TYPE (decl), parsed_arg, flags);
 
10872
+         if (TREE_CODE (parsed_arg) == TARGET_EXPR)
 
10873
+           /* This represents the whole initialization.  */
 
10874
+           TARGET_EXPR_DIRECT_INIT_P (parsed_arg) = true;
 
10875
        }
 
10876
     }
 
10877
 
 
10878
Index: gcc/cp/call.c
 
10879
===================================================================
 
10880
--- a/src/gcc/cp/call.c (.../tags/gcc_4_8_2_release)
 
10881
+++ b/src/gcc/cp/call.c (.../branches/gcc-4_8-branch)
 
10882
@@ -7414,7 +7414,7 @@
 
10883
   struct z_candidate *candidates = 0, *cand;
 
10884
   tree explicit_targs = NULL_TREE;
 
10885
   tree basetype = NULL_TREE;
 
10886
-  tree access_binfo;
 
10887
+  tree access_binfo, binfo;
 
10888
   tree optype;
 
10889
   tree first_mem_arg = NULL_TREE;
 
10890
   tree instance_ptr;
 
10891
@@ -7454,6 +7454,7 @@
 
10892
   if (!conversion_path)
 
10893
     conversion_path = BASELINK_BINFO (fns);
 
10894
   access_binfo = BASELINK_ACCESS_BINFO (fns);
 
10895
+  binfo = BASELINK_BINFO (fns);
 
10896
   optype = BASELINK_OPTYPE (fns);
 
10897
   fns = BASELINK_FUNCTIONS (fns);
 
10898
   if (TREE_CODE (fns) == TEMPLATE_ID_EXPR)
 
10899
@@ -7697,13 +7698,13 @@
 
10900
            {
 
10901
              /* Optimize away vtable lookup if we know that this
 
10902
                 function can't be overridden.  We need to check if
 
10903
-                the context and the instance type are the same,
 
10904
+                the context and the type where we found fn are the same,
 
10905
                 actually FN might be defined in a different class
 
10906
                 type because of a using-declaration. In this case, we
 
10907
                 do not want to perform a non-virtual call.  */
 
10908
              if (DECL_VINDEX (fn) && ! (flags & LOOKUP_NONVIRTUAL)
 
10909
                  && same_type_ignoring_top_level_qualifiers_p
 
10910
-                 (DECL_CONTEXT (fn), TREE_TYPE (instance))
 
10911
+                 (DECL_CONTEXT (fn), BINFO_TYPE (binfo))
 
10912
                  && resolves_to_fixed_type_p (instance, 0))
 
10913
                flags |= LOOKUP_NONVIRTUAL;
 
10914
               if (explicit_targs)
 
10915
Index: gcc/cp/cvt.c
 
10916
===================================================================
 
10917
--- a/src/gcc/cp/cvt.c  (.../tags/gcc_4_8_2_release)
 
10918
+++ b/src/gcc/cp/cvt.c  (.../branches/gcc-4_8-branch)
 
10919
@@ -203,13 +203,13 @@
 
10920
 
 
10921
   if (null_ptr_cst_p (expr))
 
10922
     {
 
10923
-      if (complain & tf_warning)
 
10924
-       maybe_warn_zero_as_null_pointer_constant (expr, loc);
 
10925
-
 
10926
       if (TYPE_PTRMEMFUNC_P (type))
 
10927
        return build_ptrmemfunc (TYPE_PTRMEMFUNC_FN_TYPE (type), expr, 0,
 
10928
                                 /*c_cast_p=*/false, complain);
 
10929
 
 
10930
+      if (complain & tf_warning)
 
10931
+       maybe_warn_zero_as_null_pointer_constant (expr, loc);
 
10932
+
 
10933
       /* A NULL pointer-to-data-member is represented by -1, not by
 
10934
         zero.  */
 
10935
       tree val = (TYPE_PTRDATAMEM_P (type)
 
10936
Index: gcc/cp/cp-tree.h
 
10937
===================================================================
 
10938
--- a/src/gcc/cp/cp-tree.h      (.../tags/gcc_4_8_2_release)
 
10939
+++ b/src/gcc/cp/cp-tree.h      (.../branches/gcc-4_8-branch)
 
10940
@@ -344,7 +344,8 @@
 
10941
 /* Returns true iff NODE is a BASELINK.  */
 
10942
 #define BASELINK_P(NODE) \
 
10943
   (TREE_CODE (NODE) == BASELINK)
 
10944
-/* The BINFO indicating the base from which the BASELINK_FUNCTIONS came.  */
 
10945
+/* The BINFO indicating the base in which lookup found the
 
10946
+   BASELINK_FUNCTIONS.  */
 
10947
 #define BASELINK_BINFO(NODE) \
 
10948
   (((struct tree_baselink*) BASELINK_CHECK (NODE))->binfo)
 
10949
 /* The functions referred to by the BASELINK; either a FUNCTION_DECL,
 
10950
Index: gcc/mode-switching.c
 
10951
===================================================================
 
10952
--- a/src/gcc/mode-switching.c  (.../tags/gcc_4_8_2_release)
 
10953
+++ b/src/gcc/mode-switching.c  (.../branches/gcc-4_8-branch)
 
10954
@@ -568,12 +568,15 @@
 
10955
 
 
10956
          info[bb->index].computing = last_mode;
 
10957
          /* Check for blocks without ANY mode requirements.
 
10958
-            N.B. because of MODE_AFTER, last_mode might still be different
 
10959
-            from no_mode.  */
 
10960
+            N.B. because of MODE_AFTER, last_mode might still
 
10961
+            be different from no_mode, in which case we need to
 
10962
+            mark the block as nontransparent.  */
 
10963
          if (!any_set_required)
 
10964
            {
 
10965
              ptr = new_seginfo (no_mode, BB_END (bb), bb->index, live_now);
 
10966
              add_seginfo (info + bb->index, ptr);
 
10967
+             if (last_mode != no_mode)
 
10968
+               bitmap_clear_bit (transp[bb->index], j);
 
10969
            }
 
10970
        }
 
10971
 #if defined (MODE_ENTRY) && defined (MODE_EXIT)
 
10972
Index: gcc/config.in
 
10973
===================================================================
 
10974
--- a/src/gcc/config.in (.../tags/gcc_4_8_2_release)
 
10975
+++ b/src/gcc/config.in (.../branches/gcc-4_8-branch)
 
10976
@@ -375,6 +375,12 @@
 
10977
 #endif
 
10978
 
 
10979
 
 
10980
+/* Define if your assembler supports LEON instructions. */
 
10981
+#ifndef USED_FOR_TARGET
 
10982
+#undef HAVE_AS_LEON
 
10983
+#endif
 
10984
+
 
10985
+
 
10986
 /* Define if the assembler won't complain about a line such as # 0 "" 2. */
 
10987
 #ifndef USED_FOR_TARGET
 
10988
 #undef HAVE_AS_LINE_ZERO
 
10989
Index: gcc/expr.c
 
10990
===================================================================
 
10991
--- a/src/gcc/expr.c    (.../tags/gcc_4_8_2_release)
 
10992
+++ b/src/gcc/expr.c    (.../branches/gcc-4_8-branch)
 
10993
@@ -1994,12 +1994,14 @@
 
10994
       HOST_WIDE_INT bytepos = INTVAL (XEXP (XVECEXP (src, 0, i), 1));
 
10995
       enum machine_mode mode = GET_MODE (tmps[i]);
 
10996
       unsigned int bytelen = GET_MODE_SIZE (mode);
 
10997
-      unsigned int adj_bytelen = bytelen;
 
10998
+      unsigned int adj_bytelen;
 
10999
       rtx dest = dst;
 
11000
 
 
11001
       /* Handle trailing fragments that run over the size of the struct.  */
 
11002
       if (ssize >= 0 && bytepos + (HOST_WIDE_INT) bytelen > ssize)
 
11003
        adj_bytelen = ssize - bytepos;
 
11004
+      else
 
11005
+       adj_bytelen = bytelen;
 
11006
 
 
11007
       if (GET_CODE (dst) == CONCAT)
 
11008
        {
 
11009
@@ -2040,6 +2042,7 @@
 
11010
            }
 
11011
        }
 
11012
 
 
11013
+      /* Handle trailing fragments that run over the size of the struct.  */
 
11014
       if (ssize >= 0 && bytepos + (HOST_WIDE_INT) bytelen > ssize)
 
11015
        {
 
11016
          /* store_bit_field always takes its value from the lsb.
 
11017
@@ -2057,16 +2060,22 @@
 
11018
              tmps[i] = expand_shift (RSHIFT_EXPR, mode, tmps[i],
 
11019
                                      shift, tmps[i], 0);
 
11020
            }
 
11021
-         bytelen = adj_bytelen;
 
11022
+
 
11023
+         /* Make sure not to write past the end of the struct.  */
 
11024
+         store_bit_field (dest,
 
11025
+                          adj_bytelen * BITS_PER_UNIT, bytepos * BITS_PER_UNIT,
 
11026
+                          bytepos * BITS_PER_UNIT, ssize * BITS_PER_UNIT - 1,
 
11027
+                          VOIDmode, tmps[i]);
 
11028
        }
 
11029
 
 
11030
       /* Optimize the access just a bit.  */
 
11031
-      if (MEM_P (dest)
 
11032
-         && (! SLOW_UNALIGNED_ACCESS (mode, MEM_ALIGN (dest))
 
11033
-             || MEM_ALIGN (dest) >= GET_MODE_ALIGNMENT (mode))
 
11034
-         && bytepos * BITS_PER_UNIT % GET_MODE_ALIGNMENT (mode) == 0
 
11035
-         && bytelen == GET_MODE_SIZE (mode))
 
11036
+      else if (MEM_P (dest)
 
11037
+              && (!SLOW_UNALIGNED_ACCESS (mode, MEM_ALIGN (dest))
 
11038
+                  || MEM_ALIGN (dest) >= GET_MODE_ALIGNMENT (mode))
 
11039
+              && bytepos * BITS_PER_UNIT % GET_MODE_ALIGNMENT (mode) == 0
 
11040
+              && bytelen == GET_MODE_SIZE (mode))
 
11041
        emit_move_insn (adjust_address (dest, mode, bytepos), tmps[i]);
 
11042
+
 
11043
       else
 
11044
        store_bit_field (dest, bytelen * BITS_PER_UNIT, bytepos * BITS_PER_UNIT,
 
11045
                         0, 0, mode, tmps[i]);
 
11046
@@ -4551,19 +4560,19 @@
 
11047
                - tree_low_cst (DECL_FIELD_BIT_OFFSET (repr), 1));
 
11048
 
 
11049
   /* If the adjustment is larger than bitpos, we would have a negative bit
 
11050
-     position for the lower bound and this may wreak havoc later.  This can
 
11051
-     occur only if we have a non-null offset, so adjust offset and bitpos
 
11052
-     to make the lower bound non-negative.  */
 
11053
+     position for the lower bound and this may wreak havoc later.  Adjust
 
11054
+     offset and bitpos to make the lower bound non-negative in that case.  */
 
11055
   if (bitoffset > *bitpos)
 
11056
     {
 
11057
       HOST_WIDE_INT adjust = bitoffset - *bitpos;
 
11058
-
 
11059
       gcc_assert ((adjust % BITS_PER_UNIT) == 0);
 
11060
-      gcc_assert (*offset != NULL_TREE);
 
11061
 
 
11062
       *bitpos += adjust;
 
11063
-      *offset
 
11064
-       = size_binop (MINUS_EXPR, *offset, size_int (adjust / BITS_PER_UNIT));
 
11065
+      if (*offset == NULL_TREE)
 
11066
+       *offset = size_int (-adjust / BITS_PER_UNIT);
 
11067
+      else
 
11068
+       *offset
 
11069
+         = size_binop (MINUS_EXPR, *offset, size_int (adjust / BITS_PER_UNIT));
 
11070
       *bitstart = 0;
 
11071
     }
 
11072
   else
 
11073
@@ -4668,8 +4677,7 @@
 
11074
          expand_insn (icode, 2, ops);
 
11075
        }
 
11076
       else
 
11077
-       store_bit_field (mem, GET_MODE_BITSIZE (mode),
 
11078
-                        0, 0, 0, mode, reg);
 
11079
+       store_bit_field (mem, GET_MODE_BITSIZE (mode), 0, 0, 0, mode, reg);
 
11080
       return;
 
11081
     }
 
11082
 
 
11083
@@ -4698,6 +4706,15 @@
 
11084
       tem = get_inner_reference (to, &bitsize, &bitpos, &offset, &mode1,
 
11085
                                 &unsignedp, &volatilep, true);
 
11086
 
 
11087
+      /* Make sure bitpos is not negative, it can wreak havoc later.  */
 
11088
+      if (bitpos < 0)
 
11089
+       {
 
11090
+         gcc_assert (offset == NULL_TREE);
 
11091
+         offset = size_int (bitpos >> (BITS_PER_UNIT == 8
 
11092
+                                       ? 3 : exact_log2 (BITS_PER_UNIT)));
 
11093
+         bitpos &= BITS_PER_UNIT - 1;
 
11094
+       }
 
11095
+
 
11096
       if (TREE_CODE (to) == COMPONENT_REF
 
11097
          && DECL_BIT_FIELD_TYPE (TREE_OPERAND (to, 1)))
 
11098
        get_bit_range (&bitregion_start, &bitregion_end, to, &bitpos, &offset);
 
11099
Index: gcc/go/go-gcc.cc
 
11100
===================================================================
 
11101
--- a/src/gcc/go/go-gcc.cc      (.../tags/gcc_4_8_2_release)
 
11102
+++ b/src/gcc/go/go-gcc.cc      (.../branches/gcc-4_8-branch)
 
11103
@@ -232,6 +232,9 @@
 
11104
   Bexpression*
 
11105
   convert_expression(Btype* type, Bexpression* expr, Location);
 
11106
 
 
11107
+  Bexpression*
 
11108
+  function_code_expression(Bfunction*, Location);
 
11109
+
 
11110
   // Statements.
 
11111
 
 
11112
   Bstatement*
 
11113
@@ -334,6 +337,17 @@
 
11114
   Bexpression*
 
11115
   label_address(Blabel*, Location);
 
11116
 
 
11117
+  // Functions.
 
11118
+
 
11119
+  Bfunction*
 
11120
+  error_function()
 
11121
+  { return this->make_function(error_mark_node); }
 
11122
+
 
11123
+  Bfunction*
 
11124
+  function(Btype* fntype, const std::string& name, const std::string& asm_name,
 
11125
+           bool is_visible, bool is_declaration, bool is_inlinable,
 
11126
+           bool disable_split_stack, bool in_unique_section, Location);
 
11127
+
 
11128
  private:
 
11129
   // Make a Bexpression from a tree.
 
11130
   Bexpression*
 
11131
@@ -350,6 +364,10 @@
 
11132
   make_type(tree t)
 
11133
   { return new Btype(t); }
 
11134
 
 
11135
+  Bfunction*
 
11136
+  make_function(tree t)
 
11137
+  { return new Bfunction(t); }
 
11138
+
 
11139
   Btype*
 
11140
   fill_in_struct(Btype*, const std::vector<Btyped_identifier>&);
 
11141
 
 
11142
@@ -966,6 +984,19 @@
 
11143
   return tree_to_expr(ret);
 
11144
 }
 
11145
 
 
11146
+// Get the address of a function.
 
11147
+
 
11148
+Bexpression*
 
11149
+Gcc_backend::function_code_expression(Bfunction* bfunc, Location location)
 
11150
+{
 
11151
+  tree func = bfunc->get_tree();
 
11152
+  if (func == error_mark_node)
 
11153
+    return this->error_expression();
 
11154
+
 
11155
+  tree ret = build_fold_addr_expr_loc(location.gcc_location(), func);
 
11156
+  return this->make_expression(ret);
 
11157
+}
 
11158
+
 
11159
 // An expression as a statement.
 
11160
 
 
11161
 Bstatement*
 
11162
@@ -1724,6 +1755,56 @@
 
11163
   return this->make_expression(ret);
 
11164
 }
 
11165
 
 
11166
+// Declare or define a new function.
 
11167
+
 
11168
+Bfunction*
 
11169
+Gcc_backend::function(Btype* fntype, const std::string& name,
 
11170
+                      const std::string& asm_name, bool is_visible,
 
11171
+                      bool is_declaration, bool is_inlinable,
 
11172
+                      bool disable_split_stack, bool in_unique_section,
 
11173
+                      Location location)
 
11174
+{
 
11175
+  tree functype = fntype->get_tree();
 
11176
+  if (functype != error_mark_node)
 
11177
+    {
 
11178
+      gcc_assert(FUNCTION_POINTER_TYPE_P(functype));
 
11179
+      functype = TREE_TYPE(functype);
 
11180
+    }
 
11181
+  tree id = get_identifier_from_string(name);
 
11182
+  if (functype == error_mark_node || id == error_mark_node)
 
11183
+    return this->error_function();
 
11184
+
 
11185
+  tree decl = build_decl(location.gcc_location(), FUNCTION_DECL, id, functype);
 
11186
+  if (!asm_name.empty())
 
11187
+    SET_DECL_ASSEMBLER_NAME(decl, get_identifier_from_string(asm_name));
 
11188
+  if (is_visible)
 
11189
+    TREE_PUBLIC(decl) = 1;
 
11190
+  if (is_declaration)
 
11191
+    DECL_EXTERNAL(decl) = 1;
 
11192
+  else
 
11193
+    {
 
11194
+      tree restype = TREE_TYPE(functype);
 
11195
+      tree resdecl =
 
11196
+          build_decl(location.gcc_location(), RESULT_DECL, NULL_TREE, restype);
 
11197
+      DECL_ARTIFICIAL(resdecl) = 1;
 
11198
+      DECL_IGNORED_P(resdecl) = 1;
 
11199
+      DECL_CONTEXT(resdecl) = decl;
 
11200
+      DECL_RESULT(decl) = resdecl;
 
11201
+    }
 
11202
+  if (!is_inlinable)
 
11203
+    DECL_UNINLINABLE(decl) = 1;
 
11204
+  if (disable_split_stack)
 
11205
+    {
 
11206
+      tree attr = get_identifier("__no_split_stack__");
 
11207
+      DECL_ATTRIBUTES(decl) = tree_cons(attr, NULL_TREE, NULL_TREE);
 
11208
+    }
 
11209
+  if (in_unique_section)
 
11210
+    resolve_unique_section(decl, 0, 1);
 
11211
+
 
11212
+  go_preserve_from_gc(decl);
 
11213
+  return new Bfunction(decl);
 
11214
+}
 
11215
+
 
11216
 // The single backend.
 
11217
 
 
11218
 static Gcc_backend gcc_backend;
 
11219
@@ -1799,3 +1880,9 @@
 
11220
 {
 
11221
   return bv->get_tree();
 
11222
 }
 
11223
+
 
11224
+tree
 
11225
+function_to_tree(Bfunction* bf)
 
11226
+{
 
11227
+  return bf->get_tree();
 
11228
+}
 
11229
Index: gcc/go/ChangeLog
 
11230
===================================================================
 
11231
--- a/src/gcc/go/ChangeLog      (.../tags/gcc_4_8_2_release)
 
11232
+++ b/src/gcc/go/ChangeLog      (.../branches/gcc-4_8-branch)
 
11233
@@ -1,3 +1,22 @@
 
11234
+2013-12-11  Ian Lance Taylor  <iant@google.com>
 
11235
+
 
11236
+       * go-lang.c (go_langhook_post_options): Disable sibling calls by
 
11237
+       default.
 
11238
+
 
11239
+2013-10-16  Ian Lance Taylor  <iant@google.com>
 
11240
+
 
11241
+       Bring in from mainline:
 
11242
+
 
11243
+       2013-10-11  Chris Manghane  <cmang@google.com>
 
11244
+       * go-gcc.cc (Gcc_backend::function_code_expression): New
 
11245
+       function.
 
11246
+
 
11247
+       2013-10-10  Chris Manghane  <cmang@google.com>
 
11248
+       * go-gcc.cc (Backend::error_function): New function.
 
11249
+       (Backend::function): New function.
 
11250
+       (Backend::make_function): New function.
 
11251
+       (function_to_tree): New function.
 
11252
+
 
11253
 2013-10-16  Release Manager
 
11254
 
 
11255
        * GCC 4.8.2 released.
 
11256
Index: gcc/go/go-lang.c
 
11257
===================================================================
 
11258
--- a/src/gcc/go/go-lang.c      (.../tags/gcc_4_8_2_release)
 
11259
+++ b/src/gcc/go/go-lang.c      (.../branches/gcc-4_8-branch)
 
11260
@@ -269,6 +269,10 @@
 
11261
   if (flag_excess_precision_cmdline == EXCESS_PRECISION_DEFAULT)
 
11262
     flag_excess_precision_cmdline = EXCESS_PRECISION_STANDARD;
 
11263
 
 
11264
+  /* Tail call optimizations can confuse uses of runtime.Callers.  */
 
11265
+  if (!global_options_set.x_flag_optimize_sibling_calls)
 
11266
+    global_options.x_flag_optimize_sibling_calls = 0;
 
11267
+
 
11268
   /* Returning false means that the backend should be used.  */
 
11269
   return false;
 
11270
 }
 
11271
Index: gcc/go/gofrontend/gogo.cc
 
11272
===================================================================
 
11273
--- a/src/gcc/go/gofrontend/gogo.cc     (.../tags/gcc_4_8_2_release)
 
11274
+++ b/src/gcc/go/gofrontend/gogo.cc     (.../branches/gcc-4_8-branch)
 
11275
@@ -2822,7 +2822,10 @@
 
11276
   if (orig_fntype->is_varargs())
 
11277
     new_fntype->set_is_varargs();
 
11278
 
 
11279
-  std::string name = orig_no->name() + "$recover";
 
11280
+  std::string name = orig_no->name();
 
11281
+  if (orig_fntype->is_method())
 
11282
+    name += "$" + orig_fntype->receiver()->type()->mangled_name(gogo);
 
11283
+  name += "$recover";
 
11284
   Named_object *new_no = gogo->start_function(name, new_fntype, false,
 
11285
                                              location);
 
11286
   Function *new_func = new_no->func_value();
 
11287
@@ -2916,7 +2919,25 @@
 
11288
                 && !orig_rec_no->var_value()->is_receiver());
 
11289
       orig_rec_no->var_value()->set_is_receiver();
 
11290
 
 
11291
-      const std::string& new_receiver_name(orig_fntype->receiver()->name());
 
11292
+      std::string new_receiver_name(orig_fntype->receiver()->name());
 
11293
+      if (new_receiver_name.empty())
 
11294
+       {
 
11295
+         // Find the receiver.  It was named "r.NNN" in
 
11296
+         // Gogo::start_function.
 
11297
+         for (Bindings::const_definitions_iterator p =
 
11298
+                new_bindings->begin_definitions();
 
11299
+              p != new_bindings->end_definitions();
 
11300
+              ++p)
 
11301
+           {
 
11302
+             const std::string& pname((*p)->name());
 
11303
+             if (pname[0] == 'r' && pname[1] == '.')
 
11304
+               {
 
11305
+                 new_receiver_name = pname;
 
11306
+                 break;
 
11307
+               }
 
11308
+           }
 
11309
+         go_assert(!new_receiver_name.empty());
 
11310
+       }
 
11311
       Named_object* new_rec_no = new_bindings->lookup_local(new_receiver_name);
 
11312
       if (new_rec_no == NULL)
 
11313
        go_assert(saw_errors());
 
11314
@@ -3320,7 +3341,8 @@
 
11315
     closure_var_(NULL), block_(block), location_(location), labels_(),
 
11316
     local_type_count_(0), descriptor_(NULL), fndecl_(NULL), defer_stack_(NULL),
 
11317
     is_sink_(false), results_are_named_(false), nointerface_(false),
 
11318
-    calls_recover_(false), is_recover_thunk_(false), has_recover_thunk_(false),
 
11319
+    is_unnamed_type_stub_method_(false), calls_recover_(false),
 
11320
+    is_recover_thunk_(false), has_recover_thunk_(false),
 
11321
     in_unique_section_(false)
 
11322
 {
 
11323
 }
 
11324
@@ -3819,6 +3841,81 @@
 
11325
   *presults = results;
 
11326
 }
 
11327
 
 
11328
+// Get the backend representation.
 
11329
+
 
11330
+Bfunction*
 
11331
+Function::get_or_make_decl(Gogo* gogo, Named_object* no)
 
11332
+{
 
11333
+  if (this->fndecl_ == NULL)
 
11334
+    {
 
11335
+      std::string asm_name;
 
11336
+      bool is_visible = false;
 
11337
+      if (no->package() != NULL)
 
11338
+        ;
 
11339
+      else if (this->enclosing_ != NULL || Gogo::is_thunk(no))
 
11340
+        ;
 
11341
+      else if (Gogo::unpack_hidden_name(no->name()) == "init"
 
11342
+               && !this->type_->is_method())
 
11343
+        ;
 
11344
+      else if (Gogo::unpack_hidden_name(no->name()) == "main"
 
11345
+               && gogo->is_main_package())
 
11346
+        is_visible = true;
 
11347
+      // Methods have to be public even if they are hidden because
 
11348
+      // they can be pulled into type descriptors when using
 
11349
+      // anonymous fields.
 
11350
+      else if (!Gogo::is_hidden_name(no->name())
 
11351
+               || this->type_->is_method())
 
11352
+        {
 
11353
+         if (!this->is_unnamed_type_stub_method_)
 
11354
+           is_visible = true;
 
11355
+          std::string pkgpath = gogo->pkgpath_symbol();
 
11356
+          if (this->type_->is_method()
 
11357
+              && Gogo::is_hidden_name(no->name())
 
11358
+              && Gogo::hidden_name_pkgpath(no->name()) != gogo->pkgpath())
 
11359
+            {
 
11360
+              // This is a method we created for an unexported
 
11361
+              // method of an imported embedded type.  We need to
 
11362
+              // use the pkgpath of the imported package to avoid
 
11363
+              // a possible name collision.  See bug478 for a test
 
11364
+              // case.
 
11365
+              pkgpath = Gogo::hidden_name_pkgpath(no->name());
 
11366
+              pkgpath = Gogo::pkgpath_for_symbol(pkgpath);
 
11367
+            }
 
11368
+
 
11369
+          asm_name = pkgpath;
 
11370
+          asm_name.append(1, '.');
 
11371
+          asm_name.append(Gogo::unpack_hidden_name(no->name()));
 
11372
+          if (this->type_->is_method())
 
11373
+            {
 
11374
+              asm_name.append(1, '.');
 
11375
+              Type* rtype = this->type_->receiver()->type();
 
11376
+              asm_name.append(rtype->mangled_name(gogo));
 
11377
+            }
 
11378
+        }
 
11379
+
 
11380
+      // If a function calls the predeclared recover function, we
 
11381
+      // can't inline it, because recover behaves differently in a
 
11382
+      // function passed directly to defer.  If this is a recover
 
11383
+      // thunk that we built to test whether a function can be
 
11384
+      // recovered, we can't inline it, because that will mess up
 
11385
+      // our return address comparison.
 
11386
+      bool is_inlinable = !(this->calls_recover_ || this->is_recover_thunk_);
 
11387
+
 
11388
+      // If this is a thunk created to call a function which calls
 
11389
+      // the predeclared recover function, we need to disable
 
11390
+      // stack splitting for the thunk.
 
11391
+      bool disable_split_stack = this->is_recover_thunk_;
 
11392
+
 
11393
+      Btype* functype = this->type_->get_backend_fntype(gogo);
 
11394
+      this->fndecl_ =
 
11395
+          gogo->backend()->function(functype, no->get_id(gogo), asm_name,
 
11396
+                                    is_visible, false, is_inlinable,
 
11397
+                                    disable_split_stack,
 
11398
+                                    this->in_unique_section_, this->location());
 
11399
+    }
 
11400
+  return this->fndecl_;
 
11401
+}
 
11402
+
 
11403
 // Class Block.
 
11404
 
 
11405
 Block::Block(Block* enclosing, Location location)
 
11406
@@ -5110,6 +5207,75 @@
 
11407
     go_unreachable();
 
11408
 }
 
11409
 
 
11410
+
 
11411
+// Return the external identifier for this object.
 
11412
+
 
11413
+std::string
 
11414
+Named_object::get_id(Gogo* gogo)
 
11415
+{
 
11416
+  go_assert(!this->is_variable() && !this->is_result_variable());
 
11417
+  std::string decl_name;
 
11418
+  if (this->is_function_declaration()
 
11419
+      && !this->func_declaration_value()->asm_name().empty())
 
11420
+    decl_name = this->func_declaration_value()->asm_name();
 
11421
+  else if (this->is_type()
 
11422
+          && Linemap::is_predeclared_location(this->type_value()->location()))
 
11423
+    {
 
11424
+      // We don't need the package name for builtin types.
 
11425
+      decl_name = Gogo::unpack_hidden_name(this->name_);
 
11426
+    }
 
11427
+  else
 
11428
+    {
 
11429
+      std::string package_name;
 
11430
+      if (this->package_ == NULL)
 
11431
+       package_name = gogo->package_name();
 
11432
+      else
 
11433
+       package_name = this->package_->package_name();
 
11434
+
 
11435
+      // Note that this will be misleading if this is an unexported
 
11436
+      // method generated for an embedded imported type.  In that case
 
11437
+      // the unexported method should have the package name of the
 
11438
+      // package from which it is imported, but we are going to give
 
11439
+      // it our package name.  Fixing this would require knowing the
 
11440
+      // package name, but we only know the package path.  It might be
 
11441
+      // better to use package paths here anyhow.  This doesn't affect
 
11442
+      // the assembler code, because we always set that name in
 
11443
+      // Function::get_or_make_decl anyhow.  FIXME.
 
11444
+
 
11445
+      decl_name = package_name + '.' + Gogo::unpack_hidden_name(this->name_);
 
11446
+
 
11447
+      Function_type* fntype;
 
11448
+      if (this->is_function())
 
11449
+       fntype = this->func_value()->type();
 
11450
+      else if (this->is_function_declaration())
 
11451
+       fntype = this->func_declaration_value()->type();
 
11452
+      else
 
11453
+       fntype = NULL;
 
11454
+      if (fntype != NULL && fntype->is_method())
 
11455
+       {
 
11456
+         decl_name.push_back('.');
 
11457
+         decl_name.append(fntype->receiver()->type()->mangled_name(gogo));
 
11458
+       }
 
11459
+    }
 
11460
+  if (this->is_type())
 
11461
+    {
 
11462
+      unsigned int index;
 
11463
+      const Named_object* in_function = this->type_value()->in_function(&index);
 
11464
+      if (in_function != NULL)
 
11465
+       {
 
11466
+         decl_name += '$' + Gogo::unpack_hidden_name(in_function->name());
 
11467
+         if (index > 0)
 
11468
+           {
 
11469
+             char buf[30];
 
11470
+             snprintf(buf, sizeof buf, "%u", index);
 
11471
+             decl_name += '$';
 
11472
+             decl_name += buf;
 
11473
+           }
 
11474
+       }
 
11475
+    }
 
11476
+  return decl_name;
 
11477
+}
 
11478
+
 
11479
 // Class Bindings.
 
11480
 
 
11481
 Bindings::Bindings(Bindings* enclosing)
 
11482
Index: gcc/go/gofrontend/runtime.def
 
11483
===================================================================
 
11484
--- a/src/gcc/go/gofrontend/runtime.def (.../tags/gcc_4_8_2_release)
 
11485
+++ b/src/gcc/go/gofrontend/runtime.def (.../branches/gcc-4_8-branch)
 
11486
@@ -68,6 +68,12 @@
 
11487
               P1(STRING), R1(SLICE))
 
11488
 
 
11489
 
 
11490
+// Complex division.
 
11491
+DEF_GO_RUNTIME(COMPLEX64_DIV, "__go_complex64_div",
 
11492
+              P2(COMPLEX64, COMPLEX64), R1(COMPLEX64))
 
11493
+DEF_GO_RUNTIME(COMPLEX128_DIV, "__go_complex128_div",
 
11494
+              P2(COMPLEX128, COMPLEX128), R1(COMPLEX128))
 
11495
+
 
11496
 // Make a slice.
 
11497
 DEF_GO_RUNTIME(MAKESLICE1, "__go_make_slice1", P2(TYPE, UINTPTR), R1(SLICE))
 
11498
 DEF_GO_RUNTIME(MAKESLICE2, "__go_make_slice2", P3(TYPE, UINTPTR, UINTPTR),
 
11499
Index: gcc/go/gofrontend/gogo.h
 
11500
===================================================================
 
11501
--- a/src/gcc/go/gofrontend/gogo.h      (.../tags/gcc_4_8_2_release)
 
11502
+++ b/src/gcc/go/gofrontend/gogo.h      (.../branches/gcc-4_8-branch)
 
11503
@@ -48,6 +48,7 @@
 
11504
 class Bblock;
 
11505
 class Bvariable;
 
11506
 class Blabel;
 
11507
+class Bfunction;
 
11508
 
 
11509
 // This file declares the basic classes used to hold the internal
 
11510
 // representation of Go which is built by the parser.
 
11511
@@ -952,6 +953,15 @@
 
11512
     this->nointerface_ = true;
 
11513
   }
 
11514
 
 
11515
+  // Record that this function is a stub method created for an unnamed
 
11516
+  // type.
 
11517
+  void
 
11518
+  set_is_unnamed_type_stub_method()
 
11519
+  {
 
11520
+    go_assert(this->is_method());
 
11521
+    this->is_unnamed_type_stub_method_ = true;
 
11522
+  }
 
11523
+
 
11524
   // Add a new field to the closure variable.
 
11525
   void
 
11526
   add_closure_field(Named_object* var, Location loc)
 
11527
@@ -1089,17 +1099,13 @@
 
11528
     this->descriptor_ = descriptor;
 
11529
   }
 
11530
 
 
11531
-  // Return the function's decl given an identifier.
 
11532
-  tree
 
11533
-  get_or_make_decl(Gogo*, Named_object*, tree id);
 
11534
+  // Return the backend representation.
 
11535
+  Bfunction*
 
11536
+  get_or_make_decl(Gogo*, Named_object*);
 
11537
 
 
11538
   // Return the function's decl after it has been built.
 
11539
   tree
 
11540
-  get_decl() const
 
11541
-  {
 
11542
-    go_assert(this->fndecl_ != NULL);
 
11543
-    return this->fndecl_;
 
11544
-  }
 
11545
+  get_decl() const;
 
11546
 
 
11547
   // Set the function decl to hold a tree of the function code.
 
11548
   void
 
11549
@@ -1170,7 +1176,7 @@
 
11550
   // The function descriptor, if any.
 
11551
   Expression* descriptor_;
 
11552
   // The function decl.
 
11553
-  tree fndecl_;
 
11554
+  Bfunction* fndecl_;
 
11555
   // The defer stack variable.  A pointer to this variable is used to
 
11556
   // distinguish the defer stack for one function from another.  This
 
11557
   // is NULL unless we actually need a defer stack.
 
11558
@@ -1181,6 +1187,9 @@
 
11559
   bool results_are_named_ : 1;
 
11560
   // True if this method should not be included in the type descriptor.
 
11561
   bool nointerface_ : 1;
 
11562
+  // True if this function is a stub method created for an unnamed
 
11563
+  // type.
 
11564
+  bool is_unnamed_type_stub_method_ : 1;
 
11565
   // True if this function calls the predeclared recover function.
 
11566
   bool calls_recover_ : 1;
 
11567
   // True if this a thunk built for a function which calls recover.
 
11568
@@ -1265,9 +1274,9 @@
 
11569
   has_descriptor() const
 
11570
   { return this->descriptor_ != NULL; }
 
11571
 
 
11572
-  // Return a decl for the function given an identifier.
 
11573
-  tree
 
11574
-  get_or_make_decl(Gogo*, Named_object*, tree id);
 
11575
+  // Return a backend representation.
 
11576
+  Bfunction*
 
11577
+  get_or_make_decl(Gogo*, Named_object*);
 
11578
 
 
11579
   // If there is a descriptor, build it into the backend
 
11580
   // representation.
 
11581
@@ -1290,7 +1299,7 @@
 
11582
   // The function descriptor, if any.
 
11583
   Expression* descriptor_;
 
11584
   // The function decl if needed.
 
11585
-  tree fndecl_;
 
11586
+  Bfunction* fndecl_;
 
11587
 };
 
11588
 
 
11589
 // A variable.
 
11590
@@ -2181,8 +2190,8 @@
 
11591
   Bvariable*
 
11592
   get_backend_variable(Gogo*, Named_object* function);
 
11593
 
 
11594
-  // Return a tree for the external identifier for this object.
 
11595
-  tree
 
11596
+  // Return the external identifier for this object.
 
11597
+  std::string
 
11598
   get_id(Gogo*);
 
11599
 
 
11600
   // Return a tree representing this object.
 
11601
Index: gcc/go/gofrontend/types.h
 
11602
===================================================================
 
11603
--- a/src/gcc/go/gofrontend/types.h     (.../tags/gcc_4_8_2_release)
 
11604
+++ b/src/gcc/go/gofrontend/types.h     (.../branches/gcc-4_8-branch)
 
11605
@@ -1138,6 +1138,13 @@
 
11606
                          Function_type* equal_fntype, Named_object** hash_fn,
 
11607
                          Named_object** equal_fn);
 
11608
 
 
11609
+  void
 
11610
+  write_named_hash(Gogo*, Named_type*, Function_type* hash_fntype,
 
11611
+                  Function_type* equal_fntype);
 
11612
+
 
11613
+  void
 
11614
+  write_named_equal(Gogo*, Named_type*);
 
11615
+
 
11616
   // Build a composite literal for the uncommon type information.
 
11617
   Expression*
 
11618
   uncommon_type_constructor(Gogo*, Type* uncommon_type,
 
11619
@@ -1717,7 +1724,8 @@
 
11620
                Typed_identifier_list* results, Location location)
 
11621
     : Type(TYPE_FUNCTION),
 
11622
       receiver_(receiver), parameters_(parameters), results_(results),
 
11623
-      location_(location), is_varargs_(false), is_builtin_(false)
 
11624
+      location_(location), is_varargs_(false), is_builtin_(false),
 
11625
+      fnbtype_(NULL)
 
11626
   { }
 
11627
 
 
11628
   // Get the receiver.
 
11629
@@ -1789,6 +1797,12 @@
 
11630
   Function_type*
 
11631
   copy_with_receiver(Type*) const;
 
11632
 
 
11633
+  // Return a copy of this type with the receiver treated as the first
 
11634
+  // parameter.  If WANT_POINTER_RECEIVER is true, the receiver is
 
11635
+  // forced to be a pointer.
 
11636
+  Function_type*
 
11637
+  copy_with_receiver_as_param(bool want_pointer_receiver) const;
 
11638
+
 
11639
   // Return a copy of this type ignoring any receiver and using dummy
 
11640
   // names for all parameters.  This is used for thunks for method
 
11641
   // values.
 
11642
@@ -1798,6 +1812,11 @@
 
11643
   static Type*
 
11644
   make_function_type_descriptor_type();
 
11645
 
 
11646
+  // Return the backend representation of this function type. This is used
 
11647
+  // as the real type of a backend function declaration or defintion.
 
11648
+  Btype*
 
11649
+  get_backend_fntype(Gogo*);
 
11650
+
 
11651
  protected:
 
11652
   int
 
11653
   do_traverse(Traverse*);
 
11654
@@ -1851,6 +1870,9 @@
 
11655
   // Whether this is a special builtin function which can not simply
 
11656
   // be called.  This is used for len, cap, etc.
 
11657
   bool is_builtin_;
 
11658
+  // The backend representation of this type for backend function
 
11659
+  // declarations and definitions.
 
11660
+  Btype* fnbtype_;
 
11661
 };
 
11662
 
 
11663
 // The type of a pointer.
 
11664
@@ -1915,7 +1937,7 @@
 
11665
 {
 
11666
  public:
 
11667
   explicit Struct_field(const Typed_identifier& typed_identifier)
 
11668
-    : typed_identifier_(typed_identifier), tag_(NULL)
 
11669
+    : typed_identifier_(typed_identifier), tag_(NULL), is_imported_(false)
 
11670
   { }
 
11671
 
 
11672
   // The field name.
 
11673
@@ -1926,6 +1948,10 @@
 
11674
   bool
 
11675
   is_field_name(const std::string& name) const;
 
11676
 
 
11677
+  // Return whether this struct field is an unexported field named NAME.
 
11678
+  bool
 
11679
+  is_unexported_field_name(Gogo*, const std::string& name) const;
 
11680
+
 
11681
   // Return whether this struct field is an embedded built-in type.
 
11682
   bool
 
11683
   is_embedded_builtin(Gogo*) const;
 
11684
@@ -1963,6 +1989,11 @@
 
11685
   set_tag(const std::string& tag)
 
11686
   { this->tag_ = new std::string(tag); }
 
11687
 
 
11688
+  // Record that this field is defined in an imported struct.
 
11689
+  void
 
11690
+  set_is_imported()
 
11691
+  { this->is_imported_ = true; }
 
11692
+
 
11693
   // Set the type.  This is only used in error cases.
 
11694
   void
 
11695
   set_type(Type* type)
 
11696
@@ -1973,6 +2004,8 @@
 
11697
   Typed_identifier typed_identifier_;
 
11698
   // The field tag.  This is NULL if the field has no tag.
 
11699
   std::string* tag_;
 
11700
+  // Whether this field is defined in an imported struct.
 
11701
+  bool is_imported_;
 
11702
 };
 
11703
 
 
11704
 // A list of struct fields.
 
11705
Index: gcc/go/gofrontend/parse.cc
 
11706
===================================================================
 
11707
--- a/src/gcc/go/gofrontend/parse.cc    (.../tags/gcc_4_8_2_release)
 
11708
+++ b/src/gcc/go/gofrontend/parse.cc    (.../branches/gcc-4_8-branch)
 
11709
@@ -744,6 +744,8 @@
 
11710
     return NULL;
 
11711
 
 
11712
   Parse::Names names;
 
11713
+  if (receiver != NULL)
 
11714
+    names[receiver->name()] = receiver;
 
11715
   if (params != NULL)
 
11716
     this->check_signature_names(params, &names);
 
11717
   if (results != NULL)
 
11718
Index: gcc/go/gofrontend/import.h
 
11719
===================================================================
 
11720
--- a/src/gcc/go/gofrontend/import.h    (.../tags/gcc_4_8_2_release)
 
11721
+++ b/src/gcc/go/gofrontend/import.h    (.../branches/gcc-4_8-branch)
 
11722
@@ -149,6 +149,11 @@
 
11723
   location() const
 
11724
   { return this->location_; }
 
11725
 
 
11726
+  // Return the package we are importing.
 
11727
+  Package*
 
11728
+  package() const
 
11729
+  { return this->package_; }
 
11730
+
 
11731
   // Return the next character.
 
11732
   int
 
11733
   peek_char()
 
11734
Index: gcc/go/gofrontend/runtime.cc
 
11735
===================================================================
 
11736
--- a/src/gcc/go/gofrontend/runtime.cc  (.../tags/gcc_4_8_2_release)
 
11737
+++ b/src/gcc/go/gofrontend/runtime.cc  (.../branches/gcc-4_8-branch)
 
11738
@@ -42,6 +42,8 @@
 
11739
   RFT_RUNE,
 
11740
   // Go type float64, C type double.
 
11741
   RFT_FLOAT64,
 
11742
+  // Go type complex64, C type __complex float.
 
11743
+  RFT_COMPLEX64,
 
11744
   // Go type complex128, C type __complex double.
 
11745
   RFT_COMPLEX128,
 
11746
   // Go type string, C type struct __go_string.
 
11747
@@ -126,6 +128,10 @@
 
11748
          t = Type::lookup_float_type("float64");
 
11749
          break;
 
11750
 
 
11751
+       case RFT_COMPLEX64:
 
11752
+         t = Type::lookup_complex_type("complex64");
 
11753
+         break;
 
11754
+
 
11755
        case RFT_COMPLEX128:
 
11756
          t = Type::lookup_complex_type("complex128");
 
11757
          break;
 
11758
@@ -216,6 +222,7 @@
 
11759
     case RFT_UINTPTR:
 
11760
     case RFT_RUNE:
 
11761
     case RFT_FLOAT64:
 
11762
+    case RFT_COMPLEX64:
 
11763
     case RFT_COMPLEX128:
 
11764
     case RFT_STRING:
 
11765
     case RFT_POINTER:
 
11766
Index: gcc/go/gofrontend/expressions.h
 
11767
===================================================================
 
11768
--- a/src/gcc/go/gofrontend/expressions.h       (.../tags/gcc_4_8_2_release)
 
11769
+++ b/src/gcc/go/gofrontend/expressions.h       (.../branches/gcc-4_8-branch)
 
11770
@@ -1514,8 +1514,8 @@
 
11771
   closure()
 
11772
   { return this->closure_; }
 
11773
 
 
11774
-  // Return a tree for the code for a function.
 
11775
-  static tree
 
11776
+  // Return a backend expression for the code of a function.
 
11777
+  static Bexpression*
 
11778
   get_code_pointer(Gogo*, Named_object* function, Location loc);
 
11779
 
 
11780
  protected:
 
11781
Index: gcc/go/gofrontend/gogo-tree.cc
 
11782
===================================================================
 
11783
--- a/src/gcc/go/gofrontend/gogo-tree.cc        (.../tags/gcc_4_8_2_release)
 
11784
+++ b/src/gcc/go/gofrontend/gogo-tree.cc        (.../branches/gcc-4_8-branch)
 
11785
@@ -985,74 +985,6 @@
 
11786
   delete[] vec;
 
11787
 }
 
11788
 
 
11789
-// Get a tree for the identifier for a named object.
 
11790
-
 
11791
-tree
 
11792
-Named_object::get_id(Gogo* gogo)
 
11793
-{
 
11794
-  go_assert(!this->is_variable() && !this->is_result_variable());
 
11795
-  std::string decl_name;
 
11796
-  if (this->is_function_declaration()
 
11797
-      && !this->func_declaration_value()->asm_name().empty())
 
11798
-    decl_name = this->func_declaration_value()->asm_name();
 
11799
-  else if (this->is_type()
 
11800
-          && Linemap::is_predeclared_location(this->type_value()->location()))
 
11801
-    {
 
11802
-      // We don't need the package name for builtin types.
 
11803
-      decl_name = Gogo::unpack_hidden_name(this->name_);
 
11804
-    }
 
11805
-  else
 
11806
-    {
 
11807
-      std::string package_name;
 
11808
-      if (this->package_ == NULL)
 
11809
-       package_name = gogo->package_name();
 
11810
-      else
 
11811
-       package_name = this->package_->package_name();
 
11812
-
 
11813
-      // Note that this will be misleading if this is an unexported
 
11814
-      // method generated for an embedded imported type.  In that case
 
11815
-      // the unexported method should have the package name of the
 
11816
-      // package from which it is imported, but we are going to give
 
11817
-      // it our package name.  Fixing this would require knowing the
 
11818
-      // package name, but we only know the package path.  It might be
 
11819
-      // better to use package paths here anyhow.  This doesn't affect
 
11820
-      // the assembler code, because we always set that name in
 
11821
-      // Function::get_or_make_decl anyhow.  FIXME.
 
11822
-
 
11823
-      decl_name = package_name + '.' + Gogo::unpack_hidden_name(this->name_);
 
11824
-
 
11825
-      Function_type* fntype;
 
11826
-      if (this->is_function())
 
11827
-       fntype = this->func_value()->type();
 
11828
-      else if (this->is_function_declaration())
 
11829
-       fntype = this->func_declaration_value()->type();
 
11830
-      else
 
11831
-       fntype = NULL;
 
11832
-      if (fntype != NULL && fntype->is_method())
 
11833
-       {
 
11834
-         decl_name.push_back('.');
 
11835
-         decl_name.append(fntype->receiver()->type()->mangled_name(gogo));
 
11836
-       }
 
11837
-    }
 
11838
-  if (this->is_type())
 
11839
-    {
 
11840
-      unsigned int index;
 
11841
-      const Named_object* in_function = this->type_value()->in_function(&index);
 
11842
-      if (in_function != NULL)
 
11843
-       {
 
11844
-         decl_name += '$' + Gogo::unpack_hidden_name(in_function->name());
 
11845
-         if (index > 0)
 
11846
-           {
 
11847
-             char buf[30];
 
11848
-             snprintf(buf, sizeof buf, "%u", index);
 
11849
-             decl_name += '$';
 
11850
-             decl_name += buf;
 
11851
-           }
 
11852
-       }
 
11853
-    }
 
11854
-  return get_identifier_from_string(decl_name);
 
11855
-}
 
11856
-
 
11857
 // Get a tree for a named object.
 
11858
 
 
11859
 tree
 
11860
@@ -1067,11 +999,6 @@
 
11861
       return error_mark_node;
 
11862
     }
 
11863
 
 
11864
-  tree name;
 
11865
-  if (this->classification_ == NAMED_OBJECT_TYPE)
 
11866
-    name = NULL_TREE;
 
11867
-  else
 
11868
-    name = this->get_id(gogo);
 
11869
   tree decl;
 
11870
   switch (this->classification_)
 
11871
     {
 
11872
@@ -1099,6 +1026,7 @@
 
11873
              decl = error_mark_node;
 
11874
            else if (INTEGRAL_TYPE_P(TREE_TYPE(expr_tree)))
 
11875
              {
 
11876
+                tree name = get_identifier_from_string(this->get_id(gogo));
 
11877
                decl = build_decl(named_constant->location().gcc_location(),
 
11878
                                   CONST_DECL, name, TREE_TYPE(expr_tree));
 
11879
                DECL_INITIAL(decl) = expr_tree;
 
11880
@@ -1161,7 +1089,7 @@
 
11881
     case NAMED_OBJECT_FUNC:
 
11882
       {
 
11883
        Function* func = this->u_.func_value;
 
11884
-       decl = func->get_or_make_decl(gogo, this, name);
 
11885
+       decl = function_to_tree(func->get_or_make_decl(gogo, this));
 
11886
        if (decl != error_mark_node)
 
11887
          {
 
11888
            if (func->block() != NULL)
 
11889
@@ -1286,124 +1214,13 @@
 
11890
   return block_tree;
 
11891
 }
 
11892
 
 
11893
-// Get a tree for a function decl.
 
11894
+// Get the backend representation.
 
11895
 
 
11896
-tree
 
11897
-Function::get_or_make_decl(Gogo* gogo, Named_object* no, tree id)
 
11898
+Bfunction*
 
11899
+Function_declaration::get_or_make_decl(Gogo* gogo, Named_object* no)
 
11900
 {
 
11901
-  if (this->fndecl_ == NULL_TREE)
 
11902
+  if (this->fndecl_ == NULL)
 
11903
     {
 
11904
-      tree functype = type_to_tree(this->type_->get_backend(gogo));
 
11905
-
 
11906
-      if (functype != error_mark_node)
 
11907
-       {
 
11908
-         // The type of a function comes back as a pointer to a
 
11909
-         // struct whose first field is the function, but we want the
 
11910
-         // real function type for a function declaration.
 
11911
-         go_assert(POINTER_TYPE_P(functype)
 
11912
-                   && TREE_CODE(TREE_TYPE(functype)) == RECORD_TYPE);
 
11913
-         functype = TREE_TYPE(TYPE_FIELDS(TREE_TYPE(functype)));
 
11914
-         go_assert(FUNCTION_POINTER_TYPE_P(functype));
 
11915
-         functype = TREE_TYPE(functype);
 
11916
-       }
 
11917
-
 
11918
-      if (functype == error_mark_node)
 
11919
-       this->fndecl_ = error_mark_node;
 
11920
-      else
 
11921
-       {
 
11922
-         tree decl = build_decl(this->location().gcc_location(), FUNCTION_DECL,
 
11923
-                                 id, functype);
 
11924
-
 
11925
-         this->fndecl_ = decl;
 
11926
-
 
11927
-         if (no->package() != NULL)
 
11928
-           ;
 
11929
-         else if (this->enclosing_ != NULL || Gogo::is_thunk(no))
 
11930
-           ;
 
11931
-         else if (Gogo::unpack_hidden_name(no->name()) == "init"
 
11932
-                  && !this->type_->is_method())
 
11933
-           ;
 
11934
-         else if (Gogo::unpack_hidden_name(no->name()) == "main"
 
11935
-                  && gogo->is_main_package())
 
11936
-           TREE_PUBLIC(decl) = 1;
 
11937
-         // Methods have to be public even if they are hidden because
 
11938
-         // they can be pulled into type descriptors when using
 
11939
-         // anonymous fields.
 
11940
-         else if (!Gogo::is_hidden_name(no->name())
 
11941
-                  || this->type_->is_method())
 
11942
-           {
 
11943
-             TREE_PUBLIC(decl) = 1;
 
11944
-             std::string pkgpath = gogo->pkgpath_symbol();
 
11945
-             if (this->type_->is_method()
 
11946
-                 && Gogo::is_hidden_name(no->name())
 
11947
-                 && Gogo::hidden_name_pkgpath(no->name()) != gogo->pkgpath())
 
11948
-               {
 
11949
-                 // This is a method we created for an unexported
 
11950
-                 // method of an imported embedded type.  We need to
 
11951
-                 // use the pkgpath of the imported package to avoid
 
11952
-                 // a possible name collision.  See bug478 for a test
 
11953
-                 // case.
 
11954
-                 pkgpath = Gogo::hidden_name_pkgpath(no->name());
 
11955
-                 pkgpath = Gogo::pkgpath_for_symbol(pkgpath);
 
11956
-               }
 
11957
-
 
11958
-             std::string asm_name = pkgpath;
 
11959
-             asm_name.append(1, '.');
 
11960
-             asm_name.append(Gogo::unpack_hidden_name(no->name()));
 
11961
-             if (this->type_->is_method())
 
11962
-               {
 
11963
-                 asm_name.append(1, '.');
 
11964
-                 Type* rtype = this->type_->receiver()->type();
 
11965
-                 asm_name.append(rtype->mangled_name(gogo));
 
11966
-               }
 
11967
-             SET_DECL_ASSEMBLER_NAME(decl,
 
11968
-                                     get_identifier_from_string(asm_name));
 
11969
-           }
 
11970
-
 
11971
-         // Why do we have to do this in the frontend?
 
11972
-         tree restype = TREE_TYPE(functype);
 
11973
-         tree resdecl =
 
11974
-            build_decl(this->location().gcc_location(), RESULT_DECL, NULL_TREE,
 
11975
-                       restype);
 
11976
-         DECL_ARTIFICIAL(resdecl) = 1;
 
11977
-         DECL_IGNORED_P(resdecl) = 1;
 
11978
-         DECL_CONTEXT(resdecl) = decl;
 
11979
-         DECL_RESULT(decl) = resdecl;
 
11980
-
 
11981
-         // If a function calls the predeclared recover function, we
 
11982
-         // can't inline it, because recover behaves differently in a
 
11983
-         // function passed directly to defer.  If this is a recover
 
11984
-         // thunk that we built to test whether a function can be
 
11985
-         // recovered, we can't inline it, because that will mess up
 
11986
-         // our return address comparison.
 
11987
-         if (this->calls_recover_ || this->is_recover_thunk_)
 
11988
-           DECL_UNINLINABLE(decl) = 1;
 
11989
-
 
11990
-         // If this is a thunk created to call a function which calls
 
11991
-         // the predeclared recover function, we need to disable
 
11992
-         // stack splitting for the thunk.
 
11993
-         if (this->is_recover_thunk_)
 
11994
-           {
 
11995
-             tree attr = get_identifier("__no_split_stack__");
 
11996
-             DECL_ATTRIBUTES(decl) = tree_cons(attr, NULL_TREE, NULL_TREE);
 
11997
-           }
 
11998
-
 
11999
-         if (this->in_unique_section_)
 
12000
-           resolve_unique_section (decl, 0, 1);
 
12001
-
 
12002
-         go_preserve_from_gc(decl);
 
12003
-       }
 
12004
-    }
 
12005
-  return this->fndecl_;
 
12006
-}
 
12007
-
 
12008
-// Get a tree for a function declaration.
 
12009
-
 
12010
-tree
 
12011
-Function_declaration::get_or_make_decl(Gogo* gogo, Named_object* no, tree id)
 
12012
-{
 
12013
-  if (this->fndecl_ == NULL_TREE)
 
12014
-    {
 
12015
       // Let Go code use an asm declaration to pick up a builtin
 
12016
       // function.
 
12017
       if (!this->asm_name_.empty())
 
12018
@@ -1412,58 +1229,46 @@
 
12019
            builtin_functions.find(this->asm_name_);
 
12020
          if (p != builtin_functions.end())
 
12021
            {
 
12022
-             this->fndecl_ = p->second;
 
12023
+             this->fndecl_ = tree_to_function(p->second);
 
12024
              return this->fndecl_;
 
12025
            }
 
12026
        }
 
12027
 
 
12028
-      tree functype = type_to_tree(this->fntype_->get_backend(gogo));
 
12029
+      std::string asm_name;
 
12030
+      if (this->asm_name_.empty())
 
12031
+        {
 
12032
+          asm_name = (no->package() == NULL
 
12033
+                                  ? gogo->pkgpath_symbol()
 
12034
+                                  : no->package()->pkgpath_symbol());
 
12035
+          asm_name.append(1, '.');
 
12036
+          asm_name.append(Gogo::unpack_hidden_name(no->name()));
 
12037
+          if (this->fntype_->is_method())
 
12038
+            {
 
12039
+              asm_name.append(1, '.');
 
12040
+              Type* rtype = this->fntype_->receiver()->type();
 
12041
+              asm_name.append(rtype->mangled_name(gogo));
 
12042
+            }
 
12043
+        }
 
12044
 
 
12045
-      if (functype != error_mark_node)
 
12046
-       {
 
12047
-         // The type of a function comes back as a pointer to a
 
12048
-         // struct whose first field is the function, but we want the
 
12049
-         // real function type for a function declaration.
 
12050
-         go_assert(POINTER_TYPE_P(functype)
 
12051
-                   && TREE_CODE(TREE_TYPE(functype)) == RECORD_TYPE);
 
12052
-         functype = TREE_TYPE(TYPE_FIELDS(TREE_TYPE(functype)));
 
12053
-         go_assert(FUNCTION_POINTER_TYPE_P(functype));
 
12054
-         functype = TREE_TYPE(functype);
 
12055
-       }
 
12056
+      Btype* functype = this->fntype_->get_backend_fntype(gogo);
 
12057
+      this->fndecl_ =
 
12058
+          gogo->backend()->function(functype, no->get_id(gogo), asm_name,
 
12059
+                                    true, true, true, false, false,
 
12060
+                                    this->location());
 
12061
+    }
 
12062
 
 
12063
-      tree decl;
 
12064
-      if (functype == error_mark_node)
 
12065
-       decl = error_mark_node;
 
12066
-      else
 
12067
-       {
 
12068
-         decl = build_decl(this->location().gcc_location(), FUNCTION_DECL, id,
 
12069
-                            functype);
 
12070
-         TREE_PUBLIC(decl) = 1;
 
12071
-         DECL_EXTERNAL(decl) = 1;
 
12072
-
 
12073
-         if (this->asm_name_.empty())
 
12074
-           {
 
12075
-             std::string asm_name = (no->package() == NULL
 
12076
-                                     ? gogo->pkgpath_symbol()
 
12077
-                                     : no->package()->pkgpath_symbol());
 
12078
-             asm_name.append(1, '.');
 
12079
-             asm_name.append(Gogo::unpack_hidden_name(no->name()));
 
12080
-             if (this->fntype_->is_method())
 
12081
-               {
 
12082
-                 asm_name.append(1, '.');
 
12083
-                 Type* rtype = this->fntype_->receiver()->type();
 
12084
-                 asm_name.append(rtype->mangled_name(gogo));
 
12085
-               }
 
12086
-             SET_DECL_ASSEMBLER_NAME(decl,
 
12087
-                                     get_identifier_from_string(asm_name));
 
12088
-           }
 
12089
-       }
 
12090
-      this->fndecl_ = decl;
 
12091
-      go_preserve_from_gc(decl);
 
12092
-    }
 
12093
   return this->fndecl_;
 
12094
 }
 
12095
 
 
12096
+// Return the function's decl after it has been built.
 
12097
+
 
12098
+tree
 
12099
+Function::get_decl() const
 
12100
+{
 
12101
+  go_assert(this->fndecl_ != NULL);
 
12102
+  return function_to_tree(this->fndecl_);
 
12103
+}
 
12104
+
 
12105
 // We always pass the receiver to a method as a pointer.  If the
 
12106
 // receiver is actually declared as a non-pointer type, then we copy
 
12107
 // the value into a local variable, so that it has the right type.  In
 
12108
@@ -1558,7 +1363,7 @@
 
12109
 void
 
12110
 Function::build_tree(Gogo* gogo, Named_object* named_function)
 
12111
 {
 
12112
-  tree fndecl = this->fndecl_;
 
12113
+  tree fndecl = this->get_decl();
 
12114
   go_assert(fndecl != NULL_TREE);
 
12115
 
 
12116
   tree params = NULL_TREE;
 
12117
@@ -1796,7 +1601,7 @@
 
12118
     set = NULL_TREE;
 
12119
   else
 
12120
     set = fold_build2_loc(end_loc.gcc_location(), MODIFY_EXPR, void_type_node,
 
12121
-                         DECL_RESULT(this->fndecl_), retval);
 
12122
+                         DECL_RESULT(this->get_decl()), retval);
 
12123
   tree ret_stmt = fold_build1_loc(end_loc.gcc_location(), RETURN_EXPR,
 
12124
                                   void_type_node, set);
 
12125
   append_to_statement_list(ret_stmt, &stmt_list);
 
12126
@@ -1851,7 +1656,7 @@
 
12127
       retval = this->return_value(gogo, named_function, end_loc,
 
12128
                                  &stmt_list);
 
12129
       set = fold_build2_loc(end_loc.gcc_location(), MODIFY_EXPR, void_type_node,
 
12130
-                           DECL_RESULT(this->fndecl_), retval);
 
12131
+                           DECL_RESULT(this->get_decl()), retval);
 
12132
       ret_stmt = fold_build1_loc(end_loc.gcc_location(), RETURN_EXPR,
 
12133
                                  void_type_node, set);
 
12134
 
 
12135
@@ -1869,7 +1674,7 @@
 
12136
   *fini = stmt_list;
 
12137
 }
 
12138
 
 
12139
-// Return the value to assign to DECL_RESULT(this->fndecl_).  This may
 
12140
+// Return the value to assign to DECL_RESULT(this->get_decl()).  This may
 
12141
 // also add statements to STMT_LIST, which need to be executed before
 
12142
 // the assignment.  This is used for a return statement with no
 
12143
 // explicit values.
 
12144
@@ -1902,7 +1707,7 @@
 
12145
     }
 
12146
   else
 
12147
     {
 
12148
-      tree rettype = TREE_TYPE(DECL_RESULT(this->fndecl_));
 
12149
+      tree rettype = TREE_TYPE(DECL_RESULT(this->get_decl()));
 
12150
       retval = create_tmp_var(rettype, "RESULT");
 
12151
       tree field = TYPE_FIELDS(rettype);
 
12152
       int index = 0;
 
12153
@@ -2323,18 +2128,14 @@
 
12154
       go_assert(m != NULL);
 
12155
 
 
12156
       Named_object* no = m->named_object();
 
12157
-
 
12158
-      tree fnid = no->get_id(this);
 
12159
-
 
12160
-      tree fndecl;
 
12161
+      Bfunction* bf;
 
12162
       if (no->is_function())
 
12163
-       fndecl = no->func_value()->get_or_make_decl(this, no, fnid);
 
12164
+       bf = no->func_value()->get_or_make_decl(this, no);
 
12165
       else if (no->is_function_declaration())
 
12166
-       fndecl = no->func_declaration_value()->get_or_make_decl(this, no,
 
12167
-                                                               fnid);
 
12168
+       bf = no->func_declaration_value()->get_or_make_decl(this, no);
 
12169
       else
 
12170
        go_unreachable();
 
12171
-      fndecl = build_fold_addr_expr(fndecl);
 
12172
+      tree fndecl = build_fold_addr_expr(function_to_tree(bf));
 
12173
 
 
12174
       elt = pointers->quick_push(empty);
 
12175
       elt->index = size_int(i);
 
12176
@@ -2353,10 +2154,11 @@
 
12177
   TREE_CONSTANT(decl) = 1;
 
12178
   DECL_INITIAL(decl) = constructor;
 
12179
 
 
12180
-  // If the interface type has hidden methods, then this is the only
 
12181
-  // definition of the table.  Otherwise it is a comdat table which
 
12182
-  // may be defined in multiple packages.
 
12183
-  if (has_hidden_methods)
 
12184
+  // If the interface type has hidden methods, and the table is for a
 
12185
+  // named type, then this is the only definition of the table.
 
12186
+  // Otherwise it is a comdat table which may be defined in multiple
 
12187
+  // packages.
 
12188
+  if (has_hidden_methods && type->named_type() != NULL)
 
12189
     TREE_PUBLIC(decl) = 1;
 
12190
   else
 
12191
     {
 
12192
Index: gcc/go/gofrontend/lex.cc
 
12193
===================================================================
 
12194
--- a/src/gcc/go/gofrontend/lex.cc      (.../tags/gcc_4_8_2_release)
 
12195
+++ b/src/gcc/go/gofrontend/lex.cc      (.../branches/gcc-4_8-branch)
 
12196
@@ -873,7 +873,28 @@
 
12197
              && (cc < 'a' || cc > 'z')
 
12198
              && cc != '_'
 
12199
              && (cc < '0' || cc > '9'))
 
12200
-           break;
 
12201
+           {
 
12202
+             // Check for an invalid character here, as we get better
 
12203
+             // error behaviour if we swallow them as part of the
 
12204
+             // identifier we are building.
 
12205
+             if ((cc >= ' ' && cc < 0x7f)
 
12206
+                 || cc == '\t'
 
12207
+                 || cc == '\r'
 
12208
+                 || cc == '\n')
 
12209
+               break;
 
12210
+
 
12211
+             this->lineoff_ = p - this->linebuf_;
 
12212
+             error_at(this->location(),
 
12213
+                      "invalid character 0x%x in identifier",
 
12214
+                      cc);
 
12215
+             if (!has_non_ascii_char)
 
12216
+               {
 
12217
+                 buf.assign(pstart, p - pstart);
 
12218
+                 has_non_ascii_char = true;
 
12219
+               }
 
12220
+             if (!Lex::is_invalid_identifier(buf))
 
12221
+               buf.append("$INVALID$");
 
12222
+           }
 
12223
          ++p;
 
12224
          if (is_first)
 
12225
            {
 
12226
Index: gcc/go/gofrontend/backend.h
 
12227
===================================================================
 
12228
--- a/src/gcc/go/gofrontend/backend.h   (.../tags/gcc_4_8_2_release)
 
12229
+++ b/src/gcc/go/gofrontend/backend.h   (.../branches/gcc-4_8-branch)
 
12230
@@ -23,7 +23,7 @@
 
12231
 // The backend representation of a statement.
 
12232
 class Bstatement;
 
12233
 
 
12234
-// The backend representation of a function definition.
 
12235
+// The backend representation of a function definition or declaration.
 
12236
 class Bfunction;
 
12237
 
 
12238
 // The backend representation of a block.
 
12239
@@ -266,6 +266,11 @@
 
12240
   virtual Bexpression*
 
12241
   convert_expression(Btype* type, Bexpression* expr, Location) = 0;
 
12242
 
 
12243
+  // Create an expression for the address of a function.  This is used to
 
12244
+  // get the address of the code for a function.
 
12245
+  virtual Bexpression*
 
12246
+  function_code_expression(Bfunction*, Location) = 0;
 
12247
+
 
12248
   // Statements.
 
12249
 
 
12250
   // Create an error statement.  This is used for cases which should
 
12251
@@ -498,6 +503,32 @@
 
12252
   // recover.
 
12253
   virtual Bexpression*
 
12254
   label_address(Blabel*, Location) = 0;
 
12255
+
 
12256
+  // Functions.
 
12257
+
 
12258
+  // Create an error function.  This is used for cases which should
 
12259
+  // not occur in a correct program, in order to keep the compilation
 
12260
+  // going without crashing.
 
12261
+  virtual Bfunction*
 
12262
+  error_function() = 0;
 
12263
+
 
12264
+  // Declare or define a function of FNTYPE.
 
12265
+  // NAME is the Go name of the function. ASM_NAME, if not the empty string, is
 
12266
+  // the name that should be used in the symbol table; this will be non-empty if
 
12267
+  // a magic extern comment is used.
 
12268
+  // IS_VISIBLE is true if this function should be visible outside of the
 
12269
+  // current compilation unit. IS_DECLARATION is true if this is a function
 
12270
+  // declaration rather than a definition; the function definition will be in
 
12271
+  // another compilation unit.
 
12272
+  // IS_INLINABLE is true if the function can be inlined.
 
12273
+  // DISABLE_SPLIT_STACK is true if this function may not split the stack; this
 
12274
+  // is used for the implementation of recover.
 
12275
+  // IN_UNIQUE_SECTION is true if this function should be put into a unique
 
12276
+  // location if possible; this is used for field tracking.
 
12277
+  virtual Bfunction*
 
12278
+  function(Btype* fntype, const std::string& name, const std::string& asm_name,
 
12279
+           bool is_visible, bool is_declaration, bool is_inlinable,
 
12280
+           bool disable_split_stack, bool in_unique_section, Location) = 0;
 
12281
 };
 
12282
 
 
12283
 // The backend interface has to define this function.
 
12284
@@ -517,5 +548,6 @@
 
12285
 extern tree stat_to_tree(Bstatement*);
 
12286
 extern tree block_to_tree(Bblock*);
 
12287
 extern tree var_to_tree(Bvariable*);
 
12288
+extern tree function_to_tree(Bfunction*);
 
12289
 
 
12290
 #endif // !defined(GO_BACKEND_H)
 
12291
Index: gcc/go/gofrontend/types.cc
 
12292
===================================================================
 
12293
--- a/src/gcc/go/gofrontend/types.cc    (.../tags/gcc_4_8_2_release)
 
12294
+++ b/src/gcc/go/gofrontend/types.cc    (.../branches/gcc-4_8-branch)
 
12295
@@ -1834,7 +1834,9 @@
 
12296
                                               bloc);
 
12297
   gogo->start_block(bloc);
 
12298
 
 
12299
-  if (this->struct_type() != NULL)
 
12300
+  if (name != NULL && name->real_type()->named_type() != NULL)
 
12301
+    this->write_named_hash(gogo, name, hash_fntype, equal_fntype);
 
12302
+  else if (this->struct_type() != NULL)
 
12303
     this->struct_type()->write_hash_function(gogo, name, hash_fntype,
 
12304
                                             equal_fntype);
 
12305
   else if (this->array_type() != NULL)
 
12306
@@ -1852,7 +1854,9 @@
 
12307
                                                false, bloc);
 
12308
   gogo->start_block(bloc);
 
12309
 
 
12310
-  if (this->struct_type() != NULL)
 
12311
+  if (name != NULL && name->real_type()->named_type() != NULL)
 
12312
+    this->write_named_equal(gogo, name);
 
12313
+  else if (this->struct_type() != NULL)
 
12314
     this->struct_type()->write_equal_function(gogo, name);
 
12315
   else if (this->array_type() != NULL)
 
12316
     this->array_type()->write_equal_function(gogo, name);
 
12317
@@ -1865,6 +1869,100 @@
 
12318
   gogo->finish_function(bloc);
 
12319
 }
 
12320
 
 
12321
+// Write a hash function that simply calls the hash function for a
 
12322
+// named type.  This is used when one named type is defined as
 
12323
+// another.  This ensures that this case works when the other named
 
12324
+// type is defined in another package and relies on calling hash
 
12325
+// functions defined only in that package.
 
12326
+
 
12327
+void
 
12328
+Type::write_named_hash(Gogo* gogo, Named_type* name,
 
12329
+                      Function_type* hash_fntype, Function_type* equal_fntype)
 
12330
+{
 
12331
+  Location bloc = Linemap::predeclared_location();
 
12332
+
 
12333
+  Named_type* base_type = name->real_type()->named_type();
 
12334
+  go_assert(base_type != NULL);
 
12335
+
 
12336
+  // The pointer to the type we are going to hash.  This is an
 
12337
+  // unsafe.Pointer.
 
12338
+  Named_object* key_arg = gogo->lookup("key", NULL);
 
12339
+  go_assert(key_arg != NULL);
 
12340
+
 
12341
+  // The size of the type we are going to hash.
 
12342
+  Named_object* keysz_arg = gogo->lookup("key_size", NULL);
 
12343
+  go_assert(keysz_arg != NULL);
 
12344
+
 
12345
+  Named_object* hash_fn;
 
12346
+  Named_object* equal_fn;
 
12347
+  name->real_type()->type_functions(gogo, base_type, hash_fntype, equal_fntype,
 
12348
+                                   &hash_fn, &equal_fn);
 
12349
+
 
12350
+  // Call the hash function for the base type.
 
12351
+  Expression* key_ref = Expression::make_var_reference(key_arg, bloc);
 
12352
+  Expression* keysz_ref = Expression::make_var_reference(keysz_arg, bloc);
 
12353
+  Expression_list* args = new Expression_list();
 
12354
+  args->push_back(key_ref);
 
12355
+  args->push_back(keysz_ref);
 
12356
+  Expression* func = Expression::make_func_reference(hash_fn, NULL, bloc);
 
12357
+  Expression* call = Expression::make_call(func, args, false, bloc);
 
12358
+
 
12359
+  // Return the hash of the base type.
 
12360
+  Expression_list* vals = new Expression_list();
 
12361
+  vals->push_back(call);
 
12362
+  Statement* s = Statement::make_return_statement(vals, bloc);
 
12363
+  gogo->add_statement(s);
 
12364
+}
 
12365
+
 
12366
+// Write an equality function that simply calls the equality function
 
12367
+// for a named type.  This is used when one named type is defined as
 
12368
+// another.  This ensures that this case works when the other named
 
12369
+// type is defined in another package and relies on calling equality
 
12370
+// functions defined only in that package.
 
12371
+
 
12372
+void
 
12373
+Type::write_named_equal(Gogo* gogo, Named_type* name)
 
12374
+{
 
12375
+  Location bloc = Linemap::predeclared_location();
 
12376
+
 
12377
+  // The pointers to the types we are going to compare.  These have
 
12378
+  // type unsafe.Pointer.
 
12379
+  Named_object* key1_arg = gogo->lookup("key1", NULL);
 
12380
+  Named_object* key2_arg = gogo->lookup("key2", NULL);
 
12381
+  go_assert(key1_arg != NULL && key2_arg != NULL);
 
12382
+
 
12383
+  Named_type* base_type = name->real_type()->named_type();
 
12384
+  go_assert(base_type != NULL);
 
12385
+
 
12386
+  // Build temporaries with the base type.
 
12387
+  Type* pt = Type::make_pointer_type(base_type);
 
12388
+
 
12389
+  Expression* ref = Expression::make_var_reference(key1_arg, bloc);
 
12390
+  ref = Expression::make_cast(pt, ref, bloc);
 
12391
+  Temporary_statement* p1 = Statement::make_temporary(pt, ref, bloc);
 
12392
+  gogo->add_statement(p1);
 
12393
+
 
12394
+  ref = Expression::make_var_reference(key2_arg, bloc);
 
12395
+  ref = Expression::make_cast(pt, ref, bloc);
 
12396
+  Temporary_statement* p2 = Statement::make_temporary(pt, ref, bloc);
 
12397
+  gogo->add_statement(p2);
 
12398
+
 
12399
+  // Compare the values for equality.
 
12400
+  Expression* t1 = Expression::make_temporary_reference(p1, bloc);
 
12401
+  t1 = Expression::make_unary(OPERATOR_MULT, t1, bloc);
 
12402
+
 
12403
+  Expression* t2 = Expression::make_temporary_reference(p2, bloc);
 
12404
+  t2 = Expression::make_unary(OPERATOR_MULT, t2, bloc);
 
12405
+
 
12406
+  Expression* cond = Expression::make_binary(OPERATOR_EQEQ, t1, t2, bloc);
 
12407
+
 
12408
+  // Return the equality comparison.
 
12409
+  Expression_list* vals = new Expression_list();
 
12410
+  vals->push_back(cond);
 
12411
+  Statement* s = Statement::make_return_statement(vals, bloc);
 
12412
+  gogo->add_statement(s);
 
12413
+}
 
12414
+
 
12415
 // Return a composite literal for the type descriptor for a plain type
 
12416
 // of kind RUNTIME_TYPE_KIND named NAME.
 
12417
 
 
12418
@@ -2164,26 +2262,9 @@
 
12419
 
 
12420
   ++p;
 
12421
   go_assert(p->is_field_name("typ"));
 
12422
-  if (!only_value_methods && m->is_value_method())
 
12423
-    {
 
12424
-      // This is a value method on a pointer type.  Change the type of
 
12425
-      // the method to use a pointer receiver.  The implementation
 
12426
-      // always uses a pointer receiver anyhow.
 
12427
-      Type* rtype = mtype->receiver()->type();
 
12428
-      Type* prtype = Type::make_pointer_type(rtype);
 
12429
-      Typed_identifier* receiver =
 
12430
-       new Typed_identifier(mtype->receiver()->name(), prtype,
 
12431
-                            mtype->receiver()->location());
 
12432
-      mtype = Type::make_function_type(receiver,
 
12433
-                                      (mtype->parameters() == NULL
 
12434
-                                       ? NULL
 
12435
-                                       : mtype->parameters()->copy()),
 
12436
-                                      (mtype->results() == NULL
 
12437
-                                       ? NULL
 
12438
-                                       : mtype->results()->copy()),
 
12439
-                                      mtype->location());
 
12440
-    }
 
12441
-  vals->push_back(Expression::make_type_descriptor(mtype, bloc));
 
12442
+  bool want_pointer_receiver = !only_value_methods && m->is_value_method();
 
12443
+  nonmethod_type = mtype->copy_with_receiver_as_param(want_pointer_receiver);
 
12444
+  vals->push_back(Expression::make_type_descriptor(nonmethod_type, bloc));
 
12445
 
 
12446
   ++p;
 
12447
   go_assert(p->is_field_name("tfn"));
 
12448
@@ -3383,6 +3464,68 @@
 
12449
 // Get the backend representation for a function type.
 
12450
 
 
12451
 Btype*
 
12452
+Function_type::get_backend_fntype(Gogo* gogo)
 
12453
+{
 
12454
+  if (this->fnbtype_ == NULL)
 
12455
+    {
 
12456
+      Backend::Btyped_identifier breceiver;
 
12457
+      if (this->receiver_ != NULL)
 
12458
+        {
 
12459
+          breceiver.name = Gogo::unpack_hidden_name(this->receiver_->name());
 
12460
+
 
12461
+          // We always pass the address of the receiver parameter, in
 
12462
+          // order to make interface calls work with unknown types.
 
12463
+          Type* rtype = this->receiver_->type();
 
12464
+          if (rtype->points_to() == NULL)
 
12465
+            rtype = Type::make_pointer_type(rtype);
 
12466
+          breceiver.btype = rtype->get_backend(gogo);
 
12467
+          breceiver.location = this->receiver_->location();
 
12468
+        }
 
12469
+
 
12470
+      std::vector<Backend::Btyped_identifier> bparameters;
 
12471
+      if (this->parameters_ != NULL)
 
12472
+        {
 
12473
+          bparameters.resize(this->parameters_->size());
 
12474
+          size_t i = 0;
 
12475
+          for (Typed_identifier_list::const_iterator p =
 
12476
+                   this->parameters_->begin(); p != this->parameters_->end();
 
12477
+               ++p, ++i)
 
12478
+           {
 
12479
+              bparameters[i].name = Gogo::unpack_hidden_name(p->name());
 
12480
+              bparameters[i].btype = p->type()->get_backend(gogo);
 
12481
+              bparameters[i].location = p->location();
 
12482
+            }
 
12483
+          go_assert(i == bparameters.size());
 
12484
+        }
 
12485
+
 
12486
+      std::vector<Backend::Btyped_identifier> bresults;
 
12487
+      if (this->results_ != NULL)
 
12488
+        {
 
12489
+          bresults.resize(this->results_->size());
 
12490
+          size_t i = 0;
 
12491
+          for (Typed_identifier_list::const_iterator p =
 
12492
+                   this->results_->begin(); p != this->results_->end();
 
12493
+               ++p, ++i)
 
12494
+           {
 
12495
+              bresults[i].name = Gogo::unpack_hidden_name(p->name());
 
12496
+              bresults[i].btype = p->type()->get_backend(gogo);
 
12497
+              bresults[i].location = p->location();
 
12498
+            }
 
12499
+          go_assert(i == bresults.size());
 
12500
+        }
 
12501
+
 
12502
+      this->fnbtype_ = gogo->backend()->function_type(breceiver, bparameters,
 
12503
+                                                      bresults,
 
12504
+                                                      this->location());
 
12505
+
 
12506
+    }
 
12507
+
 
12508
+  return this->fnbtype_;
 
12509
+}
 
12510
+
 
12511
+// Get the backend representation for a Go function type.
 
12512
+
 
12513
+Btype*
 
12514
 Function_type::do_get_backend(Gogo* gogo)
 
12515
 {
 
12516
   // When we do anything with a function value other than call it, it
 
12517
@@ -3395,57 +3538,9 @@
 
12518
     gogo->backend()->placeholder_struct_type("__go_descriptor", loc);
 
12519
   Btype* ptr_struct_type = gogo->backend()->pointer_type(struct_type);
 
12520
 
 
12521
-  Backend::Btyped_identifier breceiver;
 
12522
-  if (this->receiver_ != NULL)
 
12523
-    {
 
12524
-      breceiver.name = Gogo::unpack_hidden_name(this->receiver_->name());
 
12525
-
 
12526
-      // We always pass the address of the receiver parameter, in
 
12527
-      // order to make interface calls work with unknown types.
 
12528
-      Type* rtype = this->receiver_->type();
 
12529
-      if (rtype->points_to() == NULL)
 
12530
-       rtype = Type::make_pointer_type(rtype);
 
12531
-      breceiver.btype = rtype->get_backend(gogo);
 
12532
-      breceiver.location = this->receiver_->location();
 
12533
-    }
 
12534
-
 
12535
-  std::vector<Backend::Btyped_identifier> bparameters;
 
12536
-  if (this->parameters_ != NULL)
 
12537
-    {
 
12538
-      bparameters.resize(this->parameters_->size());
 
12539
-      size_t i = 0;
 
12540
-      for (Typed_identifier_list::const_iterator p = this->parameters_->begin();
 
12541
-          p != this->parameters_->end();
 
12542
-          ++p, ++i)
 
12543
-       {
 
12544
-         bparameters[i].name = Gogo::unpack_hidden_name(p->name());
 
12545
-         bparameters[i].btype = p->type()->get_backend(gogo);
 
12546
-         bparameters[i].location = p->location();
 
12547
-       }
 
12548
-      go_assert(i == bparameters.size());
 
12549
-    }
 
12550
-
 
12551
-  std::vector<Backend::Btyped_identifier> bresults;
 
12552
-  if (this->results_ != NULL)
 
12553
-    {
 
12554
-      bresults.resize(this->results_->size());
 
12555
-      size_t i = 0;
 
12556
-      for (Typed_identifier_list::const_iterator p = this->results_->begin();
 
12557
-          p != this->results_->end();
 
12558
-          ++p, ++i)
 
12559
-       {
 
12560
-         bresults[i].name = Gogo::unpack_hidden_name(p->name());
 
12561
-         bresults[i].btype = p->type()->get_backend(gogo);
 
12562
-         bresults[i].location = p->location();
 
12563
-       }
 
12564
-      go_assert(i == bresults.size());
 
12565
-    }
 
12566
-
 
12567
-  Btype* fntype = gogo->backend()->function_type(breceiver, bparameters,
 
12568
-                                                bresults, loc);
 
12569
   std::vector<Backend::Btyped_identifier> fields(1);
 
12570
   fields[0].name = "code";
 
12571
-  fields[0].btype = fntype;
 
12572
+  fields[0].btype = this->get_backend_fntype(gogo);
 
12573
   fields[0].location = loc;
 
12574
   if (!gogo->backend()->set_placeholder_struct_type(struct_type, fields))
 
12575
     return gogo->backend()->error_type();
 
12576
@@ -3821,6 +3916,32 @@
 
12577
   return ret;
 
12578
 }
 
12579
 
 
12580
+// Make a copy of a function type with the receiver as the first
 
12581
+// parameter.
 
12582
+
 
12583
+Function_type*
 
12584
+Function_type::copy_with_receiver_as_param(bool want_pointer_receiver) const
 
12585
+{
 
12586
+  go_assert(this->is_method());
 
12587
+  Typed_identifier_list* new_params = new Typed_identifier_list();
 
12588
+  Type* rtype = this->receiver_->type();
 
12589
+  if (want_pointer_receiver)
 
12590
+    rtype = Type::make_pointer_type(rtype);
 
12591
+  Typed_identifier receiver(this->receiver_->name(), rtype,
 
12592
+                           this->receiver_->location());
 
12593
+  new_params->push_back(receiver);
 
12594
+  const Typed_identifier_list* orig_params = this->parameters_;
 
12595
+  if (orig_params != NULL && !orig_params->empty())
 
12596
+    {
 
12597
+      for (Typed_identifier_list::const_iterator p = orig_params->begin();
 
12598
+          p != orig_params->end();
 
12599
+          ++p)
 
12600
+       new_params->push_back(*p);
 
12601
+    }
 
12602
+  return Type::make_function_type(NULL, new_params, this->results_,
 
12603
+                                 this->location_);
 
12604
+}
 
12605
+
 
12606
 // Make a copy of a function type ignoring any receiver and adding a
 
12607
 // closure parameter.
 
12608
 
 
12609
@@ -4195,7 +4316,8 @@
 
12610
 
 
12611
       // This is a horrible hack caused by the fact that we don't pack
 
12612
       // the names of builtin types.  FIXME.
 
12613
-      if (nt != NULL
 
12614
+      if (!this->is_imported_
 
12615
+         && nt != NULL
 
12616
          && nt->is_builtin()
 
12617
          && nt->name() == Gogo::unpack_hidden_name(name))
 
12618
        return true;
 
12619
@@ -4204,6 +4326,36 @@
 
12620
     }
 
12621
 }
 
12622
 
 
12623
+// Return whether this field is an unexported field named NAME.
 
12624
+
 
12625
+bool
 
12626
+Struct_field::is_unexported_field_name(Gogo* gogo,
 
12627
+                                      const std::string& name) const
 
12628
+{
 
12629
+  const std::string& field_name(this->field_name());
 
12630
+  if (Gogo::is_hidden_name(field_name)
 
12631
+      && name == Gogo::unpack_hidden_name(field_name)
 
12632
+      && gogo->pack_hidden_name(name, false) != field_name)
 
12633
+    return true;
 
12634
+
 
12635
+  // Check for the name of a builtin type.  This is like the test in
 
12636
+  // is_field_name, only there we return false if this->is_imported_,
 
12637
+  // and here we return true.
 
12638
+  if (this->is_imported_ && this->is_anonymous())
 
12639
+    {
 
12640
+      Type* t = this->typed_identifier_.type();
 
12641
+      if (t->points_to() != NULL)
 
12642
+       t = t->points_to();
 
12643
+      Named_type* nt = t->named_type();
 
12644
+      if (nt != NULL
 
12645
+         && nt->is_builtin()
 
12646
+         && nt->name() == Gogo::unpack_hidden_name(name))
 
12647
+       return true;
 
12648
+    }
 
12649
+
 
12650
+  return false;
 
12651
+}
 
12652
+
 
12653
 // Return whether this field is an embedded built-in type.
 
12654
 
 
12655
 bool
 
12656
@@ -4264,13 +4416,8 @@
 
12657
        ++p)
 
12658
     {
 
12659
       Type* t = p->type();
 
12660
-      if (t->is_undefined())
 
12661
+      if (p->is_anonymous())
 
12662
        {
 
12663
-         error_at(p->location(), "struct field type is incomplete");
 
12664
-         p->set_type(Type::make_error_type());
 
12665
-       }
 
12666
-      else if (p->is_anonymous())
 
12667
-       {
 
12668
          if (t->named_type() != NULL && t->points_to() != NULL)
 
12669
            {
 
12670
              error_at(p->location(), "embedded type may not be a pointer");
 
12671
@@ -4641,13 +4788,8 @@
 
12672
       for (Struct_field_list::const_iterator pf = fields->begin();
 
12673
           pf != fields->end();
 
12674
           ++pf)
 
12675
-       {
 
12676
-         const std::string& field_name(pf->field_name());
 
12677
-         if (Gogo::is_hidden_name(field_name)
 
12678
-             && name == Gogo::unpack_hidden_name(field_name)
 
12679
-             && gogo->pack_hidden_name(name, false) != field_name)
 
12680
-           return true;
 
12681
-       }
 
12682
+       if (pf->is_unexported_field_name(gogo, name))
 
12683
+         return true;
 
12684
     }
 
12685
   return false;
 
12686
 }
 
12687
@@ -5250,6 +5392,7 @@
 
12688
          Type* ftype = imp->read_type();
 
12689
 
 
12690
          Struct_field sf(Typed_identifier(name, ftype, imp->location()));
 
12691
+         sf.set_is_imported();
 
12692
 
 
12693
          if (imp->peek_char() == ' ')
 
12694
            {
 
12695
@@ -9022,6 +9165,8 @@
 
12696
                                      fntype->is_varargs(), location);
 
12697
          gogo->finish_function(fntype->location());
 
12698
 
 
12699
+         if (type->named_type() == NULL && stub->is_function())
 
12700
+           stub->func_value()->set_is_unnamed_type_stub_method();
 
12701
          if (m->nointerface() && stub->is_function())
 
12702
            stub->func_value()->set_nointerface();
 
12703
        }
 
12704
@@ -9289,7 +9434,9 @@
 
12705
       else
 
12706
        {
 
12707
          bool is_unexported;
 
12708
-         if (!Gogo::is_hidden_name(name))
 
12709
+         // The test for 'a' and 'z' is to handle builtin names,
 
12710
+         // which are not hidden.
 
12711
+         if (!Gogo::is_hidden_name(name) && (name[0] < 'a' || name[0] > 'z'))
 
12712
            is_unexported = false;
 
12713
          else
 
12714
            {
 
12715
Index: gcc/go/gofrontend/expressions.cc
 
12716
===================================================================
 
12717
--- a/src/gcc/go/gofrontend/expressions.cc      (.../tags/gcc_4_8_2_release)
 
12718
+++ b/src/gcc/go/gofrontend/expressions.cc      (.../branches/gcc-4_8-branch)
 
12719
@@ -1219,7 +1219,7 @@
 
12720
 
 
12721
 // Get the tree for the code of a function expression.
 
12722
 
 
12723
-tree
 
12724
+Bexpression*
 
12725
 Func_expression::get_code_pointer(Gogo* gogo, Named_object* no, Location loc)
 
12726
 {
 
12727
   Function_type* fntype;
 
12728
@@ -1237,25 +1237,18 @@
 
12729
       error_at(loc,
 
12730
               "invalid use of special builtin function %qs; must be called",
 
12731
               no->message_name().c_str());
 
12732
-      return error_mark_node;
 
12733
+      return gogo->backend()->error_expression();
 
12734
     }
 
12735
 
 
12736
-  tree id = no->get_id(gogo);
 
12737
-  if (id == error_mark_node)
 
12738
-    return error_mark_node;
 
12739
-
 
12740
-  tree fndecl;
 
12741
+  Bfunction* fndecl;
 
12742
   if (no->is_function())
 
12743
-    fndecl = no->func_value()->get_or_make_decl(gogo, no, id);
 
12744
+    fndecl = no->func_value()->get_or_make_decl(gogo, no);
 
12745
   else if (no->is_function_declaration())
 
12746
-    fndecl = no->func_declaration_value()->get_or_make_decl(gogo, no, id);
 
12747
+    fndecl = no->func_declaration_value()->get_or_make_decl(gogo, no);
 
12748
   else
 
12749
     go_unreachable();
 
12750
 
 
12751
-  if (fndecl == error_mark_node)
 
12752
-    return error_mark_node;
 
12753
-
 
12754
-  return build_fold_addr_expr_loc(loc.gcc_location(), fndecl);
 
12755
+  return gogo->backend()->function_code_expression(fndecl, loc);
 
12756
 }
 
12757
 
 
12758
 // Get the tree for a function expression.  This is used when we take
 
12759
@@ -1492,8 +1485,10 @@
 
12760
 tree
 
12761
 Func_code_reference_expression::do_get_tree(Translate_context* context)
 
12762
 {
 
12763
-  return Func_expression::get_code_pointer(context->gogo(), this->function_,
 
12764
-                                          this->location());
 
12765
+  Bexpression* ret =
 
12766
+      Func_expression::get_code_pointer(context->gogo(), this->function_,
 
12767
+                                        this->location());
 
12768
+  return expr_to_tree(ret);
 
12769
 }
 
12770
 
 
12771
 // Make a reference to the code of a function.
 
12772
@@ -3055,8 +3050,7 @@
 
12773
   do_lower(Gogo*, Named_object*, Statement_inserter*, int);
 
12774
 
 
12775
   bool
 
12776
-  do_is_constant() const
 
12777
-  { return this->expr_->is_constant(); }
 
12778
+  do_is_constant() const;
 
12779
 
 
12780
   bool
 
12781
   do_numeric_constant_value(Numeric_constant*) const;
 
12782
@@ -3198,6 +3192,27 @@
 
12783
   return this;
 
12784
 }
 
12785
 
 
12786
+// Return whether a type conversion is a constant.
 
12787
+
 
12788
+bool
 
12789
+Type_conversion_expression::do_is_constant() const
 
12790
+{
 
12791
+  if (!this->expr_->is_constant())
 
12792
+    return false;
 
12793
+
 
12794
+  // A conversion to a type that may not be used as a constant is not
 
12795
+  // a constant.  For example, []byte(nil).
 
12796
+  Type* type = this->type_;
 
12797
+  if (type->integer_type() == NULL
 
12798
+      && type->float_type() == NULL
 
12799
+      && type->complex_type() == NULL
 
12800
+      && !type->is_boolean_type()
 
12801
+      && !type->is_string_type())
 
12802
+    return false;
 
12803
+
 
12804
+  return true;
 
12805
+}
 
12806
+
 
12807
 // Return the constant numeric value if there is one.
 
12808
 
 
12809
 bool
 
12810
@@ -5586,6 +5601,15 @@
 
12811
       subcontext.type = NULL;
 
12812
     }
 
12813
 
 
12814
+  if (this->op_ == OPERATOR_ANDAND || this->op_ == OPERATOR_OROR)
 
12815
+    {
 
12816
+      // For a logical operation, the context does not determine the
 
12817
+      // types of the operands.  The operands must be some boolean
 
12818
+      // type but if the context has a boolean type they do not
 
12819
+      // inherit it.  See http://golang.org/issue/3924.
 
12820
+      subcontext.type = NULL;
 
12821
+    }
 
12822
+
 
12823
   // Set the context for the left hand operand.
 
12824
   if (is_shift_op)
 
12825
     {
 
12826
@@ -5967,6 +5991,43 @@
 
12827
                                right);
 
12828
     }
 
12829
 
 
12830
+  // For complex division Go wants slightly different results than the
 
12831
+  // GCC library provides, so we have our own runtime routine.
 
12832
+  if (this->op_ == OPERATOR_DIV && this->left_->type()->complex_type() != NULL)
 
12833
+    {
 
12834
+      const char *name;
 
12835
+      tree *pdecl;
 
12836
+      Type* ctype;
 
12837
+      static tree complex64_div_decl;
 
12838
+      static tree complex128_div_decl;
 
12839
+      switch (this->left_->type()->complex_type()->bits())
 
12840
+       {
 
12841
+       case 64:
 
12842
+         name = "__go_complex64_div";
 
12843
+         pdecl = &complex64_div_decl;
 
12844
+         ctype = Type::lookup_complex_type("complex64");
 
12845
+         break;
 
12846
+       case 128:
 
12847
+         name = "__go_complex128_div";
 
12848
+         pdecl = &complex128_div_decl;
 
12849
+         ctype = Type::lookup_complex_type("complex128");
 
12850
+         break;
 
12851
+       default:
 
12852
+         go_unreachable();
 
12853
+       }
 
12854
+      Btype* cbtype = ctype->get_backend(gogo);
 
12855
+      tree ctype_tree = type_to_tree(cbtype);
 
12856
+      return Gogo::call_builtin(pdecl,
 
12857
+                               this->location(),
 
12858
+                               name,
 
12859
+                               2,
 
12860
+                               ctype_tree,
 
12861
+                               ctype_tree,
 
12862
+                               fold_convert_loc(gccloc, ctype_tree, left),
 
12863
+                               type,
 
12864
+                               fold_convert_loc(gccloc, ctype_tree, right));
 
12865
+    }
 
12866
+
 
12867
   tree compute_type = excess_precision_type(type);
 
12868
   if (compute_type != NULL_TREE)
 
12869
     {
 
12870
@@ -7191,6 +7252,15 @@
 
12871
   if (this->code_ == BUILTIN_OFFSETOF)
 
12872
     {
 
12873
       Expression* arg = this->one_arg();
 
12874
+
 
12875
+      if (arg->bound_method_expression() != NULL
 
12876
+         || arg->interface_field_reference_expression() != NULL)
 
12877
+       {
 
12878
+         this->report_error(_("invalid use of method value as argument "
 
12879
+                              "of Offsetof"));
 
12880
+         return this;
 
12881
+       }
 
12882
+
 
12883
       Field_reference_expression* farg = arg->field_reference_expression();
 
12884
       while (farg != NULL)
 
12885
        {
 
12886
@@ -7200,7 +7270,8 @@
 
12887
          // it must not be reached through pointer indirections.
 
12888
          if (farg->expr()->deref() != farg->expr())
 
12889
            {
 
12890
-             this->report_error(_("argument of Offsetof implies indirection of an embedded field"));
 
12891
+             this->report_error(_("argument of Offsetof implies "
 
12892
+                                  "indirection of an embedded field"));
 
12893
              return this;
 
12894
            }
 
12895
          // Go up until we reach the original base.
 
12896
@@ -7476,7 +7547,7 @@
 
12897
       switch (nc.to_unsigned_long(&v))
 
12898
        {
 
12899
        case Numeric_constant::NC_UL_VALID:
 
12900
-         return true;
 
12901
+         break;
 
12902
        case Numeric_constant::NC_UL_NOTINT:
 
12903
          error_at(e->location(), "non-integer %s argument to make",
 
12904
                   is_length ? "len" : "cap");
 
12905
@@ -7488,8 +7559,23 @@
 
12906
        case Numeric_constant::NC_UL_BIG:
 
12907
          // We don't want to give a compile-time error for a 64-bit
 
12908
          // value on a 32-bit target.
 
12909
-         return true;
 
12910
+         break;
 
12911
        }
 
12912
+
 
12913
+      mpz_t val;
 
12914
+      if (!nc.to_int(&val))
 
12915
+       go_unreachable();
 
12916
+      int bits = mpz_sizeinbase(val, 2);
 
12917
+      mpz_clear(val);
 
12918
+      Type* int_type = Type::lookup_integer_type("int");
 
12919
+      if (bits >= int_type->integer_type()->bits())
 
12920
+       {
 
12921
+         error_at(e->location(), "%s argument too large for make",
 
12922
+                  is_length ? "len" : "cap");
 
12923
+         return false;
 
12924
+       }
 
12925
+
 
12926
+      return true;
 
12927
     }
 
12928
 
 
12929
   if (e->type()->integer_type() != NULL)
 
12930
@@ -7595,6 +7681,8 @@
 
12931
 bool
 
12932
 Builtin_call_expression::do_is_constant() const
 
12933
 {
 
12934
+  if (this->is_error_expression())
 
12935
+    return true;
 
12936
   switch (this->code_)
 
12937
     {
 
12938
     case BUILTIN_LEN:
 
12939
@@ -9744,15 +9832,9 @@
 
12940
     }
 
12941
 
 
12942
   tree fntype_tree = type_to_tree(fntype->get_backend(gogo));
 
12943
-  if (fntype_tree == error_mark_node)
 
12944
+  tree fnfield_type = type_to_tree(fntype->get_backend_fntype(gogo));
 
12945
+  if (fntype_tree == error_mark_node || fnfield_type == error_mark_node)
 
12946
     return error_mark_node;
 
12947
-  go_assert(POINTER_TYPE_P(fntype_tree));
 
12948
-  if (TREE_TYPE(fntype_tree) == error_mark_node)
 
12949
-    return error_mark_node;
 
12950
-  go_assert(TREE_CODE(TREE_TYPE(fntype_tree)) == RECORD_TYPE);
 
12951
-  tree fnfield_type = TREE_TYPE(TYPE_FIELDS(TREE_TYPE(fntype_tree)));
 
12952
-  if (fnfield_type == error_mark_node)
 
12953
-    return error_mark_node;
 
12954
   go_assert(FUNCTION_POINTER_TYPE_P(fnfield_type));
 
12955
   tree rettype = TREE_TYPE(TREE_TYPE(fnfield_type));
 
12956
   if (rettype == error_mark_node)
 
12957
@@ -9763,7 +9845,7 @@
 
12958
   if (func != NULL)
 
12959
     {
 
12960
       Named_object* no = func->named_object();
 
12961
-      fn = Func_expression::get_code_pointer(gogo, no, location);
 
12962
+      fn = expr_to_tree(Func_expression::get_code_pointer(gogo, no, location));
 
12963
       if (!has_closure)
 
12964
        closure_tree = NULL_TREE;
 
12965
       else
 
12966
@@ -10817,11 +10899,20 @@
 
12967
 void
 
12968
 String_index_expression::do_check_types(Gogo*)
 
12969
 {
 
12970
-  if (this->start_->type()->integer_type() == NULL)
 
12971
+  Numeric_constant nc;
 
12972
+  unsigned long v;
 
12973
+  if (this->start_->type()->integer_type() == NULL
 
12974
+      && !this->start_->type()->is_error()
 
12975
+      && (!this->start_->numeric_constant_value(&nc)
 
12976
+         || nc.to_unsigned_long(&v) == Numeric_constant::NC_UL_NOTINT))
 
12977
     this->report_error(_("index must be integer"));
 
12978
   if (this->end_ != NULL
 
12979
       && this->end_->type()->integer_type() == NULL
 
12980
-      && !this->end_->is_nil_expression())
 
12981
+      && !this->end_->type()->is_error()
 
12982
+      && !this->end_->is_nil_expression()
 
12983
+      && !this->end_->is_error_expression()
 
12984
+      && (!this->end_->numeric_constant_value(&nc)
 
12985
+         || nc.to_unsigned_long(&v) == Numeric_constant::NC_UL_NOTINT))
 
12986
     this->report_error(_("slice end must be integer"));
 
12987
 
 
12988
   std::string sval;
 
12989
Index: gcc/recog.c
 
12990
===================================================================
 
12991
--- a/src/gcc/recog.c   (.../tags/gcc_4_8_2_release)
 
12992
+++ b/src/gcc/recog.c   (.../branches/gcc-4_8-branch)
 
12993
@@ -3061,6 +3061,9 @@
 
12994
   return 1;
 
12995
 }
 
12996
 
 
12997
+/* Regno offset to be used in the register search.  */
 
12998
+static int search_ofs;
 
12999
+
 
13000
 /* Try to find a hard register of mode MODE, matching the register class in
 
13001
    CLASS_STR, which is available at the beginning of insn CURRENT_INSN and
 
13002
    remains available until the end of LAST_INSN.  LAST_INSN may be NULL_RTX,
 
13003
@@ -3076,7 +3079,6 @@
 
13004
 peep2_find_free_register (int from, int to, const char *class_str,
 
13005
                          enum machine_mode mode, HARD_REG_SET *reg_set)
 
13006
 {
 
13007
-  static int search_ofs;
 
13008
   enum reg_class cl;
 
13009
   HARD_REG_SET live;
 
13010
   df_ref *def_rec;
 
13011
@@ -3541,6 +3543,7 @@
 
13012
   /* Initialize the regsets we're going to use.  */
 
13013
   for (i = 0; i < MAX_INSNS_PER_PEEP2 + 1; ++i)
 
13014
     peep2_insn_data[i].live_before = BITMAP_ALLOC (&reg_obstack);
 
13015
+  search_ofs = 0;
 
13016
   live = BITMAP_ALLOC (&reg_obstack);
 
13017
 
 
13018
   FOR_EACH_BB_REVERSE (bb)
 
13019
Index: gcc/ada/indepsw-darwin.adb
 
13020
===================================================================
 
13021
--- a/src/gcc/ada/indepsw-darwin.adb    (.../tags/gcc_4_8_2_release)
 
13022
+++ b/src/gcc/ada/indepsw-darwin.adb    (.../branches/gcc-4_8-branch)
 
13023
@@ -0,0 +1,67 @@
 
13024
+------------------------------------------------------------------------------
 
13025
+--                                                                          --
 
13026
+--                         GNAT COMPILER COMPONENTS                         --
 
13027
+--                                                                          --
 
13028
+--                              I N D E P S W                               --
 
13029
+--                                                                          --
 
13030
+--                                 B o d y                                  --
 
13031
+--                            (Darwin version)                              --
 
13032
+--                                                                          --
 
13033
+--            Copyright (C) 2013, Free Software Foundation, Inc.            --
 
13034
+--                                                                          --
 
13035
+-- GNAT is free software;  you can  redistribute it  and/or modify it under --
 
13036
+-- terms of the  GNU General Public License as published  by the Free Soft- --
 
13037
+-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
 
13038
+-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
 
13039
+-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
 
13040
+-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
 
13041
+--                                                                          --
 
13042
+-- As a special exception under Section 7 of GPL version 3, you are granted --
 
13043
+-- additional permissions described in the GCC Runtime Library Exception,   --
 
13044
+-- version 3.1, as published by the Free Software Foundation.               --
 
13045
+--                                                                          --
 
13046
+-- You should have received a copy of the GNU General Public License and    --
 
13047
+-- a copy of the GCC Runtime Library Exception along with this program;     --
 
13048
+-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
 
13049
+-- <http://www.gnu.org/licenses/>.                                          --
 
13050
+--                                                                          --
 
13051
+-- GNAT was originally developed  by the GNAT team at  New York University. --
 
13052
+-- Extensive contributions were provided by Ada Core Technologies Inc.      --
 
13053
+--                                                                          --
 
13054
+------------------------------------------------------------------------------
 
13055
+
 
13056
+--  This is the Darwin version
 
13057
+
 
13058
+package body Indepsw is
 
13059
+
 
13060
+   Map_Switch : aliased constant String := "-Wl,-map,";
 
13061
+
 
13062
+   -------------
 
13063
+   -- Convert --
 
13064
+   -------------
 
13065
+
 
13066
+   procedure Convert
 
13067
+     (Switch   : Switch_Kind;
 
13068
+      Argument : String;
 
13069
+      To       : out String_List_Access)
 
13070
+   is
 
13071
+   begin
 
13072
+      case Switch is
 
13073
+         when Map_File =>
 
13074
+            To := new Argument_List'(1 => new String'(Map_Switch & Argument));
 
13075
+      end case;
 
13076
+   end Convert;
 
13077
+
 
13078
+   ------------------
 
13079
+   -- Is_Supported --
 
13080
+   ------------------
 
13081
+
 
13082
+   function Is_Supported (Switch : Switch_Kind) return Boolean is
 
13083
+   begin
 
13084
+      case Switch is
 
13085
+         when Map_File =>
 
13086
+            return True;
 
13087
+      end case;
 
13088
+   end Is_Supported;
 
13089
+
 
13090
+end Indepsw;
 
13091
Index: gcc/ada/ChangeLog
 
13092
===================================================================
 
13093
--- a/src/gcc/ada/ChangeLog     (.../tags/gcc_4_8_2_release)
 
13094
+++ b/src/gcc/ada/ChangeLog     (.../branches/gcc-4_8-branch)
 
13095
@@ -1,3 +1,29 @@
 
13096
+2013-12-12  Eric Botcazou  <ebotcazou@adacore.com>
 
13097
+           Iain Sandoe  <iain@codesourcery.com>
 
13098
+
 
13099
+       PR ada/55946
 
13100
+       * gcc-interface/Make-lang.in (ada/doctools/xgnatugn): Use gnatmake.
 
13101
+       * gcc-interface/Makefile.in (GCC_LINK): Add LDFLAGS.
 
13102
+       (../../gnatmake): Remove LDFLAGS.
 
13103
+       (../../gnatlink): Likewise.
 
13104
+
 
13105
+2013-12-04  Eric Botcazou  <ebotcazou@adacore.com>
 
13106
+
 
13107
+       PR ada/59382
 
13108
+       * indepsw-darwin.adb: New file.
 
13109
+
 
13110
+2013-10-19  Eric Botcazou  <ebotcazou@adacore.com>
 
13111
+
 
13112
+       * gcc-interface/utils.c (scale_by_factor_of): New function.
 
13113
+       (rest_of_record_type_compilation): Use scale_by_factor_of in order to
 
13114
+       scale the original offset for both rounding cases; in the second case,
 
13115
+       take into accout the addend to compute the alignment.  Tidy up.
 
13116
+
 
13117
+2013-10-19  Eric Botcazou  <ebotcazou@adacore.com>
 
13118
+
 
13119
+       * gcc-interface/utils.c (gnat_set_type_context): New function.
 
13120
+       (gnat_pushdecl): Use it to set the context of the type.
 
13121
+
 
13122
 2013-10-16  Release Manager
 
13123
 
 
13124
        * GCC 4.8.2 released.
 
13125
Index: gcc/ada/gcc-interface/utils.c
 
13126
===================================================================
 
13127
--- a/src/gcc/ada/gcc-interface/utils.c (.../tags/gcc_4_8_2_release)
 
13128
+++ b/src/gcc/ada/gcc-interface/utils.c (.../branches/gcc-4_8-branch)
 
13129
@@ -232,6 +232,7 @@
 
13130
 static tree split_plus (tree, tree *);
 
13131
 static tree float_type_for_precision (int, enum machine_mode);
 
13132
 static tree convert_to_fat_pointer (tree, tree);
 
13133
+static unsigned int scale_by_factor_of (tree, unsigned int);
 
13134
 static bool potential_alignment_gap (tree, tree, tree);
 
13135
 static void process_attributes (tree, struct attrib *);
 
13136
 
 
13137
@@ -532,6 +533,22 @@
 
13138
   free_binding_level = level;
 
13139
 }
 
13140
 
 
13141
+/* Set the context of TYPE and its parallel types (if any) to CONTEXT.  */
 
13142
+
 
13143
+static void
 
13144
+gnat_set_type_context (tree type, tree context)
 
13145
+{
 
13146
+  tree decl = TYPE_STUB_DECL (type);
 
13147
+
 
13148
+  TYPE_CONTEXT (type) = context;
 
13149
+
 
13150
+  while (decl && DECL_PARALLEL_TYPE (decl))
 
13151
+    {
 
13152
+      TYPE_CONTEXT (DECL_PARALLEL_TYPE (decl)) = context;
 
13153
+      decl = TYPE_STUB_DECL (DECL_PARALLEL_TYPE (decl));
 
13154
+    }
 
13155
+}
 
13156
+
 
13157
 /* Record DECL as belonging to the current lexical scope and use GNAT_NODE
 
13158
    for location information and flag propagation.  */
 
13159
 
 
13160
@@ -613,7 +630,7 @@
 
13161
              if (TREE_CODE (t) == POINTER_TYPE)
 
13162
                TYPE_NEXT_PTR_TO (t) = tt;
 
13163
              TYPE_NAME (tt) = DECL_NAME (decl);
 
13164
-             TYPE_CONTEXT (tt) = DECL_CONTEXT (decl);
 
13165
+             gnat_set_type_context (tt, DECL_CONTEXT (decl));
 
13166
              TYPE_STUB_DECL (tt) = TYPE_STUB_DECL (t);
 
13167
              DECL_ORIGINAL_TYPE (decl) = tt;
 
13168
            }
 
13169
@@ -623,7 +640,7 @@
 
13170
          /* We need a variant for the placeholder machinery to work.  */
 
13171
          tree tt = build_variant_type_copy (t);
 
13172
          TYPE_NAME (tt) = decl;
 
13173
-         TYPE_CONTEXT (tt) = DECL_CONTEXT (decl);
 
13174
+         gnat_set_type_context (tt, DECL_CONTEXT (decl));
 
13175
          TREE_USED (tt) = TREE_USED (t);
 
13176
          TREE_TYPE (decl) = tt;
 
13177
          if (DECL_ORIGINAL_TYPE (TYPE_NAME (t)))
 
13178
@@ -645,7 +662,7 @@
 
13179
          if (!(TYPE_NAME (t) && TREE_CODE (TYPE_NAME (t)) == TYPE_DECL))
 
13180
            {
 
13181
              TYPE_NAME (t) = decl;
 
13182
-             TYPE_CONTEXT (t) = DECL_CONTEXT (decl);
 
13183
+             gnat_set_type_context (t, DECL_CONTEXT (decl));
 
13184
            }
 
13185
     }
 
13186
 }
 
13187
@@ -1692,93 +1709,74 @@
 
13188
       TYPE_SIZE_UNIT (new_record_type)
 
13189
        = size_int (TYPE_ALIGN (record_type) / BITS_PER_UNIT);
 
13190
 
 
13191
-      /* Now scan all the fields, replacing each field with a new
 
13192
-        field corresponding to the new encoding.  */
 
13193
+      /* Now scan all the fields, replacing each field with a new field
 
13194
+        corresponding to the new encoding.  */
 
13195
       for (old_field = TYPE_FIELDS (record_type); old_field;
 
13196
           old_field = DECL_CHAIN (old_field))
 
13197
        {
 
13198
          tree field_type = TREE_TYPE (old_field);
 
13199
          tree field_name = DECL_NAME (old_field);
 
13200
-         tree new_field;
 
13201
          tree curpos = bit_position (old_field);
 
13202
+         tree pos, new_field;
 
13203
          bool var = false;
 
13204
          unsigned int align = 0;
 
13205
-         tree pos;
 
13206
 
 
13207
+         /* We're going to do some pattern matching below so remove as many
 
13208
+            conversions as possible.  */
 
13209
+         curpos = remove_conversions (curpos, true);
 
13210
+
 
13211
          /* See how the position was modified from the last position.
 
13212
 
 
13213
-         There are two basic cases we support: a value was added
 
13214
-         to the last position or the last position was rounded to
 
13215
-         a boundary and they something was added.  Check for the
 
13216
-         first case first.  If not, see if there is any evidence
 
13217
-         of rounding.  If so, round the last position and try
 
13218
-         again.
 
13219
+            There are two basic cases we support: a value was added
 
13220
+            to the last position or the last position was rounded to
 
13221
+            a boundary and they something was added.  Check for the
 
13222
+            first case first.  If not, see if there is any evidence
 
13223
+            of rounding.  If so, round the last position and retry.
 
13224
 
 
13225
-         If this is a union, the position can be taken as zero. */
 
13226
-
 
13227
-         /* Some computations depend on the shape of the position expression,
 
13228
-            so strip conversions to make sure it's exposed.  */
 
13229
-         curpos = remove_conversions (curpos, true);
 
13230
-
 
13231
+            If this is a union, the position can be taken as zero.  */
 
13232
          if (TREE_CODE (new_record_type) == UNION_TYPE)
 
13233
-           pos = bitsize_zero_node, align = 0;
 
13234
+           pos = bitsize_zero_node;
 
13235
          else
 
13236
            pos = compute_related_constant (curpos, last_pos);
 
13237
 
 
13238
-         if (!pos && TREE_CODE (curpos) == MULT_EXPR
 
13239
+         if (!pos
 
13240
+             && TREE_CODE (curpos) == MULT_EXPR
 
13241
              && host_integerp (TREE_OPERAND (curpos, 1), 1))
 
13242
            {
 
13243
              tree offset = TREE_OPERAND (curpos, 0);
 
13244
              align = tree_low_cst (TREE_OPERAND (curpos, 1), 1);
 
13245
-
 
13246
-             /* An offset which is a bitwise AND with a mask increases the
 
13247
-                alignment according to the number of trailing zeros.  */
 
13248
-             offset = remove_conversions (offset, true);
 
13249
-             if (TREE_CODE (offset) == BIT_AND_EXPR
 
13250
-                 && TREE_CODE (TREE_OPERAND (offset, 1)) == INTEGER_CST)
 
13251
-               {
 
13252
-                 unsigned HOST_WIDE_INT mask
 
13253
-                   = TREE_INT_CST_LOW (TREE_OPERAND (offset, 1));
 
13254
-                 unsigned int i;
 
13255
-
 
13256
-                 for (i = 0; i < HOST_BITS_PER_WIDE_INT; i++)
 
13257
-                   {
 
13258
-                     if (mask & 1)
 
13259
-                       break;
 
13260
-                     mask >>= 1;
 
13261
-                     align *= 2;
 
13262
-                   }
 
13263
-               }
 
13264
-
 
13265
-             pos = compute_related_constant (curpos,
 
13266
-                                             round_up (last_pos, align));
 
13267
+             align = scale_by_factor_of (offset, align);
 
13268
+             last_pos = round_up (last_pos, align);
 
13269
+             pos = compute_related_constant (curpos, last_pos);
 
13270
            }
 
13271
-         else if (!pos && TREE_CODE (curpos) == PLUS_EXPR
 
13272
-                  && TREE_CODE (TREE_OPERAND (curpos, 1)) == INTEGER_CST
 
13273
+         else if (!pos
 
13274
+                  && TREE_CODE (curpos) == PLUS_EXPR
 
13275
+                  && host_integerp (TREE_OPERAND (curpos, 1), 1)
 
13276
                   && TREE_CODE (TREE_OPERAND (curpos, 0)) == MULT_EXPR
 
13277
-                  && host_integerp (TREE_OPERAND
 
13278
-                                    (TREE_OPERAND (curpos, 0), 1),
 
13279
-                                    1))
 
13280
+                  && host_integerp
 
13281
+                     (TREE_OPERAND (TREE_OPERAND (curpos, 0), 1), 1))
 
13282
            {
 
13283
+             tree offset = TREE_OPERAND (TREE_OPERAND (curpos, 0), 0);
 
13284
+             unsigned HOST_WIDE_INT addend
 
13285
+               = tree_low_cst (TREE_OPERAND (curpos, 1), 1);
 
13286
              align
 
13287
-               = tree_low_cst
 
13288
-               (TREE_OPERAND (TREE_OPERAND (curpos, 0), 1), 1);
 
13289
-             pos = compute_related_constant (curpos,
 
13290
-                                             round_up (last_pos, align));
 
13291
+               = tree_low_cst (TREE_OPERAND (TREE_OPERAND (curpos, 0), 1), 1);
 
13292
+             align = scale_by_factor_of (offset, align);
 
13293
+             align = MIN (align, addend & -addend);
 
13294
+             last_pos = round_up (last_pos, align);
 
13295
+             pos = compute_related_constant (curpos, last_pos);
 
13296
            }
 
13297
-         else if (potential_alignment_gap (prev_old_field, old_field,
 
13298
-                                           pos))
 
13299
+         else if (potential_alignment_gap (prev_old_field, old_field, pos))
 
13300
            {
 
13301
              align = TYPE_ALIGN (field_type);
 
13302
-             pos = compute_related_constant (curpos,
 
13303
-                                             round_up (last_pos, align));
 
13304
+             last_pos = round_up (last_pos, align);
 
13305
+             pos = compute_related_constant (curpos, last_pos);
 
13306
            }
 
13307
 
 
13308
          /* If we can't compute a position, set it to zero.
 
13309
 
 
13310
-         ??? We really should abort here, but it's too much work
 
13311
-         to get this correct for all cases.  */
 
13312
-
 
13313
+            ??? We really should abort here, but it's too much work
 
13314
+            to get this correct for all cases.  */
 
13315
          if (!pos)
 
13316
            pos = bitsize_zero_node;
 
13317
 
 
13318
@@ -2553,6 +2551,32 @@
 
13319
   return false;
 
13320
 }
 
13321
 
 
13322
+/* Return VALUE scaled by the biggest power-of-2 factor of EXPR.  */
 
13323
+
 
13324
+static unsigned int
 
13325
+scale_by_factor_of (tree expr, unsigned int value)
 
13326
+{
 
13327
+  expr = remove_conversions (expr, true);
 
13328
+
 
13329
+  /* An expression which is a bitwise AND with a mask has a power-of-2 factor
 
13330
+     corresponding to the number of trailing zeros of the mask.  */
 
13331
+  if (TREE_CODE (expr) == BIT_AND_EXPR
 
13332
+      && TREE_CODE (TREE_OPERAND (expr, 1)) == INTEGER_CST)
 
13333
+    {
 
13334
+      unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (TREE_OPERAND (expr, 1));
 
13335
+      unsigned int i = 0;
 
13336
+
 
13337
+      while ((mask & 1) == 0 && i < HOST_BITS_PER_WIDE_INT)
 
13338
+       {
 
13339
+         mask >>= 1;
 
13340
+         value *= 2;
 
13341
+         i++;
 
13342
+       }
 
13343
+    }
 
13344
+
 
13345
+  return value;
 
13346
+}
 
13347
+
 
13348
 /* Given two consecutive field decls PREV_FIELD and CURR_FIELD, return true
 
13349
    unless we can prove these 2 fields are laid out in such a way that no gap
 
13350
    exist between the end of PREV_FIELD and the beginning of CURR_FIELD.  OFFSET
 
13351
Index: gcc/ada/gcc-interface/Makefile.in
 
13352
===================================================================
 
13353
--- a/src/gcc/ada/gcc-interface/Makefile.in     (.../tags/gcc_4_8_2_release)
 
13354
+++ b/src/gcc/ada/gcc-interface/Makefile.in     (.../branches/gcc-4_8-branch)
 
13355
@@ -2397,7 +2397,7 @@
 
13356
        "GNATLINK=$(GNATLINK)"  \
 
13357
        "GNATBIND=$(GNATBIND)"
 
13358
 
 
13359
-GCC_LINK=$(CC) $(GCC_LINK_FLAGS) $(ADA_INCLUDES)
 
13360
+GCC_LINK=$(CC) $(GCC_LINK_FLAGS) $(ADA_INCLUDES) $(LDFLAGS)
 
13361
 
 
13362
 # Build directory for the tools. Let's copy the target-dependent
 
13363
 # sources using the same mechanism as for gnatlib. The other sources are
 
13364
@@ -2519,12 +2519,10 @@
 
13365
 
 
13366
 # Likewise for the tools
 
13367
 ../../gnatmake$(exeext): $(P) b_gnatm.o link.o targext.o $(GNATMAKE_OBJS)
 
13368
-       $(GCC_LINK) $(ALL_CFLAGS) $(LDFLAGS) -o $@ b_gnatm.o $(GNATMAKE_OBJS) \
 
13369
-                   $(TOOLS_LIBS)
 
13370
+       +$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatm.o $(GNATMAKE_OBJS) $(TOOLS_LIBS)
 
13371
 
 
13372
 ../../gnatlink$(exeext): $(P) b_gnatl.o link.o targext.o $(GNATLINK_OBJS)
 
13373
-       $(GCC_LINK) $(ALL_CFLAGS) $(LDFLAGS) -o $@ b_gnatl.o $(GNATLINK_OBJS) \
 
13374
-                   $(TOOLS_LIBS)
 
13375
+       +$(GCC_LINK) $(ALL_CFLAGS) -o $@ b_gnatl.o $(GNATLINK_OBJS) $(TOOLS_LIBS)
 
13376
 
 
13377
 ../stamp-gnatlib-$(RTSDIR):
 
13378
        @if [ ! -f stamp-gnatlib-$(RTSDIR) ] ; \
 
13379
Index: gcc/ada/gcc-interface/Make-lang.in
 
13380
===================================================================
 
13381
--- a/src/gcc/ada/gcc-interface/Make-lang.in    (.../tags/gcc_4_8_2_release)
 
13382
+++ b/src/gcc/ada/gcc-interface/Make-lang.in    (.../branches/gcc-4_8-branch)
 
13383
@@ -625,7 +625,7 @@
 
13384
 ada/doctools/xgnatugn$(build_exeext): ada/xgnatugn.adb
 
13385
        -$(MKDIR) ada/doctools
 
13386
        $(CP) $^ ada/doctools
 
13387
-       cd ada/doctools && $(GNATMAKE) -q xgnatugn
 
13388
+       cd ada/doctools && gnatmake -q xgnatugn
 
13389
 
 
13390
 # Note that doc/gnat_ugn.texi and doc/projects.texi do not depend on
 
13391
 # xgnatugn being built so we can distribute a pregenerated doc/gnat_ugn.info
 
13392
Index: gcc/fortran/interface.c
 
13393
===================================================================
 
13394
--- a/src/gcc/fortran/interface.c       (.../tags/gcc_4_8_2_release)
 
13395
+++ b/src/gcc/fortran/interface.c       (.../branches/gcc-4_8-branch)
 
13396
@@ -1245,7 +1245,8 @@
 
13397
          return FAILURE;
 
13398
        }
 
13399
 
 
13400
-      if (r1->ts.u.cl->length)
 
13401
+      if (s1->ts.u.cl && s1->ts.u.cl->length
 
13402
+         && s2->ts.u.cl && s2->ts.u.cl->length)
 
13403
        {
 
13404
          int compval = gfc_dep_compare_expr (r1->ts.u.cl->length,
 
13405
                                              r2->ts.u.cl->length);
 
13406
@@ -1367,8 +1368,8 @@
 
13407
       if (s1->attr.function && s2->attr.function)
 
13408
        {
 
13409
          /* If both are functions, check result characteristics.  */
 
13410
-         if (check_result_characteristics (s1, s2, errmsg, err_len)
 
13411
-             == FAILURE)
 
13412
+         if (check_result_characteristics (s1, s2, errmsg, err_len) == FAILURE
 
13413
+             || check_result_characteristics (s2, s1, errmsg, err_len) == FAILURE)
 
13414
            return 0;
 
13415
        }
 
13416
 
 
13417
Index: gcc/fortran/trans-expr.c
 
13418
===================================================================
 
13419
--- a/src/gcc/fortran/trans-expr.c      (.../tags/gcc_4_8_2_release)
 
13420
+++ b/src/gcc/fortran/trans-expr.c      (.../branches/gcc-4_8-branch)
 
13421
@@ -670,7 +670,6 @@
 
13422
     gfc_add_modify (&parmse->post, vptr,
 
13423
                    fold_convert (TREE_TYPE (vptr), ctree));
 
13424
 
 
13425
-  gcc_assert (!optional || (optional && !copyback));
 
13426
   if (optional)
 
13427
     {
 
13428
       tree tmp2;
 
13429
Index: gcc/fortran/decl.c
 
13430
===================================================================
 
13431
--- a/src/gcc/fortran/decl.c    (.../tags/gcc_4_8_2_release)
 
13432
+++ b/src/gcc/fortran/decl.c    (.../branches/gcc-4_8-branch)
 
13433
@@ -7384,6 +7384,7 @@
 
13434
 
 
13435
 
 
13436
 /* Check a derived type that is being extended.  */
 
13437
+
 
13438
 static gfc_symbol*
 
13439
 check_extended_derived_type (char *name)
 
13440
 {
 
13441
@@ -7395,14 +7396,15 @@
 
13442
       return NULL;
 
13443
     }
 
13444
 
 
13445
+  extended = gfc_find_dt_in_generic (extended);
 
13446
+
 
13447
+  /* F08:C428.  */
 
13448
   if (!extended)
 
13449
     {
 
13450
-      gfc_error ("No such symbol in TYPE definition at %C");
 
13451
+      gfc_error ("Symbol '%s' at %C has not been previously defined", name);
 
13452
       return NULL;
 
13453
     }
 
13454
 
 
13455
-  extended = gfc_find_dt_in_generic (extended);
 
13456
-
 
13457
   if (extended->attr.flavor != FL_DERIVED)
 
13458
     {
 
13459
       gfc_error ("'%s' in EXTENDS expression at %C is not a "
 
13460
Index: gcc/fortran/ChangeLog
 
13461
===================================================================
 
13462
--- a/src/gcc/fortran/ChangeLog (.../tags/gcc_4_8_2_release)
 
13463
+++ b/src/gcc/fortran/ChangeLog (.../branches/gcc-4_8-branch)
 
13464
@@ -1,3 +1,52 @@
 
13465
+2013-11-30  Paul Thomas  <pault@gcc.gnu.org>
 
13466
+
 
13467
+       Backport from mainline
 
13468
+       2013-11-04  Paul Thomas  <pault@gcc.gnu.org>
 
13469
+
 
13470
+       PR fortran/57445
 
13471
+       * trans-expr.c (gfc_conv_class_to_class): Remove spurious
 
13472
+       assert.
 
13473
+
 
13474
+2013-11-17  Janus Weil  <janus@gcc.gnu.org>
 
13475
+
 
13476
+       Backport from mainline
 
13477
+       2013-11-07  Janus Weil  <janus@gcc.gnu.org>
 
13478
+
 
13479
+       PR fortran/58471
 
13480
+       * primary.c (gfc_expr_attr): Check for result symbol.
 
13481
+
 
13482
+2013-11-16  Janus Weil  <janus@gcc.gnu.org>
 
13483
+
 
13484
+       Backport from mainline
 
13485
+       2013-09-20  Janus Weil  <janus@gcc.gnu.org>
 
13486
+
 
13487
+       PR fortran/58099
 
13488
+       * expr.c (gfc_check_pointer_assign): Remove second call to
 
13489
+       'gfc_compare_interfaces' with swapped arguments.
 
13490
+       * interface.c (gfc_compare_interfaces): Symmetrize the call to
 
13491
+       'check_result_characteristics' by calling it with swapped arguments.
 
13492
+
 
13493
+2013-11-16  Paul Thomas  <pault@gcc.gnu.org>
 
13494
+
 
13495
+       PR fortran/58771
 
13496
+       * trans-io.c (transfer_expr): If the backend_decl for a derived
 
13497
+       type is missing, build it with gfc_typenode_for_spec.
 
13498
+
 
13499
+2013-11-05  Steven G. Kargl <kargl@gcc.gnu.org>
 
13500
+
 
13501
+       PR fortran/58989
 
13502
+       * check.c (gfc_check_reshape): ensure that shape is a constant
 
13503
+       expression.
 
13504
+
 
13505
+2013-11-02  Janus Weil  <janus@gcc.gnu.org>
 
13506
+
 
13507
+       Backport from mainline
 
13508
+       2013-09-23  Janus Weil  <janus@gcc.gnu.org>
 
13509
+
 
13510
+       PR fortran/58355
 
13511
+       * decl.c (check_extended_derived_type): Prevent segfault, modify error
 
13512
+       message.
 
13513
+
 
13514
 2013-10-16  Release Manager
 
13515
 
 
13516
        * GCC 4.8.2 released.
 
13517
Index: gcc/fortran/expr.c
 
13518
===================================================================
 
13519
--- a/src/gcc/fortran/expr.c    (.../tags/gcc_4_8_2_release)
 
13520
+++ b/src/gcc/fortran/expr.c    (.../branches/gcc-4_8-branch)
 
13521
@@ -3555,14 +3555,6 @@
 
13522
          return FAILURE;
 
13523
        }
 
13524
 
 
13525
-      if (!gfc_compare_interfaces (s2, s1, name, 0, 1,
 
13526
-                                  err, sizeof(err), NULL, NULL))
 
13527
-       {
 
13528
-         gfc_error ("Interface mismatch in procedure pointer assignment "
 
13529
-                    "at %L: %s", &rvalue->where, err);
 
13530
-         return FAILURE;
 
13531
-       }
 
13532
-
 
13533
       return SUCCESS;
 
13534
     }
 
13535
 
 
13536
Index: gcc/fortran/trans-io.c
 
13537
===================================================================
 
13538
--- a/src/gcc/fortran/trans-io.c        (.../tags/gcc_4_8_2_release)
 
13539
+++ b/src/gcc/fortran/trans-io.c        (.../branches/gcc-4_8-branch)
 
13540
@@ -243,16 +243,16 @@
 
13541
 
 
13542
   /* The code to generate the error.  */
 
13543
   gfc_start_block (&block);
 
13544
-  
 
13545
+
 
13546
   arg1 = gfc_build_addr_expr (NULL_TREE, var);
 
13547
-  
 
13548
+
 
13549
   arg2 = build_int_cst (integer_type_node, error_code),
 
13550
-  
 
13551
+
 
13552
   asprintf (&message, "%s", _(msgid));
 
13553
   arg3 = gfc_build_addr_expr (pchar_type_node,
 
13554
                              gfc_build_localized_cstring_const (message));
 
13555
   free (message);
 
13556
-  
 
13557
+
 
13558
   tmp = build_call_expr_loc (input_location,
 
13559
                         gfor_fndecl_generate_error, 3, arg1, arg2, arg3);
 
13560
 
 
13561
@@ -521,7 +521,7 @@
 
13562
       gfc_trans_io_runtime_check (cond, var, LIBERROR_BAD_UNIT,
 
13563
                               "Unit number in I/O statement too small",
 
13564
                               &se.pre);
 
13565
-    
 
13566
+
 
13567
       /* UNIT numbers should be less than the max.  */
 
13568
       val = gfc_conv_mpz_to_tree (gfc_integer_kinds[i].huge, 4);
 
13569
       cond = fold_build2_loc (input_location, GT_EXPR, boolean_type_node,
 
13570
@@ -1000,7 +1000,7 @@
 
13571
   if (p->convert)
 
13572
     mask |= set_string (&block, &post_block, var, IOPARM_open_convert,
 
13573
                        p->convert);
 
13574
-                       
 
13575
+
 
13576
   if (p->newunit)
 
13577
     mask |= set_parameter_ref (&block, &post_block, var, IOPARM_open_newunit,
 
13578
                               p->newunit);
 
13579
@@ -1234,7 +1234,7 @@
 
13580
     {
 
13581
       mask |= set_parameter_ref (&block, &post_block, var, IOPARM_inquire_exist,
 
13582
                                 p->exist);
 
13583
-    
 
13584
+
 
13585
       if (p->unit && !p->iostat)
 
13586
        {
 
13587
          p->iostat = create_dummy_iostat ();
 
13588
@@ -1322,7 +1322,7 @@
 
13589
   if (p->pad)
 
13590
     mask |= set_string (&block, &post_block, var, IOPARM_inquire_pad,
 
13591
                        p->pad);
 
13592
-  
 
13593
+
 
13594
   if (p->convert)
 
13595
     mask |= set_string (&block, &post_block, var, IOPARM_inquire_convert,
 
13596
                        p->convert);
 
13597
@@ -1547,7 +1547,7 @@
 
13598
   tree dtype;
 
13599
   tree dt_parm_addr;
 
13600
   tree decl = NULL_TREE;
 
13601
-  int n_dim; 
 
13602
+  int n_dim;
 
13603
   int itype;
 
13604
   int rank = 0;
 
13605
 
 
13606
@@ -2032,7 +2032,7 @@
 
13607
       if (gfc_notification_std (GFC_STD_GNU) != SILENT)
 
13608
        {
 
13609
          gfc_error_now ("Derived type '%s' at %L has PRIVATE components",
 
13610
-                        ts->u.derived->name, code != NULL ? &(code->loc) : 
 
13611
+                        ts->u.derived->name, code != NULL ? &(code->loc) :
 
13612
                         &gfc_current_locus);
 
13613
          return;
 
13614
        }
 
13615
@@ -2041,7 +2041,7 @@
 
13616
       ts->kind = ts->u.derived->ts.kind;
 
13617
       ts->f90_type = ts->u.derived->ts.f90_type;
 
13618
     }
 
13619
-  
 
13620
+
 
13621
   kind = ts->kind;
 
13622
   function = NULL;
 
13623
   arg2 = NULL;
 
13624
@@ -2123,7 +2123,7 @@
 
13625
            function = iocall[IOCALL_X_CHARACTER_WIDE];
 
13626
          else
 
13627
            function = iocall[IOCALL_X_CHARACTER_WIDE_WRITE];
 
13628
-           
 
13629
+
 
13630
          tmp = gfc_build_addr_expr (NULL_TREE, dt_parm);
 
13631
          tmp = build_call_expr_loc (input_location,
 
13632
                                 function, 4, tmp, addr_expr, arg2, arg3);
 
13633
@@ -2158,6 +2158,12 @@
 
13634
       expr = build_fold_indirect_ref_loc (input_location,
 
13635
                                      expr);
 
13636
 
 
13637
+      /* Make sure that the derived type has been built.  An external
 
13638
+        function, if only referenced in an io statement requires this
 
13639
+        check (see PR58771).  */
 
13640
+      if (ts->u.derived->backend_decl == NULL_TREE)
 
13641
+       tmp = gfc_typenode_for_spec (ts);
 
13642
+
 
13643
       for (c = ts->u.derived->components; c; c = c->next)
 
13644
        {
 
13645
          field = c->backend_decl;
 
13646
Index: gcc/fortran/check.c
 
13647
===================================================================
 
13648
--- a/src/gcc/fortran/check.c   (.../tags/gcc_4_8_2_release)
 
13649
+++ b/src/gcc/fortran/check.c   (.../branches/gcc-4_8-branch)
 
13650
@@ -3208,7 +3208,7 @@
 
13651
                 "than %d elements", &shape->where, GFC_MAX_DIMENSIONS);
 
13652
       return FAILURE;
 
13653
     }
 
13654
-  else if (shape->expr_type == EXPR_ARRAY)
 
13655
+  else if (shape->expr_type == EXPR_ARRAY && gfc_is_constant_expr (shape))
 
13656
     {
 
13657
       gfc_expr *e;
 
13658
       int i, extent;
 
13659
Index: gcc/fortran/primary.c
 
13660
===================================================================
 
13661
--- a/src/gcc/fortran/primary.c (.../tags/gcc_4_8_2_release)
 
13662
+++ b/src/gcc/fortran/primary.c (.../branches/gcc-4_8-branch)
 
13663
@@ -2252,7 +2252,7 @@
 
13664
     case EXPR_FUNCTION:
 
13665
       gfc_clear_attr (&attr);
 
13666
 
 
13667
-      if (e->value.function.esym != NULL)
 
13668
+      if (e->value.function.esym && e->value.function.esym->result)
 
13669
        {
 
13670
          gfc_symbol *sym = e->value.function.esym->result;
 
13671
          attr = sym->attr;
 
13672
Index: gcc/configure.ac
 
13673
===================================================================
 
13674
--- a/src/gcc/configure.ac      (.../tags/gcc_4_8_2_release)
 
13675
+++ b/src/gcc/configure.ac      (.../branches/gcc-4_8-branch)
 
13676
@@ -1516,13 +1516,11 @@
 
13677
        /* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};;
 
13678
        *) realsrcdir=../${srcdir};;
 
13679
        esac
 
13680
-       saved_CFLAGS="${CFLAGS}"
 
13681
        CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
 
13682
-       LDFLAGS="${LDFLAGS_FOR_BUILD}" \
 
13683
+       LDFLAGS="${LDFLAGS_FOR_BUILD}" GMPINC="" \
 
13684
        ${realsrcdir}/configure \
 
13685
                --enable-languages=${enable_languages-all} \
 
13686
                --target=$target_alias --host=$build_alias --build=$build_alias
 
13687
-       CFLAGS="${saved_CFLAGS}"
 
13688
 
 
13689
        # We just finished tests for the build machine, so rename
 
13690
        # the file auto-build.h in the gcc directory.
 
13691
@@ -1887,6 +1885,7 @@
 
13692
 if test x$build != x$host || test "x$coverage_flags" != x
 
13693
 then
 
13694
     BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
 
13695
+    BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CXXFLAGS_FOR_BUILD)'
 
13696
     BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)'
 
13697
 fi
 
13698
 
 
13699
@@ -3611,6 +3610,19 @@
 
13700
        kasumi_fi_xor %f46, %f48, %f50, %f52],,
 
13701
       [AC_DEFINE(HAVE_AS_SPARC4, 1,
 
13702
                 [Define if your assembler supports SPARC4 instructions.])])
 
13703
+
 
13704
+    gcc_GAS_CHECK_FEATURE([LEON instructions],
 
13705
+      gcc_cv_as_sparc_leon,,
 
13706
+      [-Aleon],
 
13707
+      [.text
 
13708
+       .register %g2, #scratch
 
13709
+       .register %g3, #scratch
 
13710
+       .align 4
 
13711
+       smac %g2, %g3, %g1
 
13712
+       umac %g2, %g3, %g1
 
13713
+       cas [[%g2]], %g3, %g1],,
 
13714
+      [AC_DEFINE(HAVE_AS_LEON, 1,
 
13715
+                [Define if your assembler supports LEON instructions.])])
 
13716
     ;;
 
13717
 
 
13718
 changequote(,)dnl
 
13719
@@ -5193,15 +5205,15 @@
 
13720
   AC_MSG_CHECKING([for exported symbols])
 
13721
   if test "x$export_sym_check" != x; then
 
13722
     echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c
 
13723
-    ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest > /dev/null 2>&1
 
13724
-    if $export_sym_check conftest | grep foobar > /dev/null; then
 
13725
+    ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest$ac_exeext > /dev/null 2>&1
 
13726
+    if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then
 
13727
       : # No need to use a flag
 
13728
       AC_MSG_RESULT([yes])
 
13729
     else
 
13730
       AC_MSG_RESULT([yes])
 
13731
       AC_MSG_CHECKING([for -rdynamic])
 
13732
-      ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1
 
13733
-      if $export_sym_check conftest | grep foobar > /dev/null; then
 
13734
+      ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest$ac_exeext > /dev/null 2>&1
 
13735
+      if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then
 
13736
         plugin_rdynamic=yes
 
13737
         pluginlibs="-rdynamic"
 
13738
       else
 
13739
Index: gcc/print-rtl.c
 
13740
===================================================================
 
13741
--- a/src/gcc/print-rtl.c       (.../tags/gcc_4_8_2_release)
 
13742
+++ b/src/gcc/print-rtl.c       (.../branches/gcc-4_8-branch)
 
13743
@@ -582,6 +582,8 @@
 
13744
 
 
13745
       if (MEM_EXPR (in_rtx))
 
13746
        print_mem_expr (outfile, MEM_EXPR (in_rtx));
 
13747
+      else
 
13748
+       fputc (' ', outfile);
 
13749
 
 
13750
       if (MEM_OFFSET_KNOWN_P (in_rtx))
 
13751
        fprintf (outfile, "+" HOST_WIDE_INT_PRINT_DEC, MEM_OFFSET (in_rtx));
 
13752
Index: gcc/alias.c
 
13753
===================================================================
 
13754
--- a/src/gcc/alias.c   (.../tags/gcc_4_8_2_release)
 
13755
+++ b/src/gcc/alias.c   (.../branches/gcc-4_8-branch)
 
13756
@@ -2871,17 +2871,14 @@
 
13757
       /* Wipe the reg_seen array clean.  */
 
13758
       bitmap_clear (reg_seen);
 
13759
 
 
13760
-      /* Mark all hard registers which may contain an address.
 
13761
-        The stack, frame and argument pointers may contain an address.
 
13762
-        An argument register which can hold a Pmode value may contain
 
13763
-        an address even if it is not in BASE_REGS.
 
13764
+      /* Initialize the alias information for this pass.  */
 
13765
+      for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
 
13766
+       if (static_reg_base_value[i])
 
13767
+         {
 
13768
+           new_reg_base_value[i] = static_reg_base_value[i];
 
13769
+           bitmap_set_bit (reg_seen, i);
 
13770
+         }
 
13771
 
 
13772
-        The address expression is VOIDmode for an argument and
 
13773
-        Pmode for other registers.  */
 
13774
-
 
13775
-      memcpy (new_reg_base_value, static_reg_base_value,
 
13776
-             FIRST_PSEUDO_REGISTER * sizeof (rtx));
 
13777
-
 
13778
       /* Walk the insns adding values to the new_reg_base_value array.  */
 
13779
       for (i = 0; i < rpo_cnt; i++)
 
13780
        {
 
13781
Index: gcc/tree-vect-loop.c
 
13782
===================================================================
 
13783
--- a/src/gcc/tree-vect-loop.c  (.../tags/gcc_4_8_2_release)
 
13784
+++ b/src/gcc/tree-vect-loop.c  (.../branches/gcc-4_8-branch)
 
13785
@@ -1537,7 +1537,7 @@
 
13786
 
 
13787
   if (!LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
 
13788
       || LOOP_VINFO_INT_NITERS (loop_vinfo) % vectorization_factor != 0
 
13789
-      || LOOP_PEELING_FOR_ALIGNMENT (loop_vinfo))
 
13790
+      || LOOP_VINFO_PEELING_FOR_GAPS (loop_vinfo))
 
13791
     {
 
13792
       if (dump_enabled_p ())
 
13793
         dump_printf_loc (MSG_NOTE, vect_location, "epilog loop required.");
 
13794
@@ -3115,14 +3115,12 @@
 
13795
   stmt_vec_info stmt_vinfo = vinfo_for_stmt (iv_phi);
 
13796
   loop_vec_info loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_vinfo);
 
13797
   struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
 
13798
-  tree scalar_type;
 
13799
   tree vectype;
 
13800
   int nunits;
 
13801
   edge pe = loop_preheader_edge (loop);
 
13802
   struct loop *iv_loop;
 
13803
   basic_block new_bb;
 
13804
   tree new_vec, vec_init, vec_step, t;
 
13805
-  tree access_fn;
 
13806
   tree new_var;
 
13807
   tree new_name;
 
13808
   gimple init_stmt, induction_phi, new_stmt;
 
13809
@@ -3130,7 +3128,6 @@
 
13810
   tree init_expr, step_expr;
 
13811
   int vf = LOOP_VINFO_VECT_FACTOR (loop_vinfo);
 
13812
   int i;
 
13813
-  bool ok;
 
13814
   int ncopies;
 
13815
   tree expr;
 
13816
   stmt_vec_info phi_info = vinfo_for_stmt (iv_phi);
 
13817
@@ -3159,16 +3156,14 @@
 
13818
   latch_e = loop_latch_edge (iv_loop);
 
13819
   loop_arg = PHI_ARG_DEF_FROM_EDGE (iv_phi, latch_e);
 
13820
 
 
13821
-  access_fn = analyze_scalar_evolution (iv_loop, PHI_RESULT (iv_phi));
 
13822
-  gcc_assert (access_fn);
 
13823
-  STRIP_NOPS (access_fn);
 
13824
-  ok = vect_is_simple_iv_evolution (iv_loop->num, access_fn,
 
13825
-                                    &init_expr, &step_expr);
 
13826
-  gcc_assert (ok);
 
13827
+  step_expr = STMT_VINFO_LOOP_PHI_EVOLUTION_PART (phi_info);
 
13828
+  gcc_assert (step_expr != NULL_TREE);
 
13829
+
 
13830
   pe = loop_preheader_edge (iv_loop);
 
13831
+  init_expr = PHI_ARG_DEF_FROM_EDGE (iv_phi,
 
13832
+                                    loop_preheader_edge (iv_loop));
 
13833
 
 
13834
-  scalar_type = TREE_TYPE (init_expr);
 
13835
-  vectype = get_vectype_for_scalar_type (scalar_type);
 
13836
+  vectype = get_vectype_for_scalar_type (TREE_TYPE (init_expr));
 
13837
   resvectype = get_vectype_for_scalar_type (TREE_TYPE (PHI_RESULT (iv_phi)));
 
13838
   gcc_assert (vectype);
 
13839
   nunits = TYPE_VECTOR_SUBPARTS (vectype);
 
13840
@@ -3177,6 +3172,16 @@
 
13841
   gcc_assert (phi_info);
 
13842
   gcc_assert (ncopies >= 1);
 
13843
 
 
13844
+  /* Convert the step to the desired type.  */
 
13845
+  step_expr = force_gimple_operand (fold_convert (TREE_TYPE (vectype),
 
13846
+                                                 step_expr),
 
13847
+                                   &stmts, true, NULL_TREE);
 
13848
+  if (stmts)
 
13849
+    {
 
13850
+      new_bb = gsi_insert_seq_on_edge_immediate (pe, stmts);
 
13851
+      gcc_assert (!new_bb);
 
13852
+    }
 
13853
+
 
13854
   /* Find the first insertion point in the BB.  */
 
13855
   si = gsi_after_labels (bb);
 
13856
 
 
13857
@@ -3186,9 +3191,7 @@
 
13858
       /* iv_loop is nested in the loop to be vectorized.  init_expr had already
 
13859
         been created during vectorization of previous stmts.  We obtain it
 
13860
         from the STMT_VINFO_VEC_STMT of the defining stmt.  */
 
13861
-      tree iv_def = PHI_ARG_DEF_FROM_EDGE (iv_phi,
 
13862
-                                           loop_preheader_edge (iv_loop));
 
13863
-      vec_init = vect_get_vec_def_for_operand (iv_def, iv_phi, NULL);
 
13864
+      vec_init = vect_get_vec_def_for_operand (init_expr, iv_phi, NULL);
 
13865
       /* If the initial value is not of proper type, convert it.  */
 
13866
       if (!useless_type_conversion_p (vectype, TREE_TYPE (vec_init)))
 
13867
        {
 
13868
@@ -3211,8 +3214,11 @@
 
13869
 
 
13870
       /* iv_loop is the loop to be vectorized. Create:
 
13871
         vec_init = [X, X+S, X+2*S, X+3*S] (S = step_expr, X = init_expr)  */
 
13872
-      new_var = vect_get_new_vect_var (scalar_type, vect_scalar_var, "var_");
 
13873
-      new_name = force_gimple_operand (init_expr, &stmts, false, new_var);
 
13874
+      new_var = vect_get_new_vect_var (TREE_TYPE (vectype),
 
13875
+                                      vect_scalar_var, "var_");
 
13876
+      new_name = force_gimple_operand (fold_convert (TREE_TYPE (vectype),
 
13877
+                                                    init_expr),
 
13878
+                                      &stmts, false, new_var);
 
13879
       if (stmts)
 
13880
        {
 
13881
          new_bb = gsi_insert_seq_on_edge_immediate (pe, stmts);
 
13882
@@ -3224,9 +3230,7 @@
 
13883
       for (i = 1; i < nunits; i++)
 
13884
        {
 
13885
          /* Create: new_name_i = new_name + step_expr  */
 
13886
-         enum tree_code code = POINTER_TYPE_P (scalar_type)
 
13887
-                               ? POINTER_PLUS_EXPR : PLUS_EXPR;
 
13888
-         init_stmt = gimple_build_assign_with_ops (code, new_var,
 
13889
+         init_stmt = gimple_build_assign_with_ops (PLUS_EXPR, new_var,
 
13890
                                                    new_name, step_expr);
 
13891
          new_name = make_ssa_name (new_var, init_stmt);
 
13892
          gimple_assign_set_lhs (init_stmt, new_name);
 
13893
Index: gcc/lra-coalesce.c
 
13894
===================================================================
 
13895
--- a/src/gcc/lra-coalesce.c    (.../tags/gcc_4_8_2_release)
 
13896
+++ b/src/gcc/lra-coalesce.c    (.../branches/gcc-4_8-branch)
 
13897
@@ -221,9 +221,12 @@
 
13898
   basic_block bb;
 
13899
   rtx mv, set, insn, next, *sorted_moves;
 
13900
   int i, mv_num, sregno, dregno;
 
13901
+  unsigned int regno;
 
13902
   int coalesced_moves;
 
13903
   int max_regno = max_reg_num ();
 
13904
   bitmap_head involved_insns_bitmap;
 
13905
+  bitmap_head result_pseudo_vals_bitmap;
 
13906
+  bitmap_iterator bi;
 
13907
 
 
13908
   timevar_push (TV_LRA_COALESCE);
 
13909
 
 
13910
@@ -318,6 +321,34 @@
 
13911
              }
 
13912
          }
 
13913
     }
 
13914
+  /* If we have situation after inheritance pass:
 
13915
+
 
13916
+     r1 <- ...  insn originally setting p1
 
13917
+     i1 <- r1   setting inheritance i1 from reload r1
 
13918
+       ...
 
13919
+     ... <- ... p2 ... dead p2
 
13920
+     ..
 
13921
+     p1 <- i1
 
13922
+     r2 <- i1
 
13923
+     ...<- ... r2 ...
 
13924
+
 
13925
+     And we are coalescing p1 and p2 using p1.  In this case i1 and p1
 
13926
+     should have different values, otherwise they can get the same
 
13927
+     hard reg and this is wrong for insn using p2 before coalescing.
 
13928
+     So invalidate such inheritance pseudo values.  */
 
13929
+  bitmap_initialize (&result_pseudo_vals_bitmap, &reg_obstack);
 
13930
+  EXECUTE_IF_SET_IN_BITMAP (&coalesced_pseudos_bitmap, 0, regno, bi)
 
13931
+    bitmap_set_bit (&result_pseudo_vals_bitmap,
 
13932
+                   lra_reg_info[first_coalesced_pseudo[regno]].val);
 
13933
+  EXECUTE_IF_SET_IN_BITMAP (&lra_inheritance_pseudos, 0, regno, bi)
 
13934
+    if (bitmap_bit_p (&result_pseudo_vals_bitmap, lra_reg_info[regno].val))
 
13935
+      {
 
13936
+       lra_set_regno_unique_value (regno);
 
13937
+       if (lra_dump_file != NULL)
 
13938
+         fprintf (lra_dump_file,
 
13939
+                  "     Make unique value for inheritance r%d\n", regno);
 
13940
+      }
 
13941
+  bitmap_clear (&result_pseudo_vals_bitmap);
 
13942
   bitmap_clear (&used_pseudos_bitmap);
 
13943
   bitmap_clear (&involved_insns_bitmap);
 
13944
   bitmap_clear (&coalesced_pseudos_bitmap);
 
13945
Index: gcc/gimplify.c
 
13946
===================================================================
 
13947
--- a/src/gcc/gimplify.c        (.../tags/gcc_4_8_2_release)
 
13948
+++ b/src/gcc/gimplify.c        (.../branches/gcc-4_8-branch)
 
13949
@@ -2060,6 +2060,9 @@
 
13950
 /* Nonlocal VLAs seen in the current function.  */
 
13951
 static struct pointer_set_t *nonlocal_vlas;
 
13952
 
 
13953
+/* The VAR_DECLs created for nonlocal VLAs for debug info purposes.  */
 
13954
+static tree nonlocal_vla_vars;
 
13955
+
 
13956
 /* Gimplify a VAR_DECL or PARM_DECL.  Return GS_OK if we expanded a
 
13957
    DECL_VALUE_EXPR, and it's worth re-examining things.  */
 
13958
 
 
13959
@@ -2106,14 +2109,13 @@
 
13960
            ctx = ctx->outer_context;
 
13961
          if (!ctx && !pointer_set_insert (nonlocal_vlas, decl))
 
13962
            {
 
13963
-             tree copy = copy_node (decl), block;
 
13964
+             tree copy = copy_node (decl);
 
13965
 
 
13966
              lang_hooks.dup_lang_specific_decl (copy);
 
13967
              SET_DECL_RTL (copy, 0);
 
13968
              TREE_USED (copy) = 1;
 
13969
-             block = DECL_INITIAL (current_function_decl);
 
13970
-             DECL_CHAIN (copy) = BLOCK_VARS (block);
 
13971
-             BLOCK_VARS (block) = copy;
 
13972
+             DECL_CHAIN (copy) = nonlocal_vla_vars;
 
13973
+             nonlocal_vla_vars = copy;
 
13974
              SET_DECL_VALUE_EXPR (copy, unshare_expr (value_expr));
 
13975
              DECL_HAS_VALUE_EXPR_P (copy) = 1;
 
13976
            }
 
13977
@@ -4369,7 +4371,7 @@
 
13978
           unsigned HOST_WIDE_INT indexi = offset * BITS_PER_UNIT;
 
13979
           tree index = bitsize_int (indexi);
 
13980
           if (offset / part_widthi
 
13981
-              <= TYPE_VECTOR_SUBPARTS (TREE_TYPE (addrtype)))
 
13982
+              < TYPE_VECTOR_SUBPARTS (TREE_TYPE (addrtype)))
 
13983
             return fold_build3 (BIT_FIELD_REF, type, TREE_OPERAND (addr, 0),
 
13984
                                 part_width, index);
 
13985
        }
 
13986
@@ -6131,7 +6133,7 @@
 
13987
    region's REDUCTION clause.  */
 
13988
 
 
13989
 static bool
 
13990
-omp_check_private (struct gimplify_omp_ctx *ctx, tree decl)
 
13991
+omp_check_private (struct gimplify_omp_ctx *ctx, tree decl, bool copyprivate)
 
13992
 {
 
13993
   splay_tree_node n;
 
13994
 
 
13995
@@ -6140,8 +6142,11 @@
 
13996
       ctx = ctx->outer_context;
 
13997
       if (ctx == NULL)
 
13998
        return !(is_global_var (decl)
 
13999
-                /* References might be private, but might be shared too.  */
 
14000
-                || lang_hooks.decls.omp_privatize_by_reference (decl));
 
14001
+                /* References might be private, but might be shared too,
 
14002
+                   when checking for copyprivate, assume they might be
 
14003
+                   private, otherwise assume they might be shared.  */
 
14004
+                || (!copyprivate
 
14005
+                    && lang_hooks.decls.omp_privatize_by_reference (decl)));
 
14006
 
 
14007
       n = splay_tree_lookup (ctx->variables, (splay_tree_key) decl);
 
14008
       if (n != NULL)
 
14009
@@ -6267,12 +6272,36 @@
 
14010
              remove = true;
 
14011
              break;
 
14012
            }
 
14013
+         if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_COPYPRIVATE
 
14014
+             && !remove
 
14015
+             && !omp_check_private (ctx, decl, true))
 
14016
+           {
 
14017
+             remove = true;
 
14018
+             if (is_global_var (decl))
 
14019
+               {
 
14020
+                 if (DECL_THREAD_LOCAL_P (decl))
 
14021
+                   remove = false;
 
14022
+                 else if (DECL_HAS_VALUE_EXPR_P (decl))
 
14023
+                   {
 
14024
+                     tree value = get_base_address (DECL_VALUE_EXPR (decl));
 
14025
+
 
14026
+                     if (value
 
14027
+                         && DECL_P (value)
 
14028
+                         && DECL_THREAD_LOCAL_P (value))
 
14029
+                       remove = false;
 
14030
+                   }
 
14031
+               }
 
14032
+             if (remove)
 
14033
+               error_at (OMP_CLAUSE_LOCATION (c),
 
14034
+                         "copyprivate variable %qE is not threadprivate"
 
14035
+                         " or private in outer context", DECL_NAME (decl));
 
14036
+           }
 
14037
        do_notice:
 
14038
          if (outer_ctx)
 
14039
            omp_notice_variable (outer_ctx, decl, true);
 
14040
          if (check_non_private
 
14041
              && region_type == ORT_WORKSHARE
 
14042
-             && omp_check_private (ctx, decl))
 
14043
+             && omp_check_private (ctx, decl, false))
 
14044
            {
 
14045
              error ("%s variable %qE is private in outer context",
 
14046
                     check_non_private, DECL_NAME (decl));
 
14047
@@ -8261,6 +8290,21 @@
 
14048
 
 
14049
   if (nonlocal_vlas)
 
14050
     {
 
14051
+      if (nonlocal_vla_vars)
 
14052
+       {
 
14053
+         /* tree-nested.c may later on call declare_vars (..., true);
 
14054
+            which relies on BLOCK_VARS chain to be the tail of the
 
14055
+            gimple_bind_vars chain.  Ensure we don't violate that
 
14056
+            assumption.  */
 
14057
+         if (gimple_bind_block (outer_bind)
 
14058
+             == DECL_INITIAL (current_function_decl))
 
14059
+           declare_vars (nonlocal_vla_vars, outer_bind, true);
 
14060
+         else
 
14061
+           BLOCK_VARS (DECL_INITIAL (current_function_decl))
 
14062
+             = chainon (BLOCK_VARS (DECL_INITIAL (current_function_decl)),
 
14063
+                        nonlocal_vla_vars);
 
14064
+         nonlocal_vla_vars = NULL_TREE;
 
14065
+       }
 
14066
       pointer_set_destroy (nonlocal_vlas);
 
14067
       nonlocal_vlas = NULL;
 
14068
     }
 
14069
Index: gcc/tree-dfa.c
 
14070
===================================================================
 
14071
--- a/src/gcc/tree-dfa.c        (.../tags/gcc_4_8_2_release)
 
14072
+++ b/src/gcc/tree-dfa.c        (.../branches/gcc-4_8-branch)
 
14073
@@ -386,7 +386,6 @@
 
14074
   double_int bit_offset = double_int_zero;
 
14075
   HOST_WIDE_INT hbit_offset;
 
14076
   bool seen_variable_array_ref = false;
 
14077
-  tree base_type;
 
14078
 
 
14079
   /* First get the final access size from just the outermost expression.  */
 
14080
   if (TREE_CODE (exp) == COMPONENT_REF)
 
14081
@@ -417,8 +416,6 @@
 
14082
      and find the ultimate containing object.  */
 
14083
   while (1)
 
14084
     {
 
14085
-      base_type = TREE_TYPE (exp);
 
14086
-
 
14087
       switch (TREE_CODE (exp))
 
14088
        {
 
14089
        case BIT_FIELD_REF:
 
14090
@@ -543,7 +540,38 @@
 
14091
        case VIEW_CONVERT_EXPR:
 
14092
          break;
 
14093
 
 
14094
+       case TARGET_MEM_REF:
 
14095
+         /* Via the variable index or index2 we can reach the
 
14096
+            whole object.  Still hand back the decl here.  */
 
14097
+         if (TREE_CODE (TMR_BASE (exp)) == ADDR_EXPR
 
14098
+             && (TMR_INDEX (exp) || TMR_INDEX2 (exp)))
 
14099
+           {
 
14100
+             exp = TREE_OPERAND (TMR_BASE (exp), 0);
 
14101
+             bit_offset = double_int_zero;
 
14102
+             maxsize = -1;
 
14103
+             goto done;
 
14104
+           }
 
14105
+         /* Fallthru.  */
 
14106
        case MEM_REF:
 
14107
+         /* We need to deal with variable arrays ending structures such as
 
14108
+            struct { int length; int a[1]; } x;           x.a[d]
 
14109
+            struct { struct { int a; int b; } a[1]; } x;  x.a[d].a
 
14110
+            struct { struct { int a[1]; } a[1]; } x;      x.a[0][d], x.a[d][0]
 
14111
+            struct { int len; union { int a[1]; struct X x; } u; } x; x.u.a[d]
 
14112
+            where we do not know maxsize for variable index accesses to
 
14113
+            the array.  The simplest way to conservatively deal with this
 
14114
+            is to punt in the case that offset + maxsize reaches the
 
14115
+            base type boundary.  This needs to include possible trailing
 
14116
+            padding that is there for alignment purposes.  */
 
14117
+         if (seen_variable_array_ref
 
14118
+             && maxsize != -1
 
14119
+             && (!bit_offset.fits_shwi ()
 
14120
+                 || !host_integerp (TYPE_SIZE (TREE_TYPE (exp)), 1)
 
14121
+                 || (bit_offset.to_shwi () + maxsize
 
14122
+                     == (HOST_WIDE_INT) TREE_INT_CST_LOW
 
14123
+                           (TYPE_SIZE (TREE_TYPE (exp))))))
 
14124
+           maxsize = -1;
 
14125
+
 
14126
          /* Hand back the decl for MEM[&decl, off].  */
 
14127
          if (TREE_CODE (TREE_OPERAND (exp, 0)) == ADDR_EXPR)
 
14128
            {
 
14129
@@ -565,45 +593,24 @@
 
14130
            }
 
14131
          goto done;
 
14132
 
 
14133
-       case TARGET_MEM_REF:
 
14134
-         /* Hand back the decl for MEM[&decl, off].  */
 
14135
-         if (TREE_CODE (TMR_BASE (exp)) == ADDR_EXPR)
 
14136
-           {
 
14137
-             /* Via the variable index or index2 we can reach the
 
14138
-                whole object.  */
 
14139
-             if (TMR_INDEX (exp) || TMR_INDEX2 (exp))
 
14140
-               {
 
14141
-                 exp = TREE_OPERAND (TMR_BASE (exp), 0);
 
14142
-                 bit_offset = double_int_zero;
 
14143
-                 maxsize = -1;
 
14144
-                 goto done;
 
14145
-               }
 
14146
-             if (integer_zerop (TMR_OFFSET (exp)))
 
14147
-               exp = TREE_OPERAND (TMR_BASE (exp), 0);
 
14148
-             else
 
14149
-               {
 
14150
-                 double_int off = mem_ref_offset (exp);
 
14151
-                 off = off.alshift (BITS_PER_UNIT == 8
 
14152
-                                    ? 3 : exact_log2 (BITS_PER_UNIT),
 
14153
-                                    HOST_BITS_PER_DOUBLE_INT);
 
14154
-                 off += bit_offset;
 
14155
-                 if (off.fits_shwi ())
 
14156
-                   {
 
14157
-                     bit_offset = off;
 
14158
-                     exp = TREE_OPERAND (TMR_BASE (exp), 0);
 
14159
-                   }
 
14160
-               }
 
14161
-           }
 
14162
-         goto done;
 
14163
-
 
14164
        default:
 
14165
          goto done;
 
14166
        }
 
14167
 
 
14168
       exp = TREE_OPERAND (exp, 0);
 
14169
     }
 
14170
+
 
14171
+  /* We need to deal with variable arrays ending structures.  */
 
14172
+  if (seen_variable_array_ref
 
14173
+      && maxsize != -1
 
14174
+      && (!bit_offset.fits_shwi ()
 
14175
+         || !host_integerp (TYPE_SIZE (TREE_TYPE (exp)), 1)
 
14176
+         || (bit_offset.to_shwi () + maxsize
 
14177
+             == (HOST_WIDE_INT)
 
14178
+                  TREE_INT_CST_LOW (TYPE_SIZE (TREE_TYPE (exp))))))
 
14179
+    maxsize = -1;
 
14180
+
 
14181
  done:
 
14182
-
 
14183
   if (!bit_offset.fits_shwi ())
 
14184
     {
 
14185
       *poffset = 0;
 
14186
@@ -615,24 +622,6 @@
 
14187
 
 
14188
   hbit_offset = bit_offset.to_shwi ();
 
14189
 
 
14190
-  /* We need to deal with variable arrays ending structures such as
 
14191
-       struct { int length; int a[1]; } x;           x.a[d]
 
14192
-       struct { struct { int a; int b; } a[1]; } x;  x.a[d].a
 
14193
-       struct { struct { int a[1]; } a[1]; } x;      x.a[0][d], x.a[d][0]
 
14194
-       struct { int len; union { int a[1]; struct X x; } u; } x; x.u.a[d]
 
14195
-     where we do not know maxsize for variable index accesses to
 
14196
-     the array.  The simplest way to conservatively deal with this
 
14197
-     is to punt in the case that offset + maxsize reaches the
 
14198
-     base type boundary.  This needs to include possible trailing padding
 
14199
-     that is there for alignment purposes.  */
 
14200
-
 
14201
-  if (seen_variable_array_ref
 
14202
-      && maxsize != -1
 
14203
-      && (!host_integerp (TYPE_SIZE (base_type), 1)
 
14204
-         || (hbit_offset + maxsize
 
14205
-             == (signed) TREE_INT_CST_LOW (TYPE_SIZE (base_type)))))
 
14206
-    maxsize = -1;
 
14207
-
 
14208
   /* In case of a decl or constant base object we can do better.  */
 
14209
 
 
14210
   if (DECL_P (exp))
 
14211
Index: gcc/gimple-fold.c
 
14212
===================================================================
 
14213
--- a/src/gcc/gimple-fold.c     (.../tags/gcc_4_8_2_release)
 
14214
+++ b/src/gcc/gimple-fold.c     (.../branches/gcc-4_8-branch)
 
14215
@@ -178,7 +178,7 @@
 
14216
          /* Make sure we create a cgraph node for functions we'll reference.
 
14217
             They can be non-existent if the reference comes from an entry
 
14218
             of an external vtable for example.  */
 
14219
-         cgraph_get_create_node (base);
 
14220
+         cgraph_get_create_real_symbol_node (base);
 
14221
        }
 
14222
       /* Fixup types in global initializers.  */
 
14223
       if (TREE_TYPE (TREE_TYPE (cval)) != TREE_TYPE (TREE_OPERAND (cval, 0)))
 
14224
Index: gcc/cfgexpand.c
 
14225
===================================================================
 
14226
--- a/src/gcc/cfgexpand.c       (.../tags/gcc_4_8_2_release)
 
14227
+++ b/src/gcc/cfgexpand.c       (.../branches/gcc-4_8-branch)
 
14228
@@ -4707,14 +4707,18 @@
 
14229
          if (e->insns.r)
 
14230
            {
 
14231
              rebuild_jump_labels_chain (e->insns.r);
 
14232
-             /* Avoid putting insns before parm_birth_insn.  */
 
14233
+             /* Put insns after parm birth, but before
 
14234
+                NOTE_INSNS_FUNCTION_BEG.  */
 
14235
              if (e->src == ENTRY_BLOCK_PTR
 
14236
-                 && single_succ_p (ENTRY_BLOCK_PTR)
 
14237
-                 && parm_birth_insn)
 
14238
+                 && single_succ_p (ENTRY_BLOCK_PTR))
 
14239
                {
 
14240
                  rtx insns = e->insns.r;
 
14241
                  e->insns.r = NULL_RTX;
 
14242
-                 emit_insn_after_noloc (insns, parm_birth_insn, e->dest);
 
14243
+                 if (NOTE_P (parm_birth_insn)
 
14244
+                     && NOTE_KIND (parm_birth_insn) == NOTE_INSN_FUNCTION_BEG)
 
14245
+                   emit_insn_before_noloc (insns, parm_birth_insn, e->dest);
 
14246
+                 else
 
14247
+                   emit_insn_after_noloc (insns, parm_birth_insn, e->dest);
 
14248
                }
 
14249
              else
 
14250
                commit_one_edge_insertion (e);
 
14251
Index: gcc/tree-ssa-pre.c
 
14252
===================================================================
 
14253
--- a/src/gcc/tree-ssa-pre.c    (.../tags/gcc_4_8_2_release)
 
14254
+++ b/src/gcc/tree-ssa-pre.c    (.../branches/gcc-4_8-branch)
 
14255
@@ -3664,6 +3664,12 @@
 
14256
       if (dump_file && dump_flags & TDF_DETAILS)
 
14257
        fprintf (dump_file, "Starting insert iteration %d\n", num_iterations);
 
14258
       new_stuff = insert_aux (ENTRY_BLOCK_PTR);
 
14259
+
 
14260
+      /* Clear the NEW sets before the next iteration.  We have already
 
14261
+         fully propagated its contents.  */
 
14262
+      if (new_stuff)
 
14263
+       FOR_ALL_BB (bb)
 
14264
+         bitmap_set_free (NEW_SETS (bb));
 
14265
     }
 
14266
   statistics_histogram_event (cfun, "insert iterations", num_iterations);
 
14267
 }
 
14268
Index: gcc/simplify-rtx.c
 
14269
===================================================================
 
14270
--- a/src/gcc/simplify-rtx.c    (.../tags/gcc_4_8_2_release)
 
14271
+++ b/src/gcc/simplify-rtx.c    (.../branches/gcc-4_8-branch)
 
14272
@@ -639,11 +639,16 @@
 
14273
                                   XEXP (op, 0), origmode);
 
14274
     }
 
14275
 
 
14276
-  /* Simplify (truncate:SI (op:DI (x:DI) (y:DI)))
 
14277
-     to (op:SI (truncate:SI (x:DI)) (truncate:SI (x:DI))).  */
 
14278
-  if (GET_CODE (op) == PLUS
 
14279
-      || GET_CODE (op) == MINUS
 
14280
-      || GET_CODE (op) == MULT)
 
14281
+  /* If the machine can perform operations in the truncated mode, distribute
 
14282
+     the truncation, i.e. simplify (truncate:QI (op:SI (x:SI) (y:SI))) into
 
14283
+     (op:QI (truncate:QI (x:SI)) (truncate:QI (y:SI))).  */
 
14284
+  if (1
 
14285
+#ifdef WORD_REGISTER_OPERATIONS
 
14286
+      && precision >= BITS_PER_WORD
 
14287
+#endif
 
14288
+      && (GET_CODE (op) == PLUS
 
14289
+         || GET_CODE (op) == MINUS
 
14290
+         || GET_CODE (op) == MULT))
 
14291
     {
 
14292
       rtx op0 = simplify_gen_unary (TRUNCATE, mode, XEXP (op, 0), op_mode);
 
14293
       if (op0)
 
14294
Index: gcc/tree-predcom.c
 
14295
===================================================================
 
14296
--- a/src/gcc/tree-predcom.c    (.../tags/gcc_4_8_2_release)
 
14297
+++ b/src/gcc/tree-predcom.c    (.../branches/gcc-4_8-branch)
 
14298
@@ -1323,90 +1323,43 @@
 
14299
   gsi_insert_after (&bsi, new_stmt, GSI_NEW_STMT);
 
14300
 }
 
14301
 
 
14302
-/* Returns the reference to the address of REF in the ITER-th iteration of
 
14303
-   LOOP, or NULL if we fail to determine it (ITER may be negative).  We
 
14304
-   try to preserve the original shape of the reference (not rewrite it
 
14305
-   as an indirect ref to the address), to make tree_could_trap_p in
 
14306
-   prepare_initializers_chain return false more often.  */
 
14307
+/* Returns a memory reference to DR in the ITER-th iteration of
 
14308
+   the loop it was analyzed in.  Append init stmts to STMTS.  */
 
14309
 
 
14310
-static tree
 
14311
-ref_at_iteration (struct loop *loop, tree ref, int iter)
 
14312
+static tree 
 
14313
+ref_at_iteration (data_reference_p dr, int iter, gimple_seq *stmts)
 
14314
 {
 
14315
-  tree idx, *idx_p, type, val, op0 = NULL_TREE, ret;
 
14316
-  affine_iv iv;
 
14317
-  bool ok;
 
14318
-
 
14319
-  if (handled_component_p (ref))
 
14320
+  tree off = DR_OFFSET (dr);
 
14321
+  tree coff = DR_INIT (dr);
 
14322
+  if (iter == 0)
 
14323
+    ;
 
14324
+  else if (TREE_CODE (DR_STEP (dr)) == INTEGER_CST)
 
14325
+    coff = size_binop (PLUS_EXPR, coff,
 
14326
+                      size_binop (MULT_EXPR, DR_STEP (dr), ssize_int (iter)));
 
14327
+  else
 
14328
+    off = size_binop (PLUS_EXPR, off,
 
14329
+                     size_binop (MULT_EXPR, DR_STEP (dr), ssize_int (iter)));
 
14330
+  tree addr = fold_build_pointer_plus (DR_BASE_ADDRESS (dr), off);
 
14331
+  addr = force_gimple_operand_1 (addr, stmts, is_gimple_mem_ref_addr,
 
14332
+                                NULL_TREE);
 
14333
+  tree alias_ptr = fold_convert (reference_alias_ptr_type (DR_REF (dr)), coff);
 
14334
+  /* While data-ref analysis punts on bit offsets it still handles
 
14335
+     bitfield accesses at byte boundaries.  Cope with that.  Note that
 
14336
+     we cannot simply re-apply the outer COMPONENT_REF because the
 
14337
+     byte-granular portion of it is already applied via DR_INIT and
 
14338
+     DR_OFFSET, so simply build a BIT_FIELD_REF knowing that the bits
 
14339
+     start at offset zero.  */
 
14340
+  if (TREE_CODE (DR_REF (dr)) == COMPONENT_REF
 
14341
+      && DECL_BIT_FIELD (TREE_OPERAND (DR_REF (dr), 1)))
 
14342
     {
 
14343
-      op0 = ref_at_iteration (loop, TREE_OPERAND (ref, 0), iter);
 
14344
-      if (!op0)
 
14345
-       return NULL_TREE;
 
14346
+      tree field = TREE_OPERAND (DR_REF (dr), 1);
 
14347
+      return build3 (BIT_FIELD_REF, TREE_TYPE (DR_REF (dr)),
 
14348
+                    build2 (MEM_REF, DECL_BIT_FIELD_TYPE (field),
 
14349
+                            addr, alias_ptr),
 
14350
+                    DECL_SIZE (field), bitsize_zero_node);
 
14351
     }
 
14352
-  else if (!INDIRECT_REF_P (ref)
 
14353
-          && TREE_CODE (ref) != MEM_REF)
 
14354
-    return unshare_expr (ref);
 
14355
-
 
14356
-  if (TREE_CODE (ref) == MEM_REF)
 
14357
-    {
 
14358
-      ret = unshare_expr (ref);
 
14359
-      idx = TREE_OPERAND (ref, 0);
 
14360
-      idx_p = &TREE_OPERAND (ret, 0);
 
14361
-    }
 
14362
-  else if (TREE_CODE (ref) == COMPONENT_REF)
 
14363
-    {
 
14364
-      /* Check that the offset is loop invariant.  */
 
14365
-      if (TREE_OPERAND (ref, 2)
 
14366
-         && !expr_invariant_in_loop_p (loop, TREE_OPERAND (ref, 2)))
 
14367
-       return NULL_TREE;
 
14368
-
 
14369
-      return build3 (COMPONENT_REF, TREE_TYPE (ref), op0,
 
14370
-                    unshare_expr (TREE_OPERAND (ref, 1)),
 
14371
-                    unshare_expr (TREE_OPERAND (ref, 2)));
 
14372
-    }
 
14373
-  else if (TREE_CODE (ref) == ARRAY_REF)
 
14374
-    {
 
14375
-      /* Check that the lower bound and the step are loop invariant.  */
 
14376
-      if (TREE_OPERAND (ref, 2)
 
14377
-         && !expr_invariant_in_loop_p (loop, TREE_OPERAND (ref, 2)))
 
14378
-       return NULL_TREE;
 
14379
-      if (TREE_OPERAND (ref, 3)
 
14380
-         && !expr_invariant_in_loop_p (loop, TREE_OPERAND (ref, 3)))
 
14381
-       return NULL_TREE;
 
14382
-
 
14383
-      ret = build4 (ARRAY_REF, TREE_TYPE (ref), op0, NULL_TREE,
 
14384
-                   unshare_expr (TREE_OPERAND (ref, 2)),
 
14385
-                   unshare_expr (TREE_OPERAND (ref, 3)));
 
14386
-      idx = TREE_OPERAND (ref, 1);
 
14387
-      idx_p = &TREE_OPERAND (ret, 1);
 
14388
-    }
 
14389
   else
 
14390
-    return NULL_TREE;
 
14391
-
 
14392
-  ok = simple_iv (loop, loop, idx, &iv, true);
 
14393
-  if (!ok)
 
14394
-    return NULL_TREE;
 
14395
-  iv.base = expand_simple_operations (iv.base);
 
14396
-  if (integer_zerop (iv.step))
 
14397
-    *idx_p = unshare_expr (iv.base);
 
14398
-  else
 
14399
-    {
 
14400
-      type = TREE_TYPE (iv.base);
 
14401
-      if (POINTER_TYPE_P (type))
 
14402
-       {
 
14403
-         val = fold_build2 (MULT_EXPR, sizetype, iv.step,
 
14404
-                            size_int (iter));
 
14405
-         val = fold_build_pointer_plus (iv.base, val);
 
14406
-       }
 
14407
-      else
 
14408
-       {
 
14409
-         val = fold_build2 (MULT_EXPR, type, iv.step,
 
14410
-                            build_int_cst_type (type, iter));
 
14411
-         val = fold_build2 (PLUS_EXPR, type, iv.base, val);
 
14412
-       }
 
14413
-      *idx_p = unshare_expr (val);
 
14414
-    }
 
14415
-
 
14416
-  return ret;
 
14417
+    return fold_build2 (MEM_REF, TREE_TYPE (DR_REF (dr)), addr, alias_ptr);
 
14418
 }
 
14419
 
 
14420
 /* Get the initialization expression for the INDEX-th temporary variable
 
14421
@@ -2068,7 +2021,11 @@
 
14422
 
 
14423
   stmt = find_common_use_stmt (&name1, &name2);
 
14424
 
 
14425
-  if (!stmt)
 
14426
+  if (!stmt
 
14427
+      /* A simple post-dominance check - make sure the combination
 
14428
+         is executed under the same condition as the references.  */
 
14429
+      || (gimple_bb (stmt) != gimple_bb (r1->stmt)
 
14430
+         && gimple_bb (stmt) != gimple_bb (r2->stmt)))
 
14431
     return false;
 
14432
 
 
14433
   acode = gimple_assign_rhs_code (stmt);
 
14434
@@ -2365,14 +2322,10 @@
 
14435
       if (chain->inits[i] != NULL_TREE)
 
14436
        continue;
 
14437
 
 
14438
-      init = ref_at_iteration (loop, DR_REF (dr), (int) i - n);
 
14439
-      if (!init)
 
14440
-       return false;
 
14441
-
 
14442
+      init = ref_at_iteration (dr, (int) i - n, &stmts);
 
14443
       if (!chain->all_always_accessed && tree_could_trap_p (init))
 
14444
        return false;
 
14445
 
 
14446
-      init = force_gimple_operand (init, &stmts, false, NULL_TREE);
 
14447
       if (stmts)
 
14448
        gsi_insert_seq_on_edge_immediate (entry, stmts);
 
14449
 
 
14450
Index: gcc/loop-iv.c
 
14451
===================================================================
 
14452
--- a/src/gcc/loop-iv.c (.../tags/gcc_4_8_2_release)
 
14453
+++ b/src/gcc/loop-iv.c (.../branches/gcc-4_8-branch)
 
14454
@@ -425,7 +425,9 @@
 
14455
       && !iv->first_special)
 
14456
     {
 
14457
       rtx val = get_iv_value (iv, const0_rtx);
 
14458
-      val = lowpart_subreg (mode, val, iv->extend_mode);
 
14459
+      val = lowpart_subreg (mode, val,
 
14460
+                           iv->extend == IV_UNKNOWN_EXTEND
 
14461
+                           ? iv->mode : iv->extend_mode);
 
14462
 
 
14463
       iv->base = val;
 
14464
       iv->extend = IV_UNKNOWN_EXTEND;
 
14465
@@ -465,8 +467,14 @@
 
14466
       && !iv->first_special)
 
14467
     {
 
14468
       rtx val = get_iv_value (iv, const0_rtx);
 
14469
+      if (iv->extend_mode != iv->mode
 
14470
+         && iv->extend != IV_UNKNOWN_EXTEND
 
14471
+         && iv->extend != extend)
 
14472
+       val = lowpart_subreg (iv->mode, val, iv->extend_mode);
 
14473
       val = simplify_gen_unary (iv_extend_to_rtx_code (extend), mode,
 
14474
-                               val, iv->extend_mode);
 
14475
+                               val,
 
14476
+                               iv->extend == extend
 
14477
+                               ? iv->extend_mode : iv->mode);
 
14478
       iv->base = val;
 
14479
       iv->extend = IV_UNKNOWN_EXTEND;
 
14480
       iv->mode = iv->extend_mode = mode;
 
14481
Index: gcc/ipa-prop.c
 
14482
===================================================================
 
14483
--- a/src/gcc/ipa-prop.c        (.../tags/gcc_4_8_2_release)
 
14484
+++ b/src/gcc/ipa-prop.c        (.../branches/gcc-4_8-branch)
 
14485
@@ -740,7 +740,7 @@
 
14486
 ipa_load_from_parm_agg_1 (vec<ipa_param_descriptor_t> descriptors,
 
14487
                          struct param_analysis_info *parms_ainfo, gimple stmt,
 
14488
                          tree op, int *index_p, HOST_WIDE_INT *offset_p,
 
14489
-                         bool *by_ref_p)
 
14490
+                         HOST_WIDE_INT *size_p, bool *by_ref_p)
 
14491
 {
 
14492
   int index;
 
14493
   HOST_WIDE_INT size, max_size;
 
14494
@@ -758,6 +758,8 @@
 
14495
        {
 
14496
          *index_p = index;
 
14497
          *by_ref_p = false;
 
14498
+         if (size_p)
 
14499
+           *size_p = size;
 
14500
          return true;
 
14501
        }
 
14502
       return false;
 
14503
@@ -800,6 +802,8 @@
 
14504
     {
 
14505
       *index_p = index;
 
14506
       *by_ref_p = true;
 
14507
+      if (size_p)
 
14508
+       *size_p = size;
 
14509
       return true;
 
14510
     }
 
14511
   return false;
 
14512
@@ -814,7 +818,7 @@
 
14513
                        bool *by_ref_p)
 
14514
 {
 
14515
   return ipa_load_from_parm_agg_1 (info->descriptors, NULL, stmt, op, index_p,
 
14516
-                                  offset_p, by_ref_p);
 
14517
+                                  offset_p, NULL, by_ref_p);
 
14518
 }
 
14519
 
 
14520
 /* Given that an actual argument is an SSA_NAME (given in NAME) and is a result
 
14521
@@ -1646,7 +1650,7 @@
 
14522
   if (gimple_assign_single_p (def)
 
14523
       && ipa_load_from_parm_agg_1 (info->descriptors, parms_ainfo, def,
 
14524
                                   gimple_assign_rhs1 (def), &index, &offset,
 
14525
-                                  &by_ref))
 
14526
+                                  NULL, &by_ref))
 
14527
     {
 
14528
       struct cgraph_edge *cs = ipa_note_param_call (node, index, call);
 
14529
       cs->indirect_info->offset = offset;
 
14530
@@ -2126,7 +2130,6 @@
 
14531
      we may create the first reference to the object in the unit.  */
 
14532
   if (!callee || callee->global.inlined_to)
 
14533
     {
 
14534
-      struct cgraph_node *first_clone = callee;
 
14535
 
 
14536
       /* We are better to ensure we can refer to it.
 
14537
         In the case of static functions we are out of luck, since we already   
 
14538
@@ -2142,31 +2145,7 @@
 
14539
                     xstrdup (cgraph_node_name (ie->callee)), ie->callee->uid);
 
14540
          return NULL;
 
14541
        }
 
14542
-
 
14543
-      /* Create symbol table node.  Even if inline clone exists, we can not take
 
14544
-        it as a target of non-inlined call.  */
 
14545
-      callee = cgraph_create_node (target);
 
14546
-
 
14547
-      /* OK, we previously inlined the function, then removed the offline copy and
 
14548
-        now we want it back for external call.  This can happen when devirtualizing
 
14549
-        while inlining function called once that happens after extern inlined and
 
14550
-        virtuals are already removed.  In this case introduce the external node
 
14551
-        and make it available for call.  */
 
14552
-      if (first_clone)
 
14553
-       {
 
14554
-         first_clone->clone_of = callee;
 
14555
-         callee->clones = first_clone;
 
14556
-         symtab_prevail_in_asm_name_hash ((symtab_node)callee);
 
14557
-         symtab_insert_node_to_hashtable ((symtab_node)callee);
 
14558
-         if (dump_file)
 
14559
-           fprintf (dump_file, "ipa-prop: Introduced new external node "
 
14560
-                    "(%s/%i) and turned into root of the clone tree.\n",
 
14561
-                    xstrdup (cgraph_node_name (callee)), callee->uid);
 
14562
-       }
 
14563
-      else if (dump_file)
 
14564
-       fprintf (dump_file, "ipa-prop: Introduced new external node "
 
14565
-                "(%s/%i).\n",
 
14566
-                xstrdup (cgraph_node_name (callee)), callee->uid);
 
14567
+      callee = cgraph_get_create_real_symbol_node (target);
 
14568
     }
 
14569
   ipa_check_create_node_params ();
 
14570
 
 
14571
@@ -3902,7 +3881,7 @@
 
14572
        struct ipa_agg_replacement_value *v;
 
14573
        gimple stmt = gsi_stmt (gsi);
 
14574
        tree rhs, val, t;
 
14575
-       HOST_WIDE_INT offset;
 
14576
+       HOST_WIDE_INT offset, size;
 
14577
        int index;
 
14578
        bool by_ref, vce;
 
14579
 
 
14580
@@ -3929,13 +3908,15 @@
 
14581
          continue;
 
14582
 
 
14583
        if (!ipa_load_from_parm_agg_1 (descriptors, parms_ainfo, stmt,
 
14584
-                                      rhs, &index, &offset, &by_ref))
 
14585
+                                      rhs, &index, &offset, &size, &by_ref))
 
14586
          continue;
 
14587
        for (v = aggval; v; v = v->next)
 
14588
          if (v->index == index
 
14589
              && v->offset == offset)
 
14590
            break;
 
14591
-       if (!v || v->by_ref != by_ref)
 
14592
+       if (!v
 
14593
+           || v->by_ref != by_ref
 
14594
+           || tree_low_cst (TYPE_SIZE (TREE_TYPE (v->value)), 0) != size)
 
14595
          continue;
 
14596
 
 
14597
        gcc_checking_assert (is_gimple_ip_invariant (v->value));
 
14598
Index: gcc/tree-ssa-dce.c
 
14599
===================================================================
 
14600
--- a/src/gcc/tree-ssa-dce.c    (.../tags/gcc_4_8_2_release)
 
14601
+++ b/src/gcc/tree-ssa-dce.c    (.../branches/gcc-4_8-branch)
 
14602
@@ -1307,26 +1307,19 @@
 
14603
          stats.total++;
 
14604
 
 
14605
          /* We can mark a call to free as not necessary if the
 
14606
-            defining statement of its argument is an allocation
 
14607
-            function and that is not necessary itself.  */
 
14608
-         if (gimple_call_builtin_p (stmt, BUILT_IN_FREE))
 
14609
+            defining statement of its argument is not necessary
 
14610
+            (and thus is getting removed).  */
 
14611
+         if (gimple_plf (stmt, STMT_NECESSARY)
 
14612
+             && gimple_call_builtin_p (stmt, BUILT_IN_FREE))
 
14613
            {
 
14614
              tree ptr = gimple_call_arg (stmt, 0);
 
14615
-             tree callee2;
 
14616
-             gimple def_stmt;
 
14617
-             if (TREE_CODE (ptr) != SSA_NAME)
 
14618
-               continue;
 
14619
-             def_stmt = SSA_NAME_DEF_STMT (ptr);
 
14620
-             if (!is_gimple_call (def_stmt)
 
14621
-                 || gimple_plf (def_stmt, STMT_NECESSARY))
 
14622
-               continue;
 
14623
-             callee2 = gimple_call_fndecl (def_stmt);
 
14624
-             if (callee2 == NULL_TREE
 
14625
-                 || DECL_BUILT_IN_CLASS (callee2) != BUILT_IN_NORMAL
 
14626
-                 || (DECL_FUNCTION_CODE (callee2) != BUILT_IN_MALLOC
 
14627
-                     && DECL_FUNCTION_CODE (callee2) != BUILT_IN_CALLOC))
 
14628
-               continue;
 
14629
-             gimple_set_plf (stmt, STMT_NECESSARY, false);
 
14630
+             if (TREE_CODE (ptr) == SSA_NAME)
 
14631
+               {
 
14632
+                 gimple def_stmt = SSA_NAME_DEF_STMT (ptr);
 
14633
+                 if (!gimple_nop_p (def_stmt)
 
14634
+                     && !gimple_plf (def_stmt, STMT_NECESSARY))
 
14635
+                   gimple_set_plf (stmt, STMT_NECESSARY, false);
 
14636
+               }
 
14637
            }
 
14638
 
 
14639
          /* If GSI is not necessary then remove it.  */
 
14640
Index: gcc/tree-ssa-ter.c
 
14641
===================================================================
 
14642
--- a/src/gcc/tree-ssa-ter.c    (.../tags/gcc_4_8_2_release)
 
14643
+++ b/src/gcc/tree-ssa-ter.c    (.../branches/gcc-4_8-branch)
 
14644
@@ -643,8 +643,7 @@
 
14645
              /* If the stmt does a memory store and the replacement
 
14646
                 is a load aliasing it avoid creating overlapping
 
14647
                 assignments which we cannot expand correctly.  */
 
14648
-             if (gimple_vdef (stmt)
 
14649
-                 && gimple_assign_single_p (stmt))
 
14650
+             if (gimple_vdef (stmt))
 
14651
                {
 
14652
                  gimple def_stmt = SSA_NAME_DEF_STMT (use);
 
14653
                  while (is_gimple_assign (def_stmt)
 
14654
@@ -653,8 +652,8 @@
 
14655
                      = SSA_NAME_DEF_STMT (gimple_assign_rhs1 (def_stmt));
 
14656
                  if (gimple_vuse (def_stmt)
 
14657
                      && gimple_assign_single_p (def_stmt)
 
14658
-                     && refs_may_alias_p (gimple_assign_lhs (stmt),
 
14659
-                                          gimple_assign_rhs1 (def_stmt)))
 
14660
+                     && stmt_may_clobber_ref_p (stmt,
 
14661
+                                                gimple_assign_rhs1 (def_stmt)))
 
14662
                    same_root_var = true;
 
14663
                }
 
14664
 
 
14665
Index: gcc/tree-vect-stmts.c
 
14666
===================================================================
 
14667
--- a/src/gcc/tree-vect-stmts.c (.../tags/gcc_4_8_2_release)
 
14668
+++ b/src/gcc/tree-vect-stmts.c (.../branches/gcc-4_8-branch)
 
14669
@@ -6054,8 +6054,7 @@
 
14670
      corresponding to that mode.  The theory is that any use that
 
14671
      would cause problems with this will disable vectorization anyway.  */
 
14672
   else if (!SCALAR_FLOAT_TYPE_P (scalar_type)
 
14673
-          && !INTEGRAL_TYPE_P (scalar_type)
 
14674
-          && !POINTER_TYPE_P (scalar_type))
 
14675
+          && !INTEGRAL_TYPE_P (scalar_type))
 
14676
     scalar_type = lang_hooks.types.type_for_mode (inner_mode, 1);
 
14677
 
 
14678
   /* We can't build a vector type of elements with alignment bigger than
 
14679
Index: gcc/combine.c
 
14680
===================================================================
 
14681
--- a/src/gcc/combine.c (.../tags/gcc_4_8_2_release)
 
14682
+++ b/src/gcc/combine.c (.../branches/gcc-4_8-branch)
 
14683
@@ -5798,8 +5798,15 @@
 
14684
                return x;
 
14685
            }
 
14686
 
 
14687
-         /* If the code changed, return a whole new comparison.  */
 
14688
-         if (new_code != code)
 
14689
+         /* If the code changed, return a whole new comparison.
 
14690
+            We also need to avoid using SUBST in cases where
 
14691
+            simplify_comparison has widened a comparison with a CONST_INT,
 
14692
+            since in that case the wider CONST_INT may fail the sanity
 
14693
+            checks in do_SUBST.  */
 
14694
+         if (new_code != code
 
14695
+             || (CONST_INT_P (op1)
 
14696
+                 && GET_MODE (op0) != GET_MODE (XEXP (x, 0))
 
14697
+                 && GET_MODE (op0) != GET_MODE (XEXP (x, 1))))
 
14698
            return gen_rtx_fmt_ee (new_code, mode, op0, op1);
 
14699
 
 
14700
          /* Otherwise, keep this operation, but maybe change its operands.
 
14701
@@ -7991,7 +7998,7 @@
 
14702
   if (code == CALL || code == ASM_OPERANDS || code == CLOBBER)
 
14703
     return x;
 
14704
 
 
14705
-  /* We want to perform the operation is its present mode unless we know
 
14706
+  /* We want to perform the operation in its present mode unless we know
 
14707
      that the operation is valid in MODE, in which case we do the operation
 
14708
      in MODE.  */
 
14709
   op_mode = ((GET_MODE_CLASS (mode) == GET_MODE_CLASS (GET_MODE (x))
 
14710
@@ -8427,9 +8434,10 @@
 
14711
                                            GET_MODE (x), GEN_INT (mask),
 
14712
                                            XEXP (x, 1));
 
14713
          if (temp && CONST_INT_P (temp))
 
14714
-           SUBST (XEXP (x, 0),
 
14715
-                  force_to_mode (XEXP (x, 0), GET_MODE (x),
 
14716
-                                 INTVAL (temp), next_select));
 
14717
+           x = simplify_gen_binary (code, GET_MODE (x),
 
14718
+                                    force_to_mode (XEXP (x, 0), GET_MODE (x),
 
14719
+                                                   INTVAL (temp), next_select),
 
14720
+                                    XEXP (x, 1));
 
14721
        }
 
14722
       break;
 
14723
 
 
14724
@@ -8497,14 +8505,16 @@
 
14725
       /* We have no way of knowing if the IF_THEN_ELSE can itself be
 
14726
         written in a narrower mode.  We play it safe and do not do so.  */
 
14727
 
 
14728
-      SUBST (XEXP (x, 1),
 
14729
-            gen_lowpart_or_truncate (GET_MODE (x),
 
14730
-                                     force_to_mode (XEXP (x, 1), mode,
 
14731
-                                                    mask, next_select)));
 
14732
-      SUBST (XEXP (x, 2),
 
14733
-            gen_lowpart_or_truncate (GET_MODE (x),
 
14734
-                                     force_to_mode (XEXP (x, 2), mode,
 
14735
-                                                    mask, next_select)));
 
14736
+      op0 = gen_lowpart_or_truncate (GET_MODE (x),
 
14737
+                                    force_to_mode (XEXP (x, 1), mode,
 
14738
+                                                   mask, next_select));
 
14739
+      op1 = gen_lowpart_or_truncate (GET_MODE (x),
 
14740
+                                    force_to_mode (XEXP (x, 2), mode,
 
14741
+                                                   mask, next_select));
 
14742
+      if (op0 != XEXP (x, 1) || op1 != XEXP (x, 2))
 
14743
+       x = simplify_gen_ternary (IF_THEN_ELSE, GET_MODE (x),
 
14744
+                                 GET_MODE (XEXP (x, 0)), XEXP (x, 0),
 
14745
+                                 op0, op1);
 
14746
       break;
 
14747
 
 
14748
     default:
 
14749
Index: gcc/config.gcc
 
14750
===================================================================
 
14751
--- a/src/gcc/config.gcc        (.../tags/gcc_4_8_2_release)
 
14752
+++ b/src/gcc/config.gcc        (.../branches/gcc-4_8-branch)
 
14753
@@ -1761,6 +1761,14 @@
 
14754
        tmake_file="${tmake_file} microblaze/t-microblaze-linux"
 
14755
        ;;
 
14756
 microblaze*-*-rtems*)
 
14757
+       case $target in
 
14758
+               microblazeel-*)
 
14759
+                       tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
 
14760
+                       ;;
 
14761
+               microblaze-*)
 
14762
+                       tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
 
14763
+                       ;;
 
14764
+       esac
 
14765
        tm_file="${tm_file} dbxelf.h"
 
14766
        tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
 
14767
        c_target_objs="${c_target_objs} microblaze-c.o"
 
14768
@@ -2963,11 +2971,18 @@
 
14769
          with_cpu=8540
 
14770
       fi       
 
14771
       ;;
 
14772
-    sparc-leon*-*)
 
14773
-      with_cpu=v8;
 
14774
-      ;;
 
14775
     sparc*-*-*)
 
14776
-      with_cpu="`echo ${target} | sed 's/-.*$//'`"
 
14777
+      case ${target} in
 
14778
+       *-leon-*)
 
14779
+         with_cpu=leon
 
14780
+         ;;
 
14781
+       *-leon[3-9]*)
 
14782
+         with_cpu=leon3
 
14783
+         ;;
 
14784
+       *)
 
14785
+         with_cpu="`echo ${target} | sed 's/-.*$//'`"
 
14786
+         ;;
 
14787
+      esac
 
14788
       ;;
 
14789
   esac
 
14790
 
 
14791
@@ -3587,7 +3602,7 @@
 
14792
                        case ${val} in
 
14793
                        "" | sparc | sparcv9 | sparc64 \
 
14794
                        | v7 | cypress \
 
14795
-                       | v8 | supersparc | hypersparc | leon \
 
14796
+                       | v8 | supersparc | hypersparc | leon | leon3 \
 
14797
                        | sparclite | f930 | f934 | sparclite86x \
 
14798
                        | sparclet | tsc701 \
 
14799
                        | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
 
14800
@@ -3745,15 +3760,6 @@
 
14801
                cxx_target_objs="${cxx_target_objs} sh-c.o"
 
14802
                ;;
 
14803
 
 
14804
-       sparc-leon*-*)
 
14805
-               if test x$with_tune = x ; then
 
14806
-                 with_tune=leon;
 
14807
-               fi
 
14808
-
 
14809
-               # The SPARC port checks this value at compile-time.
 
14810
-               target_cpu_default2="TARGET_CPU_$with_cpu"
 
14811
-               ;;
 
14812
-
 
14813
        sparc*-*-*)
 
14814
                # Some standard aliases.
 
14815
                case x$with_cpu in
 
14816
@@ -3765,6 +3771,17 @@
 
14817
                        ;;
 
14818
                esac
 
14819
 
 
14820
+               if test x$with_tune = x ; then
 
14821
+                     case ${target} in
 
14822
+                     *-leon-*)
 
14823
+                         with_tune=leon
 
14824
+                         ;;
 
14825
+                     *-leon[3-9]*)
 
14826
+                         with_tune=leon3
 
14827
+                         ;;
 
14828
+                     esac
 
14829
+               fi
 
14830
+
 
14831
                # The SPARC port checks this value at compile-time.
 
14832
                target_cpu_default2="TARGET_CPU_$with_cpu"
 
14833
                ;;
 
14834
Index: gcc/Makefile.in
 
14835
===================================================================
 
14836
--- a/src/gcc/Makefile.in       (.../tags/gcc_4_8_2_release)
 
14837
+++ b/src/gcc/Makefile.in       (.../branches/gcc-4_8-branch)
 
14838
@@ -3037,7 +3037,7 @@
 
14839
     $(TM_H) coretypes.h $(GIMPLE_H) \
 
14840
     $(TREE_PASS_H) $(FLAGS_H) $(EXPR_H) $(BASIC_BLOCK_H) \
 
14841
     $(GGC_H) $(OBSTACK_H) $(PARAMS_H) $(CPPLIB_H) $(PARAMS_H) \
 
14842
-    $(GIMPLE_PRETTY_PRINT_H) langhooks.h
 
14843
+    $(GIMPLE_PRETTY_PRINT_H) langhooks.h $(OPTABS_H)
 
14844
 tree-complex.o : tree-complex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \
 
14845
     $(TM_H) $(FLAGS_H) $(TREE_FLOW_H) $(GIMPLE_H) \
 
14846
     tree-iterator.h $(TREE_PASS_H) tree-ssa-propagate.h
 
14847
@@ -3276,12 +3276,12 @@
 
14848
    $(TM_H) $(RTL_H) $(REGS_H) insn-config.h insn-codes.h $(DF_H) \
 
14849
    $(RECOG_H) output.h addresses.h $(REGS_H) hard-reg-set.h $(FLAGS_H) \
 
14850
    $(FUNCTION_H) $(EXPR_H) $(BASIC_BLOCK_H) $(TM_P_H) $(EXCEPT_H) \
 
14851
-   ira.h rtl-error.h $(LRA_INT_H)
 
14852
+   ira.h rtl-error.h $(LRA_INT_H) $(OPTABS_H)
 
14853
 lra-eliminations.o : lra-eliminations.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
 
14854
    $(TM_H) $(RTL_H) $(REGS_H) insn-config.h $(DF_H) \
 
14855
    $(RECOG_H) output.h $(REGS_H) hard-reg-set.h $(FLAGS_H) $(FUNCTION_H) \
 
14856
    $(EXPR_H) $(BASIC_BLOCK_H) $(TM_P_H) $(EXCEPT_H) ira.h \
 
14857
-   rtl-error.h $(LRA_INT_H)
 
14858
+   rtl-error.h $(LRA_INT_H) $(OPTABS_H)
 
14859
 lra-lives.o : lra-lives.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
 
14860
    $(RTL_H) $(REGS_H) insn-config.h $(DF_H) \
 
14861
    $(RECOG_H) output.h $(REGS_H) hard-reg-set.h $(FLAGS_H) $(FUNCTION_H) \
 
14862
Index: gcc/tree-cfg.c
 
14863
===================================================================
 
14864
--- a/src/gcc/tree-cfg.c        (.../tags/gcc_4_8_2_release)
 
14865
+++ b/src/gcc/tree-cfg.c        (.../branches/gcc-4_8-branch)
 
14866
@@ -3513,11 +3513,10 @@
 
14867
     case PLUS_EXPR:
 
14868
     case MINUS_EXPR:
 
14869
       {
 
14870
-       /* We use regular PLUS_EXPR and MINUS_EXPR for vectors.
 
14871
-          ???  This just makes the checker happy and may not be what is
 
14872
-          intended.  */
 
14873
-       if (TREE_CODE (lhs_type) == VECTOR_TYPE
 
14874
-           && POINTER_TYPE_P (TREE_TYPE (lhs_type)))
 
14875
+       tree lhs_etype = lhs_type;
 
14876
+       tree rhs1_etype = rhs1_type;
 
14877
+       tree rhs2_etype = rhs2_type;
 
14878
+       if (TREE_CODE (lhs_type) == VECTOR_TYPE)
 
14879
          {
 
14880
            if (TREE_CODE (rhs1_type) != VECTOR_TYPE
 
14881
                || TREE_CODE (rhs2_type) != VECTOR_TYPE)
 
14882
@@ -3525,22 +3524,13 @@
 
14883
                error ("invalid non-vector operands to vector valued plus");
 
14884
                return true;
 
14885
              }
 
14886
-           lhs_type = TREE_TYPE (lhs_type);
 
14887
-           rhs1_type = TREE_TYPE (rhs1_type);
 
14888
-           rhs2_type = TREE_TYPE (rhs2_type);
 
14889
-           /* PLUS_EXPR is commutative, so we might end up canonicalizing
 
14890
-              the pointer to 2nd place.  */
 
14891
-           if (POINTER_TYPE_P (rhs2_type))
 
14892
-             {
 
14893
-               tree tem = rhs1_type;
 
14894
-               rhs1_type = rhs2_type;
 
14895
-               rhs2_type = tem;
 
14896
-             }
 
14897
-           goto do_pointer_plus_expr_check;
 
14898
+           lhs_etype = TREE_TYPE (lhs_type);
 
14899
+           rhs1_etype = TREE_TYPE (rhs1_type);
 
14900
+           rhs2_etype = TREE_TYPE (rhs2_type);
 
14901
          }
 
14902
-       if (POINTER_TYPE_P (lhs_type)
 
14903
-           || POINTER_TYPE_P (rhs1_type)
 
14904
-           || POINTER_TYPE_P (rhs2_type))
 
14905
+       if (POINTER_TYPE_P (lhs_etype)
 
14906
+           || POINTER_TYPE_P (rhs1_etype)
 
14907
+           || POINTER_TYPE_P (rhs2_etype))
 
14908
          {
 
14909
            error ("invalid (pointer) operands to plus/minus");
 
14910
            return true;
 
14911
@@ -3552,7 +3542,6 @@
 
14912
 
 
14913
     case POINTER_PLUS_EXPR:
 
14914
       {
 
14915
-do_pointer_plus_expr_check:
 
14916
        if (!POINTER_TYPE_P (rhs1_type)
 
14917
            || !useless_type_conversion_p (lhs_type, rhs1_type)
 
14918
            || !ptrofftype_p (rhs2_type))
 
14919
Index: gcc/tree-ssa-reassoc.c
 
14920
===================================================================
 
14921
--- a/src/gcc/tree-ssa-reassoc.c        (.../tags/gcc_4_8_2_release)
 
14922
+++ b/src/gcc/tree-ssa-reassoc.c        (.../branches/gcc-4_8-branch)
 
14923
@@ -1980,8 +1980,15 @@
 
14924
 
 
14925
   tem = fold_convert_loc (loc, optype, tem);
 
14926
   gsi = gsi_for_stmt (stmt);
 
14927
-  tem = force_gimple_operand_gsi (&gsi, tem, true, NULL_TREE, true,
 
14928
-                                 GSI_SAME_STMT);
 
14929
+  /* In rare cases range->exp can be equal to lhs of stmt.
 
14930
+     In that case we have to insert after the stmt rather then before
 
14931
+     it.  */
 
14932
+  if (op == range->exp)
 
14933
+    tem = force_gimple_operand_gsi (&gsi, tem, true, NULL_TREE, false,
 
14934
+                                   GSI_SAME_STMT);
 
14935
+  else
 
14936
+    tem = force_gimple_operand_gsi (&gsi, tem, true, NULL_TREE, true,
 
14937
+                                   GSI_SAME_STMT);
 
14938
 
 
14939
   /* If doing inter-bb range test optimization, update the
 
14940
      stmts immediately.  Start with changing the first range test
 
14941
Index: gcc/config/s390/s390.c
 
14942
===================================================================
 
14943
--- a/src/gcc/config/s390/s390.c        (.../tags/gcc_4_8_2_release)
 
14944
+++ b/src/gcc/config/s390/s390.c        (.../branches/gcc-4_8-branch)
 
14945
@@ -883,7 +883,8 @@
 
14946
        {
 
14947
          /* For CCRAWmode put the required cc mask into the second
 
14948
             operand.  */
 
14949
-         if (GET_MODE (XVECEXP (*op0, 0, 0)) == CCRAWmode)
 
14950
+        if (GET_MODE (XVECEXP (*op0, 0, 0)) == CCRAWmode
 
14951
+            && INTVAL (*op1) >= 0 && INTVAL (*op1) <= 3)
 
14952
            *op1 = gen_rtx_CONST_INT (VOIDmode, 1 << (3 - INTVAL (*op1)));
 
14953
          *op0 = XVECEXP (*op0, 0, 0);
 
14954
          *code = new_code;
 
14955
@@ -7846,6 +7847,9 @@
 
14956
     {
 
14957
       bb = BASIC_BLOCK (bb_index);
 
14958
 
 
14959
+      if (!bb)
 
14960
+       continue;
 
14961
+
 
14962
       FOR_BB_INSNS (bb, insn)
 
14963
        {
 
14964
          rtx ite, cc, pat, target;
 
14965
@@ -7959,7 +7963,10 @@
 
14966
   if (!result)
 
14967
     return;
 
14968
 
 
14969
-  PATTERN (tbegin_insn) = XVECEXP (PATTERN (tbegin_insn), 0, 0);
 
14970
+  PATTERN (tbegin_insn) = gen_rtx_PARALLEL (VOIDmode,
 
14971
+                           gen_rtvec (2,
 
14972
+                                      XVECEXP (PATTERN (tbegin_insn), 0, 0),
 
14973
+                                      XVECEXP (PATTERN (tbegin_insn), 0, 1)));
 
14974
   INSN_CODE (tbegin_insn) = -1;
 
14975
   df_insn_rescan (tbegin_insn);
 
14976
 
 
14977
@@ -9573,6 +9580,7 @@
 
14978
   const int CC3 = 1 << 0;
 
14979
   rtx abort_label = gen_label_rtx ();
 
14980
   rtx leave_label = gen_label_rtx ();
 
14981
+  rtx retry_plus_two = gen_reg_rtx (SImode);
 
14982
   rtx retry_reg = gen_reg_rtx (SImode);
 
14983
   rtx retry_label = NULL_RTX;
 
14984
   rtx jump;
 
14985
@@ -9581,16 +9589,17 @@
 
14986
   if (retry != NULL_RTX)
 
14987
     {
 
14988
       emit_move_insn (retry_reg, retry);
 
14989
+      emit_insn (gen_addsi3 (retry_plus_two, retry_reg, const2_rtx));
 
14990
+      emit_insn (gen_addsi3 (retry_reg, retry_reg, const1_rtx));
 
14991
       retry_label = gen_label_rtx ();
 
14992
       emit_label (retry_label);
 
14993
     }
 
14994
 
 
14995
   if (clobber_fprs_p)
 
14996
-    emit_insn (gen_tbegin_1 (tdb,
 
14997
-                gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK)));
 
14998
+    emit_insn (gen_tbegin_1 (gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK), tdb));
 
14999
   else
 
15000
-    emit_insn (gen_tbegin_nofloat_1 (tdb,
 
15001
-                gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK)));
 
15002
+    emit_insn (gen_tbegin_nofloat_1 (gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK),
 
15003
+                                    tdb));
 
15004
 
 
15005
   jump = s390_emit_jump (abort_label,
 
15006
                         gen_rtx_NE (VOIDmode,
 
15007
@@ -9611,6 +9620,10 @@
 
15008
   /* Abort handler code.  */
 
15009
 
 
15010
   emit_label (abort_label);
 
15011
+  emit_move_insn (dest, gen_rtx_UNSPEC (SImode,
 
15012
+                                       gen_rtvec (1, gen_rtx_REG (CCRAWmode,
 
15013
+                                                                  CC_REGNUM)),
 
15014
+                                       UNSPEC_CC_TO_INT));
 
15015
   if (retry != NULL_RTX)
 
15016
     {
 
15017
       rtx count = gen_reg_rtx (SImode);
 
15018
@@ -9622,7 +9635,7 @@
 
15019
       add_reg_note (jump, REG_BR_PROB, very_unlikely);
 
15020
 
 
15021
       /* CC2 - transient failure. Perform retry with ppa.  */
 
15022
-      emit_move_insn (count, retry);
 
15023
+      emit_move_insn (count, retry_plus_two);
 
15024
       emit_insn (gen_subsi3 (count, count, retry_reg));
 
15025
       emit_insn (gen_tx_assist (count));
 
15026
       jump = emit_jump_insn (gen_doloop_si64 (retry_label,
 
15027
@@ -9632,10 +9645,6 @@
 
15028
       LABEL_NUSES (retry_label) = 1;
 
15029
     }
 
15030
 
 
15031
-  emit_move_insn (dest, gen_rtx_UNSPEC (SImode,
 
15032
-                                       gen_rtvec (1, gen_rtx_REG (CCRAWmode,
 
15033
-                                                                  CC_REGNUM)),
 
15034
-                                       UNSPEC_CC_TO_INT));
 
15035
   emit_label (leave_label);
 
15036
 }
 
15037
 
 
15038
@@ -9674,6 +9683,9 @@
 
15039
 s390_init_builtins (void)
 
15040
 {
 
15041
   tree ftype, uint64_type;
 
15042
+  tree returns_twice_attr = tree_cons (get_identifier ("returns_twice"),
 
15043
+                                      NULL, NULL);
 
15044
+  tree noreturn_attr = tree_cons (get_identifier ("noreturn"), NULL, NULL);
 
15045
 
 
15046
   /* void foo (void) */
 
15047
   ftype = build_function_type_list (void_type_node, NULL_TREE);
 
15048
@@ -9684,17 +9696,17 @@
 
15049
   ftype = build_function_type_list (void_type_node, integer_type_node,
 
15050
                                    NULL_TREE);
 
15051
   add_builtin_function ("__builtin_tabort", ftype,
 
15052
-                       S390_BUILTIN_TABORT, BUILT_IN_MD, NULL, NULL_TREE);
 
15053
+                       S390_BUILTIN_TABORT, BUILT_IN_MD, NULL, noreturn_attr);
 
15054
   add_builtin_function ("__builtin_tx_assist", ftype,
 
15055
                        S390_BUILTIN_TX_ASSIST, BUILT_IN_MD, NULL, NULL_TREE);
 
15056
 
 
15057
   /* int foo (void *) */
 
15058
   ftype = build_function_type_list (integer_type_node, ptr_type_node, NULL_TREE);
 
15059
   add_builtin_function ("__builtin_tbegin", ftype, S390_BUILTIN_TBEGIN,
 
15060
-                       BUILT_IN_MD, NULL, NULL_TREE);
 
15061
+                       BUILT_IN_MD, NULL, returns_twice_attr);
 
15062
   add_builtin_function ("__builtin_tbegin_nofloat", ftype,
 
15063
                        S390_BUILTIN_TBEGIN_NOFLOAT,
 
15064
-                       BUILT_IN_MD, NULL, NULL_TREE);
 
15065
+                       BUILT_IN_MD, NULL, returns_twice_attr);
 
15066
 
 
15067
   /* int foo (void *, int) */
 
15068
   ftype = build_function_type_list (integer_type_node, ptr_type_node,
 
15069
@@ -9702,11 +9714,11 @@
 
15070
   add_builtin_function ("__builtin_tbegin_retry", ftype,
 
15071
                        S390_BUILTIN_TBEGIN_RETRY,
 
15072
                        BUILT_IN_MD,
 
15073
-                       NULL, NULL_TREE);
 
15074
+                       NULL, returns_twice_attr);
 
15075
   add_builtin_function ("__builtin_tbegin_retry_nofloat", ftype,
 
15076
                        S390_BUILTIN_TBEGIN_RETRY_NOFLOAT,
 
15077
                        BUILT_IN_MD,
 
15078
-                       NULL, NULL_TREE);
 
15079
+                       NULL, returns_twice_attr);
 
15080
 
 
15081
   /* int foo (void) */
 
15082
   ftype = build_function_type_list (integer_type_node, NULL_TREE);
 
15083
Index: gcc/config/s390/s390.md
 
15084
===================================================================
 
15085
--- a/src/gcc/config/s390/s390.md       (.../tags/gcc_4_8_2_release)
 
15086
+++ b/src/gcc/config/s390/s390.md       (.../branches/gcc-4_8-branch)
 
15087
@@ -147,6 +147,7 @@
 
15088
 
 
15089
    ; Transactional Execution support
 
15090
    UNSPECV_TBEGIN
 
15091
+   UNSPECV_TBEGIN_TDB
 
15092
    UNSPECV_TBEGINC
 
15093
    UNSPECV_TEND
 
15094
    UNSPECV_TABORT
 
15095
@@ -9896,9 +9897,10 @@
 
15096
 
 
15097
 (define_insn "tbegin_1"
 
15098
   [(set (reg:CCRAW CC_REGNUM)
 
15099
-       (unspec_volatile:CCRAW [(match_operand:BLK 0 "memory_operand"    "=Q")
 
15100
-                               (match_operand     1 "const_int_operand" " D")]
 
15101
+       (unspec_volatile:CCRAW [(match_operand 0 "const_int_operand" "D")]
 
15102
                               UNSPECV_TBEGIN))
 
15103
+   (set (match_operand:BLK 1 "memory_operand" "=Q")
 
15104
+       (unspec_volatile:BLK [(match_dup 0)] UNSPECV_TBEGIN_TDB))
 
15105
    (clobber (reg:DF 16))
 
15106
    (clobber (reg:DF 17))
 
15107
    (clobber (reg:DF 18))
 
15108
@@ -9917,18 +9919,19 @@
 
15109
    (clobber (reg:DF 31))]
 
15110
 ; CONST_OK_FOR_CONSTRAINT_P does not work with D constraint since D is
 
15111
 ; not supposed to be used for immediates (see genpreds.c).
 
15112
-  "TARGET_HTM && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 0xffff"
 
15113
-  "tbegin\t%0,%x1"
 
15114
+  "TARGET_HTM && INTVAL (operands[0]) >= 0 && INTVAL (operands[0]) <= 0xffff"
 
15115
+  "tbegin\t%1,%x0"
 
15116
   [(set_attr "op_type" "SIL")])
 
15117
 
 
15118
 ; Same as above but without the FPR clobbers
 
15119
 (define_insn "tbegin_nofloat_1"
 
15120
   [(set (reg:CCRAW CC_REGNUM)
 
15121
-       (unspec_volatile:CCRAW [(match_operand:BLK 0 "memory_operand"    "=Q")
 
15122
-                               (match_operand     1 "const_int_operand" " D")]
 
15123
-                              UNSPECV_TBEGIN))]
 
15124
-  "TARGET_HTM && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 0xffff"
 
15125
-  "tbegin\t%0,%x1"
 
15126
+       (unspec_volatile:CCRAW [(match_operand 0 "const_int_operand" "D")]
 
15127
+                              UNSPECV_TBEGIN))
 
15128
+   (set (match_operand:BLK 1 "memory_operand" "=Q")
 
15129
+       (unspec_volatile:BLK [(match_dup 0)] UNSPECV_TBEGIN_TDB))]
 
15130
+  "TARGET_HTM && INTVAL (operands[0]) >= 0 && INTVAL (operands[0]) <= 0xffff"
 
15131
+  "tbegin\t%1,%x0"
 
15132
   [(set_attr "op_type" "SIL")])
 
15133
 
 
15134
 
 
15135
@@ -10012,15 +10015,12 @@
 
15136
 ; Transaction perform processor assist
 
15137
 
 
15138
 (define_expand "tx_assist"
 
15139
-  [(set (match_dup 1) (const_int 0))
 
15140
-   (unspec_volatile [(match_operand:SI 0 "register_operand" "")
 
15141
-                    (match_dup 1)
 
15142
+  [(unspec_volatile [(match_operand:SI 0 "register_operand" "")
 
15143
+                    (reg:SI GPR0_REGNUM)
 
15144
                     (const_int 1)]
 
15145
                    UNSPECV_PPA)]
 
15146
   "TARGET_HTM"
 
15147
-{
 
15148
-  operands[1] = gen_reg_rtx (SImode);
 
15149
-})
 
15150
+  "")
 
15151
 
 
15152
 (define_insn "*ppa"
 
15153
   [(unspec_volatile [(match_operand:SI 0 "register_operand" "d")
 
15154
@@ -10028,5 +10028,5 @@
 
15155
                     (match_operand 2 "const_int_operand" "I")]
 
15156
                    UNSPECV_PPA)]
 
15157
   "TARGET_HTM && INTVAL (operands[2]) < 16"
 
15158
-  "ppa\t%0,%1,1"
 
15159
+  "ppa\t%0,%1,%2"
 
15160
   [(set_attr "op_type" "RRF")])
 
15161
Index: gcc/config/s390/htmxlintrin.h
 
15162
===================================================================
 
15163
--- a/src/gcc/config/s390/htmxlintrin.h (.../tags/gcc_4_8_2_release)
 
15164
+++ b/src/gcc/config/s390/htmxlintrin.h (.../branches/gcc-4_8-branch)
 
15165
@@ -33,13 +33,20 @@
 
15166
    the IBM XL compiler.  For documentation please see the "z/OS XL
 
15167
    C/C++ Programming Guide" publically available on the web.  */
 
15168
 
 
15169
-extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
15170
+/* FIXME: __TM_simple_begin and __TM_begin should be marked
 
15171
+   __always_inline__ as well but this currently produces an error
 
15172
+   since the tbegin builtins are "returns_twice" and setjmp_call_p
 
15173
+   (calls.c) therefore identifies the functions as calling setjmp.
 
15174
+   The tree inliner currently refuses to inline functions calling
 
15175
+   setjmp.  */
 
15176
+
 
15177
+long
 
15178
 __TM_simple_begin ()
 
15179
 {
 
15180
   return __builtin_tbegin_nofloat (0);
 
15181
 }
 
15182
 
 
15183
-extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
15184
+long
 
15185
 __TM_begin (void* const tdb)
 
15186
 {
 
15187
   return __builtin_tbegin_nofloat (tdb);
 
15188
@@ -78,7 +85,7 @@
 
15189
   if (depth != 0)
 
15190
     return depth;
 
15191
 
 
15192
-  if (tdb->format == 0)
 
15193
+  if (tdb->format != 1)
 
15194
     return 0;
 
15195
   return tdb->nesting_depth;
 
15196
 }
 
15197
@@ -90,7 +97,7 @@
 
15198
 {
 
15199
   struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
 
15200
 
 
15201
-  if (tdb->format == 0)
 
15202
+  if (tdb->format != 1)
 
15203
     return 0;
 
15204
 
 
15205
   return !!(tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE);
 
15206
@@ -101,7 +108,7 @@
 
15207
 {
 
15208
   struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
 
15209
 
 
15210
-  if (tdb->format == 0)
 
15211
+  if (tdb->format != 1)
 
15212
     return 0;
 
15213
 
 
15214
   if (tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE)
 
15215
@@ -117,7 +124,7 @@
 
15216
 {
 
15217
   struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
 
15218
 
 
15219
-  return (tdb->format == 0
 
15220
+  return (tdb->format == 1
 
15221
          && (tdb->abort_code == 4 /* unfiltered program interruption */
 
15222
              || tdb->abort_code == 11 /* restricted instruction */));
 
15223
 }
 
15224
@@ -127,7 +134,7 @@
 
15225
 {
 
15226
   struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
 
15227
 
 
15228
-  return (tdb->format == 0
 
15229
+  return (tdb->format == 1
 
15230
          && (tdb->abort_code == 7 /* fetch overflow */
 
15231
              || tdb->abort_code == 8 /* store overflow */));
 
15232
 }
 
15233
@@ -137,7 +144,7 @@
 
15234
 {
 
15235
   struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
 
15236
 
 
15237
-  return tdb->format == 0 && tdb->abort_code == 13; /* depth exceeded */
 
15238
+  return tdb->format == 1 && tdb->abort_code == 13; /* depth exceeded */
 
15239
 }
 
15240
 
 
15241
 extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
15242
@@ -145,7 +152,7 @@
 
15243
 {
 
15244
   struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
 
15245
 
 
15246
-  return (tdb->format == 0
 
15247
+  return (tdb->format == 1
 
15248
          && (tdb->abort_code == 9 /* fetch conflict */
 
15249
              || tdb->abort_code == 10 /* store conflict */));
 
15250
 }
 
15251
Index: gcc/config/sparc/t-rtems
 
15252
===================================================================
 
15253
--- a/src/gcc/config/sparc/t-rtems      (.../tags/gcc_4_8_2_release)
 
15254
+++ b/src/gcc/config/sparc/t-rtems      (.../branches/gcc-4_8-branch)
 
15255
@@ -17,6 +17,6 @@
 
15256
 # <http://www.gnu.org/licenses/>.
 
15257
 #
 
15258
 
 
15259
-MULTILIB_OPTIONS = msoft-float mcpu=v8
 
15260
-MULTILIB_DIRNAMES = soft v8
 
15261
+MULTILIB_OPTIONS = msoft-float mcpu=v8/mcpu=leon3
 
15262
+MULTILIB_DIRNAMES = soft v8 leon3
 
15263
 MULTILIB_MATCHES = msoft-float=mno-fpu
 
15264
Index: gcc/config/sparc/sparc.md
 
15265
===================================================================
 
15266
--- a/src/gcc/config/sparc/sparc.md     (.../tags/gcc_4_8_2_release)
 
15267
+++ b/src/gcc/config/sparc/sparc.md     (.../branches/gcc-4_8-branch)
 
15268
@@ -206,7 +206,7 @@
 
15269
 ;; 'f' for all DF/TFmode values, including those that are specific to the v8.
 
15270
 
 
15271
 ;; Attribute for cpu type.
 
15272
-;; These must match the values for enum processor_type in sparc.h.
 
15273
+;; These must match the values of the enum processor_type in sparc-opts.h.
 
15274
 (define_attr "cpu"
 
15275
   "v7,
 
15276
    cypress,
 
15277
@@ -214,6 +214,7 @@
 
15278
    supersparc,
 
15279
    hypersparc,
 
15280
    leon,
 
15281
+   leon3,
 
15282
    sparclite,
 
15283
    f930,
 
15284
    f934,
 
15285
@@ -5548,7 +5549,7 @@
 
15286
   [(set (match_operand:DF 0 "register_operand" "=e")
 
15287
        (mult:DF (float_extend:DF (match_operand:SF 1 "register_operand" "f"))
 
15288
                 (float_extend:DF (match_operand:SF 2 "register_operand" "f"))))]
 
15289
-  "(TARGET_V8 || TARGET_V9) && TARGET_FPU"
 
15290
+  "(TARGET_V8 || TARGET_V9) && TARGET_FPU && !sparc_fix_ut699"
 
15291
   "fsmuld\t%1, %2, %0"
 
15292
   [(set_attr "type" "fpmul")
 
15293
    (set_attr "fptype" "double")])
 
15294
@@ -5577,20 +5578,37 @@
 
15295
   "fdivq\t%1, %2, %0"
 
15296
   [(set_attr "type" "fpdivd")])
 
15297
 
 
15298
-(define_insn "divdf3"
 
15299
+(define_expand "divdf3"
 
15300
   [(set (match_operand:DF 0 "register_operand" "=e")
 
15301
        (div:DF (match_operand:DF 1 "register_operand" "e")
 
15302
                (match_operand:DF 2 "register_operand" "e")))]
 
15303
   "TARGET_FPU"
 
15304
+  "")
 
15305
+
 
15306
+(define_insn "*divdf3_nofix"
 
15307
+  [(set (match_operand:DF 0 "register_operand" "=e")
 
15308
+       (div:DF (match_operand:DF 1 "register_operand" "e")
 
15309
+               (match_operand:DF 2 "register_operand" "e")))]
 
15310
+  "TARGET_FPU && !sparc_fix_ut699"
 
15311
   "fdivd\t%1, %2, %0"
 
15312
   [(set_attr "type" "fpdivd")
 
15313
    (set_attr "fptype" "double")])
 
15314
 
 
15315
+(define_insn "*divdf3_fix"
 
15316
+  [(set (match_operand:DF 0 "register_operand" "=e")
 
15317
+       (div:DF (match_operand:DF 1 "register_operand" "e")
 
15318
+               (match_operand:DF 2 "register_operand" "e")))]
 
15319
+  "TARGET_FPU && sparc_fix_ut699"
 
15320
+  "fdivd\t%1, %2, %0\n\tstd\t%0, [%%sp-8]"
 
15321
+  [(set_attr "type" "fpdivd")
 
15322
+   (set_attr "fptype" "double")
 
15323
+   (set_attr "length" "2")])
 
15324
+
 
15325
 (define_insn "divsf3"
 
15326
   [(set (match_operand:SF 0 "register_operand" "=f")
 
15327
        (div:SF (match_operand:SF 1 "register_operand" "f")
 
15328
                (match_operand:SF 2 "register_operand" "f")))]
 
15329
-  "TARGET_FPU"
 
15330
+  "TARGET_FPU && !sparc_fix_ut699"
 
15331
   "fdivs\t%1, %2, %0"
 
15332
   [(set_attr "type" "fpdivs")])
 
15333
 
 
15334
@@ -5791,18 +5809,33 @@
 
15335
   "fsqrtq\t%1, %0"
 
15336
   [(set_attr "type" "fpsqrtd")])
 
15337
 
 
15338
-(define_insn "sqrtdf2"
 
15339
+(define_expand "sqrtdf2"
 
15340
   [(set (match_operand:DF 0 "register_operand" "=e")
 
15341
        (sqrt:DF (match_operand:DF 1 "register_operand" "e")))]
 
15342
   "TARGET_FPU"
 
15343
+  "")
 
15344
+
 
15345
+(define_insn "*sqrtdf2_nofix"
 
15346
+  [(set (match_operand:DF 0 "register_operand" "=e")
 
15347
+       (sqrt:DF (match_operand:DF 1 "register_operand" "e")))]
 
15348
+  "TARGET_FPU && !sparc_fix_ut699"
 
15349
   "fsqrtd\t%1, %0"
 
15350
   [(set_attr "type" "fpsqrtd")
 
15351
    (set_attr "fptype" "double")])
 
15352
 
 
15353
+(define_insn "*sqrtdf2_fix"
 
15354
+  [(set (match_operand:DF 0 "register_operand" "=e")
 
15355
+       (sqrt:DF (match_operand:DF 1 "register_operand" "e")))]
 
15356
+  "TARGET_FPU && sparc_fix_ut699"
 
15357
+  "fsqrtd\t%1, %0\n\tstd\t%0, [%%sp-8]"
 
15358
+  [(set_attr "type" "fpsqrtd")
 
15359
+   (set_attr "fptype" "double")
 
15360
+   (set_attr "length" "2")])
 
15361
+
 
15362
 (define_insn "sqrtsf2"
 
15363
   [(set (match_operand:SF 0 "register_operand" "=f")
 
15364
        (sqrt:SF (match_operand:SF 1 "register_operand" "f")))]
 
15365
-  "TARGET_FPU"
 
15366
+  "TARGET_FPU && !sparc_fix_ut699"
 
15367
   "fsqrts\t%1, %0"
 
15368
   [(set_attr "type" "fpsqrts")])
 
15369
 
 
15370
Index: gcc/config/sparc/t-sparc
 
15371
===================================================================
 
15372
--- a/src/gcc/config/sparc/t-sparc      (.../tags/gcc_4_8_2_release)
 
15373
+++ b/src/gcc/config/sparc/t-sparc      (.../branches/gcc-4_8-branch)
 
15374
@@ -23,7 +23,7 @@
 
15375
   insn-codes.h conditions.h output.h $(INSN_ATTR_H) $(FLAGS_H) \
 
15376
   $(FUNCTION_H) $(EXCEPT_H) $(EXPR_H) $(OPTABS_H) $(RECOG_H) \
 
15377
   $(DIAGNOSTIC_CORE_H) $(GGC_H) $(TM_P_H) debug.h $(TARGET_H) \
 
15378
-  $(TARGET_DEF_H) $(COMMON_TARGET_H) $(GIMPLE_H) \
 
15379
+  $(TARGET_DEF_H) $(COMMON_TARGET_H) $(GIMPLE_H) $(TREE_PASS_H) \
 
15380
   langhooks.h reload.h $(PARAMS_H) $(DF_H) $(OPTS_H) \
 
15381
   gt-sparc.h
 
15382
 
 
15383
Index: gcc/config/sparc/sparc.opt
 
15384
===================================================================
 
15385
--- a/src/gcc/config/sparc/sparc.opt    (.../tags/gcc_4_8_2_release)
 
15386
+++ b/src/gcc/config/sparc/sparc.opt    (.../branches/gcc-4_8-branch)
 
15387
@@ -146,6 +146,9 @@
 
15388
 Enum(sparc_processor_type) String(leon) Value(PROCESSOR_LEON)
 
15389
 
 
15390
 EnumValue
 
15391
+Enum(sparc_processor_type) String(leon3) Value(PROCESSOR_LEON3)
 
15392
+
 
15393
+EnumValue
 
15394
 Enum(sparc_processor_type) String(sparclite) Value(PROCESSOR_SPARCLITE)
 
15395
 
 
15396
 EnumValue
 
15397
@@ -201,9 +204,19 @@
 
15398
 Enable workaround for single erratum of AT697F processor
 
15399
 (corresponding to erratum #13 of AT697E processor)
 
15400
 
 
15401
+mfix-ut699
 
15402
+Target Report RejectNegative Var(sparc_fix_ut699)
 
15403
+Enable workarounds for the errata of the UT699 processor
 
15404
+
 
15405
 Mask(LONG_DOUBLE_128)
 
15406
 ;; Use 128-bit long double
 
15407
 
 
15408
+Mask(LEON)
 
15409
+;; Generate code for LEON
 
15410
+
 
15411
+Mask(LEON3)
 
15412
+;; Generate code for LEON3
 
15413
+
 
15414
 Mask(SPARCLITE)
 
15415
 ;; Generate code for SPARClite
 
15416
 
 
15417
Index: gcc/config/sparc/sync.md
 
15418
===================================================================
 
15419
--- a/src/gcc/config/sparc/sync.md      (.../tags/gcc_4_8_2_release)
 
15420
+++ b/src/gcc/config/sparc/sync.md      (.../branches/gcc-4_8-branch)
 
15421
@@ -161,7 +161,8 @@
 
15422
    (match_operand:SI 5 "const_int_operand" "")         ;; is_weak
 
15423
    (match_operand:SI 6 "const_int_operand" "")         ;; mod_s
 
15424
    (match_operand:SI 7 "const_int_operand" "")]                ;; mod_f
 
15425
-  "TARGET_V9 && (<MODE>mode != DImode || TARGET_ARCH64 || TARGET_V8PLUS)"
 
15426
+  "(TARGET_V9 || TARGET_LEON3)
 
15427
+   && (<MODE>mode != DImode || TARGET_ARCH64 || TARGET_V8PLUS)"
 
15428
 {
 
15429
   sparc_expand_compare_and_swap (operands);
 
15430
   DONE;
 
15431
@@ -176,7 +177,7 @@
 
15432
             [(match_operand:I48MODE 2 "register_operand" "")
 
15433
              (match_operand:I48MODE 3 "register_operand" "")]
 
15434
             UNSPECV_CAS))])]
 
15435
-  "TARGET_V9"
 
15436
+  "TARGET_V9 || TARGET_LEON3"
 
15437
   "")
 
15438
 
 
15439
 (define_insn "*atomic_compare_and_swap<mode>_1"
 
15440
@@ -187,7 +188,7 @@
 
15441
          [(match_operand:I48MODE 2 "register_operand" "r")
 
15442
           (match_operand:I48MODE 3 "register_operand" "0")]
 
15443
          UNSPECV_CAS))]
 
15444
-  "TARGET_V9 && (<MODE>mode == SImode || TARGET_ARCH64)"
 
15445
+  "(TARGET_V9 || TARGET_LEON3) && (<MODE>mode != DImode || TARGET_ARCH64)"
 
15446
   "cas<modesuffix>\t%1, %2, %0"
 
15447
   [(set_attr "type" "multi")])
 
15448
 
 
15449
@@ -220,7 +221,7 @@
 
15450
    (match_operand:SI 1 "memory_operand" "")
 
15451
    (match_operand:SI 2 "register_operand" "")
 
15452
    (match_operand:SI 3 "const_int_operand" "")]
 
15453
-  "TARGET_V8 || TARGET_V9"
 
15454
+  "(TARGET_V8 || TARGET_V9) && !sparc_fix_ut699"
 
15455
 {
 
15456
   enum memmodel model = (enum memmodel) INTVAL (operands[3]);
 
15457
 
 
15458
@@ -236,7 +237,7 @@
 
15459
                            UNSPECV_SWAP))
 
15460
    (set (match_dup 1)
 
15461
        (match_operand:SI 2 "register_operand" "0"))]
 
15462
-  "TARGET_V8 || TARGET_V9"
 
15463
+  "(TARGET_V8 || TARGET_V9) && !sparc_fix_ut699"
 
15464
   "swap\t%1, %0"
 
15465
   [(set_attr "type" "multi")])
 
15466
 
 
15467
@@ -244,7 +245,7 @@
 
15468
   [(match_operand:QI 0 "register_operand" "")
 
15469
    (match_operand:QI 1 "memory_operand" "")
 
15470
    (match_operand:SI 2 "const_int_operand" "")]
 
15471
-  ""
 
15472
+  "!sparc_fix_ut699"
 
15473
 {
 
15474
   enum memmodel model = (enum memmodel) INTVAL (operands[2]);
 
15475
   rtx ret;
 
15476
@@ -268,6 +269,6 @@
 
15477
        (unspec_volatile:QI [(match_operand:QI 1 "memory_operand" "+m")]
 
15478
                            UNSPECV_LDSTUB))
 
15479
    (set (match_dup 1) (const_int -1))]
 
15480
-  ""
 
15481
+  "!sparc_fix_ut699"
 
15482
   "ldstub\t%1, %0"
 
15483
   [(set_attr "type" "multi")])
 
15484
Index: gcc/config/sparc/sparc-opts.h
 
15485
===================================================================
 
15486
--- a/src/gcc/config/sparc/sparc-opts.h (.../tags/gcc_4_8_2_release)
 
15487
+++ b/src/gcc/config/sparc/sparc-opts.h (.../branches/gcc-4_8-branch)
 
15488
@@ -30,6 +30,7 @@
 
15489
   PROCESSOR_SUPERSPARC,
 
15490
   PROCESSOR_HYPERSPARC,
 
15491
   PROCESSOR_LEON,
 
15492
+  PROCESSOR_LEON3,
 
15493
   PROCESSOR_SPARCLITE,
 
15494
   PROCESSOR_F930,
 
15495
   PROCESSOR_F934,
 
15496
Index: gcc/config/sparc/sparc.c
 
15497
===================================================================
 
15498
--- a/src/gcc/config/sparc/sparc.c      (.../tags/gcc_4_8_2_release)
 
15499
+++ b/src/gcc/config/sparc/sparc.c      (.../branches/gcc-4_8-branch)
 
15500
@@ -52,6 +52,7 @@
 
15501
 #include "params.h"
 
15502
 #include "df.h"
 
15503
 #include "opts.h"
 
15504
+#include "tree-pass.h"
 
15505
 
 
15506
 /* Processor costs */
 
15507
 
 
15508
@@ -226,6 +227,30 @@
 
15509
 };
 
15510
 
 
15511
 static const
 
15512
+struct processor_costs leon3_costs = {
 
15513
+  COSTS_N_INSNS (1), /* int load */
 
15514
+  COSTS_N_INSNS (1), /* int signed load */
 
15515
+  COSTS_N_INSNS (1), /* int zeroed load */
 
15516
+  COSTS_N_INSNS (1), /* float load */
 
15517
+  COSTS_N_INSNS (1), /* fmov, fneg, fabs */
 
15518
+  COSTS_N_INSNS (1), /* fadd, fsub */
 
15519
+  COSTS_N_INSNS (1), /* fcmp */
 
15520
+  COSTS_N_INSNS (1), /* fmov, fmovr */
 
15521
+  COSTS_N_INSNS (1), /* fmul */
 
15522
+  COSTS_N_INSNS (14), /* fdivs */
 
15523
+  COSTS_N_INSNS (15), /* fdivd */
 
15524
+  COSTS_N_INSNS (22), /* fsqrts */
 
15525
+  COSTS_N_INSNS (23), /* fsqrtd */
 
15526
+  COSTS_N_INSNS (5), /* imul */
 
15527
+  COSTS_N_INSNS (5), /* imulX */
 
15528
+  0, /* imul bit factor */
 
15529
+  COSTS_N_INSNS (35), /* idiv */
 
15530
+  COSTS_N_INSNS (35), /* idivX */
 
15531
+  COSTS_N_INSNS (1), /* movcc/movr */
 
15532
+  0, /* shift penalty */
 
15533
+};
 
15534
+
 
15535
+static const
 
15536
 struct processor_costs sparclet_costs = {
 
15537
   COSTS_N_INSNS (3), /* int load */
 
15538
   COSTS_N_INSNS (3), /* int signed load */
 
15539
@@ -538,7 +563,6 @@
 
15540
                                   HOST_WIDE_INT, tree);
 
15541
 static bool sparc_can_output_mi_thunk (const_tree, HOST_WIDE_INT,
 
15542
                                       HOST_WIDE_INT, const_tree);
 
15543
-static void sparc_reorg (void);
 
15544
 static struct machine_function * sparc_init_machine_status (void);
 
15545
 static bool sparc_cannot_force_const_mem (enum machine_mode, rtx);
 
15546
 static rtx sparc_tls_get_addr (void);
 
15547
@@ -680,9 +704,6 @@
 
15548
 #undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
 
15549
 #define TARGET_ASM_CAN_OUTPUT_MI_THUNK sparc_can_output_mi_thunk
 
15550
 
 
15551
-#undef TARGET_MACHINE_DEPENDENT_REORG
 
15552
-#define TARGET_MACHINE_DEPENDENT_REORG sparc_reorg
 
15553
-
 
15554
 #undef TARGET_RTX_COSTS
 
15555
 #define TARGET_RTX_COSTS sparc_rtx_costs
 
15556
 #undef TARGET_ADDRESS_COST
 
15557
@@ -804,6 +825,206 @@
 
15558
 
 
15559
 struct gcc_target targetm = TARGET_INITIALIZER;
 
15560
 
 
15561
+/* Return the memory reference contained in X if any, zero otherwise.  */
 
15562
+
 
15563
+static rtx
 
15564
+mem_ref (rtx x)
 
15565
+{
 
15566
+  if (GET_CODE (x) == SIGN_EXTEND || GET_CODE (x) == ZERO_EXTEND)
 
15567
+    x = XEXP (x, 0);
 
15568
+
 
15569
+  if (MEM_P (x))
 
15570
+    return x;
 
15571
+
 
15572
+  return NULL_RTX;
 
15573
+}
 
15574
+
 
15575
+/* We use a machine specific pass to enable workarounds for errata.
 
15576
+   We need to have the (essentially) final form of the insn stream in order
 
15577
+   to properly detect the various hazards.  Therefore, this machine specific
 
15578
+   pass runs as late as possible.  The pass is inserted in the pass pipeline
 
15579
+   at the end of sparc_option_override.  */
 
15580
+
 
15581
+static bool
 
15582
+sparc_gate_work_around_errata (void)
 
15583
+{
 
15584
+  /* The only errata we handle are those of the AT697F and UT699.  */
 
15585
+  return sparc_fix_at697f != 0 || sparc_fix_ut699 != 0;
 
15586
+}
 
15587
+
 
15588
+static unsigned int
 
15589
+sparc_do_work_around_errata (void)
 
15590
+{
 
15591
+  rtx insn, next;
 
15592
+
 
15593
+  /* Force all instructions to be split into their final form.  */
 
15594
+  split_all_insns_noflow ();
 
15595
+
 
15596
+  /* Now look for specific patterns in the insn stream.  */
 
15597
+  for (insn = get_insns (); insn; insn = next)
 
15598
+    {
 
15599
+      bool insert_nop = false;
 
15600
+      rtx set;
 
15601
+
 
15602
+      /* Look into the instruction in a delay slot.  */
 
15603
+      if (NONJUMP_INSN_P (insn) && GET_CODE (PATTERN (insn)) == SEQUENCE)
 
15604
+       insn = XVECEXP (PATTERN (insn), 0, 1);
 
15605
+
 
15606
+      /* Look for a single-word load into an odd-numbered FP register.  */
 
15607
+      if (sparc_fix_at697f
 
15608
+         && NONJUMP_INSN_P (insn)
 
15609
+         && (set = single_set (insn)) != NULL_RTX
 
15610
+         && GET_MODE_SIZE (GET_MODE (SET_SRC (set))) == 4
 
15611
+         && MEM_P (SET_SRC (set))
 
15612
+         && REG_P (SET_DEST (set))
 
15613
+         && REGNO (SET_DEST (set)) > 31
 
15614
+         && REGNO (SET_DEST (set)) % 2 != 0)
 
15615
+       {
 
15616
+         /* The wrong dependency is on the enclosing double register.  */
 
15617
+         unsigned int x = REGNO (SET_DEST (set)) - 1;
 
15618
+         unsigned int src1, src2, dest;
 
15619
+         int code;
 
15620
+
 
15621
+         /* If the insn has a delay slot, then it cannot be problematic.  */
 
15622
+         next = next_active_insn (insn);
 
15623
+         if (!next)
 
15624
+           break;
 
15625
+         if (NONJUMP_INSN_P (next) && GET_CODE (PATTERN (next)) == SEQUENCE)
 
15626
+           continue;
 
15627
+
 
15628
+         extract_insn (next);
 
15629
+         code = INSN_CODE (next);
 
15630
+
 
15631
+         switch (code)
 
15632
+           {
 
15633
+           case CODE_FOR_adddf3:
 
15634
+           case CODE_FOR_subdf3:
 
15635
+           case CODE_FOR_muldf3:
 
15636
+           case CODE_FOR_divdf3:
 
15637
+             dest = REGNO (recog_data.operand[0]);
 
15638
+             src1 = REGNO (recog_data.operand[1]);
 
15639
+             src2 = REGNO (recog_data.operand[2]);
 
15640
+             if (src1 != src2)
 
15641
+               {
 
15642
+                 /* Case [1-4]:
 
15643
+                                ld [address], %fx+1
 
15644
+                                FPOPd %f{x,y}, %f{y,x}, %f{x,y}  */
 
15645
+                 if ((src1 == x || src2 == x)
 
15646
+                     && (dest == src1 || dest == src2))
 
15647
+                   insert_nop = true;
 
15648
+               }
 
15649
+             else
 
15650
+               {
 
15651
+                 /* Case 5:
 
15652
+                            ld [address], %fx+1
 
15653
+                            FPOPd %fx, %fx, %fx  */
 
15654
+                 if (src1 == x
 
15655
+                     && dest == src1
 
15656
+                     && (code == CODE_FOR_adddf3 || code == CODE_FOR_muldf3))
 
15657
+                   insert_nop = true;
 
15658
+               }
 
15659
+             break;
 
15660
+
 
15661
+           case CODE_FOR_sqrtdf2:
 
15662
+             dest = REGNO (recog_data.operand[0]);
 
15663
+             src1 = REGNO (recog_data.operand[1]);
 
15664
+             /* Case 6:
 
15665
+                        ld [address], %fx+1
 
15666
+                        fsqrtd %fx, %fx  */
 
15667
+             if (src1 == x && dest == src1)
 
15668
+               insert_nop = true;
 
15669
+             break;
 
15670
+
 
15671
+           default:
 
15672
+             break;
 
15673
+           }
 
15674
+       }
 
15675
+
 
15676
+      /* Look for a single-word load into an integer register.  */
 
15677
+      else if (sparc_fix_ut699
 
15678
+              && NONJUMP_INSN_P (insn)
 
15679
+              && (set = single_set (insn)) != NULL_RTX
 
15680
+              && GET_MODE_SIZE (GET_MODE (SET_SRC (set))) <= 4
 
15681
+              && mem_ref (SET_SRC (set)) != NULL_RTX
 
15682
+              && REG_P (SET_DEST (set))
 
15683
+              && REGNO (SET_DEST (set)) < 32)
 
15684
+       {
 
15685
+         /* There is no problem if the second memory access has a data
 
15686
+            dependency on the first single-cycle load.  */
 
15687
+         rtx x = SET_DEST (set);
 
15688
+
 
15689
+         /* If the insn has a delay slot, then it cannot be problematic.  */
 
15690
+         next = next_active_insn (insn);
 
15691
+         if (!next)
 
15692
+           break;
 
15693
+         if (NONJUMP_INSN_P (next) && GET_CODE (PATTERN (next)) == SEQUENCE)
 
15694
+           continue;
 
15695
+
 
15696
+         /* Look for a second memory access to/from an integer register.  */
 
15697
+         if ((set = single_set (next)) != NULL_RTX)
 
15698
+           {
 
15699
+             rtx src = SET_SRC (set);
 
15700
+             rtx dest = SET_DEST (set);
 
15701
+             rtx mem;
 
15702
+
 
15703
+             /* LDD is affected.  */
 
15704
+             if ((mem = mem_ref (src)) != NULL_RTX
 
15705
+                 && REG_P (dest)
 
15706
+                 && REGNO (dest) < 32
 
15707
+                 && !reg_mentioned_p (x, XEXP (mem, 0)))
 
15708
+               insert_nop = true;
 
15709
+
 
15710
+             /* STD is *not* affected.  */
 
15711
+             else if ((mem = mem_ref (dest)) != NULL_RTX
 
15712
+                      && GET_MODE_SIZE (GET_MODE (mem)) <= 4
 
15713
+                      && (src == const0_rtx
 
15714
+                          || (REG_P (src)
 
15715
+                              && REGNO (src) < 32
 
15716
+                              && REGNO (src) != REGNO (x)))
 
15717
+                      && !reg_mentioned_p (x, XEXP (mem, 0)))
 
15718
+               insert_nop = true;
 
15719
+           }
 
15720
+       }
 
15721
+
 
15722
+      else
 
15723
+       next = NEXT_INSN (insn);
 
15724
+
 
15725
+      if (insert_nop)
 
15726
+       emit_insn_before (gen_nop (), next);
 
15727
+    }
 
15728
+
 
15729
+  return 0;
 
15730
+}
 
15731
+
 
15732
+struct rtl_opt_pass pass_work_around_errata =
 
15733
+{
 
15734
+ {
 
15735
+  RTL_PASS,
 
15736
+  "errata",                            /* name */
 
15737
+  OPTGROUP_NONE,                       /* optinfo_flags */
 
15738
+  sparc_gate_work_around_errata,       /* gate */
 
15739
+  sparc_do_work_around_errata,         /* execute */
 
15740
+  NULL,                                        /* sub */
 
15741
+  NULL,                                        /* next */
 
15742
+  0,                                   /* static_pass_number */
 
15743
+  TV_MACH_DEP,                         /* tv_id */
 
15744
+  0,                                   /* properties_required */
 
15745
+  0,                                   /* properties_provided */
 
15746
+  0,                                   /* properties_destroyed */
 
15747
+  0,                                   /* todo_flags_start */
 
15748
+  TODO_verify_rtl_sharing,             /* todo_flags_finish */
 
15749
+ }
 
15750
+};
 
15751
+
 
15752
+struct register_pass_info insert_pass_work_around_errata =
 
15753
+{
 
15754
+  &pass_work_around_errata.pass,       /* pass */
 
15755
+  "dbr",                               /* reference_pass_name */
 
15756
+  1,                                   /* ref_pass_instance_number */
 
15757
+  PASS_POS_INSERT_AFTER                        /* po_op */
 
15758
+};
 
15759
+
 
15760
+/* Helpers for TARGET_DEBUG_OPTIONS.  */
 
15761
 static void
 
15762
 dump_target_flag_bits (const int flags)
 
15763
 {
 
15764
@@ -888,6 +1109,7 @@
 
15765
     { TARGET_CPU_supersparc, PROCESSOR_SUPERSPARC },
 
15766
     { TARGET_CPU_hypersparc, PROCESSOR_HYPERSPARC },
 
15767
     { TARGET_CPU_leon, PROCESSOR_LEON },
 
15768
+    { TARGET_CPU_leon3, PROCESSOR_LEON3 },
 
15769
     { TARGET_CPU_sparclite, PROCESSOR_F930 },
 
15770
     { TARGET_CPU_sparclite86x, PROCESSOR_SPARCLITE86X },
 
15771
     { TARGET_CPU_sparclet, PROCESSOR_TSC701 },
 
15772
@@ -902,7 +1124,7 @@
 
15773
   };
 
15774
   const struct cpu_default *def;
 
15775
   /* Table of values for -m{cpu,tune}=.  This must match the order of
 
15776
-     the PROCESSOR_* enumeration.  */
 
15777
+     the enum processor_type in sparc-opts.h.  */
 
15778
   static struct cpu_table {
 
15779
     const char *const name;
 
15780
     const int disable;
 
15781
@@ -914,8 +1136,8 @@
 
15782
     /* TI TMS390Z55 supersparc */
 
15783
     { "supersparc",    MASK_ISA, MASK_V8 },
 
15784
     { "hypersparc",    MASK_ISA, MASK_V8|MASK_FPU },
 
15785
-    /* LEON */
 
15786
-    { "leon",          MASK_ISA, MASK_V8|MASK_FPU },
 
15787
+    { "leon",          MASK_ISA, MASK_V8|MASK_LEON|MASK_FPU },
 
15788
+    { "leon3",         MASK_ISA, MASK_V8|MASK_LEON3|MASK_FPU },
 
15789
     { "sparclite",     MASK_ISA, MASK_SPARCLITE },
 
15790
     /* The Fujitsu MB86930 is the original sparclite chip, with no FPU.  */
 
15791
     { "f930",          MASK_ISA|MASK_FPU, MASK_SPARCLITE },
 
15792
@@ -1075,6 +1297,9 @@
 
15793
 #ifndef HAVE_AS_SPARC4
 
15794
                   & ~MASK_CBCOND
 
15795
 #endif
 
15796
+#ifndef HAVE_AS_LEON
 
15797
+                  & ~(MASK_LEON | MASK_LEON3)
 
15798
+#endif
 
15799
                   );
 
15800
 
 
15801
   /* If -mfpu or -mno-fpu was explicitly used, don't override with
 
15802
@@ -1164,6 +1389,9 @@
 
15803
     case PROCESSOR_LEON:
 
15804
       sparc_costs = &leon_costs;
 
15805
       break;
 
15806
+    case PROCESSOR_LEON3:
 
15807
+      sparc_costs = &leon3_costs;
 
15808
+      break;
 
15809
     case PROCESSOR_SPARCLET:
 
15810
     case PROCESSOR_TSC701:
 
15811
       sparc_costs = &sparclet_costs;
 
15812
@@ -1200,6 +1428,10 @@
 
15813
       /* Choose the most relaxed model for the processor.  */
 
15814
       else if (TARGET_V9)
 
15815
        sparc_memory_model = SMM_RMO;
 
15816
+      else if (TARGET_LEON3)
 
15817
+       sparc_memory_model = SMM_TSO;
 
15818
+      else if (TARGET_LEON)
 
15819
+       sparc_memory_model = SMM_SC;
 
15820
       else if (TARGET_V8)
 
15821
        sparc_memory_model = SMM_PSO;
 
15822
       else
 
15823
@@ -1241,6 +1473,13 @@
 
15824
      pessimizes for double floating-point registers.  */
 
15825
   if (!global_options_set.x_flag_ira_share_save_slots)
 
15826
     flag_ira_share_save_slots = 0;
 
15827
+
 
15828
+  /* We register a machine specific pass to work around errata, if any.
 
15829
+     The pass mut be scheduled as late as possible so that we have the
 
15830
+     (essentially) final form of the insn stream to work on.
 
15831
+     Registering the pass must be done at start up.  It's convenient to
 
15832
+     do it here.  */
 
15833
+  register_pass (&insert_pass_work_around_errata);
 
15834
 }
 
15835
 
 
15836
 /* Miscellaneous utilities.  */
 
15837
@@ -10355,7 +10594,8 @@
 
15838
              tmp = e0.add_with_sign (tmp, false, &add1_ovf);
 
15839
              if (tmp.is_negative ())
 
15840
                tmp = tmp.neg_with_overflow (&neg2_ovf);
 
15841
-
 
15842
+             else
 
15843
+               neg2_ovf = false;
 
15844
              result = result.add_with_sign (tmp, false, &add2_ovf);
 
15845
              overflow |= neg1_ovf | neg2_ovf | add1_ovf | add2_ovf;
 
15846
            }
 
15847
@@ -10897,107 +11137,6 @@
 
15848
   return (vcall_offset >= -32768 || ! fixed_regs[5]);
 
15849
 }
 
15850
 
 
15851
-/* We use the machine specific reorg pass to enable workarounds for errata.  */
 
15852
-
 
15853
-static void
 
15854
-sparc_reorg (void)
 
15855
-{
 
15856
-  rtx insn, next;
 
15857
-
 
15858
-  /* The only erratum we handle for now is that of the AT697F processor.  */
 
15859
-  if (!sparc_fix_at697f)
 
15860
-    return;
 
15861
-
 
15862
-  /* We need to have the (essentially) final form of the insn stream in order
 
15863
-     to properly detect the various hazards.  Run delay slot scheduling.  */
 
15864
-  if (optimize > 0 && flag_delayed_branch)
 
15865
-    {
 
15866
-      cleanup_barriers ();
 
15867
-      dbr_schedule (get_insns ());
 
15868
-    }
 
15869
-
 
15870
-  /* Now look for specific patterns in the insn stream.  */
 
15871
-  for (insn = get_insns (); insn; insn = next)
 
15872
-    {
 
15873
-      bool insert_nop = false;
 
15874
-      rtx set;
 
15875
-
 
15876
-      /* Look for a single-word load into an odd-numbered FP register.  */
 
15877
-      if (NONJUMP_INSN_P (insn)
 
15878
-         && (set = single_set (insn)) != NULL_RTX
 
15879
-         && GET_MODE_SIZE (GET_MODE (SET_SRC (set))) == 4
 
15880
-         && MEM_P (SET_SRC (set))
 
15881
-         && REG_P (SET_DEST (set))
 
15882
-         && REGNO (SET_DEST (set)) > 31
 
15883
-         && REGNO (SET_DEST (set)) % 2 != 0)
 
15884
-       {
 
15885
-         /* The wrong dependency is on the enclosing double register.  */
 
15886
-         unsigned int x = REGNO (SET_DEST (set)) - 1;
 
15887
-         unsigned int src1, src2, dest;
 
15888
-         int code;
 
15889
-
 
15890
-         /* If the insn has a delay slot, then it cannot be problematic.  */
 
15891
-         next = next_active_insn (insn);
 
15892
-         if (NONJUMP_INSN_P (next) && GET_CODE (PATTERN (next)) == SEQUENCE)
 
15893
-           code = -1;
 
15894
-         else
 
15895
-           {
 
15896
-             extract_insn (next);
 
15897
-             code = INSN_CODE (next);
 
15898
-           }
 
15899
-
 
15900
-         switch (code)
 
15901
-           {
 
15902
-           case CODE_FOR_adddf3:
 
15903
-           case CODE_FOR_subdf3:
 
15904
-           case CODE_FOR_muldf3:
 
15905
-           case CODE_FOR_divdf3:
 
15906
-             dest = REGNO (recog_data.operand[0]);
 
15907
-             src1 = REGNO (recog_data.operand[1]);
 
15908
-             src2 = REGNO (recog_data.operand[2]);
 
15909
-             if (src1 != src2)
 
15910
-               {
 
15911
-                 /* Case [1-4]:
 
15912
-                                ld [address], %fx+1
 
15913
-                                FPOPd %f{x,y}, %f{y,x}, %f{x,y}  */
 
15914
-                 if ((src1 == x || src2 == x)
 
15915
-                     && (dest == src1 || dest == src2))
 
15916
-                   insert_nop = true;
 
15917
-               }
 
15918
-             else
 
15919
-               {
 
15920
-                 /* Case 5:
 
15921
-                            ld [address], %fx+1
 
15922
-                            FPOPd %fx, %fx, %fx  */
 
15923
-                 if (src1 == x
 
15924
-                     && dest == src1
 
15925
-                     && (code == CODE_FOR_adddf3 || code == CODE_FOR_muldf3))
 
15926
-                   insert_nop = true;
 
15927
-               }
 
15928
-             break;
 
15929
-
 
15930
-           case CODE_FOR_sqrtdf2:
 
15931
-             dest = REGNO (recog_data.operand[0]);
 
15932
-             src1 = REGNO (recog_data.operand[1]);
 
15933
-             /* Case 6:
 
15934
-                        ld [address], %fx+1
 
15935
-                        fsqrtd %fx, %fx  */
 
15936
-             if (src1 == x && dest == src1)
 
15937
-               insert_nop = true;
 
15938
-             break;
 
15939
-
 
15940
-           default:
 
15941
-             break;
 
15942
-           }
 
15943
-       }
 
15944
-      else
 
15945
-       next = NEXT_INSN (insn);
 
15946
-
 
15947
-      if (insert_nop)
 
15948
-       emit_insn_after (gen_nop (), insn);
 
15949
-    }
 
15950
-}
 
15951
-
 
15952
 /* How to allocate a 'struct machine_function'.  */
 
15953
 
 
15954
 static struct machine_function *
 
15955
Index: gcc/config/sparc/leon.md
 
15956
===================================================================
 
15957
--- a/src/gcc/config/sparc/leon.md      (.../tags/gcc_4_8_2_release)
 
15958
+++ b/src/gcc/config/sparc/leon.md      (.../branches/gcc-4_8-branch)
 
15959
@@ -17,40 +17,48 @@
 
15960
 ;; along with GCC; see the file COPYING3.  If not see
 
15961
 ;; <http://www.gnu.org/licenses/>.
 
15962
 
 
15963
+;; Leon is a single-issue processor.
 
15964
 
 
15965
 (define_automaton "leon")
 
15966
 
 
15967
-(define_cpu_unit "leon_memory, leon_fpalu" "leon")
 
15968
-(define_cpu_unit "leon_fpmds" "leon")
 
15969
-(define_cpu_unit "write_buf" "leon")
 
15970
+(define_cpu_unit "leon_memory" "leon")
 
15971
 
 
15972
 (define_insn_reservation "leon_load" 1
 
15973
-  (and (eq_attr "cpu" "leon")
 
15974
-    (eq_attr "type" "load,sload,fpload"))
 
15975
+  (and (eq_attr "cpu" "leon") (eq_attr "type" "load,sload"))
 
15976
   "leon_memory")
 
15977
 
 
15978
-(define_insn_reservation "leon_store" 1
 
15979
-  (and (eq_attr "cpu" "leon")
 
15980
-    (eq_attr "type" "store,fpstore"))
 
15981
-  "leon_memory+write_buf")
 
15982
-  
 
15983
-(define_insn_reservation "leon_fp_alu" 1
 
15984
-  (and (eq_attr "cpu" "leon")
 
15985
-    (eq_attr "type" "fp,fpmove"))
 
15986
-  "leon_fpalu, nothing")
 
15987
+;; Use a double reservation to work around the load pipeline hazard on UT699.
 
15988
+(define_insn_reservation "leon3_load" 1
 
15989
+  (and (eq_attr "cpu" "leon3") (eq_attr "type" "load,sload"))
 
15990
+  "leon_memory*2")
 
15991
 
 
15992
-(define_insn_reservation "leon_fp_mult" 1
 
15993
-  (and (eq_attr "cpu" "leon")
 
15994
-    (eq_attr "type" "fpmul"))
 
15995
-  "leon_fpmds, nothing")
 
15996
+(define_insn_reservation "leon_store" 2
 
15997
+  (and (eq_attr "cpu" "leon,leon3") (eq_attr "type" "store"))
 
15998
+  "leon_memory*2")
 
15999
 
 
16000
-(define_insn_reservation "leon_fp_div" 16
 
16001
-  (and (eq_attr "cpu" "leon")
 
16002
-    (eq_attr "type" "fpdivs,fpdivd"))
 
16003
-  "leon_fpmds, nothing*15")
 
16004
+;; This describes Gaisler Research's FPU
 
16005
 
 
16006
-(define_insn_reservation "leon_fp_sqrt" 23
 
16007
-  (and (eq_attr "cpu" "leon")
 
16008
-    (eq_attr "type" "fpsqrts,fpsqrtd"))
 
16009
-  "leon_fpmds, nothing*21")
 
16010
+(define_automaton "grfpu")
 
16011
 
 
16012
+(define_cpu_unit "grfpu_alu" "grfpu")
 
16013
+(define_cpu_unit "grfpu_ds" "grfpu")
 
16014
+
 
16015
+(define_insn_reservation "leon_fp_alu" 4
 
16016
+  (and (eq_attr "cpu" "leon,leon3") (eq_attr "type" "fp,fpcmp,fpmul"))
 
16017
+  "grfpu_alu, nothing*3")
 
16018
+
 
16019
+(define_insn_reservation "leon_fp_divs" 16
 
16020
+  (and (eq_attr "cpu" "leon,leon3") (eq_attr "type" "fpdivs"))
 
16021
+  "grfpu_ds*14, nothing*2")
 
16022
+
 
16023
+(define_insn_reservation "leon_fp_divd" 17
 
16024
+  (and (eq_attr "cpu" "leon,leon3") (eq_attr "type" "fpdivd"))
 
16025
+  "grfpu_ds*15, nothing*2")
 
16026
+
 
16027
+(define_insn_reservation "leon_fp_sqrts" 24
 
16028
+  (and (eq_attr "cpu" "leon,leon3") (eq_attr "type" "fpsqrts"))
 
16029
+  "grfpu_ds*22, nothing*2")
 
16030
+
 
16031
+(define_insn_reservation "leon_fp_sqrtd" 25
 
16032
+  (and (eq_attr "cpu" "leon,leon3") (eq_attr "type" "fpsqrtd"))
 
16033
+  "grfpu_ds*23, nothing*2")
 
16034
Index: gcc/config/sparc/sparc.h
 
16035
===================================================================
 
16036
--- a/src/gcc/config/sparc/sparc.h      (.../tags/gcc_4_8_2_release)
 
16037
+++ b/src/gcc/config/sparc/sparc.h      (.../branches/gcc-4_8-branch)
 
16038
@@ -136,21 +136,22 @@
 
16039
 #define TARGET_CPU_supersparc  2
 
16040
 #define TARGET_CPU_hypersparc  3
 
16041
 #define TARGET_CPU_leon                4
 
16042
-#define TARGET_CPU_sparclite   5
 
16043
-#define TARGET_CPU_f930                5       /* alias */
 
16044
-#define TARGET_CPU_f934                5       /* alias */
 
16045
-#define TARGET_CPU_sparclite86x        6
 
16046
-#define TARGET_CPU_sparclet    7
 
16047
-#define TARGET_CPU_tsc701      7       /* alias */
 
16048
-#define TARGET_CPU_v9          8       /* generic v9 implementation */
 
16049
-#define TARGET_CPU_sparcv9     8       /* alias */
 
16050
-#define TARGET_CPU_sparc64     8       /* alias */
 
16051
-#define TARGET_CPU_ultrasparc  9
 
16052
-#define TARGET_CPU_ultrasparc3 10
 
16053
-#define TARGET_CPU_niagara     11
 
16054
-#define TARGET_CPU_niagara2    12
 
16055
-#define TARGET_CPU_niagara3    13
 
16056
-#define TARGET_CPU_niagara4    14
 
16057
+#define TARGET_CPU_leon3       5
 
16058
+#define TARGET_CPU_sparclite   6
 
16059
+#define TARGET_CPU_f930                6       /* alias */
 
16060
+#define TARGET_CPU_f934                6       /* alias */
 
16061
+#define TARGET_CPU_sparclite86x        7
 
16062
+#define TARGET_CPU_sparclet    8
 
16063
+#define TARGET_CPU_tsc701      8       /* alias */
 
16064
+#define TARGET_CPU_v9          9       /* generic v9 implementation */
 
16065
+#define TARGET_CPU_sparcv9     9       /* alias */
 
16066
+#define TARGET_CPU_sparc64     9       /* alias */
 
16067
+#define TARGET_CPU_ultrasparc  10
 
16068
+#define TARGET_CPU_ultrasparc3 11
 
16069
+#define TARGET_CPU_niagara     12
 
16070
+#define TARGET_CPU_niagara2    13
 
16071
+#define TARGET_CPU_niagara3    14
 
16072
+#define TARGET_CPU_niagara4    15
 
16073
 
 
16074
 #if TARGET_CPU_DEFAULT == TARGET_CPU_v9 \
 
16075
  || TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc \
 
16076
@@ -232,9 +233,10 @@
 
16077
 #define ASM_CPU32_DEFAULT_SPEC ""
 
16078
 #endif
 
16079
 
 
16080
-#if TARGET_CPU_DEFAULT == TARGET_CPU_leon
 
16081
+#if TARGET_CPU_DEFAULT == TARGET_CPU_leon \
 
16082
+ || TARGET_CPU_DEFAULT == TARGET_CPU_leon3
 
16083
 #define CPP_CPU32_DEFAULT_SPEC "-D__leon__ -D__sparc_v8__"
 
16084
-#define ASM_CPU32_DEFAULT_SPEC ""
 
16085
+#define ASM_CPU32_DEFAULT_SPEC AS_LEON_FLAG
 
16086
 #endif
 
16087
 
 
16088
 #endif
 
16089
@@ -282,6 +284,7 @@
 
16090
 %{mcpu=supersparc:-D__supersparc__ -D__sparc_v8__} \
 
16091
 %{mcpu=hypersparc:-D__hypersparc__ -D__sparc_v8__} \
 
16092
 %{mcpu=leon:-D__leon__ -D__sparc_v8__} \
 
16093
+%{mcpu=leon3:-D__leon__ -D__sparc_v8__} \
 
16094
 %{mcpu=v9:-D__sparc_v9__} \
 
16095
 %{mcpu=ultrasparc:-D__sparc_v9__} \
 
16096
 %{mcpu=ultrasparc3:-D__sparc_v9__} \
 
16097
@@ -329,7 +332,8 @@
 
16098
 %{mcpu=v8:-Av8} \
 
16099
 %{mcpu=supersparc:-Av8} \
 
16100
 %{mcpu=hypersparc:-Av8} \
 
16101
-%{mcpu=leon:-Av8} \
 
16102
+%{mcpu=leon:" AS_LEON_FLAG "} \
 
16103
+%{mcpu=leon3:" AS_LEON_FLAG "} \
 
16104
 %{mv8plus:-Av8plus} \
 
16105
 %{mcpu=v9:-Av9} \
 
16106
 %{mcpu=ultrasparc:%{!mv8plus:-Av9a}} \
 
16107
@@ -1754,6 +1758,12 @@
 
16108
 #define AS_NIAGARA4_FLAG "-Av9" AS_NIAGARA3_FLAG
 
16109
 #endif
 
16110
 
 
16111
+#ifdef HAVE_AS_LEON
 
16112
+#define AS_LEON_FLAG "-Aleon"
 
16113
+#else
 
16114
+#define AS_LEON_FLAG "-Av8"
 
16115
+#endif
 
16116
+
 
16117
 /* We use gcc _mcount for profiling.  */
 
16118
 #define NO_PROFILE_COUNTERS 0
 
16119
 
 
16120
Index: gcc/config/i386/i386.md
 
16121
===================================================================
 
16122
--- a/src/gcc/config/i386/i386.md       (.../tags/gcc_4_8_2_release)
 
16123
+++ b/src/gcc/config/i386/i386.md       (.../branches/gcc-4_8-branch)
 
16124
@@ -363,6 +363,13 @@
 
16125
           (const_string "unknown")]
 
16126
         (const_string "integer")))
 
16127
 
 
16128
+;; The minimum required alignment of vector mode memory operands of the SSE
 
16129
+;; (non-VEX/EVEX) instruction in bits, if it is different from
 
16130
+;; GET_MODE_ALIGNMENT of the operand, otherwise 0.  If an instruction has
 
16131
+;; multiple alternatives, this should be conservative maximum of those minimum
 
16132
+;; required alignments.
 
16133
+(define_attr "ssememalign" "" (const_int 0))
 
16134
+
 
16135
 ;; The (bounding maximum) length of an instruction immediate.
 
16136
 (define_attr "length_immediate" ""
 
16137
   (cond [(eq_attr "type" "incdec,setcc,icmov,str,lea,other,multi,idiv,leave,
 
16138
@@ -1570,7 +1577,7 @@
 
16139
   split_double_mode (DImode, &operands[1], 1, &operands[2], &operands[3]);
 
16140
 
 
16141
   operands[1] = gen_lowpart (DImode, operands[2]);
 
16142
-  operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (DImode, stack_pointer_rtx,
 
16143
+  operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (Pmode, stack_pointer_rtx,
 
16144
                                                   GEN_INT (4)));
 
16145
 })
 
16146
 
 
16147
@@ -1587,7 +1594,7 @@
 
16148
   split_double_mode (DImode, &operands[1], 1, &operands[2], &operands[3]);
 
16149
 
 
16150
   operands[1] = gen_lowpart (DImode, operands[2]);
 
16151
-  operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (DImode, stack_pointer_rtx,
 
16152
+  operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (Pmode, stack_pointer_rtx,
 
16153
                                                   GEN_INT (4)));
 
16154
 })
 
16155
 
 
16156
@@ -6589,7 +6596,7 @@
 
16157
    (set_attr "use_carry" "1")
 
16158
    (set_attr "mode" "<MODE>")])
 
16159
 
 
16160
-;; Overflow setting add and subtract instructions
 
16161
+;; Overflow setting add instructions
 
16162
 
 
16163
 (define_insn "*add<mode>3_cconly_overflow"
 
16164
   [(set (reg:CCC FLAGS_REG)
 
16165
@@ -6604,43 +6611,31 @@
 
16166
   [(set_attr "type" "alu")
 
16167
    (set_attr "mode" "<MODE>")])
 
16168
 
 
16169
-(define_insn "*sub<mode>3_cconly_overflow"
 
16170
+(define_insn "*add<mode>3_cc_overflow"
 
16171
   [(set (reg:CCC FLAGS_REG)
 
16172
        (compare:CCC
 
16173
-         (minus:SWI
 
16174
-           (match_operand:SWI 0 "nonimmediate_operand" "<r>m,<r>")
 
16175
-           (match_operand:SWI 1 "<general_operand>" "<r><i>,<r>m"))
 
16176
-         (match_dup 0)))]
 
16177
-  ""
 
16178
-  "cmp{<imodesuffix>}\t{%1, %0|%0, %1}"
 
16179
-  [(set_attr "type" "icmp")
 
16180
-   (set_attr "mode" "<MODE>")])
 
16181
-
 
16182
-(define_insn "*<plusminus_insn><mode>3_cc_overflow"
 
16183
-  [(set (reg:CCC FLAGS_REG)
 
16184
-       (compare:CCC
 
16185
-           (plusminus:SWI
 
16186
-               (match_operand:SWI 1 "nonimmediate_operand" "<comm>0,0")
 
16187
+           (plus:SWI
 
16188
+               (match_operand:SWI 1 "nonimmediate_operand" "%0,0")
 
16189
                (match_operand:SWI 2 "<general_operand>" "<r><i>,<r>m"))
 
16190
            (match_dup 1)))
 
16191
    (set (match_operand:SWI 0 "nonimmediate_operand" "=<r>m,<r>")
 
16192
-       (plusminus:SWI (match_dup 1) (match_dup 2)))]
 
16193
-  "ix86_binary_operator_ok (<CODE>, <MODE>mode, operands)"
 
16194
-  "<plusminus_mnemonic>{<imodesuffix>}\t{%2, %0|%0, %2}"
 
16195
+       (plus:SWI (match_dup 1) (match_dup 2)))]
 
16196
+  "ix86_binary_operator_ok (PLUS, <MODE>mode, operands)"
 
16197
+  "add{<imodesuffix>}\t{%2, %0|%0, %2}"
 
16198
   [(set_attr "type" "alu")
 
16199
    (set_attr "mode" "<MODE>")])
 
16200
 
 
16201
-(define_insn "*<plusminus_insn>si3_zext_cc_overflow"
 
16202
+(define_insn "*addsi3_zext_cc_overflow"
 
16203
   [(set (reg:CCC FLAGS_REG)
 
16204
        (compare:CCC
 
16205
-         (plusminus:SI
 
16206
-           (match_operand:SI 1 "nonimmediate_operand" "<comm>0")
 
16207
+         (plus:SI
 
16208
+           (match_operand:SI 1 "nonimmediate_operand" "%0")
 
16209
            (match_operand:SI 2 "x86_64_general_operand" "rme"))
 
16210
          (match_dup 1)))
 
16211
    (set (match_operand:DI 0 "register_operand" "=r")
 
16212
-       (zero_extend:DI (plusminus:SI (match_dup 1) (match_dup 2))))]
 
16213
-  "TARGET_64BIT && ix86_binary_operator_ok (<CODE>, SImode, operands)"
 
16214
-  "<plusminus_mnemonic>{l}\t{%2, %k0|%k0, %2}"
 
16215
+       (zero_extend:DI (plus:SI (match_dup 1) (match_dup 2))))]
 
16216
+  "TARGET_64BIT && ix86_binary_operator_ok (PLUS, SImode, operands)"
 
16217
+  "add{l}\t{%2, %k0|%k0, %2}"
 
16218
   [(set_attr "type" "alu")
 
16219
    (set_attr "mode" "SI")])
 
16220
 
 
16221
@@ -8012,7 +8007,18 @@
 
16222
         (const_int 0)))
 
16223
    (set (match_operand:DI 0 "nonimmediate_operand" "=r,r,rm")
 
16224
        (and:DI (match_dup 1) (match_dup 2)))]
 
16225
-  "TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
 
16226
+  "TARGET_64BIT
 
16227
+   && ix86_match_ccmode
 
16228
+       (insn,
 
16229
+        /* If we are going to emit andl instead of andq, and the operands[2]
 
16230
+           constant might have the SImode sign bit set, make sure the sign
 
16231
+           flag isn't tested, because the instruction will set the sign flag
 
16232
+           based on bit 31 rather than bit 63.  If it isn't CONST_INT,
 
16233
+           conservatively assume it might have bit 31 set.  */
 
16234
+        (satisfies_constraint_Z (operands[2])
 
16235
+         && (!CONST_INT_P (operands[2])
 
16236
+             || val_signbit_known_set_p (SImode, INTVAL (operands[2]))))
 
16237
+        ? CCZmode : CCNOmode)
 
16238
    && ix86_binary_operator_ok (AND, DImode, operands)"
 
16239
   "@
 
16240
    and{l}\t{%k2, %k0|%k0, %k2}
 
16241
Index: gcc/config/i386/t-rtems
 
16242
===================================================================
 
16243
--- a/src/gcc/config/i386/t-rtems       (.../tags/gcc_4_8_2_release)
 
16244
+++ b/src/gcc/config/i386/t-rtems       (.../branches/gcc-4_8-branch)
 
16245
@@ -17,11 +17,10 @@
 
16246
 # <http://www.gnu.org/licenses/>.
 
16247
 #
 
16248
 
 
16249
-MULTILIB_OPTIONS = mtune=i486/mtune=pentium/mtune=pentiumpro \
 
16250
-msoft-float
 
16251
+MULTILIB_OPTIONS = mtune=i486/mtune=pentium/mtune=pentiumpro msoft-float
 
16252
 MULTILIB_DIRNAMES= m486 mpentium mpentiumpro soft-float
 
16253
-MULTILIB_MATCHES = msoft-float=mno-m80387
 
16254
-MULTILIB_MATCHES += mtune?pentium=mtune?k6 mtune?pentiumpro=mtune?mathlon
 
16255
+MULTILIB_MATCHES = msoft-float=mno-80387
 
16256
+MULTILIB_MATCHES += mtune?pentium=mtune?k6 mtune?pentiumpro=mtune?athlon
 
16257
 MULTILIB_EXCEPTIONS = \
 
16258
 mtune=pentium/*msoft-float* \
 
16259
 mtune=pentiumpro/*msoft-float*
 
16260
Index: gcc/config/i386/winnt.c
 
16261
===================================================================
 
16262
--- a/src/gcc/config/i386/winnt.c       (.../tags/gcc_4_8_2_release)
 
16263
+++ b/src/gcc/config/i386/winnt.c       (.../branches/gcc-4_8-branch)
 
16264
@@ -547,8 +547,9 @@
 
16265
         sets 'discard' characteristic, rather than telling linker
 
16266
         to warn of size or content mismatch, so do the same.  */ 
 
16267
       bool discard = (flags & SECTION_CODE)
 
16268
-                     || lookup_attribute ("selectany",
 
16269
-                                          DECL_ATTRIBUTES (decl));      
 
16270
+                     || (TREE_CODE (decl) != IDENTIFIER_NODE
 
16271
+                         && lookup_attribute ("selectany",
 
16272
+                                              DECL_ATTRIBUTES (decl)));
 
16273
       fprintf (asm_out_file, "\t.linkonce %s\n",
 
16274
               (discard  ? "discard" : "same_size"));
 
16275
     }
 
16276
Index: gcc/config/i386/sse.md
 
16277
===================================================================
 
16278
--- a/src/gcc/config/i386/sse.md        (.../tags/gcc_4_8_2_release)
 
16279
+++ b/src/gcc/config/i386/sse.md        (.../branches/gcc-4_8-branch)
 
16280
@@ -605,6 +605,7 @@
 
16281
 }
 
16282
   [(set_attr "type" "ssemov")
 
16283
    (set_attr "movu" "1")
 
16284
+   (set_attr "ssememalign" "8")
 
16285
    (set_attr "prefix" "maybe_vex")
 
16286
    (set (attr "mode")
 
16287
        (cond [(match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")
 
16288
@@ -634,6 +635,7 @@
 
16289
 }
 
16290
   [(set_attr "type" "ssemov")
 
16291
    (set_attr "movu" "1")
 
16292
+   (set_attr "ssememalign" "8")
 
16293
    (set_attr "prefix" "maybe_vex")
 
16294
    (set (attr "mode")
 
16295
        (cond [(ior (match_test "TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL")
 
16296
@@ -663,6 +665,7 @@
 
16297
 }
 
16298
   [(set_attr "type" "ssemov")
 
16299
    (set_attr "movu" "1")
 
16300
+   (set_attr "ssememalign" "8")
 
16301
    (set (attr "prefix_data16")
 
16302
      (if_then_else
 
16303
        (match_test "TARGET_AVX")
 
16304
@@ -696,6 +699,7 @@
 
16305
 }
 
16306
   [(set_attr "type" "ssemov")
 
16307
    (set_attr "movu" "1")
 
16308
+   (set_attr "ssememalign" "8")
 
16309
    (set (attr "prefix_data16")
 
16310
      (if_then_else
 
16311
        (match_test "TARGET_AVX")
 
16312
@@ -721,6 +725,7 @@
 
16313
   "%vlddqu\t{%1, %0|%0, %1}"
 
16314
   [(set_attr "type" "ssemov")
 
16315
    (set_attr "movu" "1")
 
16316
+   (set_attr "ssememalign" "8")
 
16317
    (set (attr "prefix_data16")
 
16318
      (if_then_else
 
16319
        (match_test "TARGET_AVX")
 
16320
@@ -1001,6 +1006,7 @@
 
16321
    vrcpss\t{%1, %2, %0|%0, %2, %1}"
 
16322
   [(set_attr "isa" "noavx,avx")
 
16323
    (set_attr "type" "sse")
 
16324
+   (set_attr "ssememalign" "32")
 
16325
    (set_attr "atom_sse_attr" "rcp")
 
16326
    (set_attr "btver2_sse_attr" "rcp")
 
16327
    (set_attr "prefix" "orig,vex")
 
16328
@@ -1089,6 +1095,7 @@
 
16329
    vrsqrtss\t{%1, %2, %0|%0, %2, %1}"
 
16330
   [(set_attr "isa" "noavx,avx")
 
16331
    (set_attr "type" "sse")
 
16332
+   (set_attr "ssememalign" "32")
 
16333
    (set_attr "prefix" "orig,vex")
 
16334
    (set_attr "mode" "SF")])
 
16335
 
 
16336
@@ -2844,6 +2851,7 @@
 
16337
   "%vcvtdq2pd\t{%1, %0|%0, %q1}"
 
16338
   [(set_attr "type" "ssecvt")
 
16339
    (set_attr "prefix" "maybe_vex")
 
16340
+   (set_attr "ssememalign" "64")
 
16341
    (set_attr "mode" "V2DF")])
 
16342
 
 
16343
 (define_insn "avx_cvtpd2dq256"
 
16344
@@ -3572,6 +3580,7 @@
 
16345
    %vmovhps\t{%2, %0|%0, %2}"
 
16346
   [(set_attr "isa" "noavx,avx,noavx,avx,*")
 
16347
    (set_attr "type" "ssemov")
 
16348
+   (set_attr "ssememalign" "64")
 
16349
    (set_attr "prefix" "orig,vex,orig,vex,maybe_vex")
 
16350
    (set_attr "mode" "V4SF,V4SF,V2SF,V2SF,V2SF")])
 
16351
 
 
16352
@@ -3617,6 +3626,7 @@
 
16353
    %vmovlps\t{%2, %H0|%H0, %2}"
 
16354
   [(set_attr "isa" "noavx,avx,noavx,avx,*")
 
16355
    (set_attr "type" "ssemov")
 
16356
+   (set_attr "ssememalign" "64")
 
16357
    (set_attr "prefix" "orig,vex,orig,vex,maybe_vex")
 
16358
    (set_attr "mode" "V4SF,V4SF,V2SF,V2SF,V2SF")])
 
16359
 
 
16360
@@ -3941,6 +3951,7 @@
 
16361
    %vmovhlps\t{%1, %d0|%d0, %1}
 
16362
    %vmovlps\t{%H1, %d0|%d0, %H1}"
 
16363
   [(set_attr "type" "ssemov")
 
16364
+   (set_attr "ssememalign" "64")
 
16365
    (set_attr "prefix" "maybe_vex")
 
16366
    (set_attr "mode" "V2SF,V4SF,V2SF")])
 
16367
 
 
16368
@@ -3980,6 +3991,7 @@
 
16369
    %vmovlps\t{%2, %H0|%H0, %2}"
 
16370
   [(set_attr "isa" "noavx,avx,noavx,avx,*")
 
16371
    (set_attr "type" "ssemov")
 
16372
+   (set_attr "ssememalign" "64")
 
16373
    (set_attr "prefix" "orig,vex,orig,vex,maybe_vex")
 
16374
    (set_attr "mode" "V2SF,V2SF,V4SF,V4SF,V2SF")])
 
16375
 
 
16376
@@ -4033,6 +4045,7 @@
 
16377
    %vmovlps\t{%2, %0|%0, %2}"
 
16378
   [(set_attr "isa" "noavx,avx,noavx,avx,*")
 
16379
    (set_attr "type" "sseshuf,sseshuf,ssemov,ssemov,ssemov")
 
16380
+   (set_attr "ssememalign" "64")
 
16381
    (set_attr "length_immediate" "1,1,*,*,*")
 
16382
    (set_attr "prefix" "orig,vex,orig,vex,maybe_vex")
 
16383
    (set_attr "mode" "V4SF,V4SF,V2SF,V2SF,V2SF")])
 
16384
@@ -4642,7 +4655,8 @@
 
16385
    vmovlpd\t{%H1, %2, %0|%0, %2, %H1}
 
16386
    %vmovhpd\t{%1, %0|%0, %1}"
 
16387
   [(set_attr "isa" "noavx,avx,sse3,noavx,avx,*")
 
16388
-  (set_attr "type" "sselog,sselog,sselog,ssemov,ssemov,ssemov")
 
16389
+   (set_attr "type" "sselog,sselog,sselog,ssemov,ssemov,ssemov")
 
16390
+   (set_attr "ssememalign" "64")
 
16391
    (set_attr "prefix_data16" "*,*,*,1,*,1")
 
16392
    (set_attr "prefix" "orig,vex,maybe_vex,orig,vex,maybe_vex")
 
16393
    (set_attr "mode" "V2DF,V2DF,DF,V1DF,V1DF,V1DF")])
 
16394
@@ -4744,6 +4758,7 @@
 
16395
    %vmovlpd\t{%2, %H0|%H0, %2}"
 
16396
   [(set_attr "isa" "noavx,avx,sse3,noavx,avx,*")
 
16397
    (set_attr "type" "sselog,sselog,sselog,ssemov,ssemov,ssemov")
 
16398
+   (set_attr "ssememalign" "64")
 
16399
    (set_attr "prefix_data16" "*,*,*,1,*,1")
 
16400
    (set_attr "prefix" "orig,vex,maybe_vex,orig,vex,maybe_vex")
 
16401
    (set_attr "mode" "V2DF,V2DF,DF,V1DF,V1DF,V1DF")])
 
16402
@@ -4982,6 +4997,7 @@
 
16403
    movhlps\t{%1, %0|%0, %1}
 
16404
    movlps\t{%H1, %0|%0, %H1}"
 
16405
   [(set_attr "type" "ssemov")
 
16406
+   (set_attr "ssememalign" "64")
 
16407
    (set_attr "mode" "V2SF,V4SF,V2SF")])
 
16408
 
 
16409
 ;; Avoid combining registers from different units in a single alternative,
 
16410
@@ -5077,6 +5093,7 @@
 
16411
    #"
 
16412
   [(set_attr "isa" "noavx,avx,noavx,avx,*,*,*")
 
16413
    (set_attr "type" "ssemov,ssemov,sselog,sselog,ssemov,fmov,imov")
 
16414
+   (set_attr "ssememalign" "64")
 
16415
    (set_attr "prefix_data16" "1,*,*,*,*,*,*")
 
16416
    (set_attr "prefix" "orig,vex,orig,vex,*,*,*")
 
16417
    (set_attr "mode" "V1DF,V1DF,V2DF,V2DF,DF,DF,DF")])
 
16418
@@ -5145,6 +5162,7 @@
 
16419
              (const_string "imov")
 
16420
           ]
 
16421
           (const_string "ssemov")))
 
16422
+   (set_attr "ssememalign" "64")
 
16423
    (set_attr "prefix_data16" "*,1,*,*,*,*,1,*,*,*,*")
 
16424
    (set_attr "length_immediate" "*,*,*,*,*,1,*,*,*,*,*")
 
16425
    (set_attr "prefix" "maybe_vex,orig,vex,orig,vex,orig,orig,vex,*,*,*")
 
16426
@@ -5189,6 +5207,7 @@
 
16427
        (const_string "1")
 
16428
        (const_string "*")))
 
16429
    (set_attr "length_immediate" "*,*,*,*,*,1,*,*,*")
 
16430
+   (set_attr "ssememalign" "64")
 
16431
    (set_attr "prefix" "orig,vex,orig,vex,maybe_vex,orig,orig,vex,maybe_vex")
 
16432
    (set_attr "mode" "DF,DF,V1DF,V1DF,V1DF,V2DF,V1DF,V1DF,V1DF")])
 
16433
 
 
16434
@@ -8736,6 +8755,7 @@
 
16435
   "TARGET_SSE4_1"
 
16436
   "%vpmov<extsuffix>bw\t{%1, %0|%0, %q1}"
 
16437
   [(set_attr "type" "ssemov")
 
16438
+   (set_attr "ssememalign" "64")
 
16439
    (set_attr "prefix_extra" "1")
 
16440
    (set_attr "prefix" "maybe_vex")
 
16441
    (set_attr "mode" "TI")])
 
16442
@@ -8766,6 +8786,7 @@
 
16443
   "TARGET_SSE4_1"
 
16444
   "%vpmov<extsuffix>bd\t{%1, %0|%0, %k1}"
 
16445
   [(set_attr "type" "ssemov")
 
16446
+   (set_attr "ssememalign" "32")
 
16447
    (set_attr "prefix_extra" "1")
 
16448
    (set_attr "prefix" "maybe_vex")
 
16449
    (set_attr "mode" "TI")])
 
16450
@@ -8791,6 +8812,7 @@
 
16451
   "TARGET_SSE4_1"
 
16452
   "%vpmov<extsuffix>wd\t{%1, %0|%0, %q1}"
 
16453
   [(set_attr "type" "ssemov")
 
16454
+   (set_attr "ssememalign" "64")
 
16455
    (set_attr "prefix_extra" "1")
 
16456
    (set_attr "prefix" "maybe_vex")
 
16457
    (set_attr "mode" "TI")])
 
16458
@@ -8818,6 +8840,7 @@
 
16459
   "TARGET_SSE4_1"
 
16460
   "%vpmov<extsuffix>bq\t{%1, %0|%0, %w1}"
 
16461
   [(set_attr "type" "ssemov")
 
16462
+   (set_attr "ssememalign" "16")
 
16463
    (set_attr "prefix_extra" "1")
 
16464
    (set_attr "prefix" "maybe_vex")
 
16465
    (set_attr "mode" "TI")])
 
16466
@@ -8845,6 +8868,7 @@
 
16467
   "TARGET_SSE4_1"
 
16468
   "%vpmov<extsuffix>wq\t{%1, %0|%0, %k1}"
 
16469
   [(set_attr "type" "ssemov")
 
16470
+   (set_attr "ssememalign" "32")
 
16471
    (set_attr "prefix_extra" "1")
 
16472
    (set_attr "prefix" "maybe_vex")
 
16473
    (set_attr "mode" "TI")])
 
16474
@@ -8868,6 +8892,7 @@
 
16475
   "TARGET_SSE4_1"
 
16476
   "%vpmov<extsuffix>dq\t{%1, %0|%0, %q1}"
 
16477
   [(set_attr "type" "ssemov")
 
16478
+   (set_attr "ssememalign" "64")
 
16479
    (set_attr "prefix_extra" "1")
 
16480
    (set_attr "prefix" "maybe_vex")
 
16481
    (set_attr "mode" "TI")])
 
16482
@@ -9151,6 +9176,7 @@
 
16483
   [(set_attr "type" "sselog")
 
16484
    (set_attr "prefix_data16" "1")
 
16485
    (set_attr "prefix_extra" "1")
 
16486
+   (set_attr "ssememalign" "8")
 
16487
    (set_attr "length_immediate" "1")
 
16488
    (set_attr "memory" "none,load")
 
16489
    (set_attr "mode" "TI")])
 
16490
@@ -9213,6 +9239,7 @@
 
16491
   [(set_attr "type" "sselog")
 
16492
    (set_attr "prefix_data16" "1")
 
16493
    (set_attr "prefix_extra" "1")
 
16494
+   (set_attr "ssememalign" "8")
 
16495
    (set_attr "length_immediate" "1")
 
16496
    (set_attr "memory" "load")
 
16497
    (set_attr "mode" "TI")])
 
16498
@@ -9240,6 +9267,7 @@
 
16499
    (set_attr "prefix_data16" "1")
 
16500
    (set_attr "prefix_extra" "1")
 
16501
    (set_attr "prefix" "maybe_vex")
 
16502
+   (set_attr "ssememalign" "8")
 
16503
    (set_attr "length_immediate" "1")
 
16504
    (set_attr "btver2_decode" "vector")
 
16505
    (set_attr "memory" "none,load")
 
16506
@@ -9267,6 +9295,7 @@
 
16507
   [(set_attr "type" "sselog")
 
16508
    (set_attr "prefix_data16" "1")
 
16509
    (set_attr "prefix_extra" "1")
 
16510
+   (set_attr "ssememalign" "8")
 
16511
    (set_attr "length_immediate" "1")
 
16512
    (set_attr "prefix" "maybe_vex")
 
16513
    (set_attr "btver2_decode" "vector")
 
16514
@@ -9293,6 +9322,7 @@
 
16515
   [(set_attr "type" "sselog")
 
16516
    (set_attr "prefix_data16" "1")
 
16517
    (set_attr "prefix_extra" "1")
 
16518
+   (set_attr "ssememalign" "8")
 
16519
    (set_attr "length_immediate" "1")
 
16520
    (set_attr "memory" "none,load,none,load")
 
16521
    (set_attr "btver2_decode" "vector,vector,vector,vector") 
 
16522
@@ -9346,6 +9376,7 @@
 
16523
   [(set_attr "type" "sselog")
 
16524
    (set_attr "prefix_data16" "1")
 
16525
    (set_attr "prefix_extra" "1")
 
16526
+   (set_attr "ssememalign" "8")
 
16527
    (set_attr "length_immediate" "1")
 
16528
    (set_attr "memory" "none,load")
 
16529
    (set_attr "mode" "TI")])
 
16530
@@ -9399,6 +9430,7 @@
 
16531
   [(set_attr "type" "sselog")
 
16532
    (set_attr "prefix_data16" "1")
 
16533
    (set_attr "prefix_extra" "1")
 
16534
+   (set_attr "ssememalign" "8")
 
16535
    (set_attr "length_immediate" "1")
 
16536
    (set_attr "memory" "load")
 
16537
    (set_attr "mode" "TI")])
 
16538
@@ -9421,6 +9453,7 @@
 
16539
   [(set_attr "type" "sselog")
 
16540
    (set_attr "prefix_data16" "1")
 
16541
    (set_attr "prefix_extra" "1")
 
16542
+   (set_attr "ssememalign" "8")
 
16543
    (set_attr "length_immediate" "1")
 
16544
    (set_attr "prefix" "maybe_vex")
 
16545
    (set_attr "memory" "none,load")
 
16546
@@ -9445,6 +9478,7 @@
 
16547
   [(set_attr "type" "sselog")
 
16548
    (set_attr "prefix_data16" "1")
 
16549
    (set_attr "prefix_extra" "1")
 
16550
+   (set_attr "ssememalign" "8")
 
16551
    (set_attr "length_immediate" "1")
 
16552
    (set_attr "prefix" "maybe_vex")
 
16553
    (set_attr "memory" "none,load")
 
16554
@@ -9469,6 +9503,7 @@
 
16555
   [(set_attr "type" "sselog")
 
16556
    (set_attr "prefix_data16" "1")
 
16557
    (set_attr "prefix_extra" "1")
 
16558
+   (set_attr "ssememalign" "8")
 
16559
    (set_attr "length_immediate" "1")
 
16560
    (set_attr "memory" "none,load,none,load")
 
16561
    (set_attr "prefix" "maybe_vex")
 
16562
@@ -10213,7 +10248,6 @@
 
16563
   [(set_attr "type" "ssecvt1")
 
16564
    (set_attr "mode" "<MODE>")])
 
16565
 
 
16566
-;; scalar insns
 
16567
 (define_expand "xop_vmfrcz<mode>2"
 
16568
   [(set (match_operand:VF_128 0 "register_operand")
 
16569
        (vec_merge:VF_128
 
16570
@@ -10223,11 +10257,9 @@
 
16571
          (match_dup 3)
 
16572
          (const_int 1)))]
 
16573
   "TARGET_XOP"
 
16574
-{
 
16575
-  operands[3] = CONST0_RTX (<MODE>mode);
 
16576
-})
 
16577
+  "operands[3] = CONST0_RTX (<MODE>mode);")
 
16578
 
 
16579
-(define_insn "*xop_vmfrcz_<mode>"
 
16580
+(define_insn "*xop_vmfrcz<mode>2"
 
16581
   [(set (match_operand:VF_128 0 "register_operand" "=x")
 
16582
        (vec_merge:VF_128
 
16583
          (unspec:VF_128
 
16584
Index: gcc/config/i386/xopintrin.h
 
16585
===================================================================
 
16586
--- a/src/gcc/config/i386/xopintrin.h   (.../tags/gcc_4_8_2_release)
 
16587
+++ b/src/gcc/config/i386/xopintrin.h   (.../branches/gcc-4_8-branch)
 
16588
@@ -745,13 +745,17 @@
 
16589
 extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
16590
 _mm_frcz_ss (__m128 __A, __m128 __B)
 
16591
 {
 
16592
-  return (__m128) __builtin_ia32_vfrczss ((__v4sf)__A, (__v4sf)__B);
 
16593
+  return (__m128) __builtin_ia32_movss ((__v4sf)__A,
 
16594
+                                       (__v4sf)
 
16595
+                                       __builtin_ia32_vfrczss ((__v4sf)__B));
 
16596
 }
 
16597
 
 
16598
 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
16599
 _mm_frcz_sd (__m128d __A, __m128d __B)
 
16600
 {
 
16601
-  return (__m128d) __builtin_ia32_vfrczsd ((__v2df)__A, (__v2df)__B);
 
16602
+  return (__m128d) __builtin_ia32_movsd ((__v2df)__A,
 
16603
+                                        (__v2df)
 
16604
+                                        __builtin_ia32_vfrczsd ((__v2df)__B));
 
16605
 }
 
16606
 
 
16607
 extern __inline __m256 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
 
16608
Index: gcc/config/i386/i386.c
 
16609
===================================================================
 
16610
--- a/src/gcc/config/i386/i386.c        (.../tags/gcc_4_8_2_release)
 
16611
+++ b/src/gcc/config/i386/i386.c        (.../branches/gcc-4_8-branch)
 
16612
@@ -1894,10 +1894,10 @@
 
16613
   m_PPRO | m_P4_NOCONA | m_CORE_ALL | m_ATOM  | m_AMDFAM10 | m_BDVER | m_GENERIC,
 
16614
 
 
16615
   /* X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL */
 
16616
-  m_COREI7 | m_AMDFAM10 | m_BDVER | m_BTVER,
 
16617
+  m_COREI7 | m_HASWELL | m_AMDFAM10 | m_BDVER | m_BTVER,
 
16618
 
 
16619
   /* X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL */
 
16620
-  m_COREI7 | m_BDVER,
 
16621
+  m_COREI7 | m_HASWELL| m_BDVER,
 
16622
 
 
16623
   /* X86_TUNE_SSE_PACKED_SINGLE_INSN_OPTIMAL */
 
16624
   m_BDVER ,
 
16625
@@ -2983,7 +2983,7 @@
 
16626
       {"bdver3", PROCESSOR_BDVER3, CPU_BDVER3,
 
16627
        PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
 
16628
        | PTA_SSE4A | PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1
 
16629
-       | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX
 
16630
+       | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX | PTA_FMA4
 
16631
        | PTA_XOP | PTA_LWP | PTA_BMI | PTA_TBM | PTA_F16C
 
16632
        | PTA_FMA | PTA_PRFCHW | PTA_FXSR | PTA_XSAVE 
 
16633
        | PTA_XSAVEOPT},
 
16634
@@ -5409,6 +5409,17 @@
 
16635
          bool win;
 
16636
          int j;
 
16637
 
 
16638
+         /* For pre-AVX disallow unaligned loads/stores where the
 
16639
+            instructions don't support it.  */
 
16640
+         if (!TARGET_AVX
 
16641
+             && VECTOR_MODE_P (GET_MODE (op))
 
16642
+             && misaligned_operand (op, GET_MODE (op)))
 
16643
+           {
 
16644
+             int min_align = get_attr_ssememalign (insn);
 
16645
+             if (min_align == 0)
 
16646
+               return false;
 
16647
+           }
 
16648
+
 
16649
          /* A unary operator may be accepted by the predicate, but it
 
16650
             is irrelevant for matching constraints.  */
 
16651
          if (UNARY_P (op))
 
16652
@@ -5830,7 +5841,8 @@
 
16653
                      }
 
16654
                    return TYPE_MODE (type);
 
16655
                  }
 
16656
-               else if ((size == 8 || size == 16) && !TARGET_SSE)
 
16657
+               else if (((size == 8 && TARGET_64BIT) || size == 16)
 
16658
+                        && !TARGET_SSE)
 
16659
                  {
 
16660
                    static bool warnedsse;
 
16661
 
 
16662
@@ -5842,10 +5854,21 @@
 
16663
                        warning (0, "SSE vector argument without SSE "
 
16664
                                 "enabled changes the ABI");
 
16665
                      }
 
16666
-                   return mode;
 
16667
                  }
 
16668
-               else
 
16669
-                 return mode;
 
16670
+               else if ((size == 8 && !TARGET_64BIT) && !TARGET_MMX)
 
16671
+                 {
 
16672
+                   static bool warnedmmx;
 
16673
+
 
16674
+                   if (cum
 
16675
+                       && !warnedmmx
 
16676
+                       && cum->warn_mmx)
 
16677
+                     {
 
16678
+                       warnedmmx = true;
 
16679
+                       warning (0, "MMX vector argument without MMX "
 
16680
+                                "enabled changes the ABI");
 
16681
+                     }
 
16682
+                 }
 
16683
+               return mode;
 
16684
              }
 
16685
 
 
16686
          gcc_unreachable ();
 
16687
@@ -7235,9 +7258,15 @@
 
16688
   switch (regno)
 
16689
     {
 
16690
     case AX_REG:
 
16691
+    case DX_REG:
 
16692
       return true;
 
16693
+    case DI_REG:
 
16694
+    case SI_REG:
 
16695
+      return TARGET_64BIT && ix86_abi != MS_ABI;
 
16696
 
 
16697
-    case FIRST_FLOAT_REG:
 
16698
+      /* Complex values are returned in %st(0)/%st(1) pair.  */
 
16699
+    case ST0_REG:
 
16700
+    case ST1_REG:
 
16701
       /* TODO: The function should depend on current function ABI but
 
16702
        builtins.c would need updating then. Therefore we use the
 
16703
        default ABI.  */
 
16704
@@ -7245,10 +7274,12 @@
 
16705
        return false;
 
16706
       return TARGET_FLOAT_RETURNS_IN_80387;
 
16707
 
 
16708
-    case FIRST_SSE_REG:
 
16709
+      /* Complex values are returned in %xmm0/%xmm1 pair.  */
 
16710
+    case XMM0_REG:
 
16711
+    case XMM1_REG:
 
16712
       return TARGET_SSE;
 
16713
 
 
16714
-    case FIRST_MMX_REG:
 
16715
+    case MM0_REG:
 
16716
       if (TARGET_MACHO || TARGET_64BIT)
 
16717
        return false;
 
16718
       return TARGET_MMX;
 
16719
@@ -10560,18 +10591,21 @@
 
16720
        }
 
16721
       m->fs.sp_offset += allocate;
 
16722
 
 
16723
+      /* Use stack_pointer_rtx for relative addressing so that code
 
16724
+        works for realigned stack, too.  */
 
16725
       if (r10_live && eax_live)
 
16726
         {
 
16727
-         t = choose_baseaddr (m->fs.sp_offset - allocate);
 
16728
+         t = plus_constant (Pmode, stack_pointer_rtx, allocate);
 
16729
          emit_move_insn (gen_rtx_REG (word_mode, R10_REG),
 
16730
                          gen_frame_mem (word_mode, t));
 
16731
-         t = choose_baseaddr (m->fs.sp_offset - allocate - UNITS_PER_WORD);
 
16732
+         t = plus_constant (Pmode, stack_pointer_rtx,
 
16733
+                            allocate - UNITS_PER_WORD);
 
16734
          emit_move_insn (gen_rtx_REG (word_mode, AX_REG),
 
16735
                          gen_frame_mem (word_mode, t));
 
16736
        }
 
16737
       else if (eax_live || r10_live)
 
16738
        {
 
16739
-         t = choose_baseaddr (m->fs.sp_offset - allocate);
 
16740
+         t = plus_constant (Pmode, stack_pointer_rtx, allocate);
 
16741
          emit_move_insn (gen_rtx_REG (word_mode,
 
16742
                                       (eax_live ? AX_REG : R10_REG)),
 
16743
                          gen_frame_mem (word_mode, t));
 
16744
@@ -11561,30 +11595,6 @@
 
16745
     }
 
16746
 }
 
16747
 
 
16748
-/* Determine if op is suitable SUBREG RTX for address.  */
 
16749
-
 
16750
-static bool
 
16751
-ix86_address_subreg_operand (rtx op)
 
16752
-{
 
16753
-  enum machine_mode mode;
 
16754
-
 
16755
-  if (!REG_P (op))
 
16756
-    return false;
 
16757
-
 
16758
-  mode = GET_MODE (op);
 
16759
-
 
16760
-  if (GET_MODE_CLASS (mode) != MODE_INT)
 
16761
-    return false;
 
16762
-
 
16763
-  /* Don't allow SUBREGs that span more than a word.  It can lead to spill
 
16764
-     failures when the register is one word out of a two word structure.  */
 
16765
-  if (GET_MODE_SIZE (mode) > UNITS_PER_WORD)
 
16766
-    return false;
 
16767
-
 
16768
-  /* Allow only SUBREGs of non-eliminable hard registers.  */
 
16769
-  return register_no_elim_operand (op, mode);
 
16770
-}
 
16771
-
 
16772
 /* Extract the parts of an RTL expression that is a valid memory address
 
16773
    for an instruction.  Return 0 if the structure of the address is
 
16774
    grossly off.  Return -1 if the address contains ASHIFT, so it is not
 
16775
@@ -11641,7 +11651,7 @@
 
16776
     base = addr;
 
16777
   else if (GET_CODE (addr) == SUBREG)
 
16778
     {
 
16779
-      if (ix86_address_subreg_operand (SUBREG_REG (addr)))
 
16780
+      if (REG_P (SUBREG_REG (addr)))
 
16781
        base = addr;
 
16782
       else
 
16783
        return 0;
 
16784
@@ -11705,7 +11715,7 @@
 
16785
              break;
 
16786
 
 
16787
            case SUBREG:
 
16788
-             if (!ix86_address_subreg_operand (SUBREG_REG (op)))
 
16789
+             if (!REG_P (SUBREG_REG (op)))
 
16790
                return 0;
 
16791
              /* FALLTHRU */
 
16792
 
 
16793
@@ -11750,19 +11760,6 @@
 
16794
       scale = 1 << scale;
 
16795
       retval = -1;
 
16796
     }
 
16797
-  else if (CONST_INT_P (addr))
 
16798
-    {
 
16799
-      if (!x86_64_immediate_operand (addr, VOIDmode))
 
16800
-       return 0;
 
16801
-
 
16802
-      /* Constant addresses are sign extended to 64bit, we have to
 
16803
-        prevent addresses from 0x80000000 to 0xffffffff in x32 mode.  */
 
16804
-      if (TARGET_X32
 
16805
-         && val_signbit_known_set_p (SImode, INTVAL (addr)))
 
16806
-       return 0;
 
16807
-
 
16808
-      disp = addr;
 
16809
-    }
 
16810
   else
 
16811
     disp = addr;                       /* displacement */
 
16812
 
 
16813
@@ -11771,18 +11768,12 @@
 
16814
       if (REG_P (index))
 
16815
        ;
 
16816
       else if (GET_CODE (index) == SUBREG
 
16817
-              && ix86_address_subreg_operand (SUBREG_REG (index)))
 
16818
+              && REG_P (SUBREG_REG (index)))
 
16819
        ;
 
16820
       else
 
16821
        return 0;
 
16822
     }
 
16823
 
 
16824
-/* Address override works only on the (%reg) part of %fs:(%reg).  */
 
16825
-  if (seg != SEG_DEFAULT
 
16826
-      && ((base && GET_MODE (base) != word_mode)
 
16827
-         || (index && GET_MODE (index) != word_mode)))
 
16828
-    return 0;
 
16829
-
 
16830
   /* Extract the integral value of scale.  */
 
16831
   if (scale_rtx)
 
16832
     {
 
16833
@@ -12258,6 +12249,45 @@
 
16834
   return false;
 
16835
 }
 
16836
 
 
16837
+/* Determine if op is suitable RTX for an address register.
 
16838
+   Return naked register if a register or a register subreg is
 
16839
+   found, otherwise return NULL_RTX.  */
 
16840
+
 
16841
+static rtx
 
16842
+ix86_validate_address_register (rtx op)
 
16843
+{
 
16844
+  enum machine_mode mode = GET_MODE (op);
 
16845
+
 
16846
+  /* Only SImode or DImode registers can form the address.  */
 
16847
+  if (mode != SImode && mode != DImode)
 
16848
+    return NULL_RTX;
 
16849
+
 
16850
+  if (REG_P (op))
 
16851
+    return op;
 
16852
+  else if (GET_CODE (op) == SUBREG)
 
16853
+    {
 
16854
+      rtx reg = SUBREG_REG (op);
 
16855
+
 
16856
+      if (!REG_P (reg))
 
16857
+       return NULL_RTX;
 
16858
+
 
16859
+      mode = GET_MODE (reg);
 
16860
+
 
16861
+      /* Don't allow SUBREGs that span more than a word.  It can
 
16862
+        lead to spill failures when the register is one word out
 
16863
+        of a two word structure.  */
 
16864
+      if (GET_MODE_SIZE (mode) > UNITS_PER_WORD)
 
16865
+       return NULL_RTX;
 
16866
+
 
16867
+      /* Allow only SUBREGs of non-eliminable hard registers.  */
 
16868
+      if (register_no_elim_operand (reg, mode))
 
16869
+       return reg;
 
16870
+    }
 
16871
+
 
16872
+  /* Op is not a register.  */
 
16873
+  return NULL_RTX;
 
16874
+}
 
16875
+
 
16876
 /* Recognizes RTL expressions that are valid memory addresses for an
 
16877
    instruction.  The MODE argument is the machine mode for the MEM
 
16878
    expression that wants to use this address.
 
16879
@@ -12273,6 +12303,7 @@
 
16880
   struct ix86_address parts;
 
16881
   rtx base, index, disp;
 
16882
   HOST_WIDE_INT scale;
 
16883
+  enum ix86_address_seg seg;
 
16884
 
 
16885
   if (ix86_decompose_address (addr, &parts) <= 0)
 
16886
     /* Decomposition failed.  */
 
16887
@@ -12282,23 +12313,16 @@
 
16888
   index = parts.index;
 
16889
   disp = parts.disp;
 
16890
   scale = parts.scale;
 
16891
+  seg = parts.seg;
 
16892
 
 
16893
   /* Validate base register.  */
 
16894
   if (base)
 
16895
     {
 
16896
-      rtx reg;
 
16897
+      rtx reg = ix86_validate_address_register (base);
 
16898
 
 
16899
-      if (REG_P (base))
 
16900
-       reg = base;
 
16901
-      else if (GET_CODE (base) == SUBREG && REG_P (SUBREG_REG (base)))
 
16902
-       reg = SUBREG_REG (base);
 
16903
-      else
 
16904
-       /* Base is not a register.  */
 
16905
+      if (reg == NULL_RTX)
 
16906
        return false;
 
16907
 
 
16908
-      if (GET_MODE (base) != SImode && GET_MODE (base) != DImode)
 
16909
-       return false;
 
16910
-
 
16911
       if ((strict && ! REG_OK_FOR_BASE_STRICT_P (reg))
 
16912
          || (! strict && ! REG_OK_FOR_BASE_NONSTRICT_P (reg)))
 
16913
        /* Base is not valid.  */
 
16914
@@ -12308,19 +12332,11 @@
 
16915
   /* Validate index register.  */
 
16916
   if (index)
 
16917
     {
 
16918
-      rtx reg;
 
16919
+      rtx reg = ix86_validate_address_register (index);
 
16920
 
 
16921
-      if (REG_P (index))
 
16922
-       reg = index;
 
16923
-      else if (GET_CODE (index) == SUBREG && REG_P (SUBREG_REG (index)))
 
16924
-       reg = SUBREG_REG (index);
 
16925
-      else
 
16926
-       /* Index is not a register.  */
 
16927
+      if (reg == NULL_RTX)
 
16928
        return false;
 
16929
 
 
16930
-      if (GET_MODE (index) != SImode && GET_MODE (index) != DImode)
 
16931
-       return false;
 
16932
-
 
16933
       if ((strict && ! REG_OK_FOR_INDEX_STRICT_P (reg))
 
16934
          || (! strict && ! REG_OK_FOR_INDEX_NONSTRICT_P (reg)))
 
16935
        /* Index is not valid.  */
 
16936
@@ -12332,6 +12348,12 @@
 
16937
       && GET_MODE (base) != GET_MODE (index))
 
16938
     return false;
 
16939
 
 
16940
+  /* Address override works only on the (%reg) part of %fs:(%reg).  */
 
16941
+  if (seg != SEG_DEFAULT
 
16942
+      && ((base && GET_MODE (base) != word_mode)
 
16943
+         || (index && GET_MODE (index) != word_mode)))
 
16944
+    return false;
 
16945
+
 
16946
   /* Validate scale factor.  */
 
16947
   if (scale != 1)
 
16948
     {
 
16949
@@ -12453,6 +12475,12 @@
 
16950
               && !x86_64_immediate_operand (disp, VOIDmode))
 
16951
        /* Displacement is out of range.  */
 
16952
        return false;
 
16953
+      /* In x32 mode, constant addresses are sign extended to 64bit, so
 
16954
+        we have to prevent addresses from 0x80000000 to 0xffffffff.  */
 
16955
+      else if (TARGET_X32 && !(index || base)
 
16956
+              && CONST_INT_P (disp)
 
16957
+              && val_signbit_known_set_p (SImode, INTVAL (disp)))
 
16958
+       return false;
 
16959
     }
 
16960
 
 
16961
   /* Everything looks valid.  */
 
16962
@@ -13817,8 +13845,6 @@
 
16963
         Those same assemblers have the same but opposite lossage on cmov.  */
 
16964
       if (mode == CCmode)
 
16965
        suffix = fp ? "nbe" : "a";
 
16966
-      else if (mode == CCCmode)
 
16967
-       suffix = "b";
 
16968
       else
 
16969
        gcc_unreachable ();
 
16970
       break;
 
16971
@@ -13840,8 +13866,12 @@
 
16972
        }
 
16973
       break;
 
16974
     case LTU:
 
16975
-      gcc_assert (mode == CCmode || mode == CCCmode);
 
16976
-      suffix = "b";
 
16977
+      if (mode == CCmode)
 
16978
+       suffix = "b";
 
16979
+      else if (mode == CCCmode)
 
16980
+       suffix = "c";
 
16981
+      else
 
16982
+       gcc_unreachable ();
 
16983
       break;
 
16984
     case GE:
 
16985
       switch (mode)
 
16986
@@ -13861,20 +13891,20 @@
 
16987
        }
 
16988
       break;
 
16989
     case GEU:
 
16990
-      /* ??? As above.  */
 
16991
-      gcc_assert (mode == CCmode || mode == CCCmode);
 
16992
-      suffix = fp ? "nb" : "ae";
 
16993
+      if (mode == CCmode)
 
16994
+       suffix = fp ? "nb" : "ae";
 
16995
+      else if (mode == CCCmode)
 
16996
+       suffix = "nc";
 
16997
+      else
 
16998
+       gcc_unreachable ();
 
16999
       break;
 
17000
     case LE:
 
17001
       gcc_assert (mode == CCmode || mode == CCGCmode || mode == CCNOmode);
 
17002
       suffix = "le";
 
17003
       break;
 
17004
     case LEU:
 
17005
-      /* ??? As above.  */
 
17006
       if (mode == CCmode)
 
17007
        suffix = "be";
 
17008
-      else if (mode == CCCmode)
 
17009
-       suffix = fp ? "nb" : "ae";
 
17010
       else
 
17011
        gcc_unreachable ();
 
17012
       break;
 
17013
@@ -15340,7 +15370,7 @@
 
17014
              rtx arg = XEXP (XEXP (link, 0), 0);
 
17015
 
 
17016
              if (ix86_check_avx256_register (&arg, NULL))
 
17017
-               return AVX_U128_ANY;
 
17018
+               return AVX_U128_DIRTY;
 
17019
            }
 
17020
        }
 
17021
 
 
17022
@@ -15460,8 +15490,8 @@
 
17023
     {
 
17024
       bool avx_reg256_found = false;
 
17025
       note_stores (pat, ix86_check_avx256_stores, &avx_reg256_found);
 
17026
-      if (!avx_reg256_found)
 
17027
-       return AVX_U128_CLEAN;
 
17028
+
 
17029
+      return avx_reg256_found ? AVX_U128_DIRTY : AVX_U128_CLEAN;
 
17030
     }
 
17031
 
 
17032
   /* Otherwise, return current mode.  Remember that if insn
 
17033
@@ -18486,12 +18516,7 @@
 
17034
        return CCmode;
 
17035
     case GTU:                  /* CF=0 & ZF=0 */
 
17036
     case LEU:                  /* CF=1 | ZF=1 */
 
17037
-      /* Detect overflow checks.  They need just the carry flag.  */
 
17038
-      if (GET_CODE (op0) == MINUS
 
17039
-         && rtx_equal_p (op1, XEXP (op0, 0)))
 
17040
-       return CCCmode;
 
17041
-      else
 
17042
-       return CCmode;
 
17043
+      return CCmode;
 
17044
       /* Codes possibly doable only with sign flag when
 
17045
          comparing against zero.  */
 
17046
     case GE:                   /* SF=OF   or   SF=0 */
 
17047
@@ -21740,6 +21765,21 @@
 
17048
   return SImode;
 
17049
 }
 
17050
 
 
17051
+/* Copy the address to a Pmode register.  This is used for x32 to
 
17052
+   truncate DImode TLS address to a SImode register. */
 
17053
+
 
17054
+static rtx
 
17055
+ix86_copy_addr_to_reg (rtx addr)
 
17056
+{
 
17057
+  if (GET_MODE (addr) == Pmode)
 
17058
+    return copy_addr_to_reg (addr);
 
17059
+  else
 
17060
+    {
 
17061
+      gcc_assert (GET_MODE (addr) == DImode && Pmode == SImode);
 
17062
+      return gen_rtx_SUBREG (SImode, copy_to_mode_reg (DImode, addr), 0);
 
17063
+    }
 
17064
+}
 
17065
+
 
17066
 /* When SRCPTR is non-NULL, output simple loop to move memory
 
17067
    pointer to SRCPTR to DESTPTR via chunks of MODE unrolled UNROLL times,
 
17068
    overall size is COUNT specified in bytes.  When SRCPTR is NULL, output the
 
17069
@@ -22728,8 +22768,8 @@
 
17070
   gcc_assert (alg != no_stringop);
 
17071
   if (!count)
 
17072
     count_exp = copy_to_mode_reg (GET_MODE (count_exp), count_exp);
 
17073
-  destreg = copy_addr_to_reg (XEXP (dst, 0));
 
17074
-  srcreg = copy_addr_to_reg (XEXP (src, 0));
 
17075
+  destreg = ix86_copy_addr_to_reg (XEXP (dst, 0));
 
17076
+  srcreg = ix86_copy_addr_to_reg (XEXP (src, 0));
 
17077
   switch (alg)
 
17078
     {
 
17079
     case libcall:
 
17080
@@ -23119,7 +23159,7 @@
 
17081
   gcc_assert (alg != no_stringop);
 
17082
   if (!count)
 
17083
     count_exp = copy_to_mode_reg (counter_mode (count_exp), count_exp);
 
17084
-  destreg = copy_addr_to_reg (XEXP (dst, 0));
 
17085
+  destreg = ix86_copy_addr_to_reg (XEXP (dst, 0));
 
17086
   switch (alg)
 
17087
     {
 
17088
     case libcall:
 
17089
@@ -27984,8 +28024,8 @@
 
17090
   { OPTION_MASK_ISA_XOP, CODE_FOR_xop_shlv8hi3,         "__builtin_ia32_vpshlw",      IX86_BUILTIN_VPSHLW,      UNKNOWN,      (int)MULTI_ARG_2_HI },
 
17091
   { OPTION_MASK_ISA_XOP, CODE_FOR_xop_shlv16qi3,        "__builtin_ia32_vpshlb",      IX86_BUILTIN_VPSHLB,      UNKNOWN,      (int)MULTI_ARG_2_QI },
 
17092
 
 
17093
-  { OPTION_MASK_ISA_XOP, CODE_FOR_xop_vmfrczv4sf2,       "__builtin_ia32_vfrczss",     IX86_BUILTIN_VFRCZSS,     UNKNOWN,      (int)MULTI_ARG_2_SF },
 
17094
-  { OPTION_MASK_ISA_XOP, CODE_FOR_xop_vmfrczv2df2,       "__builtin_ia32_vfrczsd",     IX86_BUILTIN_VFRCZSD,     UNKNOWN,      (int)MULTI_ARG_2_DF },
 
17095
+  { OPTION_MASK_ISA_XOP, CODE_FOR_xop_vmfrczv4sf2,       "__builtin_ia32_vfrczss",     IX86_BUILTIN_VFRCZSS,     UNKNOWN,      (int)MULTI_ARG_1_SF },
 
17096
+  { OPTION_MASK_ISA_XOP, CODE_FOR_xop_vmfrczv2df2,       "__builtin_ia32_vfrczsd",     IX86_BUILTIN_VFRCZSD,     UNKNOWN,      (int)MULTI_ARG_1_DF },
 
17097
   { OPTION_MASK_ISA_XOP, CODE_FOR_xop_frczv4sf2,         "__builtin_ia32_vfrczps",     IX86_BUILTIN_VFRCZPS,     UNKNOWN,      (int)MULTI_ARG_1_SF },
 
17098
   { OPTION_MASK_ISA_XOP, CODE_FOR_xop_frczv2df2,         "__builtin_ia32_vfrczpd",     IX86_BUILTIN_VFRCZPD,     UNKNOWN,      (int)MULTI_ARG_1_DF },
 
17099
   { OPTION_MASK_ISA_XOP, CODE_FOR_xop_frczv8sf2,         "__builtin_ia32_vfrczps256",  IX86_BUILTIN_VFRCZPS256,  UNKNOWN,      (int)MULTI_ARG_1_SF2 },
 
17100
@@ -31245,11 +31285,12 @@
 
17101
 
 
17102
 static rtx
 
17103
 ix86_expand_special_args_builtin (const struct builtin_description *d,
 
17104
-                                   tree exp, rtx target)
 
17105
+                                 tree exp, rtx target)
 
17106
 {
 
17107
   tree arg;
 
17108
   rtx pat, op;
 
17109
   unsigned int i, nargs, arg_adjust, memory;
 
17110
+  bool aligned_mem = false;
 
17111
   struct
 
17112
     {
 
17113
       rtx op;
 
17114
@@ -31295,6 +31336,15 @@
 
17115
       nargs = 1;
 
17116
       klass = load;
 
17117
       memory = 0;
 
17118
+      switch (icode)
 
17119
+       {
 
17120
+       case CODE_FOR_sse4_1_movntdqa:
 
17121
+       case CODE_FOR_avx2_movntdqa:
 
17122
+         aligned_mem = true;
 
17123
+         break;
 
17124
+       default:
 
17125
+         break;
 
17126
+       }
 
17127
       break;
 
17128
     case VOID_FTYPE_PV2SF_V4SF:
 
17129
     case VOID_FTYPE_PV4DI_V4DI:
 
17130
@@ -31312,6 +31362,26 @@
 
17131
       klass = store;
 
17132
       /* Reserve memory operand for target.  */
 
17133
       memory = ARRAY_SIZE (args);
 
17134
+      switch (icode)
 
17135
+       {
 
17136
+       /* These builtins and instructions require the memory
 
17137
+          to be properly aligned.  */
 
17138
+       case CODE_FOR_avx_movntv4di:
 
17139
+       case CODE_FOR_sse2_movntv2di:
 
17140
+       case CODE_FOR_avx_movntv8sf:
 
17141
+       case CODE_FOR_sse_movntv4sf:
 
17142
+       case CODE_FOR_sse4a_vmmovntv4sf:
 
17143
+       case CODE_FOR_avx_movntv4df:
 
17144
+       case CODE_FOR_sse2_movntv2df:
 
17145
+       case CODE_FOR_sse4a_vmmovntv2df:
 
17146
+       case CODE_FOR_sse2_movntidi:
 
17147
+       case CODE_FOR_sse_movntq:
 
17148
+       case CODE_FOR_sse2_movntisi:
 
17149
+         aligned_mem = true;
 
17150
+         break;
 
17151
+       default:
 
17152
+         break;
 
17153
+       }
 
17154
       break;
 
17155
     case V4SF_FTYPE_V4SF_PCV2SF:
 
17156
     case V2DF_FTYPE_V2DF_PCDOUBLE:
 
17157
@@ -31368,6 +31438,17 @@
 
17158
        {
 
17159
          op = force_reg (Pmode, convert_to_mode (Pmode, op, 1));
 
17160
          target = gen_rtx_MEM (tmode, op);
 
17161
+         /* target at this point has just BITS_PER_UNIT MEM_ALIGN
 
17162
+            on it.  Try to improve it using get_pointer_alignment,
 
17163
+            and if the special builtin is one that requires strict
 
17164
+            mode alignment, also from it's GET_MODE_ALIGNMENT.
 
17165
+            Failure to do so could lead to ix86_legitimate_combined_insn
 
17166
+            rejecting all changes to such insns.  */
 
17167
+         unsigned int align = get_pointer_alignment (arg);
 
17168
+         if (aligned_mem && align < GET_MODE_ALIGNMENT (tmode))
 
17169
+           align = GET_MODE_ALIGNMENT (tmode);
 
17170
+         if (MEM_ALIGN (target) < align)
 
17171
+           set_mem_align (target, align);
 
17172
        }
 
17173
       else
 
17174
        target = force_reg (tmode, op);
 
17175
@@ -31413,8 +31494,17 @@
 
17176
              /* This must be the memory operand.  */
 
17177
              op = force_reg (Pmode, convert_to_mode (Pmode, op, 1));
 
17178
              op = gen_rtx_MEM (mode, op);
 
17179
-             gcc_assert (GET_MODE (op) == mode
 
17180
-                         || GET_MODE (op) == VOIDmode);
 
17181
+             /* op at this point has just BITS_PER_UNIT MEM_ALIGN
 
17182
+                on it.  Try to improve it using get_pointer_alignment,
 
17183
+                and if the special builtin is one that requires strict
 
17184
+                mode alignment, also from it's GET_MODE_ALIGNMENT.
 
17185
+                Failure to do so could lead to ix86_legitimate_combined_insn
 
17186
+                rejecting all changes to such insns.  */
 
17187
+             unsigned int align = get_pointer_alignment (arg);
 
17188
+             if (aligned_mem && align < GET_MODE_ALIGNMENT (mode))
 
17189
+               align = GET_MODE_ALIGNMENT (mode);
 
17190
+             if (MEM_ALIGN (op) < align)
 
17191
+               set_mem_align (op, align);
 
17192
            }
 
17193
          else
 
17194
            {
 
17195
Index: gcc/config/sh/predicates.md
 
17196
===================================================================
 
17197
--- a/src/gcc/config/sh/predicates.md   (.../tags/gcc_4_8_2_release)
 
17198
+++ b/src/gcc/config/sh/predicates.md   (.../branches/gcc-4_8-branch)
 
17199
@@ -389,6 +389,12 @@
 
17200
                                           XEXP (XEXP (op, 0), 1),
 
17201
                                           TARGET_SH2A, true)")))
 
17202
 
 
17203
+;; Returns true if OP is a displacement address that can fit into a
 
17204
+;; 16 bit (non-SH2A) memory load / store insn.
 
17205
+(define_predicate "short_displacement_mem_operand"
 
17206
+  (match_test "sh_disp_addr_displacement (op)
 
17207
+              <= sh_max_mov_insn_displacement (GET_MODE (op), false)"))
 
17208
+
 
17209
 ;; Returns 1 if the operand can be used in an SH2A movu.{b|w} insn.
 
17210
 (define_predicate "zero_extend_movu_operand"
 
17211
   (and (match_operand 0 "displacement_mem_operand")
 
17212
@@ -413,6 +419,11 @@
 
17213
   if (t_reg_operand (op, mode))
 
17214
     return 0;
 
17215
 
 
17216
+  /* Disallow PC relative QImode loads, since these is no insn to do that
 
17217
+     and an imm8 load should be used instead.  */
 
17218
+  if (IS_PC_RELATIVE_LOAD_ADDR_P (op) && GET_MODE (op) == QImode)
 
17219
+    return false;
 
17220
+
 
17221
   if (MEM_P (op))
 
17222
     {
 
17223
       rtx inside = XEXP (op, 0);
 
17224
Index: gcc/config/sh/sh-protos.h
 
17225
===================================================================
 
17226
--- a/src/gcc/config/sh/sh-protos.h     (.../tags/gcc_4_8_2_release)
 
17227
+++ b/src/gcc/config/sh/sh-protos.h     (.../branches/gcc-4_8-branch)
 
17228
@@ -159,6 +159,8 @@
 
17229
 extern bool sh_cfun_trap_exit_p (void);
 
17230
 extern rtx sh_find_equiv_gbr_addr (rtx cur_insn, rtx mem);
 
17231
 extern int sh_eval_treg_value (rtx op);
 
17232
+extern HOST_WIDE_INT sh_disp_addr_displacement (rtx mem_op);
 
17233
+extern int sh_max_mov_insn_displacement (machine_mode mode, bool consider_sh2a);
 
17234
 
 
17235
 /* Result value of sh_find_set_of_reg.  */
 
17236
 struct set_of_reg
 
17237
Index: gcc/config/sh/sh.c
 
17238
===================================================================
 
17239
--- a/src/gcc/config/sh/sh.c    (.../tags/gcc_4_8_2_release)
 
17240
+++ b/src/gcc/config/sh/sh.c    (.../branches/gcc-4_8-branch)
 
17241
@@ -310,9 +310,7 @@
 
17242
 static void sh_conditional_register_usage (void);
 
17243
 static bool sh_legitimate_constant_p (enum machine_mode, rtx);
 
17244
 static int mov_insn_size (enum machine_mode, bool);
 
17245
-static int max_mov_insn_displacement (enum machine_mode, bool);
 
17246
 static int mov_insn_alignment_mask (enum machine_mode, bool);
 
17247
-static HOST_WIDE_INT disp_addr_displacement (rtx);
 
17248
 static bool sequence_insn_p (rtx);
 
17249
 static void sh_canonicalize_comparison (int *, rtx *, rtx *, bool);
 
17250
 static void sh_canonicalize_comparison (enum rtx_code&, rtx&, rtx&,
 
17251
@@ -3628,8 +3626,8 @@
 
17252
 
 
17253
 /* Determine the maximum possible displacement for a move insn for the
 
17254
    specified mode.  */
 
17255
-static int
 
17256
-max_mov_insn_displacement (enum machine_mode mode, bool consider_sh2a)
 
17257
+int
 
17258
+sh_max_mov_insn_displacement (machine_mode mode, bool consider_sh2a)
 
17259
 {
 
17260
   /* The 4 byte displacement move insns are the same as the 2 byte
 
17261
      versions but take a 12 bit displacement.  All we need to do is to
 
17262
@@ -3665,8 +3663,8 @@
 
17263
 }
 
17264
 
 
17265
 /* Return the displacement value of a displacement address.  */
 
17266
-static inline HOST_WIDE_INT
 
17267
-disp_addr_displacement (rtx x)
 
17268
+HOST_WIDE_INT
 
17269
+sh_disp_addr_displacement (rtx x)
 
17270
 {
 
17271
   gcc_assert (satisfies_constraint_Sdd (x));
 
17272
   return INTVAL (XEXP (XEXP (x, 0), 1));
 
17273
@@ -3703,12 +3701,12 @@
 
17274
         HImode and QImode loads/stores with displacement put pressure on
 
17275
         R0 which will most likely require another reg copy.  Thus account
 
17276
         a higher cost for that.  */
 
17277
-      if (offset > 0 && offset <= max_mov_insn_displacement (mode, false))
 
17278
+      if (offset > 0 && offset <= sh_max_mov_insn_displacement (mode, false))
 
17279
        return (mode == HImode || mode == QImode) ? 2 : 1;
 
17280
 
 
17281
       /* The displacement would fit into a 4 byte move insn (SH2A).  */
 
17282
       if (TARGET_SH2A
 
17283
-         && offset > 0 && offset <= max_mov_insn_displacement (mode, true))
 
17284
+         && offset > 0 && offset <= sh_max_mov_insn_displacement (mode, true))
 
17285
        return 2;
 
17286
 
 
17287
       /* The displacement is probably out of range and will require extra
 
17288
@@ -10218,7 +10216,7 @@
 
17289
   else
 
17290
     {
 
17291
       const HOST_WIDE_INT offset = INTVAL (op);
 
17292
-      const int max_disp = max_mov_insn_displacement (mode, consider_sh2a);
 
17293
+      const int max_disp = sh_max_mov_insn_displacement (mode, consider_sh2a);
 
17294
       const int align_mask = mov_insn_alignment_mask (mode, consider_sh2a);
 
17295
 
 
17296
       /* If the mode does not support any displacement always return false.
 
17297
@@ -10404,7 +10402,7 @@
 
17298
      effectively disable the small displacement insns.  */
 
17299
   const int mode_sz = GET_MODE_SIZE (mode);
 
17300
   const int mov_insn_sz = mov_insn_size (mode, false);
 
17301
-  const int max_disp = max_mov_insn_displacement (mode, false);
 
17302
+  const int max_disp = sh_max_mov_insn_displacement (mode, false);
 
17303
   const int max_disp_next = max_disp + mov_insn_sz;
 
17304
   HOST_WIDE_INT align_modifier = offset > 127 ? mov_insn_sz : 0;
 
17305
   HOST_WIDE_INT offset_adjust;
 
17306
@@ -13165,7 +13163,8 @@
 
17307
      the insns must have the appropriate alternatives.  */
 
17308
   if ((mode == QImode || mode == HImode) && rclass != R0_REGS
 
17309
       && satisfies_constraint_Sdd (x)
 
17310
-      && disp_addr_displacement (x) <= max_mov_insn_displacement (mode, false))
 
17311
+      && sh_disp_addr_displacement (x)
 
17312
+        <= sh_max_mov_insn_displacement (mode, false))
 
17313
     return R0_REGS;
 
17314
 
 
17315
   /* When reload is trying to address a QImode or HImode subreg on the stack, 
 
17316
Index: gcc/config/sh/constraints.md
 
17317
===================================================================
 
17318
--- a/src/gcc/config/sh/constraints.md  (.../tags/gcc_4_8_2_release)
 
17319
+++ b/src/gcc/config/sh/constraints.md  (.../branches/gcc-4_8-branch)
 
17320
@@ -221,6 +221,7 @@
 
17321
 (define_constraint "Q"
 
17322
   "A pc relative load operand."
 
17323
   (and (match_code "mem")
 
17324
+       (match_test "GET_MODE (op) != QImode")
 
17325
        (match_test "IS_PC_RELATIVE_LOAD_ADDR_P (XEXP (op, 0))")))
 
17326
 
 
17327
 (define_constraint "Bsc"
 
17328
@@ -295,13 +296,15 @@
 
17329
 
 
17330
 (define_memory_constraint "Sdd"
 
17331
   "A memory reference that uses displacement addressing."
 
17332
-  (and (match_test "MEM_P (op) && GET_CODE (XEXP (op, 0)) == PLUS")
 
17333
+  (and (match_code "mem")
 
17334
+       (match_test "GET_CODE (XEXP (op, 0)) == PLUS")
 
17335
        (match_test "REG_P (XEXP (XEXP (op, 0), 0))")
 
17336
        (match_test "CONST_INT_P (XEXP (XEXP (op, 0), 1))")))
 
17337
 
 
17338
 (define_memory_constraint "Snd"
 
17339
   "A memory reference that excludes displacement addressing."
 
17340
-  (match_test "! satisfies_constraint_Sdd (op)"))
 
17341
+  (and (match_code "mem")
 
17342
+       (match_test "! satisfies_constraint_Sdd (op)")))
 
17343
 
 
17344
 (define_memory_constraint "Sbv"
 
17345
   "A memory reference, as used in SH2A bclr.b, bset.b, etc."
 
17346
Index: gcc/config/sh/sh.md
 
17347
===================================================================
 
17348
--- a/src/gcc/config/sh/sh.md   (.../tags/gcc_4_8_2_release)
 
17349
+++ b/src/gcc/config/sh/sh.md   (.../branches/gcc-4_8-branch)
 
17350
@@ -6831,34 +6831,9 @@
 
17351
   prepare_move_operands (operands, QImode);
 
17352
 })
 
17353
 
 
17354
-;; If movqi_reg_reg is specified as an alternative of movqi, movqi will be
 
17355
-;; selected to copy QImode regs.  If one of them happens to be allocated
 
17356
-;; on the stack, reload will stick to movqi insn and generate wrong
 
17357
-;; displacement addressing because of the generic m alternatives.
 
17358
-;; With the movqi_reg_reg being specified before movqi it will be initially
 
17359
-;; picked to load/store regs.  If the regs regs are on the stack reload
 
17360
-;; try other insns and not stick to movqi_reg_reg, unless there were spilled
 
17361
-;; pseudos in which case 'm' constraints pertain.
 
17362
-;; The same applies to the movhi variants.
 
17363
-;;
 
17364
-;; Notice, that T bit is not allowed as a mov src operand here.  This is to
 
17365
-;; avoid things like (set (reg:QI) (subreg:QI (reg:SI T_REG) 0)), which
 
17366
-;; introduces zero extensions after T bit stores and redundant reg copies.
 
17367
-;;
 
17368
-;; FIXME: We can't use 'arith_reg_operand' (which disallows T_REG) as a
 
17369
-;; predicate for the mov src operand because reload will have trouble
 
17370
-;; reloading MAC subregs otherwise.  For that probably special patterns
 
17371
-;; would be required.
 
17372
-(define_insn "*mov<mode>_reg_reg"
 
17373
-  [(set (match_operand:QIHI 0 "arith_reg_dest" "=r,m,*z")
 
17374
-       (match_operand:QIHI 1 "register_operand" "r,*z,m"))]
 
17375
-  "TARGET_SH1 && !t_reg_operand (operands[1], VOIDmode)"
 
17376
-  "@
 
17377
-    mov                %1,%0
 
17378
-    mov.<bw>   %1,%0
 
17379
-    mov.<bw>   %1,%0"
 
17380
-  [(set_attr "type" "move,store,load")])
 
17381
-
 
17382
+;; Specifying the displacement addressing load / store patterns separately
 
17383
+;; before the generic movqi / movhi pattern allows controlling the order
 
17384
+;; in which load / store insns are selected in a more fine grained way.
 
17385
 ;; FIXME: The non-SH2A and SH2A variants should be combined by adding
 
17386
 ;; "enabled" attribute as it is done in other targets.
 
17387
 (define_insn "*mov<mode>_store_mem_disp04"
 
17388
@@ -6908,38 +6883,44 @@
 
17389
   [(set_attr "type" "load")
 
17390
    (set_attr "length" "2,2,4")])
 
17391
 
 
17392
-;; The m constraints basically allow any kind of addresses to be used with any
 
17393
-;; source/target register as the other operand.  This is not true for 
 
17394
-;; displacement addressing modes on anything but SH2A.  That's why the
 
17395
-;; specialized load/store insns are specified above.
 
17396
-(define_insn "*movqi"
 
17397
-  [(set (match_operand:QI 0 "general_movdst_operand" "=r,r,m,r,l")
 
17398
-       (match_operand:QI 1 "general_movsrc_operand"  "i,m,r,l,r"))]
 
17399
+;; The order of the constraint alternatives is important here.
 
17400
+;; Q/r has to come first, otherwise PC relative loads might wrongly get
 
17401
+;; placed into delay slots.  Since there is no QImode PC relative load, the
 
17402
+;; Q constraint and general_movsrc_operand will reject it for QImode.
 
17403
+;; The Snd alternatives should come before Sdd in order to avoid a preference
 
17404
+;; of using r0 als the register operand for addressing modes other than
 
17405
+;; displacement addressing.
 
17406
+;; The Sdd alternatives allow only r0 as register operand, even though on
 
17407
+;; SH2A any register could be allowed by switching to a 32 bit insn.
 
17408
+;; Generally sticking to the r0 is preferrable, since it generates smaller
 
17409
+;; code.  Obvious r0 reloads can then be eliminated with a peephole on SH2A.
 
17410
+(define_insn "*mov<mode>"
 
17411
+  [(set (match_operand:QIHI 0 "general_movdst_operand"
 
17412
+                             "=r,r,r,Snd,r,  Sdd,z,  r,l")
 
17413
+       (match_operand:QIHI 1 "general_movsrc_operand"
 
17414
+                              "Q,r,i,r,  Snd,z,  Sdd,l,r"))]
 
17415
   "TARGET_SH1
 
17416
-   && (arith_reg_operand (operands[0], QImode)
 
17417
-       || arith_reg_operand (operands[1], QImode))"
 
17418
+   && (arith_reg_operand (operands[0], <MODE>mode)
 
17419
+       || arith_reg_operand (operands[1], <MODE>mode))"
 
17420
   "@
 
17421
+       mov.<bw>        %1,%0
 
17422
        mov     %1,%0
 
17423
-       mov.b   %1,%0
 
17424
-       mov.b   %1,%0
 
17425
-       sts     %1,%0
 
17426
-       lds     %1,%0"
 
17427
- [(set_attr "type" "movi8,load,store,prget,prset")])
 
17428
-
 
17429
-(define_insn "*movhi"
 
17430
-  [(set (match_operand:HI 0 "general_movdst_operand" "=r,r,r,m,r,l")
 
17431
-       (match_operand:HI 1 "general_movsrc_operand"  "Q,i,m,r,l,r"))]
 
17432
-  "TARGET_SH1
 
17433
-   && (arith_reg_operand (operands[0], HImode)
 
17434
-       || arith_reg_operand (operands[1], HImode))"
 
17435
-  "@
 
17436
-       mov.w   %1,%0
 
17437
        mov     %1,%0
 
17438
-       mov.w   %1,%0
 
17439
-       mov.w   %1,%0
 
17440
+       mov.<bw>        %1,%0
 
17441
+       mov.<bw>        %1,%0
 
17442
+       mov.<bw>        %1,%0
 
17443
+       mov.<bw>        %1,%0
 
17444
        sts     %1,%0
 
17445
        lds     %1,%0"
 
17446
- [(set_attr "type" "pcload,movi8,load,store,prget,prset")])
 
17447
+  [(set_attr "type" "pcload,move,movi8,store,load,store,load,prget,prset")
 
17448
+   (set (attr "length")
 
17449
+       (cond [(and (match_operand 0 "displacement_mem_operand")
 
17450
+                   (not (match_operand 0 "short_displacement_mem_operand")))
 
17451
+              (const_int 4)
 
17452
+              (and (match_operand 1 "displacement_mem_operand")
 
17453
+                   (not (match_operand 1 "short_displacement_mem_operand")))
 
17454
+              (const_int 4)]
 
17455
+             (const_int 2)))])
 
17456
 
 
17457
 (define_insn "*movqi_media"
 
17458
   [(set (match_operand:QI 0 "general_movdst_operand" "=r,r,r,m")
 
17459
@@ -8427,11 +8408,9 @@
 
17460
 
 
17461
   while (true)
 
17462
     {
 
17463
-      /* It's not safe to go beyond the current basic block after reload.  */
 
17464
       set_of_reg s1 = sh_find_set_of_reg (tested_reg, s0.insn,
 
17465
-                                         reload_completed
 
17466
-                                         ? prev_nonnote_insn_bb
 
17467
-                                         : prev_nonnote_insn);
 
17468
+                                         prev_nonnote_insn);
 
17469
+
 
17470
       if (s1.set_src == NULL_RTX)
 
17471
        break;
 
17472
 
 
17473
@@ -8449,15 +8428,25 @@
 
17474
          continue;
 
17475
        }
 
17476
 
 
17477
-       /* It's only safe to remove the testing insn if the T bit is not
 
17478
-          modified between the testing insn and the insn that stores the
 
17479
-          T bit.  Notice that some T bit stores such as negc also modify
 
17480
-          the T bit.  */
 
17481
-       if (modified_between_p (get_t_reg_rtx (), s1.insn, testing_insn)
 
17482
-           || modified_in_p (get_t_reg_rtx (), s1.insn))
 
17483
-         operands[2] = NULL_RTX;
 
17484
+      /* It's only safe to remove the testing insn if the T bit is not
 
17485
+        modified between the testing insn and the insn that stores the
 
17486
+        T bit.  Notice that some T bit stores such as negc also modify
 
17487
+        the T bit.  */
 
17488
+      if (modified_between_p (get_t_reg_rtx (), s1.insn, testing_insn)
 
17489
+         || modified_in_p (get_t_reg_rtx (), s1.insn)
 
17490
+         || !no_labels_between_p (s1.insn, testing_insn))
 
17491
+       operands[2] = NULL_RTX;
 
17492
+      else
 
17493
+       {
 
17494
+         /* If the insn that sets the tested reg has a REG_DEAD note on
 
17495
+            the T bit remove that note since we're extending the usage
 
17496
+            of the T bit.  */
 
17497
+         rtx n = find_regno_note (s1.insn, REG_DEAD, T_REG);
 
17498
+         if (n != NULL_RTX)
 
17499
+           remove_note (s1.insn, n);
 
17500
+       }
 
17501
 
 
17502
-       break;
 
17503
+      break;
 
17504
     }
 
17505
 
 
17506
   if (operands[2] == NULL_RTX)
 
17507
Index: gcc/config/sh/sh.opt
 
17508
===================================================================
 
17509
--- a/src/gcc/config/sh/sh.opt  (.../tags/gcc_4_8_2_release)
 
17510
+++ b/src/gcc/config/sh/sh.opt  (.../branches/gcc-4_8-branch)
 
17511
@@ -21,7 +21,7 @@
 
17512
 ;; Used for various architecture options.
 
17513
 Mask(SH_E)
 
17514
 
 
17515
-;; Set if the default precision of th FPU is single.
 
17516
+;; Set if the default precision of the FPU is single.
 
17517
 Mask(FPU_SINGLE)
 
17518
 
 
17519
 ;; Set if the a double-precision FPU is present but is restricted to
 
17520
Index: gcc/config/rs6000/rs6000.md
 
17521
===================================================================
 
17522
--- a/src/gcc/config/rs6000/rs6000.md   (.../tags/gcc_4_8_2_release)
 
17523
+++ b/src/gcc/config/rs6000/rs6000.md   (.../branches/gcc-4_8-branch)
 
17524
@@ -2412,7 +2412,7 @@
 
17525
                             (match_operand:SI 2 "gpc_reg_operand" "r,r"))
 
17526
                    (const_int 0)))
 
17527
    (clobber (match_scratch:SI 3 "=r,r"))]
 
17528
-  ""
 
17529
+  "TARGET_32BIT"
 
17530
   "@
 
17531
    mullw. %3,%1,%2
 
17532
    #"
 
17533
@@ -2425,7 +2425,7 @@
 
17534
                             (match_operand:SI 2 "gpc_reg_operand" ""))
 
17535
                    (const_int 0)))
 
17536
    (clobber (match_scratch:SI 3 ""))]
 
17537
-  "reload_completed"
 
17538
+  "TARGET_32BIT && reload_completed"
 
17539
   [(set (match_dup 3)
 
17540
        (mult:SI (match_dup 1) (match_dup 2)))
 
17541
    (set (match_dup 0)
 
17542
@@ -2440,7 +2440,7 @@
 
17543
                    (const_int 0)))
 
17544
    (set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
 
17545
        (mult:SI (match_dup 1) (match_dup 2)))]
 
17546
-  ""
 
17547
+  "TARGET_32BIT"
 
17548
   "@
 
17549
    mullw. %0,%1,%2
 
17550
    #"
 
17551
@@ -2454,7 +2454,7 @@
 
17552
                    (const_int 0)))
 
17553
    (set (match_operand:SI 0 "gpc_reg_operand" "")
 
17554
        (mult:SI (match_dup 1) (match_dup 2)))]
 
17555
-  "reload_completed"
 
17556
+  "TARGET_32BIT && reload_completed"
 
17557
   [(set (match_dup 0)
 
17558
        (mult:SI (match_dup 1) (match_dup 2)))
 
17559
    (set (match_dup 3)
 
17560
Index: gcc/config/arm/arm.c
 
17561
===================================================================
 
17562
--- a/src/gcc/config/arm/arm.c  (.../tags/gcc_4_8_2_release)
 
17563
+++ b/src/gcc/config/arm/arm.c  (.../branches/gcc-4_8-branch)
 
17564
@@ -5425,7 +5425,8 @@
 
17565
   if (!crtl->uses_pic_offset_table)
 
17566
     {
 
17567
       gcc_assert (can_create_pseudo_p ());
 
17568
-      if (arm_pic_register != INVALID_REGNUM)
 
17569
+      if (arm_pic_register != INVALID_REGNUM
 
17570
+         && !(TARGET_THUMB1 && arm_pic_register > LAST_LO_REGNUM))
 
17571
        {
 
17572
          if (!cfun->machine->pic_reg)
 
17573
            cfun->machine->pic_reg = gen_rtx_REG (Pmode, arm_pic_register);
 
17574
@@ -5451,7 +5452,12 @@
 
17575
              crtl->uses_pic_offset_table = 1;
 
17576
              start_sequence ();
 
17577
 
 
17578
-             arm_load_pic_register (0UL);
 
17579
+             if (TARGET_THUMB1 && arm_pic_register != INVALID_REGNUM
 
17580
+                 && arm_pic_register > LAST_LO_REGNUM)
 
17581
+               emit_move_insn (cfun->machine->pic_reg,
 
17582
+                               gen_rtx_REG (Pmode, arm_pic_register));
 
17583
+             else
 
17584
+               arm_load_pic_register (0UL);
 
17585
 
 
17586
              seq = get_insns ();
 
17587
              end_sequence ();
 
17588
@@ -5709,6 +5715,14 @@
 
17589
              emit_insn (gen_movsi (pic_offset_table_rtx, pic_tmp));
 
17590
              emit_insn (gen_pic_add_dot_plus_four (pic_reg, pic_reg, labelno));
 
17591
            }
 
17592
+         else if (arm_pic_register != INVALID_REGNUM
 
17593
+                  && arm_pic_register > LAST_LO_REGNUM
 
17594
+                  && REGNO (pic_reg) <= LAST_LO_REGNUM)
 
17595
+           {
 
17596
+             emit_insn (gen_pic_load_addr_unified (pic_reg, pic_rtx, labelno));
 
17597
+             emit_move_insn (gen_rtx_REG (Pmode, arm_pic_register), pic_reg);
 
17598
+             emit_use (gen_rtx_REG (Pmode, arm_pic_register));
 
17599
+           }
 
17600
          else
 
17601
            emit_insn (gen_pic_load_addr_unified (pic_reg, pic_rtx, labelno));
 
17602
        }
 
17603
@@ -23555,6 +23569,7 @@
 
17604
   num_regs = bit_count (saved_regs_mask);
 
17605
   if ((offsets->outgoing_args != (1 + num_regs)) || cfun->calls_alloca)
 
17606
     {
 
17607
+      emit_insn (gen_blockage ());
 
17608
       /* Unwind the stack to just below the saved registers.  */
 
17609
       emit_insn (gen_addsi3 (stack_pointer_rtx,
 
17610
                              hard_frame_pointer_rtx,
 
17611
Index: gcc/config/arm/vfp.md
 
17612
===================================================================
 
17613
--- a/src/gcc/config/arm/vfp.md (.../tags/gcc_4_8_2_release)
 
17614
+++ b/src/gcc/config/arm/vfp.md (.../branches/gcc-4_8-branch)
 
17615
@@ -1264,6 +1264,7 @@
 
17616
   "TARGET_HARD_FLOAT && TARGET_FPU_ARMV8 <vfp_double_cond>"
 
17617
   "vrint<vrint_variant>%?.<V_if_elem>\\t%<V_reg>0, %<V_reg>1"
 
17618
   [(set_attr "predicable" "<vrint_predicable>")
 
17619
+   (set_attr "conds" "<vrint_conds>")
 
17620
    (set_attr "type" "f_rint<vfp_type>")]
 
17621
 )
 
17622
 
 
17623
@@ -1280,7 +1281,8 @@
 
17624
                  (match_operand:SDF 2 "register_operand" "<F_constraint>")))]
 
17625
   "TARGET_HARD_FLOAT && TARGET_FPU_ARMV8 <vfp_double_cond>"
 
17626
   "vmaxnm.<V_if_elem>\\t%<V_reg>0, %<V_reg>1, %<V_reg>2"
 
17627
-  [(set_attr "type" "f_minmax<vfp_type>")]
 
17628
+  [(set_attr "type" "f_minmax<vfp_type>")
 
17629
+   (set_attr "conds" "unconditional")]
 
17630
 )
 
17631
 
 
17632
 (define_insn "smin<mode>3"
 
17633
@@ -1289,7 +1291,8 @@
 
17634
                  (match_operand:SDF 2 "register_operand" "<F_constraint>")))]
 
17635
   "TARGET_HARD_FLOAT && TARGET_FPU_ARMV8 <vfp_double_cond>"
 
17636
   "vminnm.<V_if_elem>\\t%<V_reg>0, %<V_reg>1, %<V_reg>2"
 
17637
-  [(set_attr "type" "f_minmax<vfp_type>")]
 
17638
+  [(set_attr "type" "f_minmax<vfp_type>")
 
17639
+   (set_attr "conds" "unconditional")]
 
17640
 )
 
17641
 
 
17642
 ;; Unimplemented insns:
 
17643
Index: gcc/config/arm/iterators.md
 
17644
===================================================================
 
17645
--- a/src/gcc/config/arm/iterators.md   (.../tags/gcc_4_8_2_release)
 
17646
+++ b/src/gcc/config/arm/iterators.md   (.../branches/gcc-4_8-branch)
 
17647
@@ -493,6 +493,10 @@
 
17648
                                   (UNSPEC_VRINTA "no") (UNSPEC_VRINTM "no")
 
17649
                                   (UNSPEC_VRINTR "yes") (UNSPEC_VRINTX "yes")])
 
17650
 
 
17651
+(define_int_attr vrint_conds [(UNSPEC_VRINTZ "nocond") (UNSPEC_VRINTP "unconditional")
 
17652
+                              (UNSPEC_VRINTA "unconditional") (UNSPEC_VRINTM "unconditional")
 
17653
+                              (UNSPEC_VRINTR "nocond") (UNSPEC_VRINTX "nocond")])
 
17654
+
 
17655
 (define_int_attr nvrint_variant [(UNSPEC_NVRINTZ "z") (UNSPEC_NVRINTP "p")
 
17656
                                 (UNSPEC_NVRINTA "a") (UNSPEC_NVRINTM "m")
 
17657
                                 (UNSPEC_NVRINTX "x") (UNSPEC_NVRINTN "n")])
 
17658
Index: libgo/configure
 
17659
===================================================================
 
17660
--- a/src/libgo/configure       (.../tags/gcc_4_8_2_release)
 
17661
+++ b/src/libgo/configure       (.../branches/gcc-4_8-branch)
 
17662
@@ -14700,7 +14700,7 @@
 
17663
 fi
 
17664
 
 
17665
 
 
17666
-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
 
17667
+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
 
17668
 do :
 
17669
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 
17670
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
 
17671
Index: libgo/Makefile.in
 
17672
===================================================================
 
17673
--- a/src/libgo/Makefile.in     (.../tags/gcc_4_8_2_release)
 
17674
+++ b/src/libgo/Makefile.in     (.../branches/gcc-4_8-branch)
 
17675
@@ -195,7 +195,7 @@
 
17676
 @LIBGO_IS_LINUX_TRUE@am__objects_5 = getncpu-linux.lo
 
17677
 am__objects_6 = go-append.lo go-assert.lo go-assert-interface.lo \
 
17678
        go-byte-array-to-string.lo go-breakpoint.lo go-caller.lo \
 
17679
-       go-callers.lo go-can-convert-interface.lo go-cgo.lo \
 
17680
+       go-callers.lo go-can-convert-interface.lo go-cdiv.lo go-cgo.lo \
 
17681
        go-check-interface.lo go-construct-map.lo \
 
17682
        go-convert-interface.lo go-copy.lo go-defer.lo \
 
17683
        go-deferred-recover.lo go-eface-compare.lo \
 
17684
@@ -757,6 +757,7 @@
 
17685
        runtime/go-caller.c \
 
17686
        runtime/go-callers.c \
 
17687
        runtime/go-can-convert-interface.c \
 
17688
+       runtime/go-cdiv.c \
 
17689
        runtime/go-cgo.c \
 
17690
        runtime/go-check-interface.c \
 
17691
        runtime/go-construct-map.c \
 
17692
@@ -1446,7 +1447,7 @@
 
17693
        go/go/build/build.go \
 
17694
        go/go/build/doc.go \
 
17695
        go/go/build/read.go \
 
17696
-       syslist.go
 
17697
+       go/go/build/syslist.go
 
17698
 
 
17699
 go_go_doc_files = \
 
17700
        go/go/doc/comment.go \
 
17701
@@ -2368,6 +2369,7 @@
 
17702
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-caller.Plo@am__quote@
 
17703
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-callers.Plo@am__quote@
 
17704
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-can-convert-interface.Plo@am__quote@
 
17705
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-cdiv.Plo@am__quote@
 
17706
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-cgo.Plo@am__quote@
 
17707
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-check-interface.Plo@am__quote@
 
17708
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-construct-map.Plo@am__quote@
 
17709
@@ -2554,6 +2556,13 @@
 
17710
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 
17711
 @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
 
17712
 
 
17713
+go-cdiv.lo: runtime/go-cdiv.c
 
17714
+@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
 
17715
+@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/go-cdiv.Tpo $(DEPDIR)/go-cdiv.Plo
 
17716
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='runtime/go-cdiv.c' object='go-cdiv.lo' libtool=yes @AMDEPBACKSLASH@
 
17717
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 
17718
+@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
 
17719
+
 
17720
 go-cgo.lo: runtime/go-cgo.c
 
17721
 @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
 
17722
 @am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/go-cgo.Tpo $(DEPDIR)/go-cgo.Plo
 
17723
@@ -5062,15 +5071,6 @@
 
17724
        @$(CHECK)
 
17725
 .PHONY: go/build/check
 
17726
 
 
17727
-syslist.go: s-syslist; @true
 
17728
-s-syslist: Makefile
 
17729
-       echo '// Generated automatically by make.' >syslist.go.tmp
 
17730
-       echo 'package build' >>syslist.go.tmp
 
17731
-       echo 'const goosList = "$(GOOS)"' >>syslist.go.tmp
 
17732
-       echo 'const goarchList = "$(GOARCH)"' >>syslist.go.tmp
 
17733
-       $(SHELL) $(srcdir)/../move-if-change syslist.go.tmp syslist.go
 
17734
-       $(STAMP) $@
 
17735
-
 
17736
 @go_include@ go/doc.lo.dep
 
17737
 go/doc.lo.dep: $(go_go_doc_files)
 
17738
        $(BUILDDEPS)
 
17739
Index: libgo/runtime/go-defer.c
 
17740
===================================================================
 
17741
--- a/src/libgo/runtime/go-defer.c      (.../tags/gcc_4_8_2_release)
 
17742
+++ b/src/libgo/runtime/go-defer.c      (.../branches/gcc-4_8-branch)
 
17743
@@ -27,6 +27,7 @@
 
17744
   n->__pfn = pfn;
 
17745
   n->__arg = arg;
 
17746
   n->__retaddr = NULL;
 
17747
+  n->__makefunc_can_recover = 0;
 
17748
   g->defer = n;
 
17749
 }
 
17750
 
 
17751
Index: libgo/runtime/go-defer.h
 
17752
===================================================================
 
17753
--- a/src/libgo/runtime/go-defer.h      (.../tags/gcc_4_8_2_release)
 
17754
+++ b/src/libgo/runtime/go-defer.h      (.../branches/gcc-4_8-branch)
 
17755
@@ -34,4 +34,10 @@
 
17756
      set by __go_set_defer_retaddr which is called by the thunks
 
17757
      created by defer statements.  */
 
17758
   const void *__retaddr;
 
17759
+
 
17760
+  /* Set to true if a function created by reflect.MakeFunc is
 
17761
+     permitted to recover.  The return address of such a function
 
17762
+     function will be somewhere in libffi, so __retaddr is not
 
17763
+     useful.  */
 
17764
+  _Bool __makefunc_can_recover;
 
17765
 };
 
17766
Index: libgo/runtime/go-int-array-to-string.c
 
17767
===================================================================
 
17768
--- a/src/libgo/runtime/go-int-array-to-string.c        (.../tags/gcc_4_8_2_release)
 
17769
+++ b/src/libgo/runtime/go-int-array-to-string.c        (.../branches/gcc-4_8-branch)
 
17770
@@ -30,6 +30,8 @@
 
17771
 
 
17772
       if (v < 0 || v > 0x10ffff)
 
17773
        v = 0xfffd;
 
17774
+      else if (0xd800 <= v && v <= 0xdfff)
 
17775
+       v = 0xfffd;
 
17776
 
 
17777
       if (v <= 0x7f)
 
17778
        slen += 1;
 
17779
@@ -56,6 +58,8 @@
 
17780
         character.  */
 
17781
       if (v < 0 || v > 0x10ffff)
 
17782
        v = 0xfffd;
 
17783
+      else if (0xd800 <= v && v <= 0xdfff)
 
17784
+       v = 0xfffd;
 
17785
 
 
17786
       if (v <= 0x7f)
 
17787
        *s++ = v;
 
17788
Index: libgo/runtime/go-nosys.c
 
17789
===================================================================
 
17790
--- a/src/libgo/runtime/go-nosys.c      (.../tags/gcc_4_8_2_release)
 
17791
+++ b/src/libgo/runtime/go-nosys.c      (.../branches/gcc-4_8-branch)
 
17792
@@ -43,6 +43,17 @@
 
17793
 }
 
17794
 #endif
 
17795
 
 
17796
+#ifndef HAVE_DUP3
 
17797
+int
 
17798
+dup3 (int oldfd __attribute__ ((unused)),
 
17799
+      int newfd __attribute__ ((unused)),
 
17800
+      int flags __attribute__ ((unused)))
 
17801
+{
 
17802
+  errno = ENOSYS;
 
17803
+  return -1;
 
17804
+}
 
17805
+#endif
 
17806
+
 
17807
 #ifndef HAVE_EPOLL_CREATE1
 
17808
 int
 
17809
 epoll_create1 (int flags __attribute__ ((unused)))
 
17810
@@ -112,6 +123,18 @@
 
17811
 }
 
17812
 #endif
 
17813
 
 
17814
+#ifndef HAVE_GETXATTR
 
17815
+ssize_t
 
17816
+getxattr (const char *path __attribute__ ((unused)),
 
17817
+         const char *name __attribute__ ((unused)),
 
17818
+         void *value __attribute__ ((unused)),
 
17819
+         size_t size __attribute__ ((unused)))
 
17820
+{
 
17821
+  errno = ENOSYS;
 
17822
+  return -1;
 
17823
+}
 
17824
+#endif
 
17825
+
 
17826
 #ifndef HAVE_INOTIFY_ADD_WATCH
 
17827
 int
 
17828
 inotify_add_watch (int fd __attribute__ ((unused)),
 
17829
@@ -151,6 +174,17 @@
 
17830
 }
 
17831
 #endif
 
17832
 
 
17833
+#ifndef HAVE_LISTXATTR
 
17834
+ssize_t
 
17835
+listxattr (const char *path __attribute__ ((unused)),
 
17836
+          char *list __attribute__ ((unused)),
 
17837
+          size_t size __attribute__ ((unused)))
 
17838
+{
 
17839
+  errno = ENOSYS;
 
17840
+  return -1;
 
17841
+}
 
17842
+#endif
 
17843
+
 
17844
 #ifndef HAVE_MKDIRAT
 
17845
 int
 
17846
 mkdirat (int dirfd __attribute__ ((unused)),
 
17847
@@ -196,6 +230,16 @@
 
17848
 }
 
17849
 #endif
 
17850
 
 
17851
+#ifndef HAVE_REMOVEXATTR
 
17852
+int
 
17853
+removexattr (const char *path __attribute__ ((unused)),
 
17854
+            const char *name __attribute__ ((unused)))
 
17855
+{
 
17856
+  errno = ENOSYS;
 
17857
+  return -1;
 
17858
+}
 
17859
+#endif
 
17860
+
 
17861
 #ifndef HAVE_RENAMEAT
 
17862
 int
 
17863
 renameat (int olddirfd __attribute__ ((unused)),
 
17864
@@ -208,6 +252,19 @@
 
17865
 }
 
17866
 #endif
 
17867
 
 
17868
+#ifndef HAVE_SETXATTR
 
17869
+int
 
17870
+setxattr (const char *path __attribute__ ((unused)),
 
17871
+         const char *name __attribute__ ((unused)),
 
17872
+         const void *value __attribute__ ((unused)),
 
17873
+         size_t size __attribute__ ((unused)),
 
17874
+         int flags __attribute__ ((unused)))
 
17875
+{
 
17876
+  errno = ENOSYS;
 
17877
+  return -1;
 
17878
+}
 
17879
+#endif
 
17880
+
 
17881
 #ifndef HAVE_SPLICE
 
17882
 int
 
17883
 splice (int fd __attribute__ ((unused)),
 
17884
Index: libgo/runtime/runtime.h
 
17885
===================================================================
 
17886
--- a/src/libgo/runtime/runtime.h       (.../tags/gcc_4_8_2_release)
 
17887
+++ b/src/libgo/runtime/runtime.h       (.../branches/gcc-4_8-branch)
 
17888
@@ -440,7 +440,7 @@
 
17889
 };
 
17890
 void   runtime_hashinit(void);
 
17891
 
 
17892
-void   runtime_traceback();
 
17893
+void   runtime_traceback(void);
 
17894
 void   runtime_tracebackothers(G*);
 
17895
 
 
17896
 /*
 
17897
@@ -756,6 +756,7 @@
 
17898
 extern _Bool __go_file_line(uintptr, String*, String*, intgo *);
 
17899
 extern byte* runtime_progname();
 
17900
 extern void runtime_main(void*);
 
17901
+extern uint32 runtime_in_callers;
 
17902
 
 
17903
 int32 getproccount(void);
 
17904
 
 
17905
Index: libgo/runtime/proc.c
 
17906
===================================================================
 
17907
--- a/src/libgo/runtime/proc.c  (.../tags/gcc_4_8_2_release)
 
17908
+++ b/src/libgo/runtime/proc.c  (.../branches/gcc-4_8-branch)
 
17909
@@ -2239,6 +2239,14 @@
 
17910
        if(prof.fn == nil || prof.hz == 0)
 
17911
                return;
 
17912
 
 
17913
+       if(runtime_atomicload(&runtime_in_callers) > 0) {
 
17914
+               // If SIGPROF arrived while already fetching runtime
 
17915
+               // callers we can have trouble on older systems
 
17916
+               // because the unwind library calls dl_iterate_phdr
 
17917
+               // which was not recursive in the past.
 
17918
+               return;
 
17919
+       }
 
17920
+
 
17921
        runtime_lock(&prof);
 
17922
        if(prof.fn == nil) {
 
17923
                runtime_unlock(&prof);
 
17924
Index: libgo/runtime/go-signal.c
 
17925
===================================================================
 
17926
--- a/src/libgo/runtime/go-signal.c     (.../tags/gcc_4_8_2_release)
 
17927
+++ b/src/libgo/runtime/go-signal.c     (.../branches/gcc-4_8-branch)
 
17928
@@ -234,7 +234,7 @@
 
17929
          G *g;
 
17930
 
 
17931
          g = runtime_g ();
 
17932
-         runtime_traceback (g);
 
17933
+         runtime_traceback ();
 
17934
          runtime_tracebackothers (g);
 
17935
 
 
17936
          /* The gc library calls runtime_dumpregs here, and provides
 
17937
@@ -399,6 +399,9 @@
 
17938
 {
 
17939
   G *gp;
 
17940
   M *mp;
 
17941
+#ifdef USING_SPLIT_STACK
 
17942
+  void *stack_context[10];
 
17943
+#endif
 
17944
 
 
17945
   /* We are now running on the stack registered via sigaltstack.
 
17946
      (Actually there is a small span of time between runtime_siginit
 
17947
@@ -409,7 +412,7 @@
 
17948
   if (gp != NULL)
 
17949
     {
 
17950
 #ifdef USING_SPLIT_STACK
 
17951
-      __splitstack_getcontext (&gp->stack_context[0]);
 
17952
+      __splitstack_getcontext (&stack_context[0]);
 
17953
 #endif
 
17954
     }
 
17955
 
 
17956
@@ -432,7 +435,7 @@
 
17957
   if (gp != NULL)
 
17958
     {
 
17959
 #ifdef USING_SPLIT_STACK
 
17960
-      __splitstack_setcontext (&gp->stack_context[0]);
 
17961
+      __splitstack_setcontext (&stack_context[0]);
 
17962
 #endif
 
17963
     }
 
17964
 }
 
17965
Index: libgo/runtime/go-callers.c
 
17966
===================================================================
 
17967
--- a/src/libgo/runtime/go-callers.c    (.../tags/gcc_4_8_2_release)
 
17968
+++ b/src/libgo/runtime/go-callers.c    (.../branches/gcc-4_8-branch)
 
17969
@@ -11,6 +11,13 @@
 
17970
 #include "runtime.h"
 
17971
 #include "array.h"
 
17972
 
 
17973
+/* This is set to non-zero when calling backtrace_full.  This is used
 
17974
+   to avoid getting hanging on a recursive lock in dl_iterate_phdr on
 
17975
+   older versions of glibc when a SIGPROF signal arrives while
 
17976
+   collecting a backtrace.  */
 
17977
+
 
17978
+uint32 runtime_in_callers;
 
17979
+
 
17980
 /* Argument passed to callback function.  */
 
17981
 
 
17982
 struct callers_data
 
17983
@@ -111,8 +118,10 @@
 
17984
   data.skip = skip + 1;
 
17985
   data.index = 0;
 
17986
   data.max = m;
 
17987
+  runtime_xadd (&runtime_in_callers, 1);
 
17988
   backtrace_full (__go_get_backtrace_state (), 0, callback, error_callback,
 
17989
                  &data);
 
17990
+  runtime_xadd (&runtime_in_callers, -1);
 
17991
   return data.index;
 
17992
 }
 
17993
 
 
17994
Index: libgo/runtime/go-cdiv.c
 
17995
===================================================================
 
17996
--- a/src/libgo/runtime/go-cdiv.c       (.../tags/gcc_4_8_2_release)
 
17997
+++ b/src/libgo/runtime/go-cdiv.c       (.../branches/gcc-4_8-branch)
 
17998
@@ -0,0 +1,46 @@
 
17999
+/* go-cdiv.c -- complex division routines
 
18000
+
 
18001
+   Copyright 2013 The Go Authors. All rights reserved.
 
18002
+   Use of this source code is governed by a BSD-style
 
18003
+   license that can be found in the LICENSE file.  */
 
18004
+
 
18005
+/* Calls to these functions are generated by the Go frontend for
 
18006
+   division of complex64 or complex128.  We use these because Go's
 
18007
+   complex division expects slightly different results from the GCC
 
18008
+   default.  When dividing NaN+1.0i / 0+0i, Go expects NaN+NaNi but
 
18009
+   GCC generates NaN+Infi.  NaN+Infi seems wrong seems the rules of
 
18010
+   C99 Annex G specify that if either side of a complex number is Inf,
 
18011
+   the the whole number is Inf, but an operation involving NaN ought
 
18012
+   to result in NaN, not Inf.  */
 
18013
+
 
18014
+__complex float
 
18015
+__go_complex64_div (__complex float a, __complex float b)
 
18016
+{
 
18017
+  if (__builtin_expect (b == 0+0i, 0))
 
18018
+    {
 
18019
+      if (!__builtin_isinff (__real__ a)
 
18020
+         && !__builtin_isinff (__imag__ a)
 
18021
+         && (__builtin_isnanf (__real__ a) || __builtin_isnanf (__imag__ a)))
 
18022
+       {
 
18023
+         /* Pass "1" to nanf to match math/bits.go.  */
 
18024
+         return __builtin_nanf("1") + __builtin_nanf("1")*1i;
 
18025
+       }
 
18026
+    }
 
18027
+  return a / b;
 
18028
+}
 
18029
+
 
18030
+__complex double
 
18031
+__go_complex128_div (__complex double a, __complex double b)
 
18032
+{
 
18033
+  if (__builtin_expect (b == 0+0i, 0))
 
18034
+    {
 
18035
+      if (!__builtin_isinf (__real__ a)
 
18036
+         && !__builtin_isinf (__imag__ a)
 
18037
+         && (__builtin_isnan (__real__ a) || __builtin_isnan (__imag__ a)))
 
18038
+       {
 
18039
+         /* Pass "1" to nan to match math/bits.go.  */
 
18040
+         return __builtin_nan("1") + __builtin_nan("1")*1i;
 
18041
+       }
 
18042
+    }
 
18043
+  return a / b;
 
18044
+}
 
18045
Index: libgo/runtime/go-reflect-call.c
 
18046
===================================================================
 
18047
--- a/src/libgo/runtime/go-reflect-call.c       (.../tags/gcc_4_8_2_release)
 
18048
+++ b/src/libgo/runtime/go-reflect-call.c       (.../branches/gcc-4_8-branch)
 
18049
@@ -98,9 +98,12 @@
 
18050
   const struct __go_struct_field *fields;
 
18051
   int i;
 
18052
 
 
18053
+  field_count = descriptor->__fields.__count;
 
18054
+  if (field_count == 0) {
 
18055
+    return &ffi_type_void;
 
18056
+  }
 
18057
   ret = (ffi_type *) __go_alloc (sizeof (ffi_type));
 
18058
   ret->type = FFI_TYPE_STRUCT;
 
18059
-  field_count = descriptor->__fields.__count;
 
18060
   fields = (const struct __go_struct_field *) descriptor->__fields.__values;
 
18061
   ret->elements = (ffi_type **) __go_alloc ((field_count + 1)
 
18062
                                            * sizeof (ffi_type *));
 
18063
Index: libgo/runtime/go-recover.c
 
18064
===================================================================
 
18065
--- a/src/libgo/runtime/go-recover.c    (.../tags/gcc_4_8_2_release)
 
18066
+++ b/src/libgo/runtime/go-recover.c    (.../branches/gcc-4_8-branch)
 
18067
@@ -16,12 +16,14 @@
 
18068
    __go_can_recover--this is, the thunk.  */
 
18069
 
 
18070
 _Bool
 
18071
-__go_can_recover (const void* retaddr)
 
18072
+__go_can_recover (const void *retaddr)
 
18073
 {
 
18074
   G *g;
 
18075
   struct __go_defer_stack *d;
 
18076
   const char* ret;
 
18077
   const char* dret;
 
18078
+  Location loc;
 
18079
+  const byte *name;
 
18080
 
 
18081
   g = runtime_g ();
 
18082
 
 
18083
@@ -52,9 +54,80 @@
 
18084
 #endif
 
18085
 
 
18086
   dret = (const char *) d->__retaddr;
 
18087
-  return ret <= dret && ret + 16 >= dret;
 
18088
+  if (ret <= dret && ret + 16 >= dret)
 
18089
+    return 1;
 
18090
+
 
18091
+  /* If the function calling recover was created by reflect.MakeFunc,
 
18092
+     then RETADDR will be somewhere in libffi.  Our caller is
 
18093
+     permitted to recover if it was called from libffi.  */
 
18094
+  if (!d->__makefunc_can_recover)
 
18095
+    return 0;
 
18096
+
 
18097
+  if (runtime_callers (2, &loc, 1) < 1)
 
18098
+    return 0;
 
18099
+
 
18100
+  /* If we have no function name, then we weren't called by Go code.
 
18101
+     Guess that we were called by libffi.  */
 
18102
+  if (loc.function.len == 0)
 
18103
+    return 1;
 
18104
+
 
18105
+  if (loc.function.len < 4)
 
18106
+    return 0;
 
18107
+  name = loc.function.str;
 
18108
+  if (*name == '_')
 
18109
+    {
 
18110
+      if (loc.function.len < 5)
 
18111
+       return 0;
 
18112
+      ++name;
 
18113
+    }
 
18114
+
 
18115
+  if (name[0] == 'f' && name[1] == 'f' && name[2] == 'i' && name[3] == '_')
 
18116
+    return 1;
 
18117
+
 
18118
+  /* We may also be called by reflect.makeFuncImpl.call, for a
 
18119
+     function created by reflect.MakeFunc.  */
 
18120
+  if (__builtin_strstr ((const char *) name, "makeFuncImpl") != NULL)
 
18121
+    return 1;
 
18122
+
 
18123
+  return 0;
 
18124
 }
 
18125
 
 
18126
+/* This function is called when code is about to enter a function
 
18127
+   created by reflect.MakeFunc.  It is called by the function stub
 
18128
+   used by MakeFunc.  If the stub is permitted to call recover, then a
 
18129
+   real MakeFunc function is permitted to call recover.  */
 
18130
+
 
18131
+void
 
18132
+__go_makefunc_can_recover (const void *retaddr)
 
18133
+{
 
18134
+  struct __go_defer_stack *d;
 
18135
+
 
18136
+  d = runtime_g ()->defer;
 
18137
+  if (d != NULL
 
18138
+      && !d->__makefunc_can_recover
 
18139
+      && __go_can_recover (retaddr))
 
18140
+    d->__makefunc_can_recover = 1;
 
18141
+}
 
18142
+
 
18143
+/* This function is called when code is about to exit a function
 
18144
+   created by reflect.MakeFunc.  It is called by the function stub
 
18145
+   used by MakeFunc.  It clears the __makefunc_can_recover field.
 
18146
+   It's OK to always clear this field, because __go_can_recover will
 
18147
+   only be called by a stub created for a function that calls recover.
 
18148
+   That stub will not call a function created by reflect.MakeFunc, so
 
18149
+   by the time we get here any caller higher up on the call stack no
 
18150
+   longer needs the information.  */
 
18151
+
 
18152
+void
 
18153
+__go_makefunc_returning (void)
 
18154
+{
 
18155
+  struct __go_defer_stack *d;
 
18156
+
 
18157
+  d = runtime_g ()->defer;
 
18158
+  if (d != NULL)
 
18159
+    d->__makefunc_can_recover = 0;
 
18160
+}
 
18161
+
 
18162
 /* This is only called when it is valid for the caller to recover the
 
18163
    value on top of the panic stack, if there is one.  */
 
18164
 
 
18165
Index: libgo/runtime/go-make-slice.c
 
18166
===================================================================
 
18167
--- a/src/libgo/runtime/go-make-slice.c (.../tags/gcc_4_8_2_release)
 
18168
+++ b/src/libgo/runtime/go-make-slice.c (.../branches/gcc-4_8-branch)
 
18169
@@ -34,7 +34,10 @@
 
18170
   std = (const struct __go_slice_type *) td;
 
18171
 
 
18172
   ilen = (intgo) len;
 
18173
-  if (ilen < 0 || (uintptr_t) ilen != len)
 
18174
+  if (ilen < 0
 
18175
+      || (uintptr_t) ilen != len
 
18176
+      || (std->__element_type->__size > 0
 
18177
+         && len > MaxMem / std->__element_type->__size))
 
18178
     runtime_panicstring ("makeslice: len out of range");
 
18179
 
 
18180
   icap = (intgo) cap;
 
18181
Index: libgo/mksysinfo.sh
 
18182
===================================================================
 
18183
--- a/src/libgo/mksysinfo.sh    (.../tags/gcc_4_8_2_release)
 
18184
+++ b/src/libgo/mksysinfo.sh    (.../branches/gcc-4_8-branch)
 
18185
@@ -1035,6 +1035,10 @@
 
18186
 grep '^const _LOCK_' gen-sysinfo.go |
 
18187
     sed -e 's/^\(const \)_\(LOCK_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}
 
18188
 
 
18189
+# The PRIO constants.
 
18190
+grep '^const _PRIO_' gen-sysinfo.go | \
 
18191
+  sed -e 's/^\(const \)_\(PRIO_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}
 
18192
+
 
18193
 # The GNU/Linux LINUX_REBOOT flags.
 
18194
 grep '^const _LINUX_REBOOT_' gen-sysinfo.go |
 
18195
     sed -e 's/^\(const \)_\(LINUX_REBOOT_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}
 
18196
Index: libgo/config.h.in
 
18197
===================================================================
 
18198
--- a/src/libgo/config.h.in     (.../tags/gcc_4_8_2_release)
 
18199
+++ b/src/libgo/config.h.in     (.../branches/gcc-4_8-branch)
 
18200
@@ -39,6 +39,9 @@
 
18201
 /* Define to 1 if you have the `dl_iterate_phdr' function. */
 
18202
 #undef HAVE_DL_ITERATE_PHDR
 
18203
 
 
18204
+/* Define to 1 if you have the `dup3' function. */
 
18205
+#undef HAVE_DUP3
 
18206
+
 
18207
 /* Define to 1 if you have the `epoll_create1' function. */
 
18208
 #undef HAVE_EPOLL_CREATE1
 
18209
 
 
18210
@@ -66,6 +69,9 @@
 
18211
 /* Define if _Unwind_GetIPInfo is available. */
 
18212
 #undef HAVE_GETIPINFO
 
18213
 
 
18214
+/* Define to 1 if you have the `getxattr' function. */
 
18215
+#undef HAVE_GETXATTR
 
18216
+
 
18217
 /* Define to 1 if you have the `inotify_add_watch' function. */
 
18218
 #undef HAVE_INOTIFY_ADD_WATCH
 
18219
 
 
18220
@@ -111,6 +117,9 @@
 
18221
 /* Define to 1 if you have the <linux/rtnetlink.h> header file. */
 
18222
 #undef HAVE_LINUX_RTNETLINK_H
 
18223
 
 
18224
+/* Define to 1 if you have the `listxattr' function. */
 
18225
+#undef HAVE_LISTXATTR
 
18226
+
 
18227
 /* Define to 1 if the system has the type `loff_t'. */
 
18228
 #undef HAVE_LOFF_T
 
18229
 
 
18230
@@ -171,6 +180,9 @@
 
18231
 /* Define to 1 if you have the `pipe2' function. */
 
18232
 #undef HAVE_PIPE2
 
18233
 
 
18234
+/* Define to 1 if you have the `removexattr' function. */
 
18235
+#undef HAVE_REMOVEXATTR
 
18236
+
 
18237
 /* Define to 1 if you have the `renameat' function. */
 
18238
 #undef HAVE_RENAMEAT
 
18239
 
 
18240
@@ -180,6 +192,9 @@
 
18241
 /* Define to 1 if you have the `setenv' function. */
 
18242
 #undef HAVE_SETENV
 
18243
 
 
18244
+/* Define to 1 if you have the `setxattr' function. */
 
18245
+#undef HAVE_SETXATTR
 
18246
+
 
18247
 /* Define to 1 if you have the `sinl' function. */
 
18248
 #undef HAVE_SINL
 
18249
 
 
18250
Index: libgo/configure.ac
 
18251
===================================================================
 
18252
--- a/src/libgo/configure.ac    (.../tags/gcc_4_8_2_release)
 
18253
+++ b/src/libgo/configure.ac    (.../branches/gcc-4_8-branch)
 
18254
@@ -503,7 +503,7 @@
 
18255
 AM_CONDITIONAL(HAVE_STRERROR_R, test "$ac_cv_func_strerror_r" = yes)
 
18256
 AM_CONDITIONAL(HAVE_WAIT4, test "$ac_cv_func_wait4" = yes)
 
18257
 
 
18258
-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)
 
18259
+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)
 
18260
 AC_TYPE_OFF_T
 
18261
 AC_CHECK_TYPES([loff_t])
 
18262
 
 
18263
Index: libgo/go/reflect/value.go
 
18264
===================================================================
 
18265
--- a/src/libgo/go/reflect/value.go     (.../tags/gcc_4_8_2_release)
 
18266
+++ b/src/libgo/go/reflect/value.go     (.../branches/gcc-4_8-branch)
 
18267
@@ -98,6 +98,7 @@
 
18268
        flagIndir
 
18269
        flagAddr
 
18270
        flagMethod
 
18271
+       flagMethodFn         // gccgo: first fn parameter is always pointer
 
18272
        flagKindShift        = iota
 
18273
        flagKindWidth        = 5 // there are 27 kinds
 
18274
        flagKindMask    flag = 1<<flagKindWidth - 1
 
18275
@@ -433,7 +434,7 @@
 
18276
        if v.flag&flagMethod != 0 {
 
18277
                nin++
 
18278
        }
 
18279
-       firstPointer := len(in) > 0 && t.In(0).Kind() != Ptr && v.flag&flagMethod == 0 && isMethod(v.typ)
 
18280
+       firstPointer := len(in) > 0 && t.In(0).Kind() != Ptr && v.flag&flagMethodFn != 0
 
18281
        params := make([]unsafe.Pointer, nin)
 
18282
        off := 0
 
18283
        if v.flag&flagMethod != 0 {
 
18284
@@ -484,33 +485,6 @@
 
18285
        return ret
 
18286
 }
 
18287
 
 
18288
-// gccgo specific test to see if typ is a method.  We can tell by
 
18289
-// looking at the string to see if there is a receiver.  We need this
 
18290
-// because for gccgo all methods take pointer receivers.
 
18291
-func isMethod(t *rtype) bool {
 
18292
-       if Kind(t.kind) != Func {
 
18293
-               return false
 
18294
-       }
 
18295
-       s := *t.string
 
18296
-       parens := 0
 
18297
-       params := 0
 
18298
-       sawRet := false
 
18299
-       for i, c := range s {
 
18300
-               if c == '(' {
 
18301
-                       if parens == 0 {
 
18302
-                               params++
 
18303
-                       }
 
18304
-                       parens++
 
18305
-               } else if c == ')' {
 
18306
-                       parens--
 
18307
-               } else if parens == 0 && c == ' ' && s[i+1] != '(' && !sawRet {
 
18308
-                       params++
 
18309
-                       sawRet = true
 
18310
-               }
 
18311
-       }
 
18312
-       return params > 2
 
18313
-}
 
18314
-
 
18315
 // methodReceiver returns information about the receiver
 
18316
 // described by v. The Value v may or may not have the
 
18317
 // flagMethod bit set, so the kind cached in v.flag should
 
18318
@@ -917,6 +891,16 @@
 
18319
                v = makeMethodValue("Interface", v)
 
18320
        }
 
18321
 
 
18322
+       if v.flag&flagMethodFn != 0 {
 
18323
+               if v.typ.Kind() != Func {
 
18324
+                       panic("reflect: MethodFn of non-Func")
 
18325
+               }
 
18326
+               ft := (*funcType)(unsafe.Pointer(v.typ))
 
18327
+               if ft.in[0].Kind() != Ptr {
 
18328
+                       v = makeValueMethod(v)
 
18329
+               }
 
18330
+       }
 
18331
+
 
18332
        k := v.kind()
 
18333
        if k == Interface {
 
18334
                // Special case: return the element inside the interface.
 
18335
@@ -1230,8 +1214,7 @@
 
18336
                        // created via reflect have the same underlying code pointer,
 
18337
                        // so their Pointers are equal. The function used here must
 
18338
                        // match the one used in makeMethodValue.
 
18339
-                       // This is not properly implemented for gccgo.
 
18340
-                       f := Zero
 
18341
+                       f := makeFuncStub
 
18342
                        return **(**uintptr)(unsafe.Pointer(&f))
 
18343
                }
 
18344
                p := v.val
 
18345
Index: libgo/go/reflect/makefuncgo_386.go
 
18346
===================================================================
 
18347
--- a/src/libgo/go/reflect/makefuncgo_386.go    (.../tags/gcc_4_8_2_release)
 
18348
+++ b/src/libgo/go/reflect/makefuncgo_386.go    (.../branches/gcc-4_8-branch)
 
18349
@@ -14,8 +14,10 @@
 
18350
 // registers that might hold result values.
 
18351
 type i386Regs struct {
 
18352
        esp uint32
 
18353
-       eax uint32 // Value to return in %eax.
 
18354
-       st0 uint64 // Value to return in %st(0).
 
18355
+       eax uint32  // Value to return in %eax.
 
18356
+       st0 float64 // Value to return in %st(0).
 
18357
+       sr  bool    // Set to true if hidden struct pointer.
 
18358
+       sf  bool    // Set to true if returning float
 
18359
 }
 
18360
 
 
18361
 // MakeFuncStubGo implements the 386 calling convention for MakeFunc.
 
18362
@@ -56,10 +58,13 @@
 
18363
        in := make([]Value, 0, len(ftyp.in))
 
18364
        ap := uintptr(regs.esp)
 
18365
 
 
18366
+       regs.sr = false
 
18367
+       regs.sf = false
 
18368
        var retPtr unsafe.Pointer
 
18369
        if retStruct {
 
18370
                retPtr = *(*unsafe.Pointer)(unsafe.Pointer(ap))
 
18371
                ap += ptrSize
 
18372
+               regs.sr = true
 
18373
        }
 
18374
 
 
18375
        for _, rt := range ftyp.in {
 
18376
@@ -77,7 +82,7 @@
 
18377
 
 
18378
        // Call the real function.
 
18379
 
 
18380
-       out := c.fn(in)
 
18381
+       out := c.call(in)
 
18382
 
 
18383
        if len(out) != len(ftyp.out) {
 
18384
                panic("reflect: wrong return count from function created by MakeFunc")
 
18385
@@ -123,13 +128,16 @@
 
18386
 
 
18387
        v := out[0]
 
18388
        w := v.iword()
 
18389
-       if v.Kind() != Ptr && v.Kind() != UnsafePointer {
 
18390
-               w = loadIword(unsafe.Pointer(w), v.typ.size)
 
18391
-       }
 
18392
        switch v.Kind() {
 
18393
-       case Float32, Float64:
 
18394
-               regs.st0 = uint64(uintptr(w))
 
18395
+       case Ptr, UnsafePointer:
 
18396
+               regs.eax = uint32(uintptr(w))
 
18397
+       case Float32:
 
18398
+               regs.st0 = float64(*(*float32)(unsafe.Pointer(w)))
 
18399
+               regs.sf = true
 
18400
+       case Float64:
 
18401
+               regs.st0 = *(*float64)(unsafe.Pointer(w))
 
18402
+               regs.sf = true
 
18403
        default:
 
18404
-               regs.eax = uint32(uintptr(w))
 
18405
+               regs.eax = uint32(uintptr(loadIword(unsafe.Pointer(w), v.typ.size)))
 
18406
        }
 
18407
 }
 
18408
Index: libgo/go/reflect/makefunc_amd64.S
 
18409
===================================================================
 
18410
--- a/src/libgo/go/reflect/makefunc_amd64.S     (.../tags/gcc_4_8_2_release)
 
18411
+++ b/src/libgo/go/reflect/makefunc_amd64.S     (.../branches/gcc-4_8-branch)
 
18412
@@ -61,6 +61,14 @@
 
18413
        movdqa  %xmm6, 0xa0(%rsp)
 
18414
        movdqa  %xmm7, 0xb0(%rsp)
 
18415
 
 
18416
+       /* For MakeFunc functions that call recover.  */
 
18417
+       movq    8(%rbp), %rdi
 
18418
+#ifdef __PIC__
 
18419
+       call    __go_makefunc_can_recover@PLT
 
18420
+#else
 
18421
+       call    __go_makefunc_can_recover
 
18422
+#endif
 
18423
+
 
18424
        # Get function type.
 
18425
 #ifdef __PIC__
 
18426
        call    __go_get_closure@PLT
 
18427
@@ -77,6 +85,13 @@
 
18428
        call    reflect.MakeFuncStubGo
 
18429
 #endif
 
18430
 
 
18431
+       /* MakeFunc functions can no longer call recover.  */
 
18432
+#ifdef __PIC__
 
18433
+       call __go_makefunc_returning@PLT
 
18434
+#else
 
18435
+       call __go_makefunc_returning
 
18436
+#endif
 
18437
+
 
18438
        # The structure will be updated with any return values.  Load
 
18439
        # all possible return registers before returning to the caller.
 
18440
 
 
18441
Index: libgo/go/reflect/type.go
 
18442
===================================================================
 
18443
--- a/src/libgo/go/reflect/type.go      (.../tags/gcc_4_8_2_release)
 
18444
+++ b/src/libgo/go/reflect/type.go      (.../branches/gcc-4_8-branch)
 
18445
@@ -508,7 +508,7 @@
 
18446
        m.Type = toType(mt)
 
18447
        x := new(unsafe.Pointer)
 
18448
        *x = unsafe.Pointer(&p.tfn)
 
18449
-       m.Func = Value{mt, unsafe.Pointer(x), fl | flagIndir}
 
18450
+       m.Func = Value{mt, unsafe.Pointer(x), fl | flagIndir | flagMethodFn}
 
18451
        m.Index = i
 
18452
        return
 
18453
 }
 
18454
Index: libgo/go/reflect/makefunc_386.S
 
18455
===================================================================
 
18456
--- a/src/libgo/go/reflect/makefunc_386.S       (.../tags/gcc_4_8_2_release)
 
18457
+++ b/src/libgo/go/reflect/makefunc_386.S       (.../branches/gcc-4_8-branch)
 
18458
@@ -25,9 +25,13 @@
 
18459
           struct {
 
18460
             esp uint32         // 0x0
 
18461
             eax uint32         // 0x4
 
18462
-            st0 uint64         // 0x8
 
18463
+            st0 float64        // 0x8
 
18464
+            sr  bool           // 0x10
 
18465
+            sf  bool           // 0x11
 
18466
           }
 
18467
-       */
 
18468
+          The sr field is set by the function to a non-zero value if
 
18469
+          the function takes a struct hidden pointer that must be
 
18470
+          popped off the stack.  */
 
18471
 
 
18472
        pushl   %ebp
 
18473
 .LCFI0:
 
18474
@@ -45,7 +49,16 @@
 
18475
        leal    8(%ebp), %eax   /* Set esp field in struct.  */
 
18476
        movl    %eax, -24(%ebp)
 
18477
 
 
18478
+       /* For MakeFunc functions that call recover.  */
 
18479
+       movl    4(%ebp), %eax
 
18480
+       movl    %eax, (%esp)
 
18481
 #ifdef __PIC__
 
18482
+       call    __go_makefunc_can_recover@PLT
 
18483
+#else
 
18484
+       call    __go_makefunc_can_recover
 
18485
+#endif
 
18486
+
 
18487
+#ifdef __PIC__
 
18488
        call    __go_get_closure@PLT
 
18489
 #else
 
18490
        call    __go_get_closure
 
18491
@@ -62,9 +75,20 @@
 
18492
        call    reflect.MakeFuncStubGo
 
18493
 #endif
 
18494
 
 
18495
+       /* MakeFunc functions can no longer call recover.  */
 
18496
+#ifdef __PIC__
 
18497
+       call __go_makefunc_returning@PLT
 
18498
+#else
 
18499
+       call __go_makefunc_returning
 
18500
+#endif
 
18501
+
 
18502
        /* Set return registers.  */
 
18503
 
 
18504
        movl    -20(%ebp), %eax
 
18505
+
 
18506
+       cmpb    $0, -7(%ebp)
 
18507
+       je      2f
 
18508
+
 
18509
        fldl    -16(%ebp)
 
18510
 
 
18511
 #ifdef __SSE2__
 
18512
@@ -73,12 +97,20 @@
 
18513
        movsd   -16(%ebp), %xmm0
 
18514
 #endif
 
18515
 
 
18516
+2:
 
18517
+       movb    -8(%ebp), %dl
 
18518
+
 
18519
        addl    $36, %esp
 
18520
        popl    %ebx
 
18521
 .LCFI3:
 
18522
        popl    %ebp
 
18523
 .LCFI4:
 
18524
+
 
18525
+       testb   %dl,%dl
 
18526
+       jne     1f
 
18527
        ret
 
18528
+1:
 
18529
+       ret     $4
 
18530
 .LFE1:
 
18531
 #ifdef __ELF__
 
18532
        .size   reflect.makeFuncStub, . - reflect.makeFuncStub
 
18533
Index: libgo/go/reflect/all_test.go
 
18534
===================================================================
 
18535
--- a/src/libgo/go/reflect/all_test.go  (.../tags/gcc_4_8_2_release)
 
18536
+++ b/src/libgo/go/reflect/all_test.go  (.../branches/gcc-4_8-branch)
 
18537
@@ -1430,6 +1430,46 @@
 
18538
        }
 
18539
 }
 
18540
 
 
18541
+type emptyStruct struct{}
 
18542
+
 
18543
+type nonEmptyStruct struct {
 
18544
+       member int
 
18545
+}
 
18546
+
 
18547
+func returnEmpty() emptyStruct {
 
18548
+       return emptyStruct{}
 
18549
+}
 
18550
+
 
18551
+func takesEmpty(e emptyStruct) {
 
18552
+}
 
18553
+
 
18554
+func returnNonEmpty(i int) nonEmptyStruct {
 
18555
+       return nonEmptyStruct{member: i}
 
18556
+}
 
18557
+
 
18558
+func takesNonEmpty(n nonEmptyStruct) int {
 
18559
+       return n.member
 
18560
+}
 
18561
+
 
18562
+func TestCallWithStruct(t *testing.T) {
 
18563
+       r := ValueOf(returnEmpty).Call([]Value{})
 
18564
+       if len(r) != 1 || r[0].Type() != TypeOf(emptyStruct{}) {
 
18565
+               t.Errorf("returning empty struct returned %s instead", r)
 
18566
+       }
 
18567
+       r = ValueOf(takesEmpty).Call([]Value{ValueOf(emptyStruct{})})
 
18568
+       if len(r) != 0 {
 
18569
+               t.Errorf("takesEmpty returned values: %s", r)
 
18570
+       }
 
18571
+       r = ValueOf(returnNonEmpty).Call([]Value{ValueOf(42)})
 
18572
+       if len(r) != 1 || r[0].Type() != TypeOf(nonEmptyStruct{}) || r[0].Field(0).Int() != 42 {
 
18573
+               t.Errorf("returnNonEmpty returned %s", r)
 
18574
+       }
 
18575
+       r = ValueOf(takesNonEmpty).Call([]Value{ValueOf(nonEmptyStruct{member: 42})})
 
18576
+       if len(r) != 1 || r[0].Type() != TypeOf(1) || r[0].Int() != 42 {
 
18577
+               t.Errorf("takesNonEmpty returned %s", r)
 
18578
+       }
 
18579
+}
 
18580
+
 
18581
 func TestMakeFunc(t *testing.T) {
 
18582
        switch runtime.GOARCH {
 
18583
        case "amd64", "386":
 
18584
@@ -1587,9 +1627,13 @@
 
18585
        }
 
18586
 }
 
18587
 
 
18588
-/* Not yet implemented for gccgo
 
18589
+func TestMethodValue(t *testing.T) {
 
18590
+       switch runtime.GOARCH {
 
18591
+       case "amd64", "386":
 
18592
+       default:
 
18593
+               t.Skip("reflect method values not implemented for " + runtime.GOARCH)
 
18594
+       }
 
18595
 
 
18596
-func TestMethodValue(t *testing.T) {
 
18597
        p := Point{3, 4}
 
18598
        var i int64
 
18599
 
 
18600
@@ -1658,8 +1702,6 @@
 
18601
        }
 
18602
 }
 
18603
 
 
18604
-*/
 
18605
-
 
18606
 // Reflect version of $GOROOT/test/method5.go
 
18607
 
 
18608
 // Concrete types implementing M method.
 
18609
@@ -1744,14 +1786,18 @@
 
18610
 func (t4 Tm4) M(x int, b byte) (byte, int) { return b, x + 40 }
 
18611
 
 
18612
 func TestMethod5(t *testing.T) {
 
18613
-       /* Not yet used for gccgo
 
18614
+       switch runtime.GOARCH {
 
18615
+       case "amd64", "386":
 
18616
+       default:
 
18617
+               t.Skip("reflect method values not implemented for " + runtime.GOARCH)
 
18618
+       }
 
18619
+
 
18620
        CheckF := func(name string, f func(int, byte) (byte, int), inc int) {
 
18621
                b, x := f(1000, 99)
 
18622
                if b != 99 || x != 1000+inc {
 
18623
                        t.Errorf("%s(1000, 99) = %v, %v, want 99, %v", name, b, x, 1000+inc)
 
18624
                }
 
18625
        }
 
18626
-       */
 
18627
 
 
18628
        CheckV := func(name string, i Value, inc int) {
 
18629
                bx := i.Method(0).Call([]Value{ValueOf(1000), ValueOf(byte(99))})
 
18630
@@ -1761,9 +1807,7 @@
 
18631
                        t.Errorf("direct %s.M(1000, 99) = %v, %v, want 99, %v", name, b, x, 1000+inc)
 
18632
                }
 
18633
 
 
18634
-               /* Not yet implemented for gccgo
 
18635
                CheckF(name+".M", i.Method(0).Interface().(func(int, byte) (byte, int)), inc)
 
18636
-               */
 
18637
        }
 
18638
 
 
18639
        var TinterType = TypeOf(new(Tinter)).Elem()
 
18640
Index: libgo/go/reflect/makefunc.go
 
18641
===================================================================
 
18642
--- a/src/libgo/go/reflect/makefunc.go  (.../tags/gcc_4_8_2_release)
 
18643
+++ b/src/libgo/go/reflect/makefunc.go  (.../branches/gcc-4_8-branch)
 
18644
@@ -17,6 +17,11 @@
 
18645
        code uintptr
 
18646
        typ  *funcType
 
18647
        fn   func([]Value) []Value
 
18648
+
 
18649
+       // For gccgo we use the same entry point for functions and for
 
18650
+       // method values.
 
18651
+       method int
 
18652
+       rcvr   Value
 
18653
 }
 
18654
 
 
18655
 // MakeFunc returns a new function of the given Type
 
18656
@@ -61,7 +66,7 @@
 
18657
        dummy := makeFuncStub
 
18658
        code := **(**uintptr)(unsafe.Pointer(&dummy))
 
18659
 
 
18660
-       impl := &makeFuncImpl{code: code, typ: ftyp, fn: fn}
 
18661
+       impl := &makeFuncImpl{code: code, typ: ftyp, fn: fn, method: -1}
 
18662
 
 
18663
        return Value{t, unsafe.Pointer(&impl), flag(Func<<flagKindShift) | flagIndir}
 
18664
 }
 
18665
@@ -85,15 +90,94 @@
 
18666
                panic("reflect: internal error: invalid use of makePartialFunc")
 
18667
        }
 
18668
 
 
18669
+       switch runtime.GOARCH {
 
18670
+       case "amd64", "386":
 
18671
+       default:
 
18672
+               panic("reflect.makeMethodValue not implemented for " + runtime.GOARCH)
 
18673
+       }
 
18674
+
 
18675
        // Ignoring the flagMethod bit, v describes the receiver, not the method type.
 
18676
        fl := v.flag & (flagRO | flagAddr | flagIndir)
 
18677
        fl |= flag(v.typ.Kind()) << flagKindShift
 
18678
        rcvr := Value{v.typ, v.val, fl}
 
18679
 
 
18680
+       // v.Type returns the actual type of the method value.
 
18681
+       ft := v.Type().(*rtype)
 
18682
+
 
18683
+       // Indirect Go func value (dummy) to obtain
 
18684
+       // actual code address. (A Go func value is a pointer
 
18685
+       // to a C function pointer. http://golang.org/s/go11func.)
 
18686
+       dummy := makeFuncStub
 
18687
+       code := **(**uintptr)(unsafe.Pointer(&dummy))
 
18688
+
 
18689
        // Cause panic if method is not appropriate.
 
18690
        // The panic would still happen during the call if we omit this,
 
18691
        // but we want Interface() and other operations to fail early.
 
18692
-       methodReceiver(op, rcvr, int(v.flag)>>flagMethodShift)
 
18693
+       t, _, _ := methodReceiver(op, rcvr, int(v.flag)>>flagMethodShift)
 
18694
 
 
18695
-       panic("reflect makeMethodValue not implemented")
 
18696
+       fv := &makeFuncImpl{
 
18697
+               code:   code,
 
18698
+               typ:    (*funcType)(unsafe.Pointer(t)),
 
18699
+               method: int(v.flag) >> flagMethodShift,
 
18700
+               rcvr:   rcvr,
 
18701
+       }
 
18702
+
 
18703
+       return Value{ft, unsafe.Pointer(&fv), v.flag&flagRO | flag(Func)<<flagKindShift | flagIndir}
 
18704
 }
 
18705
+
 
18706
+// makeValueMethod takes a method function and returns a function that
 
18707
+// takes a value receiver and calls the real method with a pointer to
 
18708
+// it.
 
18709
+func makeValueMethod(v Value) Value {
 
18710
+       typ := v.typ
 
18711
+       if typ.Kind() != Func {
 
18712
+               panic("reflect: call of makeValueMethod with non-Func type")
 
18713
+       }
 
18714
+       if v.flag&flagMethodFn == 0 {
 
18715
+               panic("reflect: call of makeValueMethod with non-MethodFn")
 
18716
+       }
 
18717
+
 
18718
+       switch runtime.GOARCH {
 
18719
+       case "amd64", "386":
 
18720
+       default:
 
18721
+               panic("reflect.makeValueMethod not implemented for " + runtime.GOARCH)
 
18722
+       }
 
18723
+
 
18724
+       t := typ.common()
 
18725
+       ftyp := (*funcType)(unsafe.Pointer(t))
 
18726
+
 
18727
+       // Indirect Go func value (dummy) to obtain
 
18728
+       // actual code address. (A Go func value is a pointer
 
18729
+       // to a C function pointer. http://golang.org/s/go11func.)
 
18730
+       dummy := makeFuncStub
 
18731
+       code := **(**uintptr)(unsafe.Pointer(&dummy))
 
18732
+
 
18733
+       impl := &makeFuncImpl{
 
18734
+               code:   code,
 
18735
+               typ:    ftyp,
 
18736
+               method: -2,
 
18737
+               rcvr:   v,
 
18738
+       }
 
18739
+
 
18740
+       return Value{t, unsafe.Pointer(&impl), flag(Func<<flagKindShift) | flagIndir}
 
18741
+}
 
18742
+
 
18743
+// Call the function represented by a makeFuncImpl.
 
18744
+func (c *makeFuncImpl) call(in []Value) []Value {
 
18745
+       if c.method == -1 {
 
18746
+               return c.fn(in)
 
18747
+       } else if c.method == -2 {
 
18748
+               if c.typ.IsVariadic() {
 
18749
+                       return c.rcvr.CallSlice(in)
 
18750
+               } else {
 
18751
+                       return c.rcvr.Call(in)
 
18752
+               }
 
18753
+       } else {
 
18754
+               m := c.rcvr.Method(c.method)
 
18755
+               if c.typ.IsVariadic() {
 
18756
+                       return m.CallSlice(in)
 
18757
+               } else {
 
18758
+                       return m.Call(in)
 
18759
+               }
 
18760
+       }
 
18761
+}
 
18762
Index: libgo/go/reflect/makefuncgo_amd64.go
 
18763
===================================================================
 
18764
--- a/src/libgo/go/reflect/makefuncgo_amd64.go  (.../tags/gcc_4_8_2_release)
 
18765
+++ b/src/libgo/go/reflect/makefuncgo_amd64.go  (.../branches/gcc-4_8-branch)
 
18766
@@ -319,7 +319,7 @@
 
18767
        // All the real arguments have been found and turned into
 
18768
        // Value's.  Call the real function.
 
18769
 
 
18770
-       out := c.fn(in)
 
18771
+       out := c.call(in)
 
18772
 
 
18773
        if len(out) != len(ftyp.out) {
 
18774
                panic("reflect: wrong return count from function created by MakeFunc")
 
18775
Index: libgo/go/go/build/syslist.go
 
18776
===================================================================
 
18777
--- a/src/libgo/go/go/build/syslist.go  (.../tags/gcc_4_8_2_release)
 
18778
+++ b/src/libgo/go/go/build/syslist.go  (.../branches/gcc-4_8-branch)
 
18779
@@ -0,0 +1,8 @@
 
18780
+// Copyright 2011 The Go Authors.  All rights reserved.
 
18781
+// Use of this source code is governed by a BSD-style
 
18782
+// license that can be found in the LICENSE file.
 
18783
+
 
18784
+package build
 
18785
+
 
18786
+const goosList = "darwin dragonfly freebsd linux netbsd openbsd plan9 windows solaris "
 
18787
+const goarchList = "386 amd64 arm alpha m68k mipso32 mipsn32 mipsn64 mipso64 ppc ppc64 sparc sparc64 "
 
18788
Index: libgo/go/syscall/libcall_linux.go
 
18789
===================================================================
 
18790
--- a/src/libgo/go/syscall/libcall_linux.go     (.../tags/gcc_4_8_2_release)
 
18791
+++ b/src/libgo/go/syscall/libcall_linux.go     (.../branches/gcc-4_8-branch)
 
18792
@@ -190,6 +190,9 @@
 
18793
 //sys  Adjtimex(buf *Timex) (state int, err error)
 
18794
 //adjtimex(buf *Timex) _C_int
 
18795
 
 
18796
+//sysnb        Dup3(oldfd int, newfd int, flags int) (err error)
 
18797
+//dup3(oldfd _C_int, newfd _C_int, flags _C_int) _C_int
 
18798
+
 
18799
 //sys  Faccessat(dirfd int, path string, mode uint32, flags int) (err error)
 
18800
 //faccessat(dirfd _C_int, pathname *byte, mode _C_int, flags _C_int) _C_int
 
18801
 
 
18802
@@ -268,6 +271,9 @@
 
18803
        return origlen - len(buf), count, names
 
18804
 }
 
18805
 
 
18806
+//sys  Getxattr(path string, attr string, dest []byte) (sz int, err error)
 
18807
+//getxattr(path *byte, attr *byte, buf *byte, count Size_t) Ssize_t
 
18808
+
 
18809
 //sys  InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error)
 
18810
 //inotify_add_watch(fd _C_int, pathname *byte, mask uint32) _C_int
 
18811
 
 
18812
@@ -283,6 +289,9 @@
 
18813
 //sys  Klogctl(typ int, buf []byte) (n int, err error)
 
18814
 //klogctl(typ _C_int, bufp *byte, len _C_int) _C_int
 
18815
 
 
18816
+//sys  Listxattr(path string, dest []byte) (sz int, err error)
 
18817
+//listxattr(path *byte, list *byte, size Size_t) Ssize_t
 
18818
+
 
18819
 //sys  Mkdirat(dirfd int, path string, mode uint32) (err error)
 
18820
 //mkdirat(dirfd _C_int, path *byte, mode Mode_t) _C_int
 
18821
 
 
18822
@@ -305,6 +314,9 @@
 
18823
 //sys  PivotRoot(newroot string, putold string) (err error)
 
18824
 //pivot_root(newroot *byte, putold *byte) _C_int
 
18825
 
 
18826
+//sys  Removexattr(path string, attr string) (err error)
 
18827
+//removexattr(path *byte, name *byte) _C_int
 
18828
+
 
18829
 //sys  Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
 
18830
 //renameat(olddirfd _C_int, oldpath *byte, newdirfd _C_int, newpath *byte) _C_int
 
18831
 
 
18832
@@ -338,6 +350,9 @@
 
18833
 //sysnb        Setresuid(ruid int, eguid int, suid int) (err error)
 
18834
 //setresuid(ruid Uid_t, euid Uid_t, suid Uid_t) _C_int
 
18835
 
 
18836
+//sys  Setxattr(path string, attr string, data []byte, flags int) (err error)
 
18837
+//setxattr(path *byte, name *byte, value *byte, size Size_t, flags _C_int) _C_int
 
18838
+
 
18839
 //sys  splice(rfd int, roff *_loff_t, wfd int, woff *_loff_t, len int, flags int) (n int64, err error)
 
18840
 //splice(rfd _C_int, roff *_loff_t, wfd _C_int, woff *_loff_t, len Size_t, flags _C_uint) Ssize_t
 
18841
 func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
 
18842
Index: libgo/go/syscall/socket.go
 
18843
===================================================================
 
18844
--- a/src/libgo/go/syscall/socket.go    (.../tags/gcc_4_8_2_release)
 
18845
+++ b/src/libgo/go/syscall/socket.go    (.../branches/gcc-4_8-branch)
 
18846
@@ -25,7 +25,7 @@
 
18847
        Pad  [96]int8
 
18848
 }
 
18849
 
 
18850
-const SizeofSockaddrAny = 0x1c
 
18851
+const SizeofSockaddrAny = 0x6c
 
18852
 
 
18853
 type SockaddrInet4 struct {
 
18854
        Port int
 
18855
Index: libgo/go/syscall/libcall_posix.go
 
18856
===================================================================
 
18857
--- a/src/libgo/go/syscall/libcall_posix.go     (.../tags/gcc_4_8_2_release)
 
18858
+++ b/src/libgo/go/syscall/libcall_posix.go     (.../branches/gcc-4_8-branch)
 
18859
@@ -238,6 +238,9 @@
 
18860
 //sysnb        Getppid() (ppid int)
 
18861
 //getppid() Pid_t
 
18862
 
 
18863
+//sys Getpriority(which int, who int) (prio int, err error)
 
18864
+//getpriority(which _C_int, who _C_int) _C_int
 
18865
+
 
18866
 //sysnb        Getrlimit(resource int, rlim *Rlimit) (err error)
 
18867
 //getrlimit(resource _C_int, rlim *Rlimit) _C_int
 
18868
 
 
18869
@@ -307,6 +310,9 @@
 
18870
 //sysnb        Setpgid(pid int, pgid int) (err error)
 
18871
 //setpgid(pid Pid_t, pgid Pid_t) _C_int
 
18872
 
 
18873
+//sys Setpriority(which int, who int, prio int) (err error)
 
18874
+//setpriority(which _C_int, who _C_int, prio _C_int) _C_int
 
18875
+
 
18876
 //sysnb        Setreuid(ruid int, euid int) (err error)
 
18877
 //setreuid(ruid Uid_t, euid Uid_t) _C_int
 
18878
 
 
18879
Index: libgo/Makefile.am
 
18880
===================================================================
 
18881
--- a/src/libgo/Makefile.am     (.../tags/gcc_4_8_2_release)
 
18882
+++ b/src/libgo/Makefile.am     (.../branches/gcc-4_8-branch)
 
18883
@@ -424,6 +424,7 @@
 
18884
        runtime/go-caller.c \
 
18885
        runtime/go-callers.c \
 
18886
        runtime/go-can-convert-interface.c \
 
18887
+       runtime/go-cdiv.c \
 
18888
        runtime/go-cgo.c \
 
18889
        runtime/go-check-interface.c \
 
18890
        runtime/go-construct-map.c \
 
18891
@@ -1254,7 +1255,7 @@
 
18892
        go/go/build/build.go \
 
18893
        go/go/build/doc.go \
 
18894
        go/go/build/read.go \
 
18895
-       syslist.go
 
18896
+       go/go/build/syslist.go
 
18897
 go_go_doc_files = \
 
18898
        go/go/doc/comment.go \
 
18899
        go/go/doc/doc.go \
 
18900
@@ -2712,15 +2713,6 @@
 
18901
        @$(CHECK)
 
18902
 .PHONY: go/build/check
 
18903
 
 
18904
-syslist.go: s-syslist; @true
 
18905
-s-syslist: Makefile
 
18906
-       echo '// Generated automatically by make.' >syslist.go.tmp
 
18907
-       echo 'package build' >>syslist.go.tmp
 
18908
-       echo 'const goosList = "$(GOOS)"' >>syslist.go.tmp
 
18909
-       echo 'const goarchList = "$(GOARCH)"' >>syslist.go.tmp
 
18910
-       $(SHELL) $(srcdir)/../move-if-change syslist.go.tmp syslist.go
 
18911
-       $(STAMP) $@
 
18912
-
 
18913
 @go_include@ go/doc.lo.dep
 
18914
 go/doc.lo.dep: $(go_go_doc_files)
 
18915
        $(BUILDDEPS)
 
18916
Index: libcpp/po/ChangeLog
 
18917
===================================================================
 
18918
--- a/src/libcpp/po/ChangeLog   (.../tags/gcc_4_8_2_release)
 
18919
+++ b/src/libcpp/po/ChangeLog   (.../branches/gcc-4_8-branch)
 
18920
@@ -1,3 +1,7 @@
 
18921
+2013-11-01  Joseph Myers  <joseph@codesourcery.com>
 
18922
+
 
18923
+       * tr.po: Update.
 
18924
+
 
18925
 2013-10-16  Release Manager
 
18926
 
 
18927
        * GCC 4.8.2 released.
 
18928
Index: libcpp/po/tr.po
 
18929
===================================================================
 
18930
--- a/src/libcpp/po/tr.po       (.../tags/gcc_4_8_2_release)
 
18931
+++ b/src/libcpp/po/tr.po       (.../branches/gcc-4_8-branch)
 
18932
@@ -1,20 +1,22 @@
 
18933
 # Turkish translations for cpplib messages.
 
18934
 # Copyright (C) 2007 Free Software Foundation, Inc.
 
18935
+# This file is distributed under the same license as the gcc package.
 
18936
 #
 
18937
 # Nilgün Belma Bugüner <nilgun@buguner.name.tr>, 2001, ..., 2007.
 
18938
+# Volkan Gezer <vlkngzr@gmail.com>, 2013.
 
18939
 msgid ""
 
18940
 msgstr ""
 
18941
-"Project-Id-Version: cpplib 4.2.0\n"
 
18942
+"Project-Id-Version: cpplib 4.8.0\n"
 
18943
 "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
 
18944
-"POT-Creation-Date: 2013-02-24 01:05+0000\n"
 
18945
-"PO-Revision-Date: 2007-05-23 01:17+0300\n"
 
18946
-"Last-Translator: Nilgün Belma Bugüner <nilgun@buguner.name.tr>\n"
 
18947
+"POT-Creation-Date: 2013-03-15 17:42+0000\n"
 
18948
+"PO-Revision-Date: 2013-11-01 22:29+0100\n"
 
18949
+"Last-Translator: Volkan Gezer <vlkngzr@gmail.com>\n"
 
18950
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
 
18951
 "Language: tr\n"
 
18952
 "MIME-Version: 1.0\n"
 
18953
 "Content-Type: text/plain; charset=UTF-8\n"
 
18954
 "Content-Transfer-Encoding: 8bit\n"
 
18955
-"X-Generator: KBabel 1.11.4\n"
 
18956
+"X-Generator: Lokalize 1.5\n"
 
18957
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
18958
 
 
18959
 #: charset.c:673
 
18960
@@ -121,10 +123,9 @@
 
18961
 msgstr "ISO standardı olmayan önceleme dizgesi, '\\%c'"
 
18962
 
 
18963
 #: charset.c:1320
 
18964
-#, fuzzy, c-format
 
18965
-#| msgid "unknown escape sequence '\\%c'"
 
18966
+#, c-format
 
18967
 msgid "unknown escape sequence: '\\%c'"
 
18968
-msgstr "bilinmeyen önceleme dizgesi '\\%c'"
 
18969
+msgstr "bilinmeyen kaçış dizgesi: '\\%c'"
 
18970
 
 
18971
 #: charset.c:1328
 
18972
 #, c-format
 
18973
@@ -163,10 +164,9 @@
 
18974
 msgstr "#%s bir GCC uzantısıdır"
 
18975
 
 
18976
 #: directives.c:362
 
18977
-#, fuzzy, c-format
 
18978
-#| msgid "#%s is a GCC extension"
 
18979
+#, c-format
 
18980
 msgid "#%s is a deprecated GCC extension"
 
18981
-msgstr "#%s bir GCC uzantısıdır"
 
18982
+msgstr "#%s eskimiş bir GCC uzantısıdır"
 
18983
 
 
18984
 #: directives.c:375
 
18985
 msgid "suggest not using #elif in traditional C"
 
18986
@@ -247,7 +247,7 @@
 
18987
 
 
18988
 #: directives.c:909
 
18989
 msgid "unexpected end of file after #line"
 
18990
-msgstr ""
 
18991
+msgstr "#line satırından sonra beklenmeyen dosya sonu"
 
18992
 
 
18993
 #: directives.c:912
 
18994
 #, c-format
 
18995
@@ -271,7 +271,7 @@
 
18996
 #: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
 
18997
 #, c-format
 
18998
 msgid "%s"
 
18999
-msgstr ""
 
19000
+msgstr "%s"
 
19001
 
 
19002
 #: directives.c:1096
 
19003
 #, c-format
 
19004
@@ -312,16 +312,12 @@
 
19005
 msgstr "main dosyasında '#pragma once'"
 
19006
 
 
19007
 #: directives.c:1462
 
19008
-#, fuzzy
 
19009
-#| msgid "invalid #pragma GCC poison directive"
 
19010
 msgid "invalid #pragma push_macro directive"
 
19011
-msgstr "geçersiz #pragma GCC poison yönergesi"
 
19012
+msgstr "geçersiz #pragma güdümlü_makro yönergesi"
 
19013
 
 
19014
 #: directives.c:1517
 
19015
-#, fuzzy
 
19016
-#| msgid "invalid #pragma GCC poison directive"
 
19017
 msgid "invalid #pragma pop_macro directive"
 
19018
-msgstr "geçersiz #pragma GCC poison yönergesi"
 
19019
+msgstr "geçersiz #pragma güdümlü_makro yönergesi"
 
19020
 
 
19021
 #: directives.c:1572
 
19022
 msgid "invalid #pragma GCC poison directive"
 
19023
@@ -347,10 +343,9 @@
 
19024
 msgstr "mevcut dosya %s den daha eski"
 
19025
 
 
19026
 #: directives.c:1653
 
19027
-#, fuzzy, c-format
 
19028
-#| msgid "invalid #pragma GCC poison directive"
 
19029
+#, c-format
 
19030
 msgid "invalid \"#pragma GCC %s\" directive"
 
19031
-msgstr "geçersiz #pragma GCC poison yönergesi"
 
19032
+msgstr "geçersiz \"#pragma GCC %s\" yönergesi"
 
19033
 
 
19034
 #: directives.c:1847
 
19035
 msgid "_Pragma takes a parenthesized string literal"
 
19036
@@ -405,7 +400,7 @@
 
19037
 msgid "\"%s\" re-asserted"
 
19038
 msgstr "\"%s\" tekrar olumlanmış"
 
19039
 
 
19040
-#: directives.c:2566
 
19041
+#: directives.c:2567
 
19042
 #, c-format
 
19043
 msgid "unterminated #%s"
 
19044
 msgstr "sonlandırılmamış #%s"
 
19045
@@ -424,16 +419,12 @@
 
19046
 msgstr "%s: %s"
 
19047
 
 
19048
 #: expr.c:479 expr.c:577
 
19049
-#, fuzzy
 
19050
-#| msgid "imaginary constants are a GCC extension"
 
19051
 msgid "fixed-point constants are a GCC extension"
 
19052
-msgstr "sanal sabitler bir GCC genişletmesidir"
 
19053
+msgstr "sabit noktalı sabitler bir GCC uzantısıdır"
 
19054
 
 
19055
 #: expr.c:504
 
19056
-#, fuzzy
 
19057
-#| msgid "invalid suffix \"%.*s\" on floating constant"
 
19058
 msgid "invalid prefix \"0b\" for floating constant"
 
19059
-msgstr "gerçel sabitin \"%.*s\" soneki geçersiz"
 
19060
+msgstr "kayan nokta için geçerisz \"0b\" öntakısı"
 
19061
 
 
19062
 #: expr.c:514
 
19063
 msgid "use of C99 hexadecimal floating constant"
 
19064
@@ -450,10 +441,8 @@
 
19065
 msgstr "geleneksel C \"%.*s\" sonekini kullanmaz"
 
19066
 
 
19067
 #: expr.c:564
 
19068
-#, fuzzy
 
19069
-#| msgid "imaginary constants are a GCC extension"
 
19070
 msgid "suffix for double constant is a GCC extension"
 
19071
-msgstr "sanal sabitler bir GCC genişletmesidir"
 
19072
+msgstr "çift sabit için öntakı bir GCC uzantısıdır"
 
19073
 
 
19074
 #: expr.c:570
 
19075
 #, c-format
 
19076
@@ -461,10 +450,8 @@
 
19077
 msgstr "onaltılık kayan sabitli \"%.*s\" soneki geçersiz"
 
19078
 
 
19079
 #: expr.c:581
 
19080
-#, fuzzy
 
19081
-#| msgid "imaginary constants are a GCC extension"
 
19082
 msgid "decimal float constants are a GCC extension"
 
19083
-msgstr "sanal sabitler bir GCC genişletmesidir"
 
19084
+msgstr "onluk kayan sabitler bir GCC uzantısıdır"
 
19085
 
 
19086
 #: expr.c:599
 
19087
 #, c-format
 
19088
@@ -472,10 +459,8 @@
 
19089
 msgstr "tamsayı sabitte sonek \"%.*s\" soneki geçersiz"
 
19090
 
 
19091
 #: expr.c:624
 
19092
-#, fuzzy
 
19093
-#| msgid "use of C99 long long integer constant"
 
19094
 msgid "use of C++0x long long integer constant"
 
19095
-msgstr "ISO C99 long long tamsayı sabitleri yasaklar"
 
19096
+msgstr "ISO C++0x long long tamsayı sabitlerinin kullanımı"
 
19097
 
 
19098
 #: expr.c:625
 
19099
 msgid "use of C99 long long integer constant"
 
19100
@@ -486,10 +471,8 @@
 
19101
 msgstr "sanal sabitler bir GCC genişletmesidir"
 
19102
 
 
19103
 #: expr.c:644
 
19104
-#, fuzzy
 
19105
-#| msgid "imaginary constants are a GCC extension"
 
19106
 msgid "binary constants are a GCC extension"
 
19107
-msgstr "sanal sabitler bir GCC genişletmesidir"
 
19108
+msgstr "ikili sabitler bir GCC uzantısıdır"
 
19109
 
 
19110
 #: expr.c:737
 
19111
 msgid "integer constant is too large for its type"
 
19112
@@ -517,10 +500,8 @@
 
19113
 msgstr "\"defined\" bu kullanımıyla uyarlanabilir olmayabilir"
 
19114
 
 
19115
 #: expr.c:948
 
19116
-#, fuzzy
 
19117
-#| msgid "integer overflow in preprocessor expression"
 
19118
 msgid "user-defined literal in preprocessor expression"
 
19119
-msgstr "önişlemci ifadesinde tamsayı taşması"
 
19120
+msgstr "önişleyici ifadesinde kullanıcı tanımlı bağımlı"
 
19121
 
 
19122
 #: expr.c:953
 
19123
 msgid "floating constant in preprocessor expression"
 
19124
@@ -536,20 +517,17 @@
 
19125
 msgstr "\"%s\" tanımlı değil"
 
19126
 
 
19127
 #: expr.c:1020
 
19128
-#, fuzzy
 
19129
-#| msgid "#%s is a GCC extension"
 
19130
 msgid "assertions are a GCC extension"
 
19131
-msgstr "#%s bir GCC uzantısıdır"
 
19132
+msgstr "belirteçler bir GCC uzantısıdır"
 
19133
 
 
19134
 #: expr.c:1023
 
19135
 msgid "assertions are a deprecated extension"
 
19136
-msgstr ""
 
19137
+msgstr "belirteçler artık kullanılmayan bir ifadedir"
 
19138
 
 
19139
 #: expr.c:1268
 
19140
-#, fuzzy, c-format
 
19141
-#| msgid "unbalanced stack in #if"
 
19142
+#, c-format
 
19143
 msgid "unbalanced stack in %s"
 
19144
-msgstr "#if ifadesinde karşılıksız yığın"
 
19145
+msgstr "%s içinde dengelenmemiş yığın"
 
19146
 
 
19147
 #: expr.c:1288
 
19148
 #, c-format
 
19149
@@ -594,39 +572,39 @@
 
19150
 msgid "division by zero in #if"
 
19151
 msgstr "#if içinde sıfırla bölme"
 
19152
 
 
19153
-#: files.c:504
 
19154
+#: files.c:505
 
19155
 msgid "NULL directory in find_file"
 
19156
 msgstr "find_file içinde boş dizin"
 
19157
 
 
19158
-#: files.c:542
 
19159
+#: files.c:553
 
19160
 msgid "one or more PCH files were found, but they were invalid"
 
19161
 msgstr "bir veya daha fazla PCH dosyası bulundu ama bunlar geçersiz"
 
19162
 
 
19163
-#: files.c:545
 
19164
+#: files.c:556
 
19165
 msgid "use -Winvalid-pch for more information"
 
19166
 msgstr "daha fazla bilgi almak için -Winvalid-pch kullanın"
 
19167
 
 
19168
-#: files.c:643
 
19169
+#: files.c:660
 
19170
 #, c-format
 
19171
 msgid "%s is a block device"
 
19172
 msgstr "%s bir blok aygıtıdır"
 
19173
 
 
19174
-#: files.c:660
 
19175
+#: files.c:677
 
19176
 #, c-format
 
19177
 msgid "%s is too large"
 
19178
 msgstr "%s çok büyük"
 
19179
 
 
19180
-#: files.c:700
 
19181
+#: files.c:717
 
19182
 #, c-format
 
19183
 msgid "%s is shorter than expected"
 
19184
 msgstr "%s beklenenden daha kısa"
 
19185
 
 
19186
-#: files.c:935
 
19187
+#: files.c:953
 
19188
 #, c-format
 
19189
 msgid "no include path in which to search for %s"
 
19190
 msgstr "%s için aranacaklar içinde başlık dosyaları yolu yok"
 
19191
 
 
19192
-#: files.c:1363
 
19193
+#: files.c:1381
 
19194
 msgid "Multiple include guards may be useful for:\n"
 
19195
 msgstr "Çoklu include önlemleri aşağıdakiler için kullanışlı olabilir:\n"
 
19196
 
 
19197
@@ -717,27 +695,24 @@
 
19198
 #: lex.c:1178 lex.c:1255
 
19199
 #, c-format
 
19200
 msgid "identifier \"%s\" is a special operator name in C++"
 
19201
-msgstr ""
 
19202
+msgstr "\"%s\" belirteci, C++'da özel bir işleç adıdır"
 
19203
 
 
19204
 #: lex.c:1399
 
19205
 msgid "raw string delimiter longer than 16 characters"
 
19206
-msgstr ""
 
19207
+msgstr "ham dizge ayracı 16 karakterden uzun"
 
19208
 
 
19209
 #: lex.c:1402
 
19210
-#, fuzzy, c-format
 
19211
-#| msgid "universal character %.*s is not valid in an identifier"
 
19212
+#, c-format
 
19213
 msgid "invalid character '%c' in raw string delimiter"
 
19214
-msgstr "evrensel karakter %.*s bir belirteç içinde geçerli değil"
 
19215
+msgstr "ham dizge ayracında geçersiz karakter '%c'"
 
19216
 
 
19217
 #: lex.c:1525 lex.c:1547
 
19218
-#, fuzzy
 
19219
-#| msgid "unterminated #%s"
 
19220
 msgid "unterminated raw string"
 
19221
-msgstr "sonlandırılmamış #%s"
 
19222
+msgstr "bitirilmemiş ham dizge"
 
19223
 
 
19224
 #: lex.c:1573 lex.c:1706
 
19225
 msgid "invalid suffix on literal; C++11 requires a space between literal and identifier"
 
19226
-msgstr ""
 
19227
+msgstr "geçersiz ifade soneki; C++11 ifade ve tanımlayıcı arasında bir boşluk gerektirir"
 
19228
 
 
19229
 #: lex.c:1684
 
19230
 msgid "null character(s) preserved in literal"
 
19231
@@ -785,7 +760,7 @@
 
19232
 
 
19233
 #: macro.c:377
 
19234
 msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
 
19235
-msgstr ""
 
19236
+msgstr "__COUNTER__ -fdirectives-only ile talimat içerisinde genişletildi"
 
19237
 
 
19238
 #: macro.c:535
 
19239
 msgid "invalid string literal, ignoring final '\\'"
 
19240
@@ -823,7 +798,7 @@
 
19241
 #: macro.c:1746
 
19242
 #, c-format
 
19243
 msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
 
19244
-msgstr ""
 
19245
+msgstr "%s makrosu %d argümanı uygulanıyor: ISO C90 ve ISO C++98 içerisinde boş makro argümanları tanımsızdır"
 
19246
 
 
19247
 #: macro.c:2708
 
19248
 #, c-format
 
19249
@@ -890,38 +865,36 @@
 
19250
 msgid "invalid hash type %d in cpp_macro_definition"
 
19251
 msgstr "cpp_macro_definition içindeki isimli yapı türü %d geçersiz"
 
19252
 
 
19253
-#: pch.c:87 pch.c:335 pch.c:347 pch.c:365 pch.c:371 pch.c:380 pch.c:387
 
19254
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
 
19255
 msgid "while writing precompiled header"
 
19256
 msgstr "önderlemeli başlık yazılırken"
 
19257
 
 
19258
-#: pch.c:607
 
19259
-#, fuzzy, c-format
 
19260
-#| msgid "%s: not used because `%s' is defined"
 
19261
+#: pch.c:619
 
19262
+#, c-format
 
19263
 msgid "%s: not used because `%.*s' is poisoned"
 
19264
-msgstr "%s: `%s' tanımlı olduğundan kullanılmadı"
 
19265
+msgstr "%s: `%.*s' zehirli olduğu için kullanılmadı"
 
19266
 
 
19267
-#: pch.c:629
 
19268
+#: pch.c:641
 
19269
 #, c-format
 
19270
 msgid "%s: not used because `%.*s' not defined"
 
19271
 msgstr "%s: `%.*s' tanımlı olmadığından kullanılmadı"
 
19272
 
 
19273
-#: pch.c:641
 
19274
+#: pch.c:653
 
19275
 #, c-format
 
19276
 msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
 
19277
 msgstr "%s: `%.*s' kullanılmadı çünkü `%s' olarak tanımlı, `%.*s' değil"
 
19278
 
 
19279
-#: pch.c:682
 
19280
+#: pch.c:694
 
19281
 #, c-format
 
19282
 msgid "%s: not used because `%s' is defined"
 
19283
 msgstr "%s: `%s' tanımlı olduğundan kullanılmadı"
 
19284
 
 
19285
-#: pch.c:702
 
19286
-#, fuzzy, c-format
 
19287
-#| msgid "%s: not used because `%s' is defined"
 
19288
+#: pch.c:714
 
19289
+#, c-format
 
19290
 msgid "%s: not used because `__COUNTER__' is invalid"
 
19291
-msgstr "%s: `%s' tanımlı olduğundan kullanılmadı"
 
19292
+msgstr "%s: `__COUNTER__' geçersiz olduğundan kullanılmadı"
 
19293
 
 
19294
-#: pch.c:711 pch.c:886
 
19295
+#: pch.c:723 pch.c:898
 
19296
 msgid "while reading precompiled header"
 
19297
 msgstr "önderlemeli başlık okunurken"
 
19298
 
 
19299
Index: .
 
19300
===================================================================
 
19301
--- a/src/.     (.../tags/gcc_4_8_2_release)
 
19302
+++ b/src/.     (.../branches/gcc-4_8-branch)
 
19303
 
 
19304
Property changes on: .
 
19305
___________________________________________________________________
 
19306
Modified: svn:mergeinfo
 
19307
   Merged /trunk:r202766,204547