1
# DP: updates from the 4.8 branch upto 20131121 (r205210).
5
cat > ${dir}LAST_UPDATED <<EOF
6
Thu Nov 21 12:39:23 CET 2013
7
Thu Nov 21 11:39:23 UTC 2013 (revision 205210)
11
LANG=C svn diff svn://gcc.gnu.org/svn/gcc/tags/gcc_4_8_2_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_8-branch \
12
| sed -r 's,^--- (\S+)\t(\S+)(.*)$,--- a/src/\1\t\2,;s,^\+\+\+ (\S+)\t(\S+)(.*)$,+++ b/src/\1\t\2,' \
13
| awk '/^Index:.*\.(class|texi)/ {skip=1; next} /^Index:/ { skip=0 } skip==0'
15
Index: libstdc++-v3/doc/xml/manual/status_cxx2011.xml
16
===================================================================
17
--- a/src/libstdc++-v3/doc/xml/manual/status_cxx2011.xml (.../tags/gcc_4_8_2_release)
18
+++ b/src/libstdc++-v3/doc/xml/manual/status_cxx2011.xml (.../branches/gcc-4_8-branch)
23
+ <?dbhtml bgcolor="#B0B0B0" ?>
24
<entry>20.9.7.6</entry>
25
<entry>Other transformations</entry>
28
+ <entry>Partial</entry>
29
+ <entry>Missing <code>aligned_union</code>.</entry>
33
Index: libstdc++-v3/doc/xml/manual/spine.xml
34
===================================================================
35
--- a/src/libstdc++-v3/doc/xml/manual/spine.xml (.../tags/gcc_4_8_2_release)
36
+++ b/src/libstdc++-v3/doc/xml/manual/spine.xml (.../branches/gcc-4_8-branch)
43
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.fsf.org">FSF</link>
45
Index: libstdc++-v3/doc/html/bk02.html
46
===================================================================
47
--- a/src/libstdc++-v3/doc/html/bk02.html (.../tags/gcc_4_8_2_release)
48
+++ b/src/libstdc++-v3/doc/html/bk02.html (.../branches/gcc-4_8-branch)
50
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
51
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
52
\ No newline at end of file
53
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
54
\ No newline at end of file
55
Index: libstdc++-v3/doc/html/bk03.html
56
===================================================================
57
--- a/src/libstdc++-v3/doc/html/bk03.html (.../tags/gcc_4_8_2_release)
58
+++ b/src/libstdc++-v3/doc/html/bk03.html (.../branches/gcc-4_8-branch)
60
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
61
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
62
\ No newline at end of file
63
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
64
\ No newline at end of file
65
Index: libstdc++-v3/doc/html/faq.html
66
===================================================================
67
--- a/src/libstdc++-v3/doc/html/faq.html (.../tags/gcc_4_8_2_release)
68
+++ b/src/libstdc++-v3/doc/html/faq.html (.../branches/gcc-4_8-branch)
70
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
71
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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 ©
72
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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 ©
75
<a class="link" href="http://www.fsf.org" target="_top">FSF</a>
76
- </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">
77
+ </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">
79
</a></dt><dt>1.2. <a href="faq.html#faq.why">
80
Why should I use libstdc++?
81
Index: libstdc++-v3/doc/html/index.html
82
===================================================================
83
--- a/src/libstdc++-v3/doc/html/index.html (.../tags/gcc_4_8_2_release)
84
+++ b/src/libstdc++-v3/doc/html/index.html (.../branches/gcc-4_8-branch)
86
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
87
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
88
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
89
Copyright (C) 2008-2013
90
<a class="link" href="http://www.fsf.org/" target="_top">FSF
93
</p></li><li class="listitem"><p>
94
<a class="link" href="api.html" title="The GNU C++ Library API Reference">API and Source Documentation</a>
95
</p></li></ul></div><p>
96
- </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.
97
+ </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.
100
</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.
102
</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.
105
-</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.
106
+</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.
109
</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.
112
-</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.
113
+</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.
116
</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.
117
Index: libstdc++-v3/doc/html/api.html
118
===================================================================
119
--- a/src/libstdc++-v3/doc/html/api.html (.../tags/gcc_4_8_2_release)
120
+++ b/src/libstdc++-v3/doc/html/api.html (.../branches/gcc-4_8-branch)
122
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
123
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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 ©
124
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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 ©
129
<a class="link" href="http://www.fsf.org/" target="_top">FSF
131
- </p></div><div><div class="legalnotice"><a id="idp3706336"></a><p>
132
+ </p></div><div><div class="legalnotice"><a id="idm270006235696"></a><p>
133
<a class="link" href="manual/license.html" title="License">License
135
</p></div></div></div><hr /></div><p>
136
Index: libstdc++-v3/doc/html/manual/dynamic_memory.html
137
===================================================================
138
--- a/src/libstdc++-v3/doc/html/manual/dynamic_memory.html (.../tags/gcc_4_8_2_release)
139
+++ b/src/libstdc++-v3/doc/html/manual/dynamic_memory.html (.../branches/gcc-4_8-branch)
141
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
142
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
143
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
146
</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>
147
Index: libstdc++-v3/doc/html/manual/iterators.html
148
===================================================================
149
--- a/src/libstdc++-v3/doc/html/manual/iterators.html (.../tags/gcc_4_8_2_release)
150
+++ b/src/libstdc++-v3/doc/html/manual/iterators.html (.../branches/gcc-4_8-branch)
152
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
153
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
154
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
157
</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.
159
</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.
161
- <a id="idp16156992" class="indexterm"></a>
162
-</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>
163
+ <a id="idm269999374096" class="indexterm"></a>
164
+</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>
166
FAQ <a class="link" href="../faq.html#faq.iterator_as_pod" title="7.1.">entry</a> points out that
167
iterators are not implemented as pointers. They are a generalization
168
Index: libstdc++-v3/doc/html/manual/mt_allocator_ex_single.html
169
===================================================================
170
--- a/src/libstdc++-v3/doc/html/manual/mt_allocator_ex_single.html (.../tags/gcc_4_8_2_release)
171
+++ b/src/libstdc++-v3/doc/html/manual/mt_allocator_ex_single.html (.../branches/gcc-4_8-branch)
173
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
174
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
175
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
176
Let's start by describing how the data on a freelist is laid out in memory.
177
This is the first two blocks in freelist for thread id 3 in bin 3 (8 bytes):
178
</p><pre class="programlisting">
179
Index: libstdc++-v3/doc/html/manual/generalized_numeric_operations.html
180
===================================================================
181
--- a/src/libstdc++-v3/doc/html/manual/generalized_numeric_operations.html (.../tags/gcc_4_8_2_release)
182
+++ b/src/libstdc++-v3/doc/html/manual/generalized_numeric_operations.html (.../branches/gcc-4_8-branch)
184
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
185
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
186
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
189
</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>
190
Index: libstdc++-v3/doc/html/manual/mt_allocator.html
191
===================================================================
192
--- a/src/libstdc++-v3/doc/html/manual/mt_allocator.html (.../tags/gcc_4_8_2_release)
193
+++ b/src/libstdc++-v3/doc/html/manual/mt_allocator.html (.../branches/gcc-4_8-branch)
195
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
196
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
197
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
200
-</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>
201
+</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>
202
</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>
203
The mt allocator [hereinafter referred to simply as "the allocator"]
204
is a fixed size (power of two) allocator that was initially
205
Index: libstdc++-v3/doc/html/manual/unordered_associative.html
206
===================================================================
207
--- a/src/libstdc++-v3/doc/html/manual/unordered_associative.html (.../tags/gcc_4_8_2_release)
208
+++ b/src/libstdc++-v3/doc/html/manual/unordered_associative.html (.../branches/gcc-4_8-branch)
210
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
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>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.
212
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
215
</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>
216
Index: libstdc++-v3/doc/html/manual/configure.html
217
===================================================================
218
--- a/src/libstdc++-v3/doc/html/manual/configure.html (.../tags/gcc_4_8_2_release)
219
+++ b/src/libstdc++-v3/doc/html/manual/configure.html (.../branches/gcc-4_8-branch)
221
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
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>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>
223
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
224
When configuring libstdc++, you'll have to configure the entire
225
<span class="emphasis"><em>gccsrcdir</em></span> directory. Consider using the
226
toplevel gcc configuration option
227
Index: libstdc++-v3/doc/html/manual/status.html
228
===================================================================
229
--- a/src/libstdc++-v3/doc/html/manual/status.html (.../tags/gcc_4_8_2_release)
230
+++ b/src/libstdc++-v3/doc/html/manual/status.html (.../branches/gcc-4_8-branch)
232
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
233
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
234
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
237
-</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>
238
+</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>
239
This status table is based on the table of contents of ISO/IEC 14882:2003.
241
This page describes the C++ support in mainline GCC SVN, not in any
243
-</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">
244
+</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">
245
<span class="emphasis"><em>18</em></span>
246
</td><td colspan="3" align="left">
247
<span class="emphasis"><em>Language support</em></span>
250
This page describes the C++11 support in mainline GCC SVN, not in any
252
-</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">
253
+</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">
254
<span class="emphasis"><em>18</em></span>
255
</td><td colspan="3" align="left">
256
<span class="emphasis"><em>Language support</em></span>
258
is_trivially_copy_constructible, is_trivially_move_constructible,
259
is_trivially_assignable, is_trivially_default_assignable,
260
is_trivially_copy_assignable, is_trivially_move_assignable
261
- </td></tr><tr><td align="left">20.9.5</td><td align="left">Type property queries</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.6</td><td align="left">Relationships between types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7</td><td align="left">Transformations between types</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.9.7.1</td><td align="left">Const-volatile modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.2</td><td align="left">Reference modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.3</td><td align="left">Sign modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.4</td><td align="left">Array modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.5</td><td align="left">Pointer modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.6</td><td align="left">Other transformations</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10</td><td align="left">Compile-time rational arithmetic</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.10.1</td><td align="left">In general</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.10.2</td><td align="left">Header <code class="code"><ratio></code> synopsis</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.10.3</td><td align="left">Class template <code class="code">ratio</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10.4</td><td align="left">Arithmetic on <code class="code">ratio</code>s</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10.5</td><td align="left">Comparison of <code class="code">ratio</code>s</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10.6</td><td align="left">SI types for <code class="code">ratio</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11</td><td align="left">Time utilities</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.3</td><td align="left">Clock requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.4</td><td align="left">Time-related traits</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.4.1</td><td align="left"><code class="code">treat_as_floating_point</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.4.2</td><td align="left"><code class="code">duration_values</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.4.3</td><td align="left">Specializations of <code class="code">common_type</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.11.5</td><td align="left">Class template <code class="code">duration</code></td><td align="left">Partial</td><td align="left">Missing constexpr for non-member arithmetic operations</td></tr><tr><td align="left">20.11.6</td><td align="left">Class template <code class="code">time_point</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7</td><td align="left">Clocks</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.7.1</td><td align="left">Class <code class="code">system_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7.2</td><td align="left">Class <code class="code">steady_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7.3</td><td align="left">Class <code class="code">high_resolution_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.8</td><td align="left">Date and time functions</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.12</td><td align="left">Scoped allocator adaptor</td><td align="left">Partial</td><td align="left"> </td></tr><tr><td align="left">20.12.1</td><td align="left">Header <code class="code"><scoped_allocator></code> synopsis</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.12.2</td><td align="left">Scoped allocator adaptor member types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.12.3</td><td align="left">Scoped allocator adaptor constructors</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.12.4</td><td align="left">Scoped allocator adaptor members</td><td align="left">Partial</td><td align="left">OUTERMOST is not recursive.</td></tr><tr><td align="left">20.12.5</td><td align="left">Scoped allocator operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.13</td><td align="left">Class <code class="code">type_index</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
262
+ </td></tr><tr><td align="left">20.9.5</td><td align="left">Type property queries</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.6</td><td align="left">Relationships between types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7</td><td align="left">Transformations between types</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.9.7.1</td><td align="left">Const-volatile modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.2</td><td align="left">Reference modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.3</td><td align="left">Sign modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.4</td><td align="left">Array modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.9.7.5</td><td align="left">Pointer modifications</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.9.7.6</td><td align="left">Other transformations</td><td align="left">Partial</td><td align="left">Missing <code class="code">aligned_union</code>.</td></tr><tr><td align="left">20.10</td><td align="left">Compile-time rational arithmetic</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.10.1</td><td align="left">In general</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.10.2</td><td align="left">Header <code class="code"><ratio></code> synopsis</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.10.3</td><td align="left">Class template <code class="code">ratio</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10.4</td><td align="left">Arithmetic on <code class="code">ratio</code>s</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10.5</td><td align="left">Comparison of <code class="code">ratio</code>s</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.10.6</td><td align="left">SI types for <code class="code">ratio</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11</td><td align="left">Time utilities</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.3</td><td align="left">Clock requirements</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.4</td><td align="left">Time-related traits</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.4.1</td><td align="left"><code class="code">treat_as_floating_point</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.4.2</td><td align="left"><code class="code">duration_values</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.4.3</td><td align="left">Specializations of <code class="code">common_type</code></td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.11.5</td><td align="left">Class template <code class="code">duration</code></td><td align="left">Partial</td><td align="left">Missing constexpr for non-member arithmetic operations</td></tr><tr><td align="left">20.11.6</td><td align="left">Class template <code class="code">time_point</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7</td><td align="left">Clocks</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.11.7.1</td><td align="left">Class <code class="code">system_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7.2</td><td align="left">Class <code class="code">steady_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.7.3</td><td align="left">Class <code class="code">high_resolution_clock</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.11.8</td><td align="left">Date and time functions</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.12</td><td align="left">Scoped allocator adaptor</td><td align="left">Partial</td><td align="left"> </td></tr><tr><td align="left">20.12.1</td><td align="left">Header <code class="code"><scoped_allocator></code> synopsis</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">20.12.2</td><td align="left">Scoped allocator adaptor member types</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.12.3</td><td align="left">Scoped allocator adaptor constructors</td><td align="left">Y</td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left">20.12.4</td><td align="left">Scoped allocator adaptor members</td><td align="left">Partial</td><td align="left">OUTERMOST is not recursive.</td></tr><tr><td align="left">20.12.5</td><td align="left">Scoped allocator operators</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">20.13</td><td align="left">Class <code class="code">type_index</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">
263
<span class="emphasis"><em>21</em></span>
264
</td><td colspan="3" align="left">
265
<span class="emphasis"><em>Strings</em></span>
268
This page describes the TR1 support in mainline GCC SVN, not in any particular
270
-</p><div class="table"><a id="idp7483200"></a><p class="title"><strong>Table 1.3. C++ TR1 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR1 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left"><span class="emphasis"><em>2</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td align="left">2.1</td><td align="left">Reference wrappers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.1</td><td align="left">Additions to header <code class="code"><functional></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2</td><td align="left">Class template <code class="code">reference_wrapper</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.2.1</td><td align="left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.2</td><td align="left"><code class="code">reference_wrapper</code> assignment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.3</td><td align="left"><code class="code">reference_wrapper</code> access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.4</td><td align="left"><code class="code">reference_wrapper</code> invocation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.5</td><td align="left"><code class="code">reference_wrapper</code> helper functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2</td><td align="left">Smart pointers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.2.1</td><td align="left">Additions to header <code class="code"><memory></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.2</td><td align="left">Class <code class="code">bad_weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3</td><td align="left">Class template <code class="code">shared_ptr</code></td><td align="left"> </td><td align="left">
271
+</p><div class="table"><a id="idm270006687472"></a><p class="title"><strong>Table 1.3. C++ TR1 Implementation Status</strong></p><div class="table-contents"><table summary="C++ TR1 Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Section</th><th align="left">Description</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left"><span class="emphasis"><em>2</em></span></td><td colspan="3" align="left"><span class="emphasis"><em>General Utilities</em></span></td></tr><tr><td align="left">2.1</td><td align="left">Reference wrappers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.1</td><td align="left">Additions to header <code class="code"><functional></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2</td><td align="left">Class template <code class="code">reference_wrapper</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.1.2.1</td><td align="left"><code class="code">reference_wrapper</code> construct/copy/destroy</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.2</td><td align="left"><code class="code">reference_wrapper</code> assignment</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.3</td><td align="left"><code class="code">reference_wrapper</code> access</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.4</td><td align="left"><code class="code">reference_wrapper</code> invocation</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.1.2.5</td><td align="left"><code class="code">reference_wrapper</code> helper functions</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2</td><td align="left">Smart pointers</td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left">2.2.1</td><td align="left">Additions to header <code class="code"><memory></code> synopsis</td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.2</td><td align="left">Class <code class="code">bad_weak_ptr</code></td><td align="left">Y</td><td align="left"> </td></tr><tr><td align="left">2.2.3</td><td align="left">Class template <code class="code">shared_ptr</code></td><td align="left"> </td><td align="left">
274
<a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">boost::shared_ptr</a>.
277
This page describes the TR 24733 support in mainline GCC SVN, not in any
279
-</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">
280
+</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">
281
<span class="emphasis"><em>0</em></span>
282
</td><td colspan="3" align="left">
283
<span class="emphasis"><em>Introduction</em></span>
284
Index: libstdc++-v3/doc/html/manual/profile_mode_devel.html
285
===================================================================
286
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_devel.html (.../tags/gcc_4_8_2_release)
287
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_devel.html (.../branches/gcc-4_8-branch)
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>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
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>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
292
<code class="code">-D_GLIBCXX_PROFILE</code> through preprocessor directives in
293
<code class="code">include/std/*</code>.
294
</p><p>Instrumented implementations are provided in
295
Index: libstdc++-v3/doc/html/manual/debug_mode_design.html
296
===================================================================
297
--- a/src/libstdc++-v3/doc/html/manual/debug_mode_design.html (.../tags/gcc_4_8_2_release)
298
+++ b/src/libstdc++-v3/doc/html/manual/debug_mode_design.html (.../branches/gcc-4_8-branch)
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>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>
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>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>
303
</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>
304
</p><p> The libstdc++ debug mode replaces unsafe (but efficient) standard
305
containers and iterators with semantically equivalent safe standard
307
</p><p> There are several existing implementations of debug modes for C++
308
standard library implementations, although none of them directly
309
supports debugging for programs using libstdc++. The existing
310
- 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>:
311
+ 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>:
312
SafeSTL was the original debugging version of the Standard Template
313
Library (STL), implemented by Cay S. Horstmann on top of the
314
Hewlett-Packard STL. Though it inspired much work in this area, it
315
Index: libstdc++-v3/doc/html/manual/policy_data_structures_design.html
316
===================================================================
317
--- a/src/libstdc++-v3/doc/html/manual/policy_data_structures_design.html (.../tags/gcc_4_8_2_release)
318
+++ b/src/libstdc++-v3/doc/html/manual/policy_data_structures_design.html (.../branches/gcc-4_8-branch)
320
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
321
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
322
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
323
Associative containers are typically parametrized by various
324
policies. For example, a hash-based associative container is
325
parametrized by a hash-functor, transforming each key into an
327
naturally; collision-chaining hash tables (label B) store
328
equivalent-key values in the same bucket, the bucket can be
329
arranged so that equivalent-key values are consecutive.
330
- </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>
331
+ </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>
332
Put differently, the standards' non-unique mapping
333
associative-containers are associative containers that map
334
primary keys to linked lists that are embedded into the
336
first graphic above. Labels A and B, respectively. Each shaded
337
box represents some size-type or secondary
338
associative-container.
339
- </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>
340
+ </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>
341
In the first example above, then, one would use an associative
342
container mapping each user to an associative container which
343
maps each application id to a start time (see
345
shows invariants for order-preserving containers: point-type
346
iterators are synonymous with range-type iterators.
347
Orthogonally, <span class="emphasis"><em>C</em></span>shows invariants for "set"
348
- 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
349
+ 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
350
(hash-based associative containers) lack movement
351
operators, such as <code class="literal">operator++</code> - in fact, this
352
is the reason why this library differentiates from the standard C++ librarys
354
to the question of whether point-type iterators and range-type
355
iterators are valid. The graphic below shows tags corresponding to
356
different types of invalidation guarantees.
357
- </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>
358
+ </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>
359
<code class="classname">basic_invalidation_guarantee</code>
360
corresponds to a basic guarantee that a point-type iterator,
361
a found pointer, or a found reference, remains valid as long
364
This library contains a container tag hierarchy corresponding to the
366
- </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>
367
+ </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>
368
Given any container <span class="type">Cntnr</span>, the tag of
369
the underlying data structure can be found via <code class="literal">typename
370
Cntnr::container_category</code>.
372
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
373
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
374
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
375
- 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
376
+ 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
377
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
378
strings of 3 characters). A hash-table algorithm needs to map
379
elements of U "uniformly" into the range [0,..., m -
381
Z<sub>+</sub>,</p><p>which maps a non-negative hash value, and a non-negative
382
range upper-bound into a non-negative integral in the range
383
between 0 (inclusive) and the range upper bound (exclusive),
384
- 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">
385
+ 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">
386
f(u , m) = g(h(u), m)
387
</span></div></div><br class="equation-break" /><p>From the above, it is obvious that given g and
388
h, f can always be composed (however the converse
390
transforming the sequence of hash values into a sequence of
391
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
392
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
393
- 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">
394
+ 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">
396
</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
397
v (typically powers of 2), and some a. Each of
399
implement using the low
400
level % (modulo) operation (for any m), or the
401
low level & (bit-mask) operation (for the case where
402
- 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">
403
+ 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">
405
- </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">
406
+ </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">
407
g(r, m) = r & m - 1, (with m =
408
2<sup>k</sup> for some k)
409
</span></div></div><br class="equation-break" /><p>respectively.</p><p>The % (modulo) implementation has the advantage that for
411
s = [ s<sub>0</sub>,..., s<sub>t - 1</sub>]
412
</p><p>be a string of t characters, each of which is from
413
domain S. Consider the following ranged-hash
414
- function:</p><div class="equation"><a id="idp18163200"></a><p class="title"><strong>Equation 22.5.
415
+ function:</p><div class="equation"><a id="idm269997367984"></a><p class="title"><strong>Equation 22.5.
416
A Standard String Hash Function
417
</strong></p><div class="equation-contents"><span class="mathphrase">
418
f<sub>1</sub>(s, m) = ∑ <sub>i =
420
of a long DNA sequence (and so S = {'A', 'C', 'G',
421
'T'}). In this case, scanning the entire string might be
422
prohibitively expensive. A possible alternative might be to use
423
- 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.
424
+ 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.
425
Only k String DNA Hash
426
</strong></p><div class="equation-contents"><span class="mathphrase">
427
f<sub>2</sub>(s, m) = ∑ <sub>i
428
@@ -606,12 +606,12 @@
429
the container transforms the key into a non-negative integral
430
using the hash functor (points B and C), and transforms the
431
result into a position using the combining functor (points D
432
- 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
433
+ 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
434
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
435
a ranged-hash function. The graphic below shows an <code class="function">insert</code> sequence
436
diagram. The user inserts an element (point A), the container
437
transforms the key into a position using the combining functor
438
- (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>
439
+ (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>
441
</h6></div></div></div><p><code class="classname">gp_hash_table</code> is parametrized by
442
<code class="classname">Hash_Fn</code>, <code class="classname">Probe_Fn</code>,
444
a linear probe and a quadratic probe function,
445
respectively.</p></li></ol></div><p>
446
The graphic below shows the relationships.
447
- </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
448
+ </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
449
shrink. It is necessary to specify policies to determine how
450
and when a hash table should change its size. Usually, resize
451
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
452
@@ -667,10 +667,10 @@
453
and some load factor be denoted by Α. We would like to
454
calculate the minimal length of k, such that if there were Α
455
m elements in the hash table, a probe sequence of length k would
456
- 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
457
+ 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
458
k appears in bin i by p<sub>i</sub>, the
459
length of the probe sequence of bin i by
460
- l<sub>i</sub>, and assume uniform distribution. Then</p><div class="equation"><a id="idp18240448"></a><p class="title"><strong>Equation 22.7.
461
+ l<sub>i</sub>, and assume uniform distribution. Then</p><div class="equation"><a id="idm269997290864"></a><p class="title"><strong>Equation 22.7.
462
Probability of Probe Sequence of Length k
463
</strong></p><div class="equation-contents"><span class="mathphrase">
466
l<sub>i</sub> are negatively-dependent
467
(<a class="xref" href="policy_data_structures.html#biblio.dubhashi98neg" title="Balls and bins: A study in negative dependence">[biblio.dubhashi98neg]</a>)
469
- I(.) denote the indicator function. Then</p><div class="equation"><a id="idp18247216"></a><p class="title"><strong>Equation 22.8.
470
+ I(.) denote the indicator function. Then</p><div class="equation"><a id="idm269997284096"></a><p class="title"><strong>Equation 22.8.
471
Probability Probe Sequence in Some Bin
472
</strong></p><div class="equation-contents"><span class="mathphrase">
473
P( exists<sub>i</sub> l<sub>i</sub> ≥ k ) =
475
a resize is needed, and if so, what is the new size (points D
476
to G); following the resize, it notifies the policy that a
477
resize has completed (point H); finally, the element is
478
- 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
479
+ 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
480
decomposed to a size policy and a trigger policy. Consequently,
481
the library contains a single class for instantiating a resize
482
policy: <code class="classname">hash_standard_resize_policy</code>
484
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>)
485
to these policies.</p><p>The two graphics immediately below show sequence diagrams
486
illustrating the interaction between the standard resize policy
487
- 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
488
- 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
489
+ 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
490
+ 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
491
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
492
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>
493
implements a load check trigger policy.</p></li><li class="listitem"><p><code class="classname">cc_hash_max_collision_check_resize_trigger</code>
495
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
496
each node the size of the sub-tree rooted at the node; the
497
second stores at each node the maximal endpoint of the
498
- 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
499
+ 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
500
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
501
should be (if any).</p></li><li class="listitem"><p>Various operations can invalidate node
502
invariants. The graphic below shows how a right rotation,
504
metadata.</p></li><li class="listitem"><p>It is not feasible to know in advance which methods trees
505
can support. Besides the usual <code class="classname">find</code> method, the
506
first tree can support a <code class="classname">find_by_order</code> method, while
507
- 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:
508
+ 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:
509
node iterators, and template-template node updater
510
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
511
types, <code class="classname">const_node_iterator</code>
513
<code class="classname">node_update</code> class, and publicly subclasses
514
<code class="classname">node_update</code>. The graphic below shows this
515
scheme, as well as some predefined policies (which are explained
516
- 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
517
+ 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
518
<code class="classname">Node_Update</code>) must define <code class="classname">metadata_type</code> as
519
the type of metadata it requires. For order statistics,
520
e.g., <code class="classname">metadata_type</code> might be <code class="classname">size_t</code>.
522
<code class="classname">nd_it</code>. For example, say node x in the
523
graphic below label A has an invalid invariant, but its' children,
524
y and z have valid invariants. After the invocation, all three
525
- 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,
526
+ 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,
527
it invokes this method in its <code class="classname">node_update</code> base to
528
restore the invariant. For example, the graphic below shows
529
an <code class="function">insert</code> operation (point A); the tree performs some
531
C, and D). (It is well known that any <code class="function">insert</code>,
532
<code class="function">erase</code>, <code class="function">split</code> or <code class="function">join</code>, can restore
533
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>)
534
- .</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
535
+ .</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
536
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
537
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
538
tree?</p></li><li class="listitem"><p>How can the following cyclic dependency be resolved?
540
node's metadata (this is halting reducible). In the graphic
541
below, assume the shaded node is inserted. The tree would have
542
to traverse the useless path shown to the root, applying
543
- 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>
544
+ 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>
545
solves both these problems. The tree detects that node
546
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.
547
It is possible to split a tree so that it passes
548
@@ -1071,7 +1071,7 @@
549
sub-tree with leafs "a" and "as". The maximal common prefix is
550
"a". The internal node contains, consequently, to const
551
iterators, one pointing to <code class="varname">'a'</code>, and the other to
552
- <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
553
+ <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
554
tree-based containers. There are two minor
555
differences, though, which, unfortunately, thwart sharing them
556
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
557
@@ -1080,7 +1080,7 @@
558
parametrized by <code class="classname">Cmp_Fn</code>.</p></li><li class="listitem"><p>Tree-based containers store values in all nodes, while
559
trie-based containers (at least in this implementation) store
560
values in leafs.</p></li></ol></div><p>The graphic below shows the scheme, as well as some predefined
561
- 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
562
+ 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
563
updating policies:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
564
<code class="classname">trie_order_statistics_node_update</code>
565
supports order statistics.
566
@@ -1128,7 +1128,7 @@
567
simple list of integer keys. If we search for the integer 6, we
568
are paying an overhead: the link with key 6 is only the fifth
569
link; if it were the first link, it could be accessed
570
- 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
571
+ 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
572
accessed. They try to determine, by the access history, which
573
keys to move to the front of the list. Some of these algorithms
574
require adding some metadata alongside each entry.</p><p>For example, in the graphic below label A shows the counter
575
@@ -1138,7 +1138,7 @@
576
predetermined value, say 10, as shown in label C, the count is set
577
to 0 and the node is moved to the front of the list, as in label
579
- </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
580
+ </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
581
implementing any algorithm moving nodes to the front of the
582
list (policies implementing algorithms interchanging nodes are
583
unsupported).</p><p>Associative containers based on lists are parametrized by a
584
@@ -1310,7 +1310,7 @@
585
sequence; the second uses a tree (or forest of trees), which is
586
typically less structured than an associative container's tree;
587
the third simply uses an associative container. These are
588
- 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
589
+ 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
590
from a priority queue must incur a logarithmic expense (in the
591
amortized sense). Any priority queue implementation that would
592
avoid this, would violate known bounds on comparison-based
593
@@ -1390,7 +1390,7 @@
594
container <code class="classname">Cntnr</code>, the tag of the underlying
595
data structure can be found via <code class="classname">typename
596
Cntnr::container_category</code>; this is one of the possible tags shown in the graphic below.
597
- </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
598
+ </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
599
container type for its attributes. Given any container
600
<code class="classname">Cntnr</code>, then </p><pre class="programlisting">__gnu_pbds::container_traits<Cntnr></pre><p>
601
is a traits class identifying the properties of the
602
Index: libstdc++-v3/doc/html/manual/using.html
603
===================================================================
604
--- a/src/libstdc++-v3/doc/html/manual/using.html (.../tags/gcc_4_8_2_release)
605
+++ b/src/libstdc++-v3/doc/html/manual/using.html (.../branches/gcc-4_8-branch)
607
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
608
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
609
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
612
-</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>
613
+</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>
614
The set of features available in the GNU C++ library is shaped
616
several <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Invoking-GCC.html" target="_top">GCC
618
enumerated and detailed in the table below.
620
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.
621
- </p><div class="table"><a id="idp13051936"></a><p class="title"><strong>Table 3.1. C++ Command Options</strong></p><div class="table-contents"><table summary="C++ Command Options" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">Option Flags</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><code class="literal">-std=c++98</code></td><td align="left">Use the 1998 ISO C++ standard plus amendments.</td></tr><tr><td align="left"><code class="literal">-std=gnu++98</code></td><td align="left">As directly above, with GNU extensions.</td></tr><tr><td align="left"><code class="literal">-std=c++11</code></td><td align="left">Use the 2011 ISO C++ standard.</td></tr><tr><td align="left"><code class="literal">-std=gnu++11</code></td><td align="left">As directly above, with GNU extensions.</td></tr><tr><td align="left"><code class="literal">-fexceptions</code></td><td align="left">See <a class="link" href="using_exceptions.html#intro.using.exception.no" title="Doing without">exception-free dialect</a></td></tr><tr><td align="left"><code class="literal">-frtti</code></td><td align="left">As above, but RTTI-free dialect.</td></tr><tr><td align="left"><code class="literal">-pthread</code> or <code class="literal">-pthreads</code></td><td align="left">For ISO C++11 <thread>, <future>,
622
+ </p><div class="table"><a id="idm270002481088"></a><p class="title"><strong>Table 3.1. C++ Command Options</strong></p><div class="table-contents"><table summary="C++ Command Options" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">Option Flags</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><code class="literal">-std=c++98</code></td><td align="left">Use the 1998 ISO C++ standard plus amendments.</td></tr><tr><td align="left"><code class="literal">-std=gnu++98</code></td><td align="left">As directly above, with GNU extensions.</td></tr><tr><td align="left"><code class="literal">-std=c++11</code></td><td align="left">Use the 2011 ISO C++ standard.</td></tr><tr><td align="left"><code class="literal">-std=gnu++11</code></td><td align="left">As directly above, with GNU extensions.</td></tr><tr><td align="left"><code class="literal">-fexceptions</code></td><td align="left">See <a class="link" href="using_exceptions.html#intro.using.exception.no" title="Doing without">exception-free dialect</a></td></tr><tr><td align="left"><code class="literal">-frtti</code></td><td align="left">As above, but RTTI-free dialect.</td></tr><tr><td align="left"><code class="literal">-pthread</code> or <code class="literal">-pthreads</code></td><td align="left">For ISO C++11 <thread>, <future>,
623
<mutex>, or <condition_variable>.</td></tr><tr><td align="left"><code class="literal">-fopenmp</code></td><td align="left">For <a class="link" href="parallel_mode.html" title="Chapter 18. Parallel Mode">parallel</a> mode.</td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="make.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="intro.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_headers.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Make </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Headers</td></tr></table></div></body></html>
624
\ No newline at end of file
625
Index: libstdc++-v3/doc/html/manual/profile_mode_impl.html
626
===================================================================
627
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_impl.html (.../tags/gcc_4_8_2_release)
628
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_impl.html (.../branches/gcc-4_8-branch)
630
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
631
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
632
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
633
Accurate stack traces are needed during profiling since we group events by
634
call context and dynamic instance. Without accurate traces, diagnostics
635
may be hard to interpret. For instance, when giving advice to the user
636
Index: libstdc++-v3/doc/html/manual/ext_containers.html
637
===================================================================
638
--- a/src/libstdc++-v3/doc/html/manual/ext_containers.html (.../tags/gcc_4_8_2_release)
639
+++ b/src/libstdc++-v3/doc/html/manual/ext_containers.html (.../branches/gcc-4_8-branch)
641
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
642
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
643
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
646
-</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
647
+</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
648
been made with containers. Those dealing with older SGI-style
649
allocators are dealt with elsewhere. The remaining ones all deal
651
Index: libstdc++-v3/doc/html/manual/ext_concurrency_use.html
652
===================================================================
653
--- a/src/libstdc++-v3/doc/html/manual/ext_concurrency_use.html (.../tags/gcc_4_8_2_release)
654
+++ b/src/libstdc++-v3/doc/html/manual/ext_concurrency_use.html (.../branches/gcc-4_8-branch)
656
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
657
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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:
658
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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:
659
</p><pre class="programlisting">
660
#include <ext/concurrence.h>
662
Index: libstdc++-v3/doc/html/manual/ext_io.html
663
===================================================================
664
--- a/src/libstdc++-v3/doc/html/manual/ext_io.html (.../tags/gcc_4_8_2_release)
665
+++ b/src/libstdc++-v3/doc/html/manual/ext_io.html (.../branches/gcc-4_8-branch)
667
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
668
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
669
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
672
-</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>
673
+</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>
674
Extensions allowing <code class="code">filebuf</code>s to be constructed from
675
"C" types like FILE*s and file descriptors.
676
</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
677
Index: libstdc++-v3/doc/html/manual/termination.html
678
===================================================================
679
--- a/src/libstdc++-v3/doc/html/manual/termination.html (.../tags/gcc_4_8_2_release)
680
+++ b/src/libstdc++-v3/doc/html/manual/termination.html (.../branches/gcc-4_8-branch)
682
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
683
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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.
684
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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.
687
</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>
688
Index: libstdc++-v3/doc/html/manual/using_macros.html
689
===================================================================
690
--- a/src/libstdc++-v3/doc/html/manual/using_macros.html (.../tags/gcc_4_8_2_release)
691
+++ b/src/libstdc++-v3/doc/html/manual/using_macros.html (.../branches/gcc-4_8-branch)
693
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
694
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
695
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
696
All library macros begin with <code class="code">_GLIBCXX_</code>.
698
Furthermore, all pre-processor macros, switches, and
699
Index: libstdc++-v3/doc/html/manual/concurrency.html
700
===================================================================
701
--- a/src/libstdc++-v3/doc/html/manual/concurrency.html (.../tags/gcc_4_8_2_release)
702
+++ b/src/libstdc++-v3/doc/html/manual/concurrency.html (.../branches/gcc-4_8-branch)
704
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
705
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
706
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
709
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="atomics.html">Prev</a> </td><th width="60%" align="center">Part II.
711
</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.
713
- <a id="idp16404464" class="indexterm"></a>
714
-</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>
715
+ <a id="idm269999126816" class="indexterm"></a>
716
+</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>
717
Facilities for concurrent operation, and control thereof.
718
</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>
719
All items are declared in one of four standard header files.
720
Index: libstdc++-v3/doc/html/manual/ext_utilities.html
721
===================================================================
722
--- a/src/libstdc++-v3/doc/html/manual/ext_utilities.html (.../tags/gcc_4_8_2_release)
723
+++ b/src/libstdc++-v3/doc/html/manual/ext_utilities.html (.../branches/gcc-4_8-branch)
725
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
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>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.
727
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
730
</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>
731
Index: libstdc++-v3/doc/html/manual/policy_data_structures.html
732
===================================================================
733
--- a/src/libstdc++-v3/doc/html/manual/policy_data_structures.html (.../tags/gcc_4_8_2_release)
734
+++ b/src/libstdc++-v3/doc/html/manual/policy_data_structures.html (.../branches/gcc-4_8-branch)
736
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
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 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.
738
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
741
-</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">
742
+</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">
743
Configuring via Template Parameters
744
</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.traits">
745
Querying Container Attributes
747
these invariants, one must supply some policy that is aware
748
of these changes. Without this, it would be better to use a
749
linked list (in itself very efficient for these purposes).
750
- </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>
751
+ </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>
752
The standard C++ library contains associative containers based on
753
red-black trees and collision-chaining hash tables. These are
754
very useful, but they are not ideal for all types of
757
The figure below shows the different underlying data structures
758
currently supported in this library.
759
- </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>
760
+ </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>
761
A shows a collision-chaining hash-table, B shows a probing
762
hash-table, C shows a red-black tree, D shows a splay tree, E shows
763
a tree based on an ordered vector(implicit in the order of the
765
no guarantee that the elements traversed will coincide with the
766
<span class="emphasis"><em>logical</em></span> elements between 1 and 5, as in
768
- </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>
769
+ </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>
770
In our opinion, this problem is not caused just because
771
red-black trees are order preserving while
772
collision-chaining hash tables are (generally) not - it
774
list, as in the graphic below, label B. Here the iterators are as
775
light as can be, but the hash-table's operations are more
777
- </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>
778
+ </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>
779
It should be noted that containers based on collision-chaining
780
hash-tables are not the only ones with this type of behavior;
781
many other self-organizing data structures display it as well.
783
container. The graphic below shows three cases: A1 and A2 show
784
a red-black tree; B1 and B2 show a probing hash-table; C1 and C2
785
show a collision-chaining hash table.
786
- </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>
787
+ </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>
788
Erasing 5 from A1 yields A2. Clearly, an iterator to 3 can
789
be de-referenced and incremented. The sequence of iterators
790
changed, but in a way that is well-defined by the interface.
792
typically less structured than an associative container's tree;
793
the third simply uses an associative container. These are
794
shown in the figure below with labels A1 and A2, B, and C.
795
- </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>
796
+ </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>
797
No single implementation can completely replace any of the
798
others. Some have better <code class="function">push</code>
799
and <code class="function">pop</code> amortized performance, some have
800
@@ -1098,7 +1098,7 @@
801
</span>. </span><span class="publisher"><span class="publishername">
802
Proceedings of International Conference on Very Large Data Bases
803
. </span></span></p></div><div class="biblioentry"><a id="biblio.maverik_lowerbounds"></a><p>[biblio.maverik_lowerbounds] <span class="title"><em>
804
- <a class="link" href="http://magic.aladdin.cs.cmu.edu/2005/08/01/deamortization-part-2-binomial-heaps" target="_top">
805
+ <a class="link" href="http://magic.aladdin.cs.cmu.edu/2005/08/01/deamortization-part-2-binomial-heaps/" target="_top">
806
Deamortization - Part 2: Binomial Heaps
808
</em>. </span><span class="date">
809
@@ -1190,7 +1190,7 @@
810
</span>. </span><span class="publisher"><span class="publishername">
811
Addison-Wesley Publishing Company
812
. </span></span></p></div><div class="biblioentry"><a id="biblio.nelson96stlpq"></a><p>[biblio.nelson96stlpq] <span class="title"><em>
813
- <a class="link" href="http://www.dogma.net/markn/articles/pq_stl/priority.htm" target="_top">Priority Queues and the STL
814
+ <a class="link" href="http://marknelson.us/1996/01/01/priority-queues/" target="_top">Priority Queues and the STL
816
</em>. </span><span class="date">
818
Index: libstdc++-v3/doc/html/manual/ext_iterators.html
819
===================================================================
820
--- a/src/libstdc++-v3/doc/html/manual/ext_iterators.html (.../tags/gcc_4_8_2_release)
821
+++ b/src/libstdc++-v3/doc/html/manual/ext_iterators.html (.../branches/gcc-4_8-branch)
823
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
824
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
825
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
828
</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
829
Index: libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html
830
===================================================================
831
--- a/src/libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html (.../tags/gcc_4_8_2_release)
832
+++ b/src/libstdc++-v3/doc/html/manual/bitmap_allocator_impl.html (.../branches/gcc-4_8-branch)
834
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
835
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
836
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
837
The Free List Store (referred to as FLS for the remaining part of this
838
document) is the Global memory pool that is shared by all instances of
839
the bitmapped allocator instantiated for any type. This maintains a
842
Consider a block of size 64 ints. In memory, it would look like this:
843
(assume a 32-bit system where, size_t is a 32-bit entity).
844
- </p><div class="table"><a id="idp17500848"></a><p class="title"><strong>Table 21.1. Bitmap Allocator Memory Map</strong></p><div class="table-contents"><table summary="Bitmap Allocator Memory Map" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left">268</td><td align="left">0</td><td align="left">4294967295</td><td align="left">4294967295</td><td align="left">Data -> Space for 64 ints</td></tr></tbody></table></div></div><br class="table-break" /><p>
845
+ </p><div class="table"><a id="idm269998030352"></a><p class="title"><strong>Table 21.1. Bitmap Allocator Memory Map</strong></p><div class="table-contents"><table summary="Bitmap Allocator Memory Map" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /><col align="left" class="c5" /></colgroup><tbody><tr><td align="left">268</td><td align="left">0</td><td align="left">4294967295</td><td align="left">4294967295</td><td align="left">Data -> Space for 64 ints</td></tr></tbody></table></div></div><br class="table-break" /><p>
846
The first Column(268) represents the size of the Block in bytes as
847
seen by the Bitmap Allocator. Internally, a global free list is
848
used to keep track of the free blocks used and given back by the
849
Index: libstdc++-v3/doc/html/manual/appendix_contributing.html
850
===================================================================
851
--- a/src/libstdc++-v3/doc/html/manual/appendix_contributing.html (.../tags/gcc_4_8_2_release)
852
+++ b/src/libstdc++-v3/doc/html/manual/appendix_contributing.html (.../branches/gcc-4_8-branch)
854
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
855
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
856
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
859
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendix.html">Prev</a> </td><th width="60%" align="center">Part IV.
861
</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>
863
- <a id="idp21875168" class="indexterm"></a>
864
-</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>
865
+ <a id="idm269993657472" class="indexterm"></a>
866
+</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>
867
The GNU C++ Library follows an open development model. Active
868
contributors are assigned maintainer-ship responsibility, and given
869
write access to the source repository. First time contributors
871
for this group is quite useful.
872
</p></li><li class="listitem"><p>
874
- the <a class="link" href="http://www.gnu.org/prep/standards" target="_top">GNU
875
+ the <a class="link" href="http://www.gnu.org/prep/standards/" target="_top">GNU
876
Coding Standards</a>, and chuckle when you hit the part
877
about <span class="quote">“<span class="quote">Using Languages Other Than C</span>”</span>.
878
</p></li><li class="listitem"><p>
879
Index: libstdc++-v3/doc/html/manual/parallel_mode_test.html
880
===================================================================
881
--- a/src/libstdc++-v3/doc/html/manual/parallel_mode_test.html (.../tags/gcc_4_8_2_release)
882
+++ b/src/libstdc++-v3/doc/html/manual/parallel_mode_test.html (.../branches/gcc-4_8-branch)
884
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
885
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
886
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
887
Both the normal conformance and regression tests and the
888
supplemental performance tests work.
890
Index: libstdc++-v3/doc/html/manual/profile_mode.html
891
===================================================================
892
--- a/src/libstdc++-v3/doc/html/manual/profile_mode.html (.../tags/gcc_4_8_2_release)
893
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode.html (.../branches/gcc-4_8-branch)
895
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
896
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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.
897
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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.
900
-</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>
901
+</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>
902
<span class="emphasis"><em>Goal: </em></span>Give performance improvement advice based on
903
recognition of suboptimal usage patterns of the standard library.
907
(Environment variable not supported.)
908
</p></li></ul></div><p>
909
- </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">
910
+ </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">
911
Perflint: A Context Sensitive Performance Advisor for C++ Programs
912
</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">
913
Proceedings of the 2009 International Symposium on Code Generation
914
Index: libstdc++-v3/doc/html/manual/stringstreams.html
915
===================================================================
916
--- a/src/libstdc++-v3/doc/html/manual/stringstreams.html (.../tags/gcc_4_8_2_release)
917
+++ b/src/libstdc++-v3/doc/html/manual/stringstreams.html (.../branches/gcc-4_8-branch)
919
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
920
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
921
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
924
</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>
925
Index: libstdc++-v3/doc/html/manual/traits.html
926
===================================================================
927
--- a/src/libstdc++-v3/doc/html/manual/traits.html (.../tags/gcc_4_8_2_release)
928
+++ b/src/libstdc++-v3/doc/html/manual/traits.html (.../branches/gcc-4_8-branch)
930
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
931
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
932
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
935
</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>
936
Index: libstdc++-v3/doc/html/manual/policy_data_structures_ack.html
937
===================================================================
938
--- a/src/libstdc++-v3/doc/html/manual/policy_data_structures_ack.html (.../tags/gcc_4_8_2_release)
939
+++ b/src/libstdc++-v3/doc/html/manual/policy_data_structures_ack.html (.../branches/gcc-4_8-branch)
941
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
942
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
943
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
944
Written by Ami Tavory and Vladimir Dreizin (IBM Haifa Research
945
Laboratories), and Benjamin Kosnik (Red Hat).
947
- This library was partially written at
948
- <a class="link" href="http://www.haifa.il.ibm.com/" target="_top">IBM's Haifa Research Labs</a>.
949
+ This library was partially written at IBM's Haifa Research Labs.
950
It is based heavily on policy-based design and uses many useful
951
techniques from Modern C++ Design: Generic Programming and Design
952
Patterns Applied by Andrei Alexandrescu.
953
Index: libstdc++-v3/doc/html/manual/associative.html
954
===================================================================
955
--- a/src/libstdc++-v3/doc/html/manual/associative.html (.../tags/gcc_4_8_2_release)
956
+++ b/src/libstdc++-v3/doc/html/manual/associative.html (.../branches/gcc-4_8-branch)
958
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
959
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
960
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
963
</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>
964
Index: libstdc++-v3/doc/html/manual/ext_concurrency.html
965
===================================================================
966
--- a/src/libstdc++-v3/doc/html/manual/ext_concurrency.html (.../tags/gcc_4_8_2_release)
967
+++ b/src/libstdc++-v3/doc/html/manual/ext_concurrency.html (.../branches/gcc-4_8-branch)
969
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
970
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
971
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
974
-</th><td width="20%" align="right"> <a accesskey="n" href="ext_concurrency_impl.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency"></a>Chapter 30. Concurrency</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="ext_concurrency_impl.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency_impl.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions</a></span></dt><dt><span class="section"><a href="ext_concurrency_impl.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="ext_concurrency_use.html">Use</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.design"></a>Design</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.design.threads"></a>Interface to Locks and Mutexes</h3></div></div></div><p>The file <code class="filename"><ext/concurrence.h></code>
975
+</th><td width="20%" align="right"> <a accesskey="n" href="ext_concurrency_impl.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.ext.concurrency"></a>Chapter 30. Concurrency</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design">Design</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.threads">Interface to Locks and Mutexes</a></span></dt><dt><span class="section"><a href="ext_concurrency.html#manual.ext.concurrency.design.atomics">Interface to Atomic Functions</a></span></dt></dl></dd><dt><span class="section"><a href="ext_concurrency_impl.html">Implementation</a></span></dt><dd><dl><dt><span class="section"><a href="ext_concurrency_impl.html#manual.ext.concurrency.impl.atomic_fallbacks">Using Builtin Atomic Functions</a></span></dt><dt><span class="section"><a href="ext_concurrency_impl.html#manual.ext.concurrency.impl.thread">Thread Abstraction</a></span></dt></dl></dd><dt><span class="section"><a href="ext_concurrency_use.html">Use</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.concurrency.design"></a>Design</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.concurrency.design.threads"></a>Interface to Locks and Mutexes</h3></div></div></div><p>The file <code class="filename"><ext/concurrence.h></code>
976
contains all the higher-level
977
constructs for playing with threads. In contrast to the atomics layer,
978
the concurrence layer consists largely of types. All types are defined within <code class="code">namespace __gnu_cxx</code>.
979
Index: libstdc++-v3/doc/html/manual/support.html
980
===================================================================
981
--- a/src/libstdc++-v3/doc/html/manual/support.html (.../tags/gcc_4_8_2_release)
982
+++ b/src/libstdc++-v3/doc/html/manual/support.html (.../branches/gcc-4_8-branch)
984
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
985
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
986
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
989
</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.
991
</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.
993
- <a id="idp13745936" class="indexterm"></a>
994
-</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>
995
+ <a id="idm270001786944" class="indexterm"></a>
996
+</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>
997
This part deals with the functions called and objects created
998
automatically during the course of a program's existence.
1000
Index: libstdc++-v3/doc/html/manual/bitmap_allocator.html
1001
===================================================================
1002
--- a/src/libstdc++-v3/doc/html/manual/bitmap_allocator.html (.../tags/gcc_4_8_2_release)
1003
+++ b/src/libstdc++-v3/doc/html/manual/bitmap_allocator.html (.../branches/gcc-4_8-branch)
1005
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1006
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1007
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1010
-</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>
1011
+</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>
1012
</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>
1013
As this name suggests, this allocator uses a bit-map to keep track
1014
of the used and unused memory locations for its book-keeping
1015
Index: libstdc++-v3/doc/html/manual/license.html
1016
===================================================================
1017
--- a/src/libstdc++-v3/doc/html/manual/license.html (.../tags/gcc_4_8_2_release)
1018
+++ b/src/libstdc++-v3/doc/html/manual/license.html (.../branches/gcc-4_8-branch)
1020
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1021
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1022
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1023
There are two licenses affecting GNU libstdc++: one for the code,
1024
and one for the documentation.
1026
Index: libstdc++-v3/doc/html/manual/numerics.html
1027
===================================================================
1028
--- a/src/libstdc++-v3/doc/html/manual/numerics.html (.../tags/gcc_4_8_2_release)
1029
+++ b/src/libstdc++-v3/doc/html/manual/numerics.html (.../branches/gcc-4_8-branch)
1031
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1032
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1033
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1036
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="algorithms.html">Prev</a> </td><th width="60%" align="center">Part II.
1038
</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.
1040
- <a id="idp16214640" class="indexterm"></a>
1041
-</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>
1042
+ <a id="idm269999316576" class="indexterm"></a>
1043
+</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>
1044
</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>
1045
</p><p>Using <code class="code">complex<></code> becomes even more comple- er, sorry,
1046
<span class="emphasis"><em>complicated</em></span>, with the not-quite-gratuitously-incompatible
1047
Index: libstdc++-v3/doc/html/manual/using_exceptions.html
1048
===================================================================
1049
--- a/src/libstdc++-v3/doc/html/manual/using_exceptions.html (.../tags/gcc_4_8_2_release)
1050
+++ b/src/libstdc++-v3/doc/html/manual/using_exceptions.html (.../branches/gcc-4_8-branch)
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>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>
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>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>
1055
The C++ language provides language support for stack unwinding
1056
with <code class="literal">try</code> and <code class="literal">catch</code> blocks and
1057
the <code class="literal">throw</code> keyword.
1061
{ this->_M_setstate(ios_base::badbit); }
1062
-</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>
1063
+</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>
1064
<a class="link" href="http://www.opengroup.org/austin/" target="_top">
1065
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
1067
@@ -274,39 +274,39 @@
1068
. </span><span class="copyright">Copyright © 2008
1069
The Open Group/The Institute of Electrical and Electronics
1071
- . </span></p></div><div class="biblioentry"><a id="idp13647696"></a><p><span class="title"><em>
1072
+ . </span></p></div><div class="biblioentry"><a id="idm270001885328"></a><p><span class="title"><em>
1073
<a class="link" href="http://www.boost.org/community/error_handling.html" target="_top">
1074
Error and Exception Handling
1076
</em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams </span>. </span><span class="publisher"><span class="publishername">
1078
- . </span></span></p></div><div class="biblioentry"><a id="idp13651392"></a><p><span class="title"><em>
1079
+ . </span></span></p></div><div class="biblioentry"><a id="idm270001881632"></a><p><span class="title"><em>
1080
<a class="link" href="http://www.boost.org/community/exception_safety.html" target="_top">
1081
Exception-Safety in Generic Components
1083
</em>. </span><span class="author"><span class="firstname">David</span> <span class="surname">Abrahams</span>. </span><span class="publisher"><span class="publishername">
1085
- . </span></span></p></div><div class="biblioentry"><a id="idp13655104"></a><p><span class="title"><em>
1086
+ . </span></span></p></div><div class="biblioentry"><a id="idm270001877920"></a><p><span class="title"><em>
1087
<a class="link" href="www.open-std.org/jtc1/sc22/wg21/docs/papers/1997/N1077.pdf" target="_top">
1088
Standard Library Exception Policy
1090
</em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
1092
- . </span></span></p></div><div class="biblioentry"><a id="idp13658816"></a><p><span class="title"><em>
1093
+ . </span></span></p></div><div class="biblioentry"><a id="idm270001874208"></a><p><span class="title"><em>
1094
<a class="link" href="http://gcc.gnu.org/ml/gcc-patches/2001-03/msg00661.html" target="_top">
1095
ia64 c++ abi exception handling
1097
</em>. </span><span class="author"><span class="firstname">Richard</span> <span class="surname">Henderson</span>. </span><span class="publisher"><span class="publishername">
1099
- . </span></span></p></div><div class="biblioentry"><a id="idp13662512"></a><p><span class="title"><em>
1100
+ . </span></span></p></div><div class="biblioentry"><a id="idm270001870512"></a><p><span class="title"><em>
1101
<a class="link" href="http://www.research.att.com/~bs/3rd_safe.pdf" target="_top">
1102
Appendix E: Standard-Library Exception Safety
1104
- </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">
1105
+ </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">
1107
</em>. </span><span class="pagenums">
1108
Exception-Safety Issues and Techniques
1109
- . </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>
1110
+ . </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>
1111
<a class="link" href="http://gcc.gnu.org/PR25191" target="_top">
1112
GCC Bug 25191: exception_defines.h #defines try/catch
1114
Index: libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html
1115
===================================================================
1116
--- a/src/libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html (.../tags/gcc_4_8_2_release)
1117
+++ b/src/libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html (.../branches/gcc-4_8-branch)
1119
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1120
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
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>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.
1122
For a given container type in this library, the test creates
1123
an object of the container type and an object of the
1124
corresponding standard type (e.g., <code class="classname">std::set</code>). It
1125
Index: libstdc++-v3/doc/html/manual/parallel_mode_design.html
1126
===================================================================
1127
--- a/src/libstdc++-v3/doc/html/manual/parallel_mode_design.html (.../tags/gcc_4_8_2_release)
1128
+++ b/src/libstdc++-v3/doc/html/manual/parallel_mode_design.html (.../branches/gcc-4_8-branch)
1130
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1131
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1132
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1133
</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>
1134
All parallel algorithms are intended to have signatures that are
1135
equivalent to the ISO C++ algorithms replaced. For instance, the
1136
Index: libstdc++-v3/doc/html/manual/abi.html
1137
===================================================================
1138
--- a/src/libstdc++-v3/doc/html/manual/abi.html (.../tags/gcc_4_8_2_release)
1139
+++ b/src/libstdc++-v3/doc/html/manual/abi.html (.../branches/gcc-4_8-branch)
1141
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1142
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1143
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1144
Porting and Maintenance
1146
</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>
1147
@@ -493,39 +493,39 @@
1148
<a class="link" href="http://www.codesourcery.com/cxx-abi/" target="_top">
1151
- </em>. </span></p></div><div class="biblioentry"><a id="idp22945936"></a><p><span class="title"><em>
1152
+ </em>. </span></p></div><div class="biblioentry"><a id="idm269992586624"></a><p><span class="title"><em>
1153
<a class="link" href="http://www.intel.com/cd/software/products/asmo-na/eng/284736.htm" target="_top">
1154
Intel Compilers for Linux Compatibility with the GNU Compilers
1156
- </em>. </span></p></div><div class="biblioentry"><a id="idp22947792"></a><p><span class="title"><em>
1157
+ </em>. </span></p></div><div class="biblioentry"><a id="idm269992584768"></a><p><span class="title"><em>
1158
<a class="link" href="http://download.oracle.com/docs/cd/E19963-01/html/819-0690/index.html" target="_top">
1159
Linker and Libraries Guide (document 819-0690)
1161
- </em>. </span></p></div><div class="biblioentry"><a id="idp22949632"></a><p><span class="title"><em>
1162
+ </em>. </span></p></div><div class="biblioentry"><a id="idm269992582928"></a><p><span class="title"><em>
1163
<a class="link" href="http://download.oracle.com/docs/cd/E19422-01/819-3689/index.html" target="_top">
1164
Sun Studio 11: C++ Migration Guide (document 819-3689)
1166
- </em>. </span></p></div><div class="biblioentry"><a id="idp22951488"></a><p><span class="title"><em>
1167
+ </em>. </span></p></div><div class="biblioentry"><a id="idm269992581072"></a><p><span class="title"><em>
1168
<a class="link" href="http://www.akkadia.org/drepper/dsohowto.pdf" target="_top">
1169
How to Write Shared Libraries
1171
- </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>
1172
+ </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>
1173
<a class="link" href="http://www.arm.com/miscPDFs/8033.pdf" target="_top">
1174
C++ ABI for the ARM Architecture
1176
- </em>. </span></p></div><div class="biblioentry"><a id="idp22956736"></a><p><span class="title"><em>
1177
+ </em>. </span></p></div><div class="biblioentry"><a id="idm269992575824"></a><p><span class="title"><em>
1178
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1976.html" target="_top">
1179
Dynamic Shared Objects: Survey and Issues
1181
</em>. </span><span class="subtitle">
1183
- . </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>
1184
+ . </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>
1185
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2013.html" target="_top">
1186
Versioning With Namespaces
1188
</em>. </span><span class="subtitle">
1190
- . </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>
1191
+ . </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>
1192
<a class="link" href="http://syrcose.ispras.ru/2009/files/SYRCoSE2009-CfP.pdf" target="_top">
1193
Binary Compatibility of Shared Libraries Implemented in C++
1194
on GNU/Linux Systems
1195
Index: libstdc++-v3/doc/html/manual/intro.html
1196
===================================================================
1197
--- a/src/libstdc++-v3/doc/html/manual/intro.html (.../tags/gcc_4_8_2_release)
1198
+++ b/src/libstdc++-v3/doc/html/manual/intro.html (.../branches/gcc-4_8-branch)
1200
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1201
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1202
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1205
</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.
1207
- <a id="idp9040416" class="indexterm"></a>
1208
-</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>
1209
\ No newline at end of file
1210
+ <a id="idm270013458800" class="indexterm"></a>
1211
+</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>
1212
\ No newline at end of file
1213
Index: libstdc++-v3/doc/html/manual/profile_mode_api.html
1214
===================================================================
1215
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_api.html (.../tags/gcc_4_8_2_release)
1216
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_api.html (.../branches/gcc-4_8-branch)
1218
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1219
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1220
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1221
Many large projects use their own data structures instead of the ones in the
1222
standard library. If these data structures are similar in functionality
1223
to the standard library, they can be instrumented with the same hooks
1224
Index: libstdc++-v3/doc/html/manual/atomics.html
1225
===================================================================
1226
--- a/src/libstdc++-v3/doc/html/manual/atomics.html (.../tags/gcc_4_8_2_release)
1227
+++ b/src/libstdc++-v3/doc/html/manual/atomics.html (.../branches/gcc-4_8-branch)
1229
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1230
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1231
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1234
</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.
1236
</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.
1238
- <a id="idp16390640" class="indexterm"></a>
1239
-</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>
1240
+ <a id="idm269999140704" class="indexterm"></a>
1241
+</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>
1242
Facilities for atomic operations.
1243
</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>
1244
All items are declared in the standard header
1245
Index: libstdc++-v3/doc/html/manual/internals.html
1246
===================================================================
1247
--- a/src/libstdc++-v3/doc/html/manual/internals.html (.../tags/gcc_4_8_2_release)
1248
+++ b/src/libstdc++-v3/doc/html/manual/internals.html (.../branches/gcc-4_8-branch)
1250
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1251
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1252
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1253
Porting and Maintenance
1255
</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>
1256
Index: libstdc++-v3/doc/html/manual/policy_data_structures_using.html
1257
===================================================================
1258
--- a/src/libstdc++-v3/doc/html/manual/policy_data_structures_using.html (.../tags/gcc_4_8_2_release)
1259
+++ b/src/libstdc++-v3/doc/html/manual/policy_data_structures_using.html (.../branches/gcc-4_8-branch)
1261
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1262
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
1263
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
1264
other libraries except the standard C++ library . All classes are
1265
defined in namespace <code class="code">__gnu_pbds</code>. The library internally
1266
uses macros beginning with <code class="code">PB_DS</code>, but
1268
In addition, there are the following diagnostics classes,
1269
used to report errors specific to this library's data
1271
- </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>
1272
+ </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>
1273
For the most part, the policy-based containers containers in
1274
namespace <code class="literal">__gnu_pbds</code> have the same interface as
1275
the equivalent containers in the standard C++ library, except for
1276
Index: libstdc++-v3/doc/html/manual/bugs.html
1277
===================================================================
1278
--- a/src/libstdc++-v3/doc/html/manual/bugs.html (.../tags/gcc_4_8_2_release)
1279
+++ b/src/libstdc++-v3/doc/html/manual/bugs.html (.../branches/gcc-4_8-branch)
1281
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1282
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1283
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1284
Information on known bugs, details on efforts to fix them, and
1285
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>,
1286
with the category set to <code class="literal">libstdc++</code>.
1287
Index: libstdc++-v3/doc/html/manual/parallel_mode_using.html
1288
===================================================================
1289
--- a/src/libstdc++-v3/doc/html/manual/parallel_mode_using.html (.../tags/gcc_4_8_2_release)
1290
+++ b/src/libstdc++-v3/doc/html/manual/parallel_mode_using.html (.../branches/gcc-4_8-branch)
1292
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1293
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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>
1294
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1295
Any use of parallel functionality requires additional compiler
1296
and runtime support, in particular support for OpenMP. Adding this support is
1297
not difficult: just compile your application with the compiler
1299
flags for atomic operations.)
1300
</p><p> The following table provides the names and headers of all the
1301
parallel algorithms that can be used in a similar manner:
1302
-</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>
1303
\ No newline at end of file
1304
+</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>
1305
\ No newline at end of file
1306
Index: libstdc++-v3/doc/html/manual/ext_numerics.html
1307
===================================================================
1308
--- a/src/libstdc++-v3/doc/html/manual/ext_numerics.html (.../tags/gcc_4_8_2_release)
1309
+++ b/src/libstdc++-v3/doc/html/manual/ext_numerics.html (.../branches/gcc-4_8-branch)
1311
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1312
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1313
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1316
</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>,
1317
Index: libstdc++-v3/doc/html/manual/parallel_mode_semantics.html
1318
===================================================================
1319
--- a/src/libstdc++-v3/doc/html/manual/parallel_mode_semantics.html (.../tags/gcc_4_8_2_release)
1320
+++ b/src/libstdc++-v3/doc/html/manual/parallel_mode_semantics.html (.../branches/gcc-4_8-branch)
1322
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1323
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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,
1324
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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,
1325
i.e. user-defined functors must not throw exceptions.
1326
Also, the order of execution is not guaranteed for some functions, of course.
1327
Therefore, user-defined functors should not have any concurrent side effects.
1328
Index: libstdc++-v3/doc/html/manual/std_contents.html
1329
===================================================================
1330
--- a/src/libstdc++-v3/doc/html/manual/std_contents.html (.../tags/gcc_4_8_2_release)
1331
+++ b/src/libstdc++-v3/doc/html/manual/std_contents.html (.../branches/gcc-4_8-branch)
1333
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1334
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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.
1335
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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.
1337
</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.
1339
- </h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="chapter"><a href="support.html">4.
1340
+ </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.
1343
</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.
1345
</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.
1348
-</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.
1349
+</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.
1352
</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.
1355
-</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.
1356
+</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.
1359
</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.
1360
Index: libstdc++-v3/doc/html/manual/appendix.html
1361
===================================================================
1362
--- a/src/libstdc++-v3/doc/html/manual/appendix.html (.../tags/gcc_4_8_2_release)
1363
+++ b/src/libstdc++-v3/doc/html/manual/appendix.html (.../branches/gcc-4_8-branch)
1365
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1366
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1367
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1369
</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.
1371
-</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.
1372
+</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.
1375
</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.
1376
Index: libstdc++-v3/doc/html/manual/memory.html
1377
===================================================================
1378
--- a/src/libstdc++-v3/doc/html/manual/memory.html (.../tags/gcc_4_8_2_release)
1379
+++ b/src/libstdc++-v3/doc/html/manual/memory.html (.../branches/gcc-4_8-branch)
1381
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1382
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1383
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1386
</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>
1388
or loading and unloading shared objects in memory. As such, using
1389
caching allocators on systems that do not support
1390
<code class="function">abi::__cxa_atexit</code> is not recommended.
1391
- </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>
1392
+ </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>
1393
The only allocator interface that
1394
is supported is the standard C++ interface. As such, all STL
1395
containers have been adjusted, and all external allocators have
1398
The base class that <code class="classname">allocator</code> is derived from
1399
may not be user-configurable.
1400
-</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>
1401
+</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>
1402
It's difficult to pick an allocation strategy that will provide
1403
maximum utility, without excessively penalizing some behavior. In
1404
fact, it's difficult just deciding which typical actions to measure
1406
The current default choice for
1407
<code class="classname">allocator</code> is
1408
<code class="classname">__gnu_cxx::new_allocator</code>.
1409
- </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>
1410
+ </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>
1411
In use, <code class="classname">allocator</code> may allocate and
1412
deallocate using implementation-specific strategies and
1413
heuristics. Because of this, a given call to an allocator object's
1414
@@ -309,33 +309,33 @@
1415
of the used and unused memory locations. It has its own
1416
<a class="link" href="bitmap_allocator.html" title="Chapter 21. The bitmap_allocator">chapter</a>
1417
in the documentation.
1418
- </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">
1419
+ </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">
1420
ISO/IEC 14882:1998 Programming languages - C++
1423
- <span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry"><a id="idp13994688"></a><p><span class="title"><em>
1424
- <a class="link" href="http://www.drdobbs.com/cpp/184403759" target="_top">
1425
+ <span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry"><a id="idm270000082384"></a><p><span class="title"><em>
1426
+ <a class="link" href="http://www.drdobbs.com/the-standard-librarian-what-are-allocato/184403759" target="_top">
1427
The Standard Librarian: What Are Allocators Good For?
1429
</em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
1431
- . </span></span></p></div><div class="biblioentry"><a id="idp13998416"></a><p><span class="title"><em>
1432
+ . </span></span></p></div><div class="biblioentry"><a id="idm270000078608"></a><p><span class="title"><em>
1433
<a class="link" href="http://www.hoard.org/" target="_top">
1434
The Hoard Memory Allocator
1436
- </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>
1437
+ </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>
1438
<a class="link" href="http://people.cs.umass.edu/~emery/pubs/berger-oopsla2002.pdf" target="_top">
1439
Reconsidering Custom Memory Allocation
1441
- </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>
1442
+ </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>
1443
<a class="link" href="http://www.angelikalanger.com/Articles/C++Report/Allocators/Allocators.html" target="_top">
1446
</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">
1448
- . </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">
1449
+ . </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">
1451
- . </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
1452
+ . </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
1453
happen with misuse of the <code class="classname">auto_ptr</code> class
1454
template (called <acronym class="acronym">AP</acronym> here) would take some
1455
time. Suffice it to say that the use of <acronym class="acronym">AP</acronym>
1457
Derived classes override those functions to destroy resources in a context
1458
where the correct dynamic type is known. This is an application of the
1459
technique known as type erasure.
1460
- </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>
1461
+ </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>
1462
A <code class="classname">shared_ptr<T></code> contains a pointer of
1463
type <span class="type">T*</span> and an object of type
1464
<code class="classname">__shared_count</code>. The shared_count contains a
1466
aliasing constructor, make_shared & allocate_shared. Additionally,
1467
the constructors taking <code class="classname">auto_ptr</code> parameters are
1468
deprecated in C++11 mode.
1469
- </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15534784"></a>Thread Safety</h5></div></div></div><p>
1470
+ </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm269999996832"></a>Thread Safety</h5></div></div></div><p>
1472
-<a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm#ThreadSafety" target="_top">Thread
1473
+<a class="link" href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm#ThreadSafety" target="_top">Thread
1474
Safety</a> section of the Boost shared_ptr documentation says "shared_ptr
1475
objects offer the same level of thread safety as built-in types."
1476
The implementation must ensure that concurrent updates to separate shared_ptr
1478
shared_ptr in libstdc++ the compiler and library are fixed, which
1479
makes things much simpler: we have an atomic CAS or we don't, see Lock
1480
Policy below for details.
1481
-</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>
1482
+</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>
1484
There is a single <code class="classname">_Sp_counted_base</code> class,
1485
which is a template parameterized on the enum
1487
<code class="filename">ext/atomicity.h</code>, which detect if the program
1488
is multi-threaded. If only one thread of execution exists in
1489
the program then less expensive non-atomic operations are used.
1490
- </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>,
1491
+ </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>,
1492
<code class="code">const_pointer_cast</code></span></dt><dd><p>
1493
As noted in N2351, these functions can be implemented non-intrusively using
1494
the alias constructor. However the aliasing constructor is only available
1495
@@ -611,13 +611,13 @@
1496
As well as the extra constructors, this implementation also needs some
1497
members of _Sp_counted_deleter to be protected where they could otherwise
1499
- </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>
1500
+ </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>
1501
Examples of use can be found in the testsuite, under
1502
<code class="filename">testsuite/tr1/2_general_utilities/shared_ptr</code>,
1503
<code class="filename">testsuite/20_util/shared_ptr</code>
1505
<code class="filename">testsuite/20_util/weak_ptr</code>.
1506
- </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idp15576640"></a>Unresolved Issues</h5></div></div></div><p>
1507
+ </p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm269999954912"></a>Unresolved Issues</h5></div></div></div><p>
1508
The <span class="emphasis"><em><code class="classname">shared_ptr</code> atomic access</em></span>
1509
clause in the C++11 standard is not implemented in GCC.
1511
@@ -658,25 +658,25 @@
1512
code to work with, Peter Dimov in particular for his help and
1513
invaluable advice on thread safety. Phillip Jordan and Paolo
1514
Carlini for the lock policy implementation.
1515
- </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>
1516
+ </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>
1517
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2351.htm" target="_top">
1518
Improving shared_ptr for C++0x, Revision 2
1520
</em>. </span><span class="subtitle">
1522
- . </span></p></div><div class="biblioentry"><a id="idp15590224"></a><p><span class="title"><em>
1523
+ . </span></p></div><div class="biblioentry"><a id="idm269999941392"></a><p><span class="title"><em>
1524
<a class="link" href="http://open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2456.html" target="_top">
1525
C++ Standard Library Active Issues List
1527
</em>. </span><span class="subtitle">
1529
- . </span></p></div><div class="biblioentry"><a id="idp15592512"></a><p><span class="title"><em>
1530
+ . </span></p></div><div class="biblioentry"><a id="idm269999939104"></a><p><span class="title"><em>
1531
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2461.pdf" target="_top">
1532
Working Draft, Standard for Programming Language C++
1534
</em>. </span><span class="subtitle">
1536
- . </span></p></div><div class="biblioentry"><a id="idp15594816"></a><p><span class="title"><em>
1537
+ . </span></p></div><div class="biblioentry"><a id="idm269999936800"></a><p><span class="title"><em>
1538
<a class="link" href="http://boost.org/libs/smart_ptr/shared_ptr.htm" target="_top">
1539
Boost C++ Libraries documentation, shared_ptr
1541
Index: libstdc++-v3/doc/html/manual/api.html
1542
===================================================================
1543
--- a/src/libstdc++-v3/doc/html/manual/api.html (.../tags/gcc_4_8_2_release)
1544
+++ b/src/libstdc++-v3/doc/html/manual/api.html (.../branches/gcc-4_8-branch)
1546
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1547
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1548
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1549
Porting and Maintenance
1551
</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>
1553
<span class="type">__alloc</span> to select an underlying allocator that
1554
satisfied memory allocation requests. The selection of this
1555
underlying allocator was not user-configurable.
1556
- </p><div class="table"><a id="idp23030528"></a><p class="title"><strong>Table B.6. Extension Allocators</strong></p><div class="table-contents"><table summary="Extension Allocators" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Allocator (3.4)</th><th align="left">Header (3.4)</th><th align="left">Allocator (3.[0-3])</th><th align="left">Header (3.[0-3])</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::new_allocator<T></code></td><td align="left"><code class="filename">ext/new_allocator.h</code></td><td align="left"><code class="classname">std::__new_alloc</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::malloc_allocator<T></code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="classname">std::__malloc_alloc_template<int></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::debug_allocator<T></code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="classname">std::debug_alloc<T></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__pool_alloc<T></code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="classname">std::__default_alloc_template<bool,int></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__mt_alloc<T></code></td><td align="left"><code class="filename">ext/mt_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left"><code class="classname">__gnu_cxx::bitmap_allocator<T></code></td><td align="left"><code class="filename">ext/bitmap_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p> Releases after gcc-3.4 have continued to add to the collection
1557
+ </p><div class="table"><a id="idm269992502096"></a><p class="title"><strong>Table B.6. Extension Allocators</strong></p><div class="table-contents"><table summary="Extension Allocators" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Allocator (3.4)</th><th align="left">Header (3.4)</th><th align="left">Allocator (3.[0-3])</th><th align="left">Header (3.[0-3])</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::new_allocator<T></code></td><td align="left"><code class="filename">ext/new_allocator.h</code></td><td align="left"><code class="classname">std::__new_alloc</code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::malloc_allocator<T></code></td><td align="left"><code class="filename">ext/malloc_allocator.h</code></td><td align="left"><code class="classname">std::__malloc_alloc_template<int></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::debug_allocator<T></code></td><td align="left"><code class="filename">ext/debug_allocator.h</code></td><td align="left"><code class="classname">std::debug_alloc<T></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__pool_alloc<T></code></td><td align="left"><code class="filename">ext/pool_allocator.h</code></td><td align="left"><code class="classname">std::__default_alloc_template<bool,int></code></td><td align="left"><code class="filename">memory</code></td></tr><tr><td align="left"><code class="classname">__gnu_cxx::__mt_alloc<T></code></td><td align="left"><code class="filename">ext/mt_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr><tr><td align="left"><code class="classname">__gnu_cxx::bitmap_allocator<T></code></td><td align="left"><code class="filename">ext/bitmap_allocator.h</code></td><td align="left"> </td><td align="left"> </td></tr></tbody></table></div></div><br class="table-break" /><p> Releases after gcc-3.4 have continued to add to the collection
1558
of available allocators. All of these new allocators are
1559
standard-style. The following table includes details, along with
1560
the first released version of GCC that included the extension allocator.
1561
- </p><div class="table"><a id="idp23058160"></a><p class="title"><strong>Table B.7. Extension Allocators Continued</strong></p><div class="table-contents"><table summary="Extension Allocators Continued" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left">Allocator</th><th align="left">Include</th><th align="left">Version</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::array_allocator<T></code></td><td align="left"><code class="filename">ext/array_allocator.h</code></td><td align="left">4.0.0</td></tr><tr><td align="left"><code class="classname">__gnu_cxx::throw_allocator<T></code></td><td align="left"><code class="filename">ext/throw_allocator.h</code></td><td align="left">4.2.0</td></tr></tbody></table></div></div><br class="table-break" /><p>
1562
+ </p><div class="table"><a id="idm269992474464"></a><p class="title"><strong>Table B.7. Extension Allocators Continued</strong></p><div class="table-contents"><table summary="Extension Allocators Continued" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /></colgroup><thead><tr><th align="left">Allocator</th><th align="left">Include</th><th align="left">Version</th></tr></thead><tbody><tr><td align="left"><code class="classname">__gnu_cxx::array_allocator<T></code></td><td align="left"><code class="filename">ext/array_allocator.h</code></td><td align="left">4.0.0</td></tr><tr><td align="left"><code class="classname">__gnu_cxx::throw_allocator<T></code></td><td align="left"><code class="filename">ext/throw_allocator.h</code></td><td align="left">4.2.0</td></tr></tbody></table></div></div><br class="table-break" /><p>
1563
Debug mode first appears.
1565
Precompiled header support <acronym class="acronym">PCH</acronym> support.
1566
Index: libstdc++-v3/doc/html/manual/source_organization.html
1567
===================================================================
1568
--- a/src/libstdc++-v3/doc/html/manual/source_organization.html (.../tags/gcc_4_8_2_release)
1569
+++ b/src/libstdc++-v3/doc/html/manual/source_organization.html (.../branches/gcc-4_8-branch)
1571
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1572
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1573
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1576
</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>
1577
Index: libstdc++-v3/doc/html/manual/fstreams.html
1578
===================================================================
1579
--- a/src/libstdc++-v3/doc/html/manual/fstreams.html (.../tags/gcc_4_8_2_release)
1580
+++ b/src/libstdc++-v3/doc/html/manual/fstreams.html (.../branches/gcc-4_8-branch)
1582
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1583
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1584
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1587
</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>
1588
Index: libstdc++-v3/doc/html/manual/ext_demangling.html
1589
===================================================================
1590
--- a/src/libstdc++-v3/doc/html/manual/ext_demangling.html (.../tags/gcc_4_8_2_release)
1591
+++ b/src/libstdc++-v3/doc/html/manual/ext_demangling.html (.../branches/gcc-4_8-branch)
1593
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1594
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1595
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1598
</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>
1599
Index: libstdc++-v3/doc/html/manual/ext_preface.html
1600
===================================================================
1601
--- a/src/libstdc++-v3/doc/html/manual/ext_preface.html (.../tags/gcc_4_8_2_release)
1602
+++ b/src/libstdc++-v3/doc/html/manual/ext_preface.html (.../branches/gcc-4_8-branch)
1604
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1605
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1606
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1609
-</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>
1610
+</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>
1611
Here we will make an attempt at describing the non-Standard
1612
extensions to the library. Some of these are from older versions of
1613
standard library components, namely SGI's STL, and some of these are
1614
Index: libstdc++-v3/doc/html/manual/concept_checking.html
1615
===================================================================
1616
--- a/src/libstdc++-v3/doc/html/manual/concept_checking.html (.../tags/gcc_4_8_2_release)
1617
+++ b/src/libstdc++-v3/doc/html/manual/concept_checking.html (.../branches/gcc-4_8-branch)
1619
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1620
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1621
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1624
</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>
1625
Index: libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html
1626
===================================================================
1627
--- a/src/libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html (.../tags/gcc_4_8_2_release)
1628
+++ b/src/libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html (.../branches/gcc-4_8-branch)
1630
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1631
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1632
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1633
In the ST example we never used the thread_id variable present in each block.
1634
Let's start by explaining the purpose of this in a MT application.
1636
Index: libstdc++-v3/doc/html/manual/ext_compile_checks.html
1637
===================================================================
1638
--- a/src/libstdc++-v3/doc/html/manual/ext_compile_checks.html (.../tags/gcc_4_8_2_release)
1639
+++ b/src/libstdc++-v3/doc/html/manual/ext_compile_checks.html (.../branches/gcc-4_8-branch)
1641
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1642
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1643
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1646
</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>
1647
Index: libstdc++-v3/doc/html/manual/strings.html
1648
===================================================================
1649
--- a/src/libstdc++-v3/doc/html/manual/strings.html (.../tags/gcc_4_8_2_release)
1650
+++ b/src/libstdc++-v3/doc/html/manual/strings.html (.../branches/gcc-4_8-branch)
1652
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1653
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1654
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1657
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="traits.html">Prev</a> </td><th width="60%" align="center">Part II.
1659
</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.
1661
- <a id="idp15603440" class="indexterm"></a>
1662
-</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>
1663
+ <a id="idm269999928112" class="indexterm"></a>
1664
+</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>
1665
Here are Standard, simple, and portable ways to perform common
1666
transformations on a <code class="code">string</code> instance, such as
1667
"convert to all upper case." The word transformations
1668
Index: libstdc++-v3/doc/html/manual/containers_and_c.html
1669
===================================================================
1670
--- a/src/libstdc++-v3/doc/html/manual/containers_and_c.html (.../tags/gcc_4_8_2_release)
1671
+++ b/src/libstdc++-v3/doc/html/manual/containers_and_c.html (.../branches/gcc-4_8-branch)
1673
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
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>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.
1675
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1678
</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>
1679
Index: libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html
1680
===================================================================
1681
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html (.../tags/gcc_4_8_2_release)
1682
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html (.../branches/gcc-4_8-branch)
1684
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1685
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1686
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1687
The table below presents all the diagnostics we intend to implement.
1688
Each diagnostic has a corresponding compile time switch
1689
<code class="code">-D_GLIBCXX_PROFILE_<diagnostic></code>.
1691
A high accuracy means that the diagnostic is unlikely to be wrong.
1692
These grades are not perfect. They are just meant to guide users with
1693
specific needs or time budgets.
1694
- </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">
1695
+ </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">
1696
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">
1697
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">
1698
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">
1700
Quick Sort for a particular call context.
1701
</p></li><li class="listitem"><p><span class="emphasis"><em>Fundamentals:</em></span>
1703
- <a class="link" href="http://portal.acm.org/citation.cfm?doid=1065944.1065981" target="_top">
1704
+ <a class="link" href="https://dl.acm.org/citation.cfm?doid=1065944.1065981" target="_top">
1705
A framework for adaptive algorithm selection in STAPL</a> and
1706
<a class="link" href="http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=4228227" target="_top">
1707
Optimizing Sorting with Machine Learning Algorithms</a>.
1709
Keep a shadow for each container. Record iterator dereferences and
1710
container member accesses. Issue advice for elements referenced by
1712
- See paper: <a class="link" href="http://portal.acm.org/citation.cfm?id=207110.207148" target="_top">
1713
+ See paper: <a class="link" href="https://dl.acm.org/citation.cfm?id=207110.207148" target="_top">
1714
The LRPD test: speculative run-time parallelization of loops with
1715
privatization and reduction parallelization</a>.
1716
</p></li><li class="listitem"><p><span class="emphasis"><em>Cost model:</em></span>
1717
Index: libstdc++-v3/doc/html/manual/ext_concurrency_impl.html
1718
===================================================================
1719
--- a/src/libstdc++-v3/doc/html/manual/ext_concurrency_impl.html (.../tags/gcc_4_8_2_release)
1720
+++ b/src/libstdc++-v3/doc/html/manual/ext_concurrency_impl.html (.../branches/gcc-4_8-branch)
1722
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1723
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
1724
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
1725
implemented via compiler intrinsics (if the underlying host is
1726
capable) or by library fallbacks.</p><p>Compiler intrinsics (builtins) are always preferred. However, as
1727
the compiler builtins for atomics are not universally implemented,
1728
Index: libstdc++-v3/doc/html/manual/io_and_c.html
1729
===================================================================
1730
--- a/src/libstdc++-v3/doc/html/manual/io_and_c.html (.../tags/gcc_4_8_2_release)
1731
+++ b/src/libstdc++-v3/doc/html/manual/io_and_c.html (.../branches/gcc-4_8-branch)
1733
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1734
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1735
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1738
</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>
1739
Index: libstdc++-v3/doc/html/manual/documentation_hacking.html
1740
===================================================================
1741
--- a/src/libstdc++-v3/doc/html/manual/documentation_hacking.html (.../tags/gcc_4_8_2_release)
1742
+++ b/src/libstdc++-v3/doc/html/manual/documentation_hacking.html (.../branches/gcc-4_8-branch)
1744
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1745
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1746
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1747
Porting and Maintenance
1749
</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>
1751
supported, and are always aliased to dummy rules. These
1752
unsupported formats are: <span class="emphasis"><em>info</em></span>,
1753
<span class="emphasis"><em>ps</em></span>, and <span class="emphasis"><em>dvi</em></span>.
1754
- </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>
1755
+ </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>
1756
Prerequisite tools are Bash 2.0 or later,
1757
<a class="link" href="http://www.doxygen.org/" target="_top">Doxygen</a>, and
1758
the <a class="link" href="http://www.gnu.org/software/coreutils/" target="_top">GNU
1762
Some commentary to accompany
1763
- the first list in the <a class="link" href="http://www.stack.nl/~dimitri/doxygen/docblocks.html" target="_top">Special
1764
- Documentation Blocks</a> section of
1765
- the Doxygen manual:
1766
+ the first list in the <a class="link" href="http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html" target="_top">Special
1767
+ Documentation Blocks</a> section of the Doxygen manual:
1768
</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>
1769
...not the Qt style. The intermediate *'s are preferred.
1770
</p></li><li class="listitem"><p>
1772
writing Doxygen comments. Single and double quotes, and
1773
separators in filenames are two common trouble spots. When in
1774
doubt, consult the following table.
1775
- </p><div class="table"><a id="idp22238096"></a><p class="title"><strong>Table B.2. HTML to Doxygen Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Doxygen Markup Comparison" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">HTML</th><th align="left">Doxygen</th></tr></thead><tbody><tr><td align="left">\</td><td align="left">\\</td></tr><tr><td align="left">"</td><td align="left">\"</td></tr><tr><td align="left">'</td><td align="left">\'</td></tr><tr><td align="left"><i></td><td align="left">@a word</td></tr><tr><td align="left"><b></td><td align="left">@b word</td></tr><tr><td align="left"><code></td><td align="left">@c word</td></tr><tr><td align="left"><em></td><td align="left">@a word</td></tr><tr><td align="left"><em></td><td align="left"><em>two words or more</em></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="doc.docbook"></a>Docbook</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.prereq"></a>Prerequisites</h4></div></div></div><div class="table"><a id="idp22257536"></a><p class="title"><strong>Table B.3. Docbook Prerequisites</strong></p><div class="table-contents"><table summary="Docbook Prerequisites" border="1"><colgroup><col align="center" class="c1" /><col align="center" class="c2" /><col align="center" class="c3" /></colgroup><thead><tr><th align="center">Tool</th><th align="center">Version</th><th align="center">Required By</th></tr></thead><tbody><tr><td align="center">docbook5-style-xsl</td><td align="center">1.76.1</td><td align="center">all</td></tr><tr><td align="center">xsltproc</td><td align="center">1.1.26</td><td align="center">all</td></tr><tr><td align="center">xmllint</td><td align="center">2.7.7</td><td align="center">validation</td></tr><tr><td align="center">dblatex</td><td align="center">0.3</td><td align="center">pdf output</td></tr><tr><td align="center">pdflatex</td><td align="center">2007-59</td><td align="center">pdf output</td></tr><tr><td align="center">docbook2X</td><td align="center">0.8.8</td><td align="center">info output</td></tr><tr><td align="center">epub3 stylesheets</td><td align="center">b3</td><td align="center">epub output</td></tr></tbody></table></div></div><br class="table-break" /><p>
1776
+ </p><div class="table"><a id="idm269993294592"></a><p class="title"><strong>Table B.2. HTML to Doxygen Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Doxygen Markup Comparison" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">HTML</th><th align="left">Doxygen</th></tr></thead><tbody><tr><td align="left">\</td><td align="left">\\</td></tr><tr><td align="left">"</td><td align="left">\"</td></tr><tr><td align="left">'</td><td align="left">\'</td></tr><tr><td align="left"><i></td><td align="left">@a word</td></tr><tr><td align="left"><b></td><td align="left">@b word</td></tr><tr><td align="left"><code></td><td align="left">@c word</td></tr><tr><td align="left"><em></td><td align="left">@a word</td></tr><tr><td align="left"><em></td><td align="left"><em>two words or more</em></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="doc.docbook"></a>Docbook</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="docbook.prereq"></a>Prerequisites</h4></div></div></div><div class="table"><a id="idm269993275152"></a><p class="title"><strong>Table B.3. Docbook Prerequisites</strong></p><div class="table-contents"><table summary="Docbook Prerequisites" border="1"><colgroup><col align="center" class="c1" /><col align="center" class="c2" /><col align="center" class="c3" /></colgroup><thead><tr><th align="center">Tool</th><th align="center">Version</th><th align="center">Required By</th></tr></thead><tbody><tr><td align="center">docbook5-style-xsl</td><td align="center">1.76.1</td><td align="center">all</td></tr><tr><td align="center">xsltproc</td><td align="center">1.1.26</td><td align="center">all</td></tr><tr><td align="center">xmllint</td><td align="center">2.7.7</td><td align="center">validation</td></tr><tr><td align="center">dblatex</td><td align="center">0.3</td><td align="center">pdf output</td></tr><tr><td align="center">pdflatex</td><td align="center">2007-59</td><td align="center">pdf output</td></tr><tr><td align="center">docbook2X</td><td align="center">0.8.8</td><td align="center">info output</td></tr><tr><td align="center">epub3 stylesheets</td><td align="center">b3</td><td align="center">epub output</td></tr></tbody></table></div></div><br class="table-break" /><p>
1777
Editing the DocBook sources requires an XML editor. Many
1778
exist: some notable options
1779
include <span class="command"><strong>emacs</strong></span>, <span class="application">Kate</span>,
1780
@@ -520,11 +519,11 @@
1781
<a class="link" href="http://www.docbook.org/tdg/en/html/part2.html" target="_top">online</a>.
1782
An incomplete reference for HTML to Docbook conversion is
1783
detailed in the table below.
1784
- </p><div class="table"><a id="idp22335040"></a><p class="title"><strong>Table B.4. HTML to Docbook XML Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Docbook XML Markup Comparison" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">HTML</th><th align="left">Docbook</th></tr></thead><tbody><tr><td align="left"><p></td><td align="left"><para></td></tr><tr><td align="left"><pre></td><td align="left"><computeroutput>, <programlisting>,
1785
+ </p><div class="table"><a id="idm269993197520"></a><p class="title"><strong>Table B.4. HTML to Docbook XML Markup Comparison</strong></p><div class="table-contents"><table summary="HTML to Docbook XML Markup Comparison" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">HTML</th><th align="left">Docbook</th></tr></thead><tbody><tr><td align="left"><p></td><td align="left"><para></td></tr><tr><td align="left"><pre></td><td align="left"><computeroutput>, <programlisting>,
1786
<literallayout></td></tr><tr><td align="left"><ul></td><td align="left"><itemizedlist></td></tr><tr><td align="left"><ol></td><td align="left"><orderedlist></td></tr><tr><td align="left"><il></td><td align="left"><listitem></td></tr><tr><td align="left"><dl></td><td align="left"><variablelist></td></tr><tr><td align="left"><dt></td><td align="left"><term></td></tr><tr><td align="left"><dd></td><td align="left"><listitem></td></tr><tr><td align="left"><a href=""></td><td align="left"><ulink url=""></td></tr><tr><td align="left"><code></td><td align="left"><literal>, <programlisting></td></tr><tr><td align="left"><strong></td><td align="left"><emphasis></td></tr><tr><td align="left"><em></td><td align="left"><emphasis></td></tr><tr><td align="left">"</td><td align="left"><quote></td></tr></tbody></table></div></div><br class="table-break" /><p>
1787
And examples of detailed markup for which there are no real HTML
1788
equivalents are listed in the table below.
1789
-</p><div class="table"><a id="idp22359184"></a><p class="title"><strong>Table B.5. Docbook XML Element Use</strong></p><div class="table-contents"><table summary="Docbook XML Element Use" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">Element</th><th align="left">Use</th></tr></thead><tbody><tr><td align="left"><structname></td><td align="left"><structname>char_traits</structname></td></tr><tr><td align="left"><classname></td><td align="left"><classname>string</classname></td></tr><tr><td align="left"><function></td><td align="left">
1790
+</p><div class="table"><a id="idm269993173376"></a><p class="title"><strong>Table B.5. Docbook XML Element Use</strong></p><div class="table-contents"><table summary="Docbook XML Element Use" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /></colgroup><thead><tr><th align="left">Element</th><th align="left">Use</th></tr></thead><tbody><tr><td align="left"><structname></td><td align="left"><structname>char_traits</structname></td></tr><tr><td align="left"><classname></td><td align="left"><classname>string</classname></td></tr><tr><td align="left"><function></td><td align="left">
1791
<p><function>clear()</function></p>
1792
<p><function>fs.clear()</function></p>
1793
</td></tr><tr><td align="left"><type></td><td align="left"><type>long long</type></td></tr><tr><td align="left"><varname></td><td align="left"><varname>fs</varname></td></tr><tr><td align="left"><literal></td><td align="left">
1794
Index: libstdc++-v3/doc/html/manual/extensions.html
1795
===================================================================
1796
--- a/src/libstdc++-v3/doc/html/manual/extensions.html (.../tags/gcc_4_8_2_release)
1797
+++ b/src/libstdc++-v3/doc/html/manual/extensions.html (.../branches/gcc-4_8-branch)
1799
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1800
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1801
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1804
</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.
1806
- <a id="idp16423680" class="indexterm"></a>
1807
-</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
1808
+ <a id="idm269999107536" class="indexterm"></a>
1809
+</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
1810
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">
1811
Configuring via Template Parameters
1812
</a></span></dt><dt><span class="section"><a href="policy_data_structures_using.html#pbds.using.tutorial.traits">
1813
Index: libstdc++-v3/doc/html/manual/debug_mode_using.html
1814
===================================================================
1815
--- a/src/libstdc++-v3/doc/html/manual/debug_mode_using.html (.../tags/gcc_4_8_2_release)
1816
+++ b/src/libstdc++-v3/doc/html/manual/debug_mode_using.html (.../branches/gcc-4_8-branch)
1818
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1819
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1820
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1821
</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
1822
compiler flag <code class="code">-D_GLIBCXX_DEBUG</code>. Note that this flag
1823
changes the sizes and behavior of standard class templates such
1825
mode or with debug mode. The
1826
following table provides the names and headers of the debugging
1828
-</p><div class="table"><a id="idp16490400"></a><p class="title"><strong>Table 17.1. Debugging Containers</strong></p><div class="table-contents"><table summary="Debugging Containers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Container</th><th align="left">Header</th><th align="left">Debug container</th><th align="left">Debug header</th></tr></thead><tbody><tr><td align="left"><code class="classname">std::bitset</code></td><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="classname">__gnu_debug::bitset</code></td><td align="left"><code class="filename"><debug/bitset></code></td></tr><tr><td align="left"><code class="classname">std::deque</code></td><td align="left"><code class="filename">deque</code></td><td align="left"><code class="classname">__gnu_debug::deque</code></td><td align="left"><code class="filename"><debug/deque></code></td></tr><tr><td align="left"><code class="classname">std::list</code></td><td align="left"><code class="filename">list</code></td><td align="left"><code class="classname">__gnu_debug::list</code></td><td align="left"><code class="filename"><debug/list></code></td></tr><tr><td align="left"><code class="classname">std::map</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="classname">__gnu_debug::map</code></td><td align="left"><code class="filename"><debug/map></code></td></tr><tr><td align="left"><code class="classname">std::multimap</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="classname">__gnu_debug::multimap</code></td><td align="left"><code class="filename"><debug/map></code></td></tr><tr><td align="left"><code class="classname">std::multiset</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="classname">__gnu_debug::multiset</code></td><td align="left"><code class="filename"><debug/set></code></td></tr><tr><td align="left"><code class="classname">std::set</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="classname">__gnu_debug::set</code></td><td align="left"><code class="filename"><debug/set></code></td></tr><tr><td align="left"><code class="classname">std::string</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::string</code></td><td align="left"><code class="filename"><debug/string></code></td></tr><tr><td align="left"><code class="classname">std::wstring</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::wstring</code></td><td align="left"><code class="filename"><debug/string></code></td></tr><tr><td align="left"><code class="classname">std::basic_string</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::basic_string</code></td><td align="left"><code class="filename"><debug/string></code></td></tr><tr><td align="left"><code class="classname">std::vector</code></td><td align="left"><code class="filename">vector</code></td><td align="left"><code class="classname">__gnu_debug::vector</code></td><td align="left"><code class="filename"><debug/vector></code></td></tr></tbody></table></div></div><br class="table-break" /><p>In addition, when compiling in C++11 mode, these additional
1829
+</p><div class="table"><a id="idm269999040896"></a><p class="title"><strong>Table 17.1. Debugging Containers</strong></p><div class="table-contents"><table summary="Debugging Containers" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Container</th><th align="left">Header</th><th align="left">Debug container</th><th align="left">Debug header</th></tr></thead><tbody><tr><td align="left"><code class="classname">std::bitset</code></td><td align="left"><code class="filename">bitset</code></td><td align="left"><code class="classname">__gnu_debug::bitset</code></td><td align="left"><code class="filename"><debug/bitset></code></td></tr><tr><td align="left"><code class="classname">std::deque</code></td><td align="left"><code class="filename">deque</code></td><td align="left"><code class="classname">__gnu_debug::deque</code></td><td align="left"><code class="filename"><debug/deque></code></td></tr><tr><td align="left"><code class="classname">std::list</code></td><td align="left"><code class="filename">list</code></td><td align="left"><code class="classname">__gnu_debug::list</code></td><td align="left"><code class="filename"><debug/list></code></td></tr><tr><td align="left"><code class="classname">std::map</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="classname">__gnu_debug::map</code></td><td align="left"><code class="filename"><debug/map></code></td></tr><tr><td align="left"><code class="classname">std::multimap</code></td><td align="left"><code class="filename">map</code></td><td align="left"><code class="classname">__gnu_debug::multimap</code></td><td align="left"><code class="filename"><debug/map></code></td></tr><tr><td align="left"><code class="classname">std::multiset</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="classname">__gnu_debug::multiset</code></td><td align="left"><code class="filename"><debug/set></code></td></tr><tr><td align="left"><code class="classname">std::set</code></td><td align="left"><code class="filename">set</code></td><td align="left"><code class="classname">__gnu_debug::set</code></td><td align="left"><code class="filename"><debug/set></code></td></tr><tr><td align="left"><code class="classname">std::string</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::string</code></td><td align="left"><code class="filename"><debug/string></code></td></tr><tr><td align="left"><code class="classname">std::wstring</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::wstring</code></td><td align="left"><code class="filename"><debug/string></code></td></tr><tr><td align="left"><code class="classname">std::basic_string</code></td><td align="left"><code class="filename">string</code></td><td align="left"><code class="classname">__gnu_debug::basic_string</code></td><td align="left"><code class="filename"><debug/string></code></td></tr><tr><td align="left"><code class="classname">std::vector</code></td><td align="left"><code class="filename">vector</code></td><td align="left"><code class="classname">__gnu_debug::vector</code></td><td align="left"><code class="filename"><debug/vector></code></td></tr></tbody></table></div></div><br class="table-break" /><p>In addition, when compiling in C++11 mode, these additional
1830
containers have additional debug capability.
1831
-</p><div class="table"><a id="idp16535296"></a><p class="title"><strong>Table 17.2. Debugging Containers C++11</strong></p><div class="table-contents"><table summary="Debugging Containers C++11" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Container</th><th align="left">Header</th><th align="left">Debug container</th><th align="left">Debug header</th></tr></thead><tbody><tr><td align="left"><code class="classname">std::unordered_map</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="classname">__gnu_debug::unordered_map</code></td><td align="left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td align="left"><code class="classname">std::unordered_multimap</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="classname">__gnu_debug::unordered_multimap</code></td><td align="left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td align="left"><code class="classname">std::unordered_set</code></td><td align="left"><code class="filename">unordered_set</code></td><td align="left"><code class="classname">__gnu_debug::unordered_set</code></td><td align="left"><code class="filename"><debug/unordered_set></code></td></tr><tr><td align="left"><code class="classname">std::unordered_multiset</code></td><td align="left"><code class="filename">unordered_set</code></td><td align="left"><code class="classname">__gnu_debug::unordered_multiset</code></td><td align="left"><code class="filename"><debug/unordered_set></code></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="debug_mode_semantics.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="debug_mode_design.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Semantics </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Design</td></tr></table></div></body></html>
1832
\ No newline at end of file
1833
+</p><div class="table"><a id="idm269998996000"></a><p class="title"><strong>Table 17.2. Debugging Containers C++11</strong></p><div class="table-contents"><table summary="Debugging Containers C++11" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Container</th><th align="left">Header</th><th align="left">Debug container</th><th align="left">Debug header</th></tr></thead><tbody><tr><td align="left"><code class="classname">std::unordered_map</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="classname">__gnu_debug::unordered_map</code></td><td align="left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td align="left"><code class="classname">std::unordered_multimap</code></td><td align="left"><code class="filename">unordered_map</code></td><td align="left"><code class="classname">__gnu_debug::unordered_multimap</code></td><td align="left"><code class="filename"><debug/unordered_map></code></td></tr><tr><td align="left"><code class="classname">std::unordered_set</code></td><td align="left"><code class="filename">unordered_set</code></td><td align="left"><code class="classname">__gnu_debug::unordered_set</code></td><td align="left"><code class="filename"><debug/unordered_set></code></td></tr><tr><td align="left"><code class="classname">std::unordered_multiset</code></td><td align="left"><code class="filename">unordered_set</code></td><td align="left"><code class="classname">__gnu_debug::unordered_multiset</code></td><td align="left"><code class="filename"><debug/unordered_set></code></td></tr></tbody></table></div></div><br class="table-break" /></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="debug_mode_semantics.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="debug_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="debug_mode_design.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Semantics </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Design</td></tr></table></div></body></html>
1834
\ No newline at end of file
1835
Index: libstdc++-v3/doc/html/manual/parallel_mode.html
1836
===================================================================
1837
--- a/src/libstdc++-v3/doc/html/manual/parallel_mode.html (.../tags/gcc_4_8_2_release)
1838
+++ b/src/libstdc++-v3/doc/html/manual/parallel_mode.html (.../branches/gcc-4_8-branch)
1840
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1841
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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.
1842
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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.
1845
-</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
1846
+</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
1847
implementation of many algorithms the C++ Standard Library.
1849
Several of the standard algorithms, for instance
1851
specific compiler flag.
1852
</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
1853
<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
1854
-<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">
1855
+<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">
1856
Parallelization of Bulk Operations for STL Dictionaries
1857
</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">
1858
Workshop on Highly Parallel Processing on a Chip (HPPC) 2007. (LNCS)
1859
- . </span></span></p></div><div class="biblioentry"><a id="idp16931936"></a><p><span class="citetitle"><em class="citetitle">
1860
+ . </span></span></p></div><div class="biblioentry"><a id="idm269998599392"></a><p><span class="citetitle"><em class="citetitle">
1861
The Multi-Core Standard Template Library
1862
</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">
1863
Euro-Par 2007: Parallel Processing. (LNCS 4641)
1864
Index: libstdc++-v3/doc/html/manual/debug_mode_semantics.html
1865
===================================================================
1866
--- a/src/libstdc++-v3/doc/html/manual/debug_mode_semantics.html (.../tags/gcc_4_8_2_release)
1867
+++ b/src/libstdc++-v3/doc/html/manual/debug_mode_semantics.html (.../branches/gcc-4_8-branch)
1869
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1870
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1871
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
1872
</p><p>A program that uses the C++ standard library correctly
1873
will maintain the same semantics under debug mode as it had with
1874
the normal (release) library. All functional and exception-handling
1875
Index: libstdc++-v3/doc/html/manual/setup.html
1876
===================================================================
1877
--- a/src/libstdc++-v3/doc/html/manual/setup.html (.../tags/gcc_4_8_2_release)
1878
+++ b/src/libstdc++-v3/doc/html/manual/setup.html (.../branches/gcc-4_8-branch)
1880
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1881
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1882
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 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.
1885
-</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
1886
+</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
1887
and properly built binaries useful for linking to other software is
1888
a multi-step process. Steps include getting the sources,
1889
configuring and building the sources, testing, and installation.
1890
Index: libstdc++-v3/doc/html/manual/backwards.html
1891
===================================================================
1892
--- a/src/libstdc++-v3/doc/html/manual/backwards.html (.../tags/gcc_4_8_2_release)
1893
+++ b/src/libstdc++-v3/doc/html/manual/backwards.html (.../branches/gcc-4_8-branch)
1895
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1896
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1897
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1898
Porting and Maintenance
1900
</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
1901
@@ -940,15 +940,15 @@
1902
This is a change in behavior from older versions. Now, most
1903
<span class="type">iterator_type</span> typedefs in container classes are POD
1904
objects, not <span class="type">value_type</span> pointers.
1905
-</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>
1906
+</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>
1907
<a class="link" href="http://www.kegel.com/gcc/gcc4.html" target="_top">
1908
Migrating to GCC 4.1
1910
- </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>
1911
+ </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>
1912
<a class="link" href="http://lists.debian.org/debian-gcc/2006/03/msg00405.html" target="_top">
1913
Building the Whole Debian Archive with GCC 4.1: A Summary
1915
- </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>
1916
+ </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>
1917
<a class="link" href="http://annwm.lbl.gov/~leggett/Atlas/gcc-3.2.html" target="_top">
1918
Migration guide for GCC-3.2
1920
Index: libstdc++-v3/doc/html/manual/source_design_notes.html
1921
===================================================================
1922
--- a/src/libstdc++-v3/doc/html/manual/source_design_notes.html (.../tags/gcc_4_8_2_release)
1923
+++ b/src/libstdc++-v3/doc/html/manual/source_design_notes.html (.../branches/gcc-4_8-branch)
1925
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1926
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1927
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
1930
</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>
1931
Index: libstdc++-v3/doc/html/manual/ext_sgi.html
1932
===================================================================
1933
--- a/src/libstdc++-v3/doc/html/manual/ext_sgi.html (.../tags/gcc_4_8_2_release)
1934
+++ b/src/libstdc++-v3/doc/html/manual/ext_sgi.html (.../branches/gcc-4_8-branch)
1936
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1937
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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>
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>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>
1939
The SGI hashing classes <code class="classname">hash_set</code> and
1940
<code class="classname">hash_set</code> have been deprecated by the
1941
unordered_set, unordered_multiset, unordered_map,
1942
Index: libstdc++-v3/doc/html/manual/facets.html
1943
===================================================================
1944
--- a/src/libstdc++-v3/doc/html/manual/facets.html (.../tags/gcc_4_8_2_release)
1945
+++ b/src/libstdc++-v3/doc/html/manual/facets.html (.../branches/gcc-4_8-branch)
1947
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1948
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
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>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.
1952
-</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>
1953
+</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>
1954
For the required specialization codecvt<wchar_t, char, mbstate_t> ,
1955
conversions are made between the internal character set (always UCS4
1956
on GNU/Linux) and whatever the currently selected locale for the
1958
</p></li><li class="listitem"><p>
1959
Rename abstract base class. See if just smash-overriding is a
1960
better approach. Clarify, add sanity to naming.
1961
- </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">
1962
+ </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">
1964
- </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">
1965
+ </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">
1967
- </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">
1968
+ </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">
1969
ISO/IEC 14882:1998 Programming languages - C++
1970
- </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">
1971
+ </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">
1972
ISO/IEC 9899:1999 Programming languages - C
1973
- </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idp15805792"></a><p><span class="title"><em>
1974
+ </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idm269999725632"></a><p><span class="title"><em>
1975
<a class="link" href="http://www.unix.org/version3/ieee_std.html" target="_top">
1976
The Open Group Base Specifications, Issue 6 (IEEE Std. 1003.1-2004)
1978
</em>. </span><span class="copyright">Copyright © 1999
1979
- 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">
1980
+ 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">
1981
The C++ Programming Language, Special Edition
1982
</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">
1984
- . </span></span></p></div><div class="biblioentry"><a id="idp15813664"></a><p><span class="citetitle"><em class="citetitle">
1985
+ . </span></span></p></div><div class="biblioentry"><a id="idm269999717760"></a><p><span class="citetitle"><em class="citetitle">
1986
Standard C++ IOStreams and Locales
1987
</em>. </span><span class="subtitle">
1988
Advanced Programmer's Guide and Reference
1989
@@ -409,42 +409,42 @@
1990
</p></li><li class="listitem"><p>
1991
wchar_t/char internal buffers and conversions between
1992
internal/external buffers?
1993
- </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">
1994
+ </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">
1996
</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">
1997
Chapters 6 Character Set Handling and 7 Locales and Internationalization
1998
- . </span></p></div><div class="biblioentry"><a id="idp15895888"></a><p><span class="citetitle"><em class="citetitle">
1999
+ . </span></p></div><div class="biblioentry"><a id="idm269999635328"></a><p><span class="citetitle"><em class="citetitle">
2001
- </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">
2002
+ </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">
2003
ISO/IEC 14882:1998 Programming languages - C++
2004
- </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">
2005
+ </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">
2006
ISO/IEC 9899:1999 Programming languages - C
2007
- </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idp15903536"></a><p><span class="title"><em>
2008
+ </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idm269999627680"></a><p><span class="title"><em>
2009
<a class="link" href="http://www.opengroup.org/austin/" target="_top">
2010
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
2012
</em>. </span><span class="copyright">Copyright © 2008
2013
The Open Group/The Institute of Electrical and Electronics
2015
- . </span></p></div><div class="biblioentry"><a id="idp15906768"></a><p><span class="citetitle"><em class="citetitle">
2016
+ . </span></p></div><div class="biblioentry"><a id="idm269999624448"></a><p><span class="citetitle"><em class="citetitle">
2017
The C++ Programming Language, Special Edition
2018
</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">
2020
- . </span></span></p></div><div class="biblioentry"><a id="idp15911392"></a><p><span class="citetitle"><em class="citetitle">
2021
+ . </span></span></p></div><div class="biblioentry"><a id="idm269999619824"></a><p><span class="citetitle"><em class="citetitle">
2022
Standard C++ IOStreams and Locales
2023
</em>. </span><span class="subtitle">
2024
Advanced Programmer's Guide and Reference
2025
. </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">
2026
Addison Wesley Longman
2027
- . </span></span></p></div><div class="biblioentry"><a id="idp15917056"></a><p><span class="title"><em>
2028
+ . </span></span></p></div><div class="biblioentry"><a id="idm269999614160"></a><p><span class="title"><em>
2029
<a class="link" href="http://www.lysator.liu.se/c/na1.html" target="_top">
2030
A brief description of Normative Addendum 1
2032
- </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>
2033
+ </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>
2034
<a class="link" href="http://tldp.org/HOWTO/Unicode-HOWTO.html" target="_top">
2037
- </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>
2038
+ </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>
2039
<a class="link" href="http://www.cl.cam.ac.uk/~mgk25/unicode.html" target="_top">
2040
UTF-8 and Unicode FAQ for Unix/Linux
2042
@@ -690,39 +690,39 @@
2043
model. As of this writing, it is unknown how to query to see
2044
if a specified message catalog exists using the gettext
2046
- </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">
2047
+ </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">
2049
</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
2050
- . </span></p></div><div class="biblioentry"><a id="idp16008384"></a><p><span class="citetitle"><em class="citetitle">
2051
+ . </span></p></div><div class="biblioentry"><a id="idm269999522832"></a><p><span class="citetitle"><em class="citetitle">
2053
- </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">
2054
+ </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">
2055
ISO/IEC 14882:1998 Programming languages - C++
2056
- </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">
2057
+ </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">
2058
ISO/IEC 9899:1999 Programming languages - C
2059
- </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idp16016032"></a><p><span class="title"><em>
2060
+ </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idm269999515184"></a><p><span class="title"><em>
2061
<a class="link" href="http://www.opengroup.org/austin/" target="_top">
2062
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
2064
</em>. </span><span class="copyright">Copyright © 2008
2065
The Open Group/The Institute of Electrical and Electronics
2067
- . </span></p></div><div class="biblioentry"><a id="idp16019264"></a><p><span class="citetitle"><em class="citetitle">
2068
+ . </span></p></div><div class="biblioentry"><a id="idm269999511952"></a><p><span class="citetitle"><em class="citetitle">
2069
The C++ Programming Language, Special Edition
2070
</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">
2072
- . </span></span></p></div><div class="biblioentry"><a id="idp16023888"></a><p><span class="citetitle"><em class="citetitle">
2073
+ . </span></span></p></div><div class="biblioentry"><a id="idm269999507328"></a><p><span class="citetitle"><em class="citetitle">
2074
Standard C++ IOStreams and Locales
2075
</em>. </span><span class="subtitle">
2076
Advanced Programmer's Guide and Reference
2077
. </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">
2078
Addison Wesley Longman
2079
- . </span></span></p></div><div class="biblioentry"><a id="idp16029552"></a><p><span class="title"><em>
2080
- <a class="link" href="http://java.sun.com/reference/api/index.html" target="_top">
2081
+ . </span></span></p></div><div class="biblioentry"><a id="idm269999501664"></a><p><span class="title"><em>
2082
+ <a class="link" href="http://www.oracle.com/technetwork/java/api/index.html" target="_top">
2083
API Specifications, Java Platform
2085
</em>. </span><span class="pagenums">java.util.Properties, java.text.MessageFormat,
2086
java.util.Locale, java.util.ResourceBundle
2087
- . </span></p></div><div class="biblioentry"><a id="idp16031888"></a><p><span class="title"><em>
2088
+ . </span></p></div><div class="biblioentry"><a id="idm269999499328"></a><p><span class="title"><em>
2089
<a class="link" href="https://www.gnu.org/software/gettext/" target="_top">
2090
GNU gettext tools, version 0.10.38, Native Language Support
2092
Index: libstdc++-v3/doc/html/manual/diagnostics.html
2093
===================================================================
2094
--- a/src/libstdc++-v3/doc/html/manual/diagnostics.html (.../tags/gcc_4_8_2_release)
2095
+++ b/src/libstdc++-v3/doc/html/manual/diagnostics.html (.../branches/gcc-4_8-branch)
2097
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2098
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2099
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2102
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="termination.html">Prev</a> </td><th width="60%" align="center">Part II.
2104
</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.
2106
- <a id="idp13835248" class="indexterm"></a>
2107
-</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>
2108
+ <a id="idm270001697504" class="indexterm"></a>
2109
+</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>
2110
All exception objects are defined in one of the standard header
2111
files: <code class="filename">exception</code>,
2112
<code class="filename">stdexcept</code>, <code class="filename">new</code>, and
2113
Index: libstdc++-v3/doc/html/manual/mt_allocator_design.html
2114
===================================================================
2115
--- a/src/libstdc++-v3/doc/html/manual/mt_allocator_design.html (.../tags/gcc_4_8_2_release)
2116
+++ b/src/libstdc++-v3/doc/html/manual/mt_allocator_design.html (.../branches/gcc-4_8-branch)
2118
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2119
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
2120
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
2121
describing the characteristics of the memory pool, a policy class
2122
containing this pool that links instantiation types to common or
2123
individual pools, and a class inheriting from the policy class that is
2124
Index: libstdc++-v3/doc/html/manual/appendix_free.html
2125
===================================================================
2126
--- a/src/libstdc++-v3/doc/html/manual/appendix_free.html (.../tags/gcc_4_8_2_release)
2127
+++ b/src/libstdc++-v3/doc/html/manual/appendix_free.html (.../branches/gcc-4_8-branch)
2129
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2130
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2131
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2132
Free Software Needs Free Documentation
2134
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="backwards.html">Prev</a> </td><th width="60%" align="center">Part IV.
2136
</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>
2137
Free Software Needs Free Documentation
2138
- <a id="idp23426192" class="indexterm"></a>
2139
+ <a id="idm269992106560" class="indexterm"></a>
2140
</h1></div></div></div><p>
2141
The biggest deficiency in free operating systems is not in the
2142
software--it is the lack of good free manuals that we can include in
2143
Index: libstdc++-v3/doc/html/manual/algorithms.html
2144
===================================================================
2145
--- a/src/libstdc++-v3/doc/html/manual/algorithms.html (.../tags/gcc_4_8_2_release)
2146
+++ b/src/libstdc++-v3/doc/html/manual/algorithms.html (.../branches/gcc-4_8-branch)
2148
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2149
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2150
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2153
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="iterators.html">Prev</a> </td><th width="60%" align="center">Part II.
2155
</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.
2157
- <a id="idp16191968" class="indexterm"></a>
2158
-</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>
2159
+ <a id="idm269999339120" class="indexterm"></a>
2160
+</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>
2161
The neatest accomplishment of the algorithms section is that all the
2162
work is done via iterators, not containers directly. This means two
2164
Index: libstdc++-v3/doc/html/manual/appendix_porting.html
2165
===================================================================
2166
--- a/src/libstdc++-v3/doc/html/manual/appendix_porting.html (.../tags/gcc_4_8_2_release)
2167
+++ b/src/libstdc++-v3/doc/html/manual/appendix_porting.html (.../branches/gcc-4_8-branch)
2169
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2170
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2171
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix 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.
2172
Porting and Maintenance
2174
</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.
2176
</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>
2177
Porting and Maintenance
2178
- <a id="idp22008864" class="indexterm"></a>
2179
-</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">
2180
+ <a id="idm269993523968" class="indexterm"></a>
2181
+</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">
2182
Qualifying Exception Safety Guarantees
2184
</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">
2186
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
2187
<span class="command"><strong>automake</strong></span>) from the file
2188
<code class="filename">Makefile.am</code>.
2189
-</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>
2190
+</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>
2191
Regenerate all generated files by using the command
2192
<code class="code">autoreconf</code> at the top level of the libstdc++ source
2194
Index: libstdc++-v3/doc/html/manual/profile_mode_cost_model.html
2195
===================================================================
2196
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_cost_model.html (.../tags/gcc_4_8_2_release)
2197
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_cost_model.html (.../branches/gcc-4_8-branch)
2199
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2200
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
2201
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
2202
Currently, the cost model uses formulas with predefined relative weights
2203
for alternative containers or container implementations. For instance,
2204
iterating through a vector is X times faster than iterating through a list.
2205
Index: libstdc++-v3/doc/html/manual/make.html
2206
===================================================================
2207
--- a/src/libstdc++-v3/doc/html/manual/make.html (.../tags/gcc_4_8_2_release)
2208
+++ b/src/libstdc++-v3/doc/html/manual/make.html (.../branches/gcc-4_8-branch)
2210
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2211
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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
2212
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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
2213
<a class="link" href="http://gcc.gnu.org/install/" target="_top">GCC Installation
2214
Instructions</a> first. Read <span class="emphasis"><em>all of them</em></span>.
2215
<span class="emphasis"><em>Twice.</em></span>
2216
Index: libstdc++-v3/doc/html/manual/pairs.html
2217
===================================================================
2218
--- a/src/libstdc++-v3/doc/html/manual/pairs.html (.../tags/gcc_4_8_2_release)
2219
+++ b/src/libstdc++-v3/doc/html/manual/pairs.html (.../branches/gcc-4_8-branch)
2221
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2222
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2223
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2226
</th><td width="20%" align="right"> <a accesskey="n" href="memory.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="std.util.pairs"></a>Pairs</h2></div></div></div><p>The <code class="code">pair<T1,T2></code> is a simple and handy way to
2227
Index: libstdc++-v3/doc/html/manual/test.html
2228
===================================================================
2229
--- a/src/libstdc++-v3/doc/html/manual/test.html (.../tags/gcc_4_8_2_release)
2230
+++ b/src/libstdc++-v3/doc/html/manual/test.html (.../branches/gcc-4_8-branch)
2232
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2233
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2234
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2235
Porting and Maintenance
2237
</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>
2239
reporting functions including:
2240
</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>
2241
Qualifying Exception Safety Guarantees
2242
- <a id="idp22628992" class="indexterm"></a>
2243
+ <a id="idm269992903504" class="indexterm"></a>
2244
</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>
2245
Testing is composed of running a particular test sequence,
2246
and looking at what happens to the surrounding code when
2247
Index: libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html
2248
===================================================================
2249
--- a/src/libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html (.../tags/gcc_4_8_2_release)
2250
+++ b/src/libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html (.../branches/gcc-4_8-branch)
2252
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2253
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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>
2254
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
2255
Or as close as it gets: freestanding. This is a minimal
2256
configuration, with only partial support for the standard
2257
library. Assume only the following header files can be used:
2258
Index: libstdc++-v3/doc/html/manual/using_headers.html
2259
===================================================================
2260
--- a/src/libstdc++-v3/doc/html/manual/using_headers.html (.../tags/gcc_4_8_2_release)
2261
+++ b/src/libstdc++-v3/doc/html/manual/using_headers.html (.../branches/gcc-4_8-branch)
2263
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2264
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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>
2265
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
2266
The C++ standard specifies the entire set of header files that
2267
must be available to all hosted implementations. Actually, the
2268
word "files" is a misnomer, since the contents of the
2270
the 1998 standard as updated for 2003, and the current 2011 standard.
2272
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>.
2273
- </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>
2274
+ </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>
2275
C++11 include files. These are only available in C++11 compilation
2276
mode, i.e. <code class="literal">-std=c++11</code> or <code class="literal">-std=gnu++11</code>.
2277
-</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>
2278
+</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>
2279
In addition, TR1 includes as:
2280
-</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++
2281
+</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++
2282
compiler supports scalar decimal floating-point types defined via
2283
<code class="code">__attribute__((mode(SD|DD|LD)))</code>.
2284
-</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>
2285
+</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>
2286
Also included are files for the C++ ABI interface:
2287
-</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>
2288
+</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>
2289
And a large variety of extensions.
2290
-</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.
2291
+</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.
2292
</p><p>First, mixing different dialects of the standard headers is not
2293
possible. It's an all-or-nothing affair. Thus, code like
2294
</p><pre class="programlisting">
2295
Index: libstdc++-v3/doc/html/manual/using_namespaces.html
2296
===================================================================
2297
--- a/src/libstdc++-v3/doc/html/manual/using_namespaces.html (.../tags/gcc_4_8_2_release)
2298
+++ b/src/libstdc++-v3/doc/html/manual/using_namespaces.html (.../branches/gcc-4_8-branch)
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>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.
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>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.
2303
</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
2304
within namespace std." This includes namespaces nested
2305
within <code class="code">namespace std</code>, such as <code class="code">namespace
2306
Index: libstdc++-v3/doc/html/manual/debug.html
2307
===================================================================
2308
--- a/src/libstdc++-v3/doc/html/manual/debug.html (.../tags/gcc_4_8_2_release)
2309
+++ b/src/libstdc++-v3/doc/html/manual/debug.html (.../branches/gcc-4_8-branch)
2311
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2312
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
2313
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
2314
There are numerous things that can be done to improve the ease with
2315
which C++ binaries are debugged when using the GNU tool chain. Here
2319
<a class="link" href="http://valgrind.org/docs/manual/hg-manual.html" target="_top">
2321
- <a class="link" href="http://code.google.com/p/data-race-test" target="_top">
2322
+ <a class="link" href="http://code.google.com/p/data-race-test/" target="_top">
2323
ThreadSanitizer</a>.
2325
With DRD, Helgrind and ThreadSanitizer you will need to define
2326
Index: libstdc++-v3/doc/html/manual/localization.html
2327
===================================================================
2328
--- a/src/libstdc++-v3/doc/html/manual/localization.html (.../tags/gcc_4_8_2_release)
2329
+++ b/src/libstdc++-v3/doc/html/manual/localization.html (.../branches/gcc-4_8-branch)
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>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.
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>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.
2336
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="strings.html">Prev</a> </td><th width="60%" align="center">Part II.
2338
</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.
2340
- <a id="idp15701088" class="indexterm"></a>
2341
-</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>
2342
+ <a id="idm269999830208" class="indexterm"></a>
2343
+</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>
2344
Describes the basic locale object, including nested
2345
classes id, facet, and the reference-counted implementation object,
2347
@@ -402,29 +402,29 @@
2348
What should non-required facet instantiations do? If the
2349
generic implementation is provided, then how to end-users
2350
provide specializations?
2351
- </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">
2352
+ </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">
2354
</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">
2355
Chapters 6 Character Set Handling and 7 Locales and
2356
Internationalization
2357
- . </span></p></div><div class="biblioentry"><a id="idp15748832"></a><p><span class="citetitle"><em class="citetitle">
2358
+ . </span></p></div><div class="biblioentry"><a id="idm269999782464"></a><p><span class="citetitle"><em class="citetitle">
2360
- </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">
2361
+ </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">
2362
ISO/IEC 14882:1998 Programming languages - C++
2363
- </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">
2364
+ </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">
2365
ISO/IEC 9899:1999 Programming languages - C
2366
- </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idp15756480"></a><p><span class="title"><em>
2367
+ </em>. </span><span class="copyright">Copyright © 1999 ISO. </span></p></div><div class="biblioentry"><a id="idm269999774816"></a><p><span class="title"><em>
2368
<a class="link" href="http://www.opengroup.org/austin/" target="_top">
2369
System Interface Definitions, Issue 7 (IEEE Std. 1003.1-2008)
2371
</em>. </span><span class="copyright">Copyright © 2008
2372
The Open Group/The Institute of Electrical and Electronics
2374
- . </span></p></div><div class="biblioentry"><a id="idp15759712"></a><p><span class="citetitle"><em class="citetitle">
2375
+ . </span></p></div><div class="biblioentry"><a id="idm269999771584"></a><p><span class="citetitle"><em class="citetitle">
2376
The C++ Programming Language, Special Edition
2377
</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">
2379
- . </span></span></p></div><div class="biblioentry"><a id="idp15764336"></a><p><span class="citetitle"><em class="citetitle">
2380
+ . </span></span></p></div><div class="biblioentry"><a id="idm269999766960"></a><p><span class="citetitle"><em class="citetitle">
2381
Standard C++ IOStreams and Locales
2382
</em>. </span><span class="subtitle">
2383
Advanced Programmer's Guide and Reference
2384
Index: libstdc++-v3/doc/html/manual/ext_algorithms.html
2385
===================================================================
2386
--- a/src/libstdc++-v3/doc/html/manual/ext_algorithms.html (.../tags/gcc_4_8_2_release)
2387
+++ b/src/libstdc++-v3/doc/html/manual/ext_algorithms.html (.../branches/gcc-4_8-branch)
2389
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2390
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2391
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2394
</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
2395
Index: libstdc++-v3/doc/html/manual/debug_mode.html
2396
===================================================================
2397
--- a/src/libstdc++-v3/doc/html/manual/debug_mode.html (.../tags/gcc_4_8_2_release)
2398
+++ b/src/libstdc++-v3/doc/html/manual/debug_mode.html (.../branches/gcc-4_8-branch)
2400
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
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 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.
2402
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2405
-</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
2406
+</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
2407
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>
2408
By default, libstdc++ is built with efficiency in mind, and
2409
therefore performs little or no error checking that is not
2410
Index: libstdc++-v3/doc/html/manual/profile_mode_design.html
2411
===================================================================
2412
--- a/src/libstdc++-v3/doc/html/manual/profile_mode_design.html (.../tags/gcc_4_8_2_release)
2413
+++ b/src/libstdc++-v3/doc/html/manual/profile_mode_design.html (.../branches/gcc-4_8-branch)
2415
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2416
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
2417
-</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
2418
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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>
2419
+</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
2420
only included from <code class="code">impl/profiler.h</code>, which is the only
2421
file included from the public headers.</td></tr></tbody></table></div></div><br class="table-break" /><p>
2422
</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>
2423
Index: libstdc++-v3/doc/html/manual/using_concurrency.html
2424
===================================================================
2425
--- a/src/libstdc++-v3/doc/html/manual/using_concurrency.html (.../tags/gcc_4_8_2_release)
2426
+++ b/src/libstdc++-v3/doc/html/manual/using_concurrency.html (.../branches/gcc-4_8-branch)
2428
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2429
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
2430
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
2431
of multithreaded applications which use the Standard C++
2432
library. This information is GCC-specific since the C++
2433
standard does not address matters of multithreaded applications.
2434
Index: libstdc++-v3/doc/html/manual/mt_allocator_impl.html
2435
===================================================================
2436
--- a/src/libstdc++-v3/doc/html/manual/mt_allocator_impl.html (.../tags/gcc_4_8_2_release)
2437
+++ b/src/libstdc++-v3/doc/html/manual/mt_allocator_impl.html (.../branches/gcc-4_8-branch)
2439
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2440
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
2441
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
2442
exists a nested <code class="code">struct __pool_base::_Tune</code> that contains all
2443
these parameters, which include settings for
2444
</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
2445
Index: libstdc++-v3/doc/html/manual/appendix_gfdl.html
2446
===================================================================
2447
--- a/src/libstdc++-v3/doc/html/manual/appendix_gfdl.html (.../tags/gcc_4_8_2_release)
2448
+++ b/src/libstdc++-v3/doc/html/manual/appendix_gfdl.html (.../branches/gcc-4_8-branch)
2450
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2451
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2452
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2454
</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>
2455
Copyright © 2000, 2001, 2002, 2007, 2008
2456
Index: libstdc++-v3/doc/html/manual/containers.html
2457
===================================================================
2458
--- a/src/libstdc++-v3/doc/html/manual/containers.html (.../tags/gcc_4_8_2_release)
2459
+++ b/src/libstdc++-v3/doc/html/manual/containers.html (.../branches/gcc-4_8-branch)
2461
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2462
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2463
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2466
</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="facets.html">Prev</a> </td><th width="60%" align="center">Part II.
2468
</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.
2470
- <a id="idp16037808" class="indexterm"></a>
2471
-</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>
2472
+ <a id="idm269999493408" class="indexterm"></a>
2473
+</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>
2474
Yes it is, and that's okay. This is a decision that we preserved
2475
when we imported SGI's STL implementation. The following is
2476
quoted from <a class="link" href="http://www.sgi.com/tech/stl/FAQ.html" target="_top">their FAQ</a>:
2477
Index: libstdc++-v3/doc/html/manual/io.html
2478
===================================================================
2479
--- a/src/libstdc++-v3/doc/html/manual/io.html (.../tags/gcc_4_8_2_release)
2480
+++ b/src/libstdc++-v3/doc/html/manual/io.html (.../branches/gcc-4_8-branch)
2482
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2483
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
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>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.
2487
</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.
2489
</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.
2491
- <a id="idp16257600" class="indexterm"></a>
2492
-</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
2493
+ <a id="idm269999273616" class="indexterm"></a>
2494
+</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
2495
only include the headers you really need. Many people simply include
2496
<iostream> when they don't need to -- and that can <span class="emphasis"><em>penalize
2497
your runtime as well.</em></span> Here are some tips on which header to use
2498
Index: libstdc++-v3/doc/html/manual/index.html
2499
===================================================================
2500
--- a/src/libstdc++-v3/doc/html/manual/index.html (.../tags/gcc_4_8_2_release)
2501
+++ b/src/libstdc++-v3/doc/html/manual/index.html (.../branches/gcc-4_8-branch)
2503
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2504
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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
2505
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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
2506
<a class="link" href="http://www.fsf.org" target="_top">FSF</a>
2507
- </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.
2508
+ </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.
2511
</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.
2513
</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.
2516
-</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.
2517
+</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.
2520
</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.
2523
-</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.
2524
+</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.
2527
</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.
2528
@@ -143,19 +143,19 @@
2530
</a></span></dt><dt><span class="appendix"><a href="appendix_gpl.html">D.
2531
<acronym class="acronym">GNU</acronym> General Public License version 3
2532
- </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">
2533
+ </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">
2534
Effect of embedded lists in
2535
<code class="classname">std::multimap</code>
2536
- </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
2537
- 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
2538
- diagram</a></dt><dt>22.21. <a href="policy_data_structures_design.html#idp18277664">Standard resize policy size sequence
2539
- 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">
2540
+ </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
2541
+ 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
2542
+ diagram</a></dt><dt>22.21. <a href="policy_data_structures_design.html#idm269997253712">Standard resize policy size sequence
2543
+ 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">
2544
A Standard String Hash Function
2545
- </a></dt><dt>22.6. <a href="policy_data_structures_design.html#idp18169344">
2546
+ </a></dt><dt>22.6. <a href="policy_data_structures_design.html#idm269997361840">
2547
Only k String DNA Hash
2548
- </a></dt><dt>22.7. <a href="policy_data_structures_design.html#idp18240448">
2549
+ </a></dt><dt>22.7. <a href="policy_data_structures_design.html#idm269997290864">
2550
Probability of Probe Sequence of Length k
2551
- </a></dt><dt>22.8. <a href="policy_data_structures_design.html#idp18247216">
2552
+ </a></dt><dt>22.8. <a href="policy_data_structures_design.html#idm269997284096">
2553
Probability Probe Sequence in Some Bin
2554
</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.
2556
Index: libstdc++-v3/doc/html/manual/numerics_and_c.html
2557
===================================================================
2558
--- a/src/libstdc++-v3/doc/html/manual/numerics_and_c.html (.../tags/gcc_4_8_2_release)
2559
+++ b/src/libstdc++-v3/doc/html/manual/numerics_and_c.html (.../branches/gcc-4_8-branch)
2561
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2562
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2563
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2566
</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
2567
Index: libstdc++-v3/doc/html/manual/appendix_gpl.html
2568
===================================================================
2569
--- a/src/libstdc++-v3/doc/html/manual/appendix_gpl.html (.../tags/gcc_4_8_2_release)
2570
+++ b/src/libstdc++-v3/doc/html/manual/appendix_gpl.html (.../branches/gcc-4_8-branch)
2572
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
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>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.
2574
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2575
<acronym class="acronym">GNU</acronym> General Public License version 3
2576
</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.
2580
The precise terms and conditions for copying, distribution and modification
2582
- </p><h2><a id="idp23466384"></a>
2583
+ </p><h2><a id="idm269992066368"></a>
2584
TERMS AND CONDITIONS
2585
</h2><h2><a id="gpl-3-definitions"></a>
2588
waiver of all civil liability in connection with the Program, unless a
2589
warranty or assumption of liability accompanies a copy of the Program in
2591
- </p><h2><a id="idp23565184"></a>
2592
+ </p><h2><a id="idm269991967568"></a>
2593
END OF TERMS AND CONDITIONS
2594
</h2><h2><a id="HowToApply"></a>
2595
How to Apply These Terms to Your New Programs
2596
Index: libstdc++-v3/doc/html/manual/source_code_style.html
2597
===================================================================
2598
--- a/src/libstdc++-v3/doc/html/manual/source_code_style.html (.../tags/gcc_4_8_2_release)
2599
+++ b/src/libstdc++-v3/doc/html/manual/source_code_style.html (.../branches/gcc-4_8-branch)
2601
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2602
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2603
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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.
2606
</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>
2607
Index: libstdc++-v3/doc/html/manual/streambufs.html
2608
===================================================================
2609
--- a/src/libstdc++-v3/doc/html/manual/streambufs.html (.../tags/gcc_4_8_2_release)
2610
+++ b/src/libstdc++-v3/doc/html/manual/streambufs.html (.../branches/gcc-4_8-branch)
2612
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2613
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2614
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>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.
2617
</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>
2618
Index: libstdc++-v3/doc/html/manual/utilities.html
2619
===================================================================
2620
--- a/src/libstdc++-v3/doc/html/manual/utilities.html (.../tags/gcc_4_8_2_release)
2621
+++ b/src/libstdc++-v3/doc/html/manual/utilities.html (.../branches/gcc-4_8-branch)
2623
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2624
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2625
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/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.
2628
</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.
2630
</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.
2632
- <a id="idp13862416" class="indexterm"></a>
2633
-</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
2634
+ <a id="idm270001670464" class="indexterm"></a>
2635
+</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
2636
get slightly the wrong idea. In the interest of not reinventing
2637
the wheel, we will refer you to the introduction to the functor
2638
concept written by SGI as part of their STL, in
2639
Index: libstdc++-v3/include/debug/functions.h
2640
===================================================================
2641
--- a/src/libstdc++-v3/include/debug/functions.h (.../tags/gcc_4_8_2_release)
2642
+++ b/src/libstdc++-v3/include/debug/functions.h (.../branches/gcc-4_8-branch)
2643
@@ -345,11 +345,13 @@
2644
return __check_sorted_set_aux(__first, __last, __pred, _SameType());
2647
+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
2648
+ // 270. Binary search requirements overly strict
2649
+ // Determine if a sequence is partitioned w.r.t. this element.
2650
template<typename _ForwardIterator, typename _Tp>
2652
- __check_partitioned_lower_aux(_ForwardIterator __first,
2653
- _ForwardIterator __last, const _Tp& __value,
2654
- std::forward_iterator_tag)
2655
+ __check_partitioned_lower(_ForwardIterator __first,
2656
+ _ForwardIterator __last, const _Tp& __value)
2658
while (__first != __last && *__first < __value)
2660
@@ -362,38 +364,11 @@
2661
return __first == __last;
2664
- // For performance reason, as the iterator range has been validated, check on
2665
- // random access safe iterators is done using the base iterator.
2666
- template<typename _Iterator, typename _Sequence, typename _Tp>
2668
- __check_partitioned_lower_aux(
2669
- const _Safe_iterator<_Iterator, _Sequence>& __first,
2670
- const _Safe_iterator<_Iterator, _Sequence>& __last,
2671
- const _Tp& __value,
2672
- std::random_access_iterator_tag __tag)
2674
- return __check_partitioned_lower_aux(__first.base(), __last.base(),
2678
- // _GLIBCXX_RESOLVE_LIB_DEFECTS
2679
- // 270. Binary search requirements overly strict
2680
- // Determine if a sequence is partitioned w.r.t. this element.
2681
template<typename _ForwardIterator, typename _Tp>
2683
- __check_partitioned_lower(_ForwardIterator __first,
2684
+ __check_partitioned_upper(_ForwardIterator __first,
2685
_ForwardIterator __last, const _Tp& __value)
2687
- return __check_partitioned_lower_aux(__first, __last, __value,
2688
- std::__iterator_category(__first));
2691
- template<typename _ForwardIterator, typename _Tp>
2693
- __check_partitioned_upper_aux(_ForwardIterator __first,
2694
- _ForwardIterator __last, const _Tp& __value,
2695
- std::forward_iterator_tag)
2697
while (__first != __last && !(__value < *__first))
2699
if (__first != __last)
2700
@@ -405,35 +380,12 @@
2701
return __first == __last;
2704
- // For performance reason, as the iterator range has been validated, check on
2705
- // random access safe iterators is done using the base iterator.
2706
- template<typename _Iterator, typename _Sequence, typename _Tp>
2708
- __check_partitioned_upper_aux(
2709
- const _Safe_iterator<_Iterator, _Sequence>& __first,
2710
- const _Safe_iterator<_Iterator, _Sequence>& __last,
2711
- const _Tp& __value,
2712
- std::random_access_iterator_tag __tag)
2714
- return __check_partitioned_upper_aux(__first.base(), __last.base(),
2718
- template<typename _ForwardIterator, typename _Tp>
2720
- __check_partitioned_upper(_ForwardIterator __first,
2721
- _ForwardIterator __last, const _Tp& __value)
2723
- return __check_partitioned_upper_aux(__first, __last, __value,
2724
- std::__iterator_category(__first));
2727
+ // Determine if a sequence is partitioned w.r.t. this element.
2728
template<typename _ForwardIterator, typename _Tp, typename _Pred>
2730
- __check_partitioned_lower_aux(_ForwardIterator __first,
2731
- _ForwardIterator __last, const _Tp& __value,
2733
- std::forward_iterator_tag)
2734
+ __check_partitioned_lower(_ForwardIterator __first,
2735
+ _ForwardIterator __last, const _Tp& __value,
2738
while (__first != __last && bool(__pred(*__first, __value)))
2740
@@ -446,39 +398,12 @@
2741
return __first == __last;
2744
- // For performance reason, as the iterator range has been validated, check on
2745
- // random access safe iterators is done using the base iterator.
2746
- template<typename _Iterator, typename _Sequence,
2747
- typename _Tp, typename _Pred>
2749
- __check_partitioned_lower_aux(
2750
- const _Safe_iterator<_Iterator, _Sequence>& __first,
2751
- const _Safe_iterator<_Iterator, _Sequence>& __last,
2752
- const _Tp& __value, _Pred __pred,
2753
- std::random_access_iterator_tag __tag)
2755
- return __check_partitioned_lower_aux(__first.base(), __last.base(),
2756
- __value, __pred, __tag);
2759
- // Determine if a sequence is partitioned w.r.t. this element.
2760
template<typename _ForwardIterator, typename _Tp, typename _Pred>
2762
- __check_partitioned_lower(_ForwardIterator __first,
2763
+ __check_partitioned_upper(_ForwardIterator __first,
2764
_ForwardIterator __last, const _Tp& __value,
2767
- return __check_partitioned_lower_aux(__first, __last, __value, __pred,
2768
- std::__iterator_category(__first));
2771
- template<typename _ForwardIterator, typename _Tp, typename _Pred>
2773
- __check_partitioned_upper_aux(_ForwardIterator __first,
2774
- _ForwardIterator __last, const _Tp& __value,
2776
- std::forward_iterator_tag)
2778
while (__first != __last && !bool(__pred(__value, *__first)))
2780
if (__first != __last)
2781
@@ -490,31 +415,6 @@
2782
return __first == __last;
2785
- // For performance reason, as the iterator range has been validated, check on
2786
- // random access safe iterators is done using the base iterator.
2787
- template<typename _Iterator, typename _Sequence,
2788
- typename _Tp, typename _Pred>
2790
- __check_partitioned_upper_aux(
2791
- const _Safe_iterator<_Iterator, _Sequence>& __first,
2792
- const _Safe_iterator<_Iterator, _Sequence>& __last,
2793
- const _Tp& __value, _Pred __pred,
2794
- std::random_access_iterator_tag __tag)
2796
- return __check_partitioned_upper_aux(__first.base(), __last.base(),
2797
- __value, __pred, __tag);
2800
- template<typename _ForwardIterator, typename _Tp, typename _Pred>
2802
- __check_partitioned_upper(_ForwardIterator __first,
2803
- _ForwardIterator __last, const _Tp& __value,
2806
- return __check_partitioned_upper_aux(__first, __last, __value, __pred,
2807
- std::__iterator_category(__first));
2810
// Helper struct to detect random access safe iterators.
2811
template<typename _Iterator>
2812
struct __is_safe_random_iterator
2813
Index: libstdc++-v3/include/debug/macros.h
2814
===================================================================
2815
--- a/src/libstdc++-v3/include/debug/macros.h (.../tags/gcc_4_8_2_release)
2816
+++ b/src/libstdc++-v3/include/debug/macros.h (.../branches/gcc-4_8-branch)
2818
w.r.t. the value _Value. */
2819
#define __glibcxx_check_partitioned_lower(_First,_Last,_Value) \
2820
__glibcxx_check_valid_range(_First,_Last); \
2821
-_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower(_First, _Last, \
2823
+_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower( \
2824
+ __gnu_debug::__base(_First), \
2825
+ __gnu_debug::__base(_Last), _Value), \
2826
_M_message(__gnu_debug::__msg_unpartitioned) \
2827
._M_iterator(_First, #_First) \
2828
._M_iterator(_Last, #_Last) \
2831
#define __glibcxx_check_partitioned_upper(_First,_Last,_Value) \
2832
__glibcxx_check_valid_range(_First,_Last); \
2833
-_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper(_First, _Last, \
2835
+_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper( \
2836
+ __gnu_debug::__base(_First), \
2837
+ __gnu_debug::__base(_Last), _Value), \
2838
_M_message(__gnu_debug::__msg_unpartitioned) \
2839
._M_iterator(_First, #_First) \
2840
._M_iterator(_Last, #_Last) \
2842
w.r.t. the value _Value and predicate _Pred. */
2843
#define __glibcxx_check_partitioned_lower_pred(_First,_Last,_Value,_Pred) \
2844
__glibcxx_check_valid_range(_First,_Last); \
2845
-_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower(_First, _Last, \
2847
+_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_lower( \
2848
+ __gnu_debug::__base(_First), \
2849
+ __gnu_debug::__base(_Last), _Value, _Pred), \
2850
_M_message(__gnu_debug::__msg_unpartitioned_pred) \
2851
._M_iterator(_First, #_First) \
2852
._M_iterator(_Last, #_Last) \
2854
w.r.t. the value _Value and predicate _Pred. */
2855
#define __glibcxx_check_partitioned_upper_pred(_First,_Last,_Value,_Pred) \
2856
__glibcxx_check_valid_range(_First,_Last); \
2857
-_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper(_First, _Last, \
2859
+_GLIBCXX_DEBUG_VERIFY(__gnu_debug::__check_partitioned_upper( \
2860
+ __gnu_debug::__base(_First), \
2861
+ __gnu_debug::__base(_Last), _Value, _Pred), \
2862
_M_message(__gnu_debug::__msg_unpartitioned_pred) \
2863
._M_iterator(_First, #_First) \
2864
._M_iterator(_Last, #_Last) \
2865
Index: libstdc++-v3/include/bits/stl_algo.h
2866
===================================================================
2867
--- a/src/libstdc++-v3/include/bits/stl_algo.h (.../tags/gcc_4_8_2_release)
2868
+++ b/src/libstdc++-v3/include/bits/stl_algo.h (.../branches/gcc-4_8-branch)
2869
@@ -2279,7 +2279,7 @@
2870
_RandomAccessIterator __last)
2872
_RandomAccessIterator __mid = __first + (__last - __first) / 2;
2873
- std::__move_median_to_first(__first, __first + 1, __mid, (__last - 2));
2874
+ std::__move_median_to_first(__first, __first + 1, __mid, __last - 1);
2875
return std::__unguarded_partition(__first + 1, __last, *__first);
2878
@@ -2291,7 +2291,7 @@
2879
_RandomAccessIterator __last, _Compare __comp)
2881
_RandomAccessIterator __mid = __first + (__last - __first) / 2;
2882
- std::__move_median_to_first(__first, __first + 1, __mid, (__last - 2),
2883
+ std::__move_median_to_first(__first, __first + 1, __mid, __last - 1,
2885
return std::__unguarded_partition(__first + 1, __last, *__first, __comp);
2887
Index: libstdc++-v3/include/bits/shared_ptr_base.h
2888
===================================================================
2889
--- a/src/libstdc++-v3/include/bits/shared_ptr_base.h (.../tags/gcc_4_8_2_release)
2890
+++ b/src/libstdc++-v3/include/bits/shared_ptr_base.h (.../branches/gcc-4_8-branch)
2893
template<typename... _Args>
2894
_Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
2895
- : _M_impl(__a), _M_storage()
2898
_M_impl._M_ptr = static_cast<_Tp*>(static_cast<void*>(&_M_storage));
2899
// _GLIBCXX_RESOLVE_LIB_DEFECTS
2901
: _M_ptr(__r.get()), _M_refcount()
2903
__glibcxx_function_requires(_ConvertibleConcept<_Tp1*, _Tp*>)
2904
- auto __tmp = std::__addressof(*__r.get());
2905
+ auto __tmp = __r.get();
2906
_M_refcount = __shared_count<_Lp>(std::move(__r));
2907
__enable_shared_from_this_helper(_M_refcount, __tmp, __tmp);
2909
Index: libstdc++-v3/include/c_global/cstdio
2910
===================================================================
2911
--- a/src/libstdc++-v3/include/c_global/cstdio (.../tags/gcc_4_8_2_release)
2912
+++ b/src/libstdc++-v3/include/c_global/cstdio (.../branches/gcc-4_8-branch)
2921
Index: libstdc++-v3/ChangeLog
2922
===================================================================
2923
--- a/src/libstdc++-v3/ChangeLog (.../tags/gcc_4_8_2_release)
2924
+++ b/src/libstdc++-v3/ChangeLog (.../branches/gcc-4_8-branch)
2926
+2013-11-05 Jonathan Wakely <jwakely.gcc@gmail.com>
2928
+ * doc/xml/manual/status_cxx2011.xml: Document aligned_union as
2931
+ * doc/xml/manual/spine.xml: Update copyright years.
2932
+ * doc/html/*: Regenerate.
2934
+2013-11-01 Paolo Carlini <paolo.carlini@oracle.com>
2936
+ PR libstdc++/58952
2937
+ * include/c_global/cstdio: Undef getchar.
2939
+2013-10-31 Jonathan Wakely <jwakely.gcc@gmail.com>
2941
+ * testsuite/20_util/shared_ptr/cons/58839.cc: Do not use
2942
+ default_delete<void>.
2944
+2013-10-30 Chris Studholme <cvs@cs.utoronto.ca>
2946
+ PR libstdc++/58912
2947
+ * include/bits/shared_ptr_base.h (_Sp_counted_ptr_inplace): Remove
2948
+ unnecessary initialization of storage buffer.
2950
+2013-10-29 Jonathan Wakely <jwakely.gcc@gmail.com>
2952
+ PR libstdc++/58839
2953
+ * include/bits/shared_ptr_base.h
2954
+ (__shared_ptr<T>::__shared_ptr(unique_ptr<U,D>&&)): Do not dereference
2956
+ * testsuite/20_util/shared_ptr/cons/58839.cc: New.
2958
+2013-10-20 Chris Jefferson <chris@bubblescope.net>
2959
+ Paolo Carlini <paolo.carlini@oracle.com>
2961
+ PR libstdc++/58800
2962
+ * include/bits/stl_algo.h (__unguarded_partition_pivot): Change
2963
+ __last - 2 to __last - 1.
2964
+ * testsuite/25_algorithms/nth_element/58800.cc: New
2966
+2013-10-16 François Dumont <fdumont@gcc.gnu.org>
2968
+ PR libstdc++/58191
2969
+ * include/debug/macros.h (__glibcxx_check_partitioned_lower): Add
2970
+ __gnu_debug::__base calls on iterators passed to internal debug
2972
+ (__glibcxx_check_partitioned_lower_pred): Likewise.
2973
+ (__glibcxx_check_partitioned_upper): Likewise.
2974
+ (__glibcxx_check_partitioned_upper_pred): Likewise.
2975
+ * include/debug/functions.h (__check_partitioned_lower):
2976
+ Remove code to detect safe iterators.
2977
+ (__check_partitioned_upper): Likewise.
2979
2013-10-16 Release Manager
2981
* GCC 4.8.2 released.
2982
Index: libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc
2983
===================================================================
2984
--- a/src/libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc (.../tags/gcc_4_8_2_release)
2985
+++ b/src/libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc (.../branches/gcc-4_8-branch)
2987
+// Copyright (C) 2013 Free Software Foundation, Inc.
2989
+// This file is part of the GNU ISO C++ Library. This library is free
2990
+// software; you can redistribute it and/or modify it under the
2991
+// terms of the GNU General Public License as published by the
2992
+// Free Software Foundation; either version 3, or (at your option)
2993
+// any later version.
2995
+// This library is distributed in the hope that it will be useful,
2996
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
2997
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2998
+// GNU General Public License for more details.
3000
+// You should have received a copy of the GNU General Public License along
3001
+// with this library; see the file COPYING3. If not see
3002
+// <http://www.gnu.org/licenses/>.
3004
+// 25.3.2 [lib.alg.nth.element]
3006
+// { dg-options "-std=gnu++11" }
3008
+#include <algorithm>
3009
+#include <testsuite_hooks.h>
3010
+#include <testsuite_iterators.h>
3012
+using __gnu_test::test_container;
3013
+using __gnu_test::random_access_iterator_wrapper;
3015
+typedef test_container<int, random_access_iterator_wrapper> Container;
3019
+ std::vector<int> v = {
3029
+ Container con(v.data(), v.data() + 7);
3031
+ std::nth_element(con.begin(), con.begin() + 3, con.end());
3039
Index: libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc
3040
===================================================================
3041
--- a/src/libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc (.../tags/gcc_4_8_2_release)
3042
+++ b/src/libstdc++-v3/testsuite/20_util/shared_ptr/cons/58839.cc (.../branches/gcc-4_8-branch)
3044
+// { dg-options "-std=gnu++11" }
3045
+// { dg-do compile }
3047
+// Copyright (C) 2013 Free Software Foundation, Inc.
3049
+// This file is part of the GNU ISO C++ Library. This library is free
3050
+// software; you can redistribute it and/or modify it under the
3051
+// terms of the GNU General Public License as published by the
3052
+// Free Software Foundation; either version 3, or (at your option)
3053
+// any later version.
3055
+// This library is distributed in the hope that it will be useful,
3056
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
3057
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3058
+// GNU General Public License for more details.
3060
+// You should have received a copy of the GNU General Public License along
3061
+// with this library; see the file COPYING3. If not see
3062
+// <http://www.gnu.org/licenses/>.
3069
+ void operator()(void*) const noexcept { }
3074
+ std::unique_ptr<void, D> y;
3075
+ std::shared_ptr<void> x = std::move(y);
3077
Index: contrib/ChangeLog
3078
===================================================================
3079
--- a/src/contrib/ChangeLog (.../tags/gcc_4_8_2_release)
3080
+++ b/src/contrib/ChangeLog (.../branches/gcc-4_8-branch)
3082
+2013-10-21 Mike Stump <mikestump@comcast.net>
3084
+ * gcc_update (configure): Update to handle svn 1.8.1.
3086
2013-10-16 Release Manager
3088
* GCC 4.8.2 released.
3089
Index: contrib/gcc_update
3090
===================================================================
3091
--- a/src/contrib/gcc_update (.../tags/gcc_4_8_2_release)
3092
+++ b/src/contrib/gcc_update (.../branches/gcc-4_8-branch)
3096
revision=`$GCC_SVN info | awk '/Revision:/ { print $2 }'`
3097
- branch=`$GCC_SVN info | sed -ne "/URL:/ {
3098
+ branch=`$GCC_SVN info | sed -ne "/^URL:/ {
3102
Index: libgcc/ChangeLog
3103
===================================================================
3104
--- a/src/libgcc/ChangeLog (.../tags/gcc_4_8_2_release)
3105
+++ b/src/libgcc/ChangeLog (.../branches/gcc-4_8-branch)
3107
+2013-11-10 Kai Tietz <ktietz@redhat.com>
3109
+ Back-merged from trunk
3110
+ * config/i386/cygming-crtbegin.c (__gcc_register_frame):
3111
+ Increment load-count on use of LIBGCC_SONAME DLL.
3112
+ (hmod_libgcc): New static variable to hold handle of
3113
+ LIBGCC_SONAME DLL.
3114
+ (__gcc_deregister_frame): Decrement load-count of
3115
+ LIBGCC_SONAME DLL.
3117
+2013-11-07 Uros Bizjak <ubizjak@gmail.com>
3119
+ * config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Handle
3120
+ FP_EX_DENORM. Store result to volatile location after SSE division
3121
+ to close interrupt window. Remove unneeded fwait after x87
3122
+ division since interrupt window will be closed by emitted fstp.
3123
+ Rewrite FP_EX_INEXACT handling.
3125
2013-10-16 Release Manager
3127
* GCC 4.8.2 released.
3128
Index: libgcc/config/i386/sfp-exceptions.c
3129
===================================================================
3130
--- a/src/libgcc/config/i386/sfp-exceptions.c (.../tags/gcc_4_8_2_release)
3131
+++ b/src/libgcc/config/i386/sfp-exceptions.c (.../branches/gcc-4_8-branch)
3136
+ volatile float r __attribute__ ((unused));
3137
asm volatile ("%vdivss\t{%0, %d0|%d0, %0}" : "+x" (f));
3138
+ r = f; /* Needed to trigger exception. */
3140
asm volatile ("fdiv\t{%y0, %0|%0, %y0}" : "+t" (f));
3141
- asm volatile ("fwait");
3142
+ /* No need for fwait, exception is triggered by emitted fstp. */
3145
+ if (_fex & FP_EX_DENORM)
3148
+ asm volatile ("fnstenv\t%0" : "=m" (temp));
3149
+ temp.__status_word |= FP_EX_DENORM;
3150
+ asm volatile ("fldenv\t%0" : : "m" (temp));
3151
+ asm volatile ("fwait");
3153
if (_fex & FP_EX_DIVZERO)
3155
float f = 1.0f, g = 0.0f;
3157
+ volatile float r __attribute__ ((unused));
3158
asm volatile ("%vdivss\t{%1, %d0|%d0, %1}" : "+x" (f) : "xm" (g));
3159
+ r = f; /* Needed to trigger exception. */
3161
asm volatile ("fdivs\t%1" : "+t" (f) : "m" (g));
3162
- asm volatile ("fwait");
3163
+ /* No need for fwait, exception is triggered by emitted fstp. */
3166
if (_fex & FP_EX_OVERFLOW)
3169
if (_fex & FP_EX_INEXACT)
3172
- asm volatile ("fnstenv\t%0" : "=m" (temp));
3173
- temp.__status_word |= FP_EX_INEXACT;
3174
- asm volatile ("fldenv\t%0" : : "m" (temp));
3175
- asm volatile ("fwait");
3176
+ float f = 1.0f, g = 3.0f;
3178
+ volatile float r __attribute__ ((unused));
3179
+ asm volatile ("%vdivss\t{%1, %d0|%d0, %1}" : "+x" (f) : "xm" (g));
3180
+ r = f; /* Needed to trigger exception. */
3182
+ asm volatile ("fdivs\t%1" : "+t" (f) : "m" (g));
3183
+ /* No need for fwait, exception is triggered by emitted fstp. */
3188
Index: libgcc/config/i386/cygming-crtbegin.c
3189
===================================================================
3190
--- a/src/libgcc/config/i386/cygming-crtbegin.c (.../tags/gcc_4_8_2_release)
3191
+++ b/src/libgcc/config/i386/cygming-crtbegin.c (.../branches/gcc-4_8-branch)
3195
static struct object obj;
3197
+/* Handle of libgcc's DLL reference. */
3198
+HANDLE hmod_libgcc;
3201
#if TARGET_USE_JCR_SECTION
3204
void (*register_frame_fn) (const void *, struct object *);
3205
HANDLE h = GetModuleHandle (LIBGCC_SONAME);
3208
- register_frame_fn = (void (*) (const void *, struct object *))
3209
- GetProcAddress (h, "__register_frame_info");
3211
+ /* Increasing the load-count of LIBGCC_SONAME DLL. */
3212
+ hmod_libgcc = LoadLibrary (LIBGCC_SONAME);
3213
+ register_frame_fn = (void (*) (const void *, struct object *))
3214
+ GetProcAddress (h, "__register_frame_info");
3217
register_frame_fn = __register_frame_info;
3218
if (register_frame_fn)
3220
deregister_frame_fn = __deregister_frame_info;
3221
if (deregister_frame_fn)
3222
deregister_frame_fn (__EH_FRAME_BEGIN__);
3224
+ FreeLibrary (hmod_libgcc);
3227
Index: gcc/loop-unswitch.c
3228
===================================================================
3229
--- a/src/gcc/loop-unswitch.c (.../tags/gcc_4_8_2_release)
3230
+++ b/src/gcc/loop-unswitch.c (.../branches/gcc-4_8-branch)
3236
for (i = 0; i < 2; i++)
3238
op[i] = XEXP (test, i);
3239
@@ -205,11 +206,15 @@
3242
op[i] = get_iv_value (&iv, const0_rtx);
3243
+ if (iv.extend != IV_UNKNOWN_EXTEND
3244
+ && iv.mode != iv.extend_mode)
3245
+ op[i] = lowpart_subreg (iv.mode, op[i], iv.extend_mode);
3246
+ if (mode == VOIDmode)
3249
+ gcc_assert (mode == iv.mode);
3252
- mode = GET_MODE (op[0]);
3253
- if (mode == VOIDmode)
3254
- mode = GET_MODE (op[1]);
3255
if (GET_MODE_CLASS (mode) == MODE_CC)
3257
if (at != BB_END (bb))
3258
Index: gcc/tree-ssa-loop-im.c
3259
===================================================================
3260
--- a/src/gcc/tree-ssa-loop-im.c (.../tags/gcc_4_8_2_release)
3261
+++ b/src/gcc/tree-ssa-loop-im.c (.../branches/gcc-4_8-branch)
3262
@@ -1190,6 +1190,67 @@
3263
fini_walk_dominator_tree (&walk_data);
3266
+/* Return true if CODE is an operation that when operating on signed
3267
+ integer types involves undefined behavior on overflow and the
3268
+ operation can be expressed with unsigned arithmetic. */
3271
+arith_code_with_undefined_signed_overflow (tree_code code)
3279
+ case POINTER_PLUS_EXPR:
3286
+/* Rewrite STMT, an assignment with a signed integer or pointer arithmetic
3287
+ operation that can be transformed to unsigned arithmetic by converting
3288
+ its operand, carrying out the operation in the corresponding unsigned
3289
+ type and converting the result back to the original type.
3291
+ Returns a sequence of statements that replace STMT and also contain
3292
+ a modified form of STMT itself. */
3295
+rewrite_to_defined_overflow (gimple stmt)
3297
+ if (dump_file && (dump_flags & TDF_DETAILS))
3299
+ fprintf (dump_file, "rewriting stmt with undefined signed "
3301
+ print_gimple_stmt (dump_file, stmt, 0, TDF_SLIM);
3304
+ tree lhs = gimple_assign_lhs (stmt);
3305
+ tree type = unsigned_type_for (TREE_TYPE (lhs));
3306
+ gimple_seq stmts = NULL;
3307
+ for (unsigned i = 1; i < gimple_num_ops (stmt); ++i)
3309
+ gimple_seq stmts2 = NULL;
3310
+ gimple_set_op (stmt, i,
3311
+ force_gimple_operand (fold_convert (type,
3312
+ gimple_op (stmt, i)),
3313
+ &stmts2, true, NULL_TREE));
3314
+ gimple_seq_add_seq (&stmts, stmts2);
3316
+ gimple_assign_set_lhs (stmt, make_ssa_name (type, stmt));
3317
+ if (gimple_assign_rhs_code (stmt) == POINTER_PLUS_EXPR)
3318
+ gimple_assign_set_rhs_code (stmt, PLUS_EXPR);
3319
+ gimple_seq_add_stmt (&stmts, stmt);
3320
+ gimple cvt = gimple_build_assign_with_ops
3321
+ (NOP_EXPR, lhs, gimple_assign_lhs (stmt), NULL_TREE);
3322
+ gimple_seq_add_stmt (&stmts, cvt);
3327
/* Hoist the statements in basic block BB out of the loops prescribed by
3328
data stored in LIM_DATA structures associated with each statement. Callback
3329
for walk_dominator_tree. */
3330
@@ -1321,7 +1382,21 @@
3333
gsi_remove (&bsi, false);
3334
- gsi_insert_on_edge (e, stmt);
3335
+ /* In case this is a stmt that is not unconditionally executed
3336
+ when the target loop header is executed and the stmt may
3337
+ invoke undefined integer or pointer overflow rewrite it to
3338
+ unsigned arithmetic. */
3339
+ if (is_gimple_assign (stmt)
3340
+ && INTEGRAL_TYPE_P (TREE_TYPE (gimple_assign_lhs (stmt)))
3341
+ && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (gimple_assign_lhs (stmt)))
3342
+ && arith_code_with_undefined_signed_overflow
3343
+ (gimple_assign_rhs_code (stmt))
3344
+ && (!ALWAYS_EXECUTED_IN (bb)
3345
+ || !(ALWAYS_EXECUTED_IN (bb) == level
3346
+ || flow_loop_nested_p (ALWAYS_EXECUTED_IN (bb), level))))
3347
+ gsi_insert_seq_on_edge (e, rewrite_to_defined_overflow (stmt));
3349
+ gsi_insert_on_edge (e, stmt);
3353
Index: gcc/tree-ssa-tail-merge.c
3354
===================================================================
3355
--- a/src/gcc/tree-ssa-tail-merge.c (.../tags/gcc_4_8_2_release)
3356
+++ b/src/gcc/tree-ssa-tail-merge.c (.../branches/gcc-4_8-branch)
3359
def_operand_p def_p;
3361
- if (gimple_has_side_effects (stmt))
3362
+ if (gimple_has_side_effects (stmt)
3363
+ || gimple_vdef (stmt) != NULL_TREE)
3366
def_p = SINGLE_SSA_DEF_OPERAND (stmt, SSA_OP_DEF);
3367
Index: gcc/cgraphbuild.c
3368
===================================================================
3369
--- a/src/gcc/cgraphbuild.c (.../tags/gcc_4_8_2_release)
3370
+++ b/src/gcc/cgraphbuild.c (.../branches/gcc-4_8-branch)
3372
decl = get_base_var (*tp);
3373
if (TREE_CODE (decl) == FUNCTION_DECL)
3375
- struct cgraph_node *node = cgraph_get_create_node (decl);
3376
+ struct cgraph_node *node = cgraph_get_create_real_symbol_node (decl);
3377
if (!ctx->only_vars)
3378
cgraph_mark_address_taken_node (node);
3379
ipa_record_reference ((symtab_node)ctx->varpool_node,
3382
struct cgraph_node *per_node;
3384
- per_node = cgraph_get_create_node (DECL_FUNCTION_PERSONALITY (node->symbol.decl));
3385
+ per_node = cgraph_get_create_real_symbol_node (DECL_FUNCTION_PERSONALITY (node->symbol.decl));
3386
ipa_record_reference ((symtab_node)node, (symtab_node)per_node, IPA_REF_ADDR, NULL);
3387
cgraph_mark_address_taken_node (per_node);
3390
addr = get_base_address (addr);
3391
if (TREE_CODE (addr) == FUNCTION_DECL)
3393
- struct cgraph_node *node = cgraph_get_create_node (addr);
3394
+ struct cgraph_node *node = cgraph_get_create_real_symbol_node (addr);
3395
cgraph_mark_address_taken_node (node);
3396
ipa_record_reference ((symtab_node)data,
3400
/* ??? This can happen on platforms with descriptors when these are
3401
directly manipulated in the code. Pretend that it's an address. */
3402
- struct cgraph_node *node = cgraph_get_create_node (t);
3403
+ struct cgraph_node *node = cgraph_get_create_real_symbol_node (t);
3404
cgraph_mark_address_taken_node (node);
3405
ipa_record_reference ((symtab_node)data,
3409
tree fn = gimple_omp_parallel_child_fn (stmt);
3410
ipa_record_reference ((symtab_node)node,
3411
- (symtab_node)cgraph_get_create_node (fn),
3412
+ (symtab_node)cgraph_get_create_real_symbol_node (fn),
3413
IPA_REF_ADDR, stmt);
3415
if (gimple_code (stmt) == GIMPLE_OMP_TASK)
3416
@@ -338,12 +338,12 @@
3417
tree fn = gimple_omp_task_child_fn (stmt);
3419
ipa_record_reference ((symtab_node)node,
3420
- (symtab_node) cgraph_get_create_node (fn),
3421
+ (symtab_node) cgraph_get_create_real_symbol_node (fn),
3422
IPA_REF_ADDR, stmt);
3423
fn = gimple_omp_task_copy_fn (stmt);
3425
ipa_record_reference ((symtab_node)node,
3426
- (symtab_node)cgraph_get_create_node (fn),
3427
+ (symtab_node)cgraph_get_create_real_symbol_node (fn),
3428
IPA_REF_ADDR, stmt);
3431
Index: gcc/c-family/ChangeLog
3432
===================================================================
3433
--- a/src/gcc/c-family/ChangeLog (.../tags/gcc_4_8_2_release)
3434
+++ b/src/gcc/c-family/ChangeLog (.../branches/gcc-4_8-branch)
3436
+2013-11-04 Marek Polacek <polacek@redhat.com>
3438
+ Backport from mainline
3439
+ 2013-11-04 Marek Polacek <polacek@redhat.com>
3442
+ * c-common.c (invalid_indirection_error): Handle RO_ARROW_STAR case.
3444
2013-10-16 Release Manager
3446
* GCC 4.8.2 released.
3447
Index: gcc/c-family/c-common.c
3448
===================================================================
3449
--- a/src/gcc/c-family/c-common.c (.../tags/gcc_4_8_2_release)
3450
+++ b/src/gcc/c-family/c-common.c (.../branches/gcc-4_8-branch)
3451
@@ -9763,6 +9763,11 @@
3452
"invalid type argument of %<->%> (have %qT)",
3455
+ case RO_ARROW_STAR:
3457
+ "invalid type argument of %<->*%> (have %qT)",
3460
case RO_IMPLICIT_CONVERSION:
3462
"invalid type argument of implicit conversion (have %qT)",
3464
===================================================================
3465
--- a/src/gcc/cgraph.c (.../tags/gcc_4_8_2_release)
3466
+++ b/src/gcc/cgraph.c (.../branches/gcc-4_8-branch)
3467
@@ -2596,4 +2596,47 @@
3468
FOR_EACH_FUNCTION (node)
3469
verify_cgraph_node (node);
3472
+/* Create external decl node for DECL.
3473
+ The difference i nbetween cgraph_get_create_node and
3474
+ cgraph_get_create_real_symbol_node is that cgraph_get_create_node
3475
+ may return inline clone, while cgraph_get_create_real_symbol_node
3476
+ will create a new node in this case.
3477
+ FIXME: This function should be removed once clones are put out of decl
3480
+struct cgraph_node *
3481
+cgraph_get_create_real_symbol_node (tree decl)
3483
+ struct cgraph_node *first_clone = cgraph_get_node (decl);
3484
+ struct cgraph_node *node;
3485
+ /* create symbol table node. even if inline clone exists, we can not take
3486
+ it as a target of non-inlined call. */
3487
+ node = cgraph_get_node (decl);
3488
+ if (node && !node->global.inlined_to)
3491
+ node = cgraph_create_node (decl);
3493
+ /* ok, we previously inlined the function, then removed the offline copy and
3494
+ now we want it back for external call. this can happen when devirtualizing
3495
+ while inlining function called once that happens after extern inlined and
3496
+ virtuals are already removed. in this case introduce the external node
3497
+ and make it available for call. */
3500
+ first_clone->clone_of = node;
3501
+ node->clones = first_clone;
3502
+ symtab_prevail_in_asm_name_hash ((symtab_node) node);
3503
+ symtab_insert_node_to_hashtable ((symtab_node) node);
3505
+ fprintf (dump_file, "Introduced new external node "
3506
+ "(%s/%i) and turned into root of the clone tree.\n",
3507
+ xstrdup (cgraph_node_name (node)), node->uid);
3509
+ else if (dump_file)
3510
+ fprintf (dump_file, "Introduced new external node "
3511
+ "(%s/%i).\n", xstrdup (cgraph_node_name (node)), node->uid);
3514
#include "gt-cgraph.h"
3516
===================================================================
3517
--- a/src/gcc/cgraph.h (.../tags/gcc_4_8_2_release)
3518
+++ b/src/gcc/cgraph.h (.../branches/gcc-4_8-branch)
3520
struct cgraph_node * cgraph_create_node (tree);
3521
struct cgraph_node * cgraph_create_empty_node (void);
3522
struct cgraph_node * cgraph_get_create_node (tree);
3523
+struct cgraph_node * cgraph_get_create_real_symbol_node (tree);
3524
struct cgraph_node * cgraph_same_body_alias (struct cgraph_node *, tree, tree);
3525
struct cgraph_node * cgraph_add_thunk (struct cgraph_node *, tree, tree, bool, HOST_WIDE_INT,
3526
HOST_WIDE_INT, tree, tree);
3528
===================================================================
3529
--- a/src/gcc/optabs.c (.../tags/gcc_4_8_2_release)
3530
+++ b/src/gcc/optabs.c (.../branches/gcc-4_8-branch)
3531
@@ -7035,8 +7035,7 @@
3533
create_output_operand (&ops[0], target, mode);
3534
create_fixed_operand (&ops[1], mem);
3535
- /* VAL may have been promoted to a wider mode. Shrink it if so. */
3536
- create_convert_operand_to (&ops[2], val, mode, true);
3537
+ create_input_operand (&ops[2], val, mode);
3538
create_integer_operand (&ops[3], model);
3539
if (maybe_expand_insn (icode, 4, ops))
3540
return ops[0].value;
3541
@@ -7075,8 +7074,7 @@
3542
struct expand_operand ops[3];
3543
create_output_operand (&ops[0], target, mode);
3544
create_fixed_operand (&ops[1], mem);
3545
- /* VAL may have been promoted to a wider mode. Shrink it if so. */
3546
- create_convert_operand_to (&ops[2], val, mode, true);
3547
+ create_input_operand (&ops[2], val, mode);
3548
if (maybe_expand_insn (icode, 3, ops))
3549
return ops[0].value;
3551
@@ -7118,8 +7116,6 @@
3553
if (!target || !register_operand (target, mode))
3554
target = gen_reg_rtx (mode);
3555
- if (GET_MODE (val) != VOIDmode && GET_MODE (val) != mode)
3556
- val = convert_modes (mode, GET_MODE (val), val, 1);
3557
if (expand_compare_and_swap_loop (mem, target, val, NULL_RTX))
3560
@@ -7331,8 +7327,8 @@
3561
create_output_operand (&ops[0], target_bool, bool_mode);
3562
create_output_operand (&ops[1], target_oval, mode);
3563
create_fixed_operand (&ops[2], mem);
3564
- create_convert_operand_to (&ops[3], expected, mode, true);
3565
- create_convert_operand_to (&ops[4], desired, mode, true);
3566
+ create_input_operand (&ops[3], expected, mode);
3567
+ create_input_operand (&ops[4], desired, mode);
3568
create_integer_operand (&ops[5], is_weak);
3569
create_integer_operand (&ops[6], succ_model);
3570
create_integer_operand (&ops[7], fail_model);
3571
@@ -7353,8 +7349,8 @@
3573
create_output_operand (&ops[0], target_oval, mode);
3574
create_fixed_operand (&ops[1], mem);
3575
- create_convert_operand_to (&ops[2], expected, mode, true);
3576
- create_convert_operand_to (&ops[3], desired, mode, true);
3577
+ create_input_operand (&ops[2], expected, mode);
3578
+ create_input_operand (&ops[3], desired, mode);
3579
if (!maybe_expand_insn (icode, 4, ops))
3582
Index: gcc/DATESTAMP
3583
===================================================================
3584
--- a/src/gcc/DATESTAMP (.../tags/gcc_4_8_2_release)
3585
+++ b/src/gcc/DATESTAMP (.../branches/gcc-4_8-branch)
3589
Index: gcc/configure
3590
===================================================================
3591
--- a/src/gcc/configure (.../tags/gcc_4_8_2_release)
3592
+++ b/src/gcc/configure (.../branches/gcc-4_8-branch)
3593
@@ -27239,8 +27239,8 @@
3594
$as_echo_n "checking for exported symbols... " >&6; }
3595
if test "x$export_sym_check" != x; then
3596
echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c
3597
- ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest > /dev/null 2>&1
3598
- if $export_sym_check conftest | grep foobar > /dev/null; then
3599
+ ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest$ac_exeext > /dev/null 2>&1
3600
+ if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then
3601
: # No need to use a flag
3602
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
3603
$as_echo "yes" >&6; }
3604
@@ -27249,8 +27249,8 @@
3605
$as_echo "yes" >&6; }
3606
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -rdynamic" >&5
3607
$as_echo_n "checking for -rdynamic... " >&6; }
3608
- ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1
3609
- if $export_sym_check conftest | grep foobar > /dev/null; then
3610
+ ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest$ac_exeext > /dev/null 2>&1
3611
+ if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then
3613
pluginlibs="-rdynamic"
3615
Index: gcc/fold-const.c
3616
===================================================================
3617
--- a/src/gcc/fold-const.c (.../tags/gcc_4_8_2_release)
3618
+++ b/src/gcc/fold-const.c (.../branches/gcc-4_8-branch)
3619
@@ -2664,10 +2664,11 @@
3621
/* Handle operand 2 the same as for ARRAY_REF. Operand 0
3622
may be NULL when we're called to compare MEM_EXPRs. */
3623
- if (!OP_SAME_WITH_NULL (0))
3624
+ if (!OP_SAME_WITH_NULL (0)
3627
flags &= ~OEP_CONSTANT_ADDRESS_OF;
3628
- return OP_SAME (1) && OP_SAME_WITH_NULL (2);
3629
+ return OP_SAME_WITH_NULL (2);
3633
@@ -10927,6 +10928,13 @@
3634
fold_build2_loc (loc, MULT_EXPR, type,
3635
build_int_cst (type, 2) , arg1));
3637
+ /* ((T) (X /[ex] C)) * C cancels out if the conversion is
3638
+ sign-changing only. */
3639
+ if (TREE_CODE (arg1) == INTEGER_CST
3640
+ && TREE_CODE (arg0) == EXACT_DIV_EXPR
3641
+ && operand_equal_p (arg1, TREE_OPERAND (arg0, 1), 0))
3642
+ return fold_convert_loc (loc, type, TREE_OPERAND (arg0, 0));
3644
strict_overflow_p = false;
3645
if (TREE_CODE (arg1) == INTEGER_CST
3646
&& 0 != (tem = extract_muldiv (op0, arg1, code, NULL_TREE,
3647
Index: gcc/ChangeLog
3648
===================================================================
3649
--- a/src/gcc/ChangeLog (.../tags/gcc_4_8_2_release)
3650
+++ b/src/gcc/ChangeLog (.../branches/gcc-4_8-branch)
3652
+2013-11-21 Zhenqiang Chen <zhenqiang.chen@linaro.org>
3654
+ PR bootstrap/57683
3655
+ Backport from mainline: r197467 and r198999.
3656
+ 2013-04-03 Jeff Law <law@redhat.com>
3658
+ * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
3659
+ (lra-eliminations.o): Likewise.
3661
+ 2013-05-16 Jeff Law <law@redhat.com>
3663
+ * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
3665
+2013-11-20 Eric Botcazou <ebotcazou@adacore.com>
3668
+ * config/sparc/sparc.c (sparc_fold_builtin) <case CODE_FOR_pdist_vis>:
3669
+ Make sure neg2_ovf is set before being used.
3671
+2013-11-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3672
+ Dominik Vogt <vogt@linux.vnet.ibm.com>
3674
+ Backport from mainline
3675
+ * config/s390/s390.c (s390_canonicalize_comparison): Don't fold
3676
+ int comparisons with an out of range condition code.
3677
+ (s390_optimize_nonescaping_tx): Skip empty BBs.
3678
+ Generate the new tbegin RTX when removing the FPR clobbers (with
3680
+ (s390_expand_tbegin): Fix the retry loop counter. Copy CC to the
3681
+ result before doing the retry calculations.
3682
+ (s390_init_builtins): Make tbegin "returns_twice" and tabort
3684
+ * config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for
3685
+ the TDB setting part of an tbegin.
3686
+ ("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB.
3687
+ ("tx_assist"): Set unused argument to an immediate zero instead of
3688
+ loading zero into a GPR and pass it as argument.
3689
+ * config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin):
3690
+ Remove inline and related attributes.
3691
+ (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort)
3692
+ (__TM_is_illegal, __TM_is_footprint_exceeded)
3693
+ (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value
3696
+2013-11-19 Uros Bizjak <ubizjak@gmail.com>
3698
+ Backport from mainline
3699
+ 2013-11-18 Uros Bizjak <ubizjak@gmail.com>
3701
+ * config/i386/i386.c (ix86_decompose_address): Use REG_P instead of
3702
+ ix86_address_subreg_operand. Move subreg checks to
3703
+ ix86_validate_address_register. Move address override check to
3704
+ ix86_legitimate_address_p.
3705
+ (ix86_validate_address_register): New function.
3706
+ (ix86_legitimate_address_p): Call ix86_validate_address_register
3707
+ to validate base and index registers. Add address override check
3708
+ from ix86_decompose_address.
3709
+ (ix86_decompose_address): Remove.
3711
+ Backport from mainline
3712
+ 2013-11-17 Uros Bizjak <ubizjak@gmail.com>
3715
+ * config/i386/i386.c (ix86_address_subreg_operand): Do not
3716
+ reject non-integer subregs.
3717
+ (ix86_decompose_address): Do not reject invalid CONST_INT RTXes.
3718
+ Move check for invalid x32 constant addresses ...
3719
+ (ix86_legitimate_address_p): ... here.
3721
+2013-11-19 Richard Biener <rguenther@suse.de>
3723
+ Backport from mainline
3724
+ 2013-11-07 Richard Biener <rguenther@suse.de>
3726
+ * tree-dfa.c (get_ref_base_and_extent): Fix casting.
3728
+2013-11-19 Richard Biener <rguenther@suse.de>
3730
+ PR tree-optimization/57517
3731
+ * tree-predcom.c (combinable_refs_p): Verify the combination
3732
+ is always executed when the refs are.
3734
+2013-11-19 Richard Biener <rguenther@suse.de>
3736
+ Backport from mainline
3737
+ 2013-11-05 Richard Biener <rguenther@suse.de>
3739
+ PR middle-end/58941
3740
+ * tree-dfa.c (get_ref_base_and_extent): Merge common code
3741
+ in MEM_REF and TARGET_MEM_REF handling. Make sure to
3742
+ process trailing array detection before diving into the
3743
+ view-converted object (and possibly apply some extra offset).
3745
+2013-11-18 Richard Biener <rguenther@suse.de>
3747
+ Backport from mainline
3748
+ 2013-10-21 Richard Biener <rguenther@suse.de>
3750
+ PR tree-optimization/58794
3751
+ * fold-const.c (operand_equal_p): Compare FIELD_DECL operand
3752
+ of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place.
3754
+ 2013-10-21 Richard Biener <rguenther@suse.de>
3756
+ PR middle-end/58742
3757
+ * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C
3758
+ to (T) X for sign-changing conversions (or no conversion).
3760
+ 2013-11-06 Richard Biener <rguenther@suse.de>
3762
+ PR tree-optimization/58653
3763
+ * tree-predcom.c (ref_at_iteration): Rewrite to generate
3765
+ (prepare_initializers_chain): Adjust.
3767
+ PR tree-optimization/59047
3768
+ * tree-predcom.c (ref_at_iteration): Handle bitfield accesses
3771
+ 2013-10-15 Richard Biener <rguenther@suse.de>
3773
+ PR tree-optimization/58143
3774
+ * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
3776
+ (rewrite_to_defined_overflow): Likewise.
3777
+ (move_computations_dom_walker::before_dom): Rewrite stmts
3778
+ with undefined signed overflow that are not always executed
3779
+ into unsigned arithmetic.
3781
+2013-11-14 Uros Bizjak <ubizjak@gmail.com>
3783
+ Backport from mainline
3784
+ 2013-11-10 Uros Bizjak <ubizjak@gmail.com>
3786
+ * mode-switching.c (optimize_mode_switching): Mark block as
3787
+ nontransparent, if last_mode at block exit is different from no_mode.
3789
+ Backport from mainline
3790
+ 2013-11-06 Uros Bizjak <ubizjak@gmail.com>
3793
+ * config/i386/i386.c (ix86_avx_u128_mode_needed): Require
3794
+ AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers.
3795
+ (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn
3796
+ RTXes that return in AVX256 register.
3798
+2013-11-14 Jakub Jelinek <jakub@redhat.com>
3799
+ Uros Bizjak <ubizjak@gmail.com>
3802
+ * config/i386/i386.md (*anddi_2): Only allow CCZmode if
3803
+ operands[2] satisfies_constraint_Z that might have bit 31 set.
3805
+2013-11-12 H.J. Lu <hongjiu.lu@intel.com>
3807
+ Backported from mainline
3808
+ 2013-11-12 H.J. Lu <hongjiu.lu@intel.com>
3811
+ * config/i386/i386.c (initial_ix86_tune_features): Set
3812
+ X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL and
3813
+ X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL for m_HASWELL.
3815
+2013-11-11 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3817
+ Backported from mainline
3818
+ 2013-10-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3821
+ * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage
3823
+2013-11-11 Jakub Jelinek <jakub@redhat.com>
3825
+ Backported from mainline
3826
+ 2013-11-06 Jakub Jelinek <jakub@redhat.com>
3828
+ PR middle-end/58970
3829
+ * expr.c (get_bit_range): Handle *offset == NULL_TREE.
3830
+ (expand_assignment): If *bitpos is negative, set *offset
3831
+ and adjust *bitpos, so that it is not negative.
3833
+ 2013-11-05 Jakub Jelinek <jakub@redhat.com>
3835
+ PR rtl-optimization/58997
3836
+ * loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect
3837
+ get_iv_value to be in iv->mode rather than iv->extend_mode.
3838
+ (iv_extend): Likewise. Otherwise, if iv->extend != extend,
3839
+ use lowpart_subreg on get_iv_value before calling simplify_gen_unary.
3840
+ * loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right
3843
+2013-11-10 Karlson2k <k2k@narod.ru>
3844
+ Kai Tietz <ktietz@redhat.com>
3848
+ * configure.ac: Adding for exported symbols check
3849
+ and for rdynamic-check executable-extension.
3850
+ * configure: Regenerated.
3852
+2013-11-07 H.J. Lu <hongjiu.lu@intel.com>
3855
+ * config/i386/i386.md (push peepholer/splitter): Use Pmode
3856
+ with stack_pointer_rtx.
3858
+2013-11-05 Uros Bizjak <ubizjak@gmail.com>
3860
+ * config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos.
3862
+2013-11-05 Jakub Jelinek <jakub@redhat.com>
3864
+ PR tree-optimization/58984
3865
+ * ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument,
3866
+ set *SIZE_P if non-NULL on success.
3867
+ (ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust
3869
+ (ipcp_transform_function): Likewise. Punt if size of access
3870
+ is different from TYPE_SIZE on v->value's type.
3872
+2013-11-03 H.J. Lu <hongjiu.lu@intel.com>
3874
+ Backport from mainline
3875
+ 2013-10-12 H.J. Lu <hongjiu.lu@intel.com>
3878
+ * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
3879
+ (ix86_expand_movmem): Replace copy_addr_to_reg with
3880
+ ix86_copy_addr_to_reg.
3881
+ (ix86_expand_setmem): Likewise.
3883
+2013-10-29 Uros Bizjak <ubizjak@gmail.com>
3885
+ Backport from mainline
3886
+ 2013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
3888
+ PR rtl-optimization/58079
3889
+ * combine.c (combine_simplify_rtx): Avoid using SUBST if
3890
+ simplify_comparison has widened a comparison with an integer.
3892
+2013-10-29 Martin Jambor <mjambor@suse.cz>
3894
+ PR middle-end/58789
3895
+ Backport from mainline
3896
+ 2013-05-09 Martin Jambor <mjambor@suse.cz>
3899
+ * gimple-fold.c (canonicalize_constructor_val): Call
3900
+ cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
3902
+ Backport from mainline
3903
+ 2013-03-16 Jan Hubicka <jh@suse.cz>
3905
+ * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
3906
+ * cgraph.c (cgraph_get_create_real_symbol_node): New function.
3907
+ * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
3908
+ of cgraph_get_create_node.
3909
+ * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
3911
+2013-10-28 Tom de Vries <tom@codesourcery.com>
3913
+ * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn.
3914
+ Don't commit insertions after NOTE_INSN_FUNCTION_BEG.
3916
+2013-10-26 Uros Bizjak <ubizjak@gmail.com>
3918
+ Backport from mainline
3919
+ 2013-10-22 Uros Bizjak <ubizjak@gmail.com>
3922
+ * config/i386/i386.c (put_condition_code) <case GTU, case LEU>:
3923
+ Remove CCCmode handling.
3924
+ <case LTU>: Return 'c' suffix for CCCmode.
3925
+ <case GEU>: Return 'nc' suffix for CCCmode.
3926
+ (ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks.
3927
+ * config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove.
3928
+ (*sub<mode>3_cc_overflow): Ditto.
3929
+ (*subsi3_zext_cc_overflow): Ditto.
3931
+2013-10-26 Uros Bizjak <ubizjak@gmail.com>
3933
+ Backport from mainline
3934
+ 2013-10-19 Uros Bizjak <ubizjak@gmail.com>
3937
+ * config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
3938
+ ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG
3939
+ and SI_REG for 64bit SYSV ABI targets.
3941
+2013-08-25 Richard Henderson <rth@twiddle.net>
3944
+ * optabs.c (maybe_emit_atomic_exchange): Use create_input_operand
3945
+ instead of create_convert_operand_to.
3946
+ (maybe_emit_sync_lock_test_and_set): Likewise.
3947
+ (expand_atomic_compare_and_swap): Likewise.
3948
+ (maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes.
3950
+2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
3952
+ PR rtl-optimization/58831
3953
+ * alias.c (init_alias_analysis): At the beginning of each iteration, set
3954
+ the reg_seen[N] bit if static_reg_base_value[N] is non-null.
3956
+2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
3958
+ * recog.c (search_ofs): New static variable moved from...
3959
+ (peep2_find_free_register): ...here.
3960
+ (peephole2_optimize): Initialize it.
3962
+2013-10-24 David Edelsohn <dje.gcc@gmail.com>
3964
+ Backport from mainline
3965
+ 2013-10-23 David Edelsohn <dje.gcc@gmail.com>
3968
+ * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add
3969
+ TARGET_32BIT final condition.
3970
+ (mulsi3_internal2 and splitter): Same.
3972
+2013-10-23 Tom de Vries <tom@codesourcery.com>
3974
+ PR tree-optimization/58805
3975
+ * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check.
3977
+2013-10-23 Richard Biener <rguenther@suse.de>
3979
+ Backport from mainline
3980
+ 2013-06-24 Richard Biener <rguenther@suse.de>
3982
+ PR tree-optimization/57488
3983
+ * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
3985
+2013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
3987
+ Backport from mainline
3988
+ 2013-10-16 Ganesh Gopalasubramanian
3989
+ <Ganesh.Gopalasubramanian@amd.com>
3991
+ * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
3994
2013-10-16 Release Manager
3996
* GCC 4.8.2 released.
3998
2013-07-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4000
Backport from mainline
4001
- 2013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4002
+ 2013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4004
* config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
4006
Index: gcc/testsuite/gcc.target/arm/require-pic-register-loc.c
4007
===================================================================
4008
--- a/src/gcc/testsuite/gcc.target/arm/require-pic-register-loc.c (.../tags/gcc_4_8_2_release)
4009
+++ b/src/gcc/testsuite/gcc.target/arm/require-pic-register-loc.c (.../branches/gcc-4_8-branch)
4011
+/* { dg-do compile } */
4012
+/* { dg-options "-g -fPIC" } */
4015
+void a (void *x) { }
4019
+main (int argc) /* line 9. */
4021
+ if (argc == 12345) /* line 11. */
4031
+/* { dg-final { scan-assembler-not "\.loc 1 7 0" } } */
4032
+/* { dg-final { scan-assembler-not "\.loc 1 8 0" } } */
4033
+/* { dg-final { scan-assembler-not "\.loc 1 9 0" } } */
4035
+/* The loc at the start of the prologue. */
4036
+/* { dg-final { scan-assembler-times "\.loc 1 10 0" 1 } } */
4038
+/* The loc at the end of the prologue, with the first user line. */
4039
+/* { dg-final { scan-assembler-times "\.loc 1 11 0" 1 } } */
4040
Index: gcc/testsuite/gcc.target/i386/pr59034-1.c
4041
===================================================================
4042
--- a/src/gcc/testsuite/gcc.target/i386/pr59034-1.c (.../tags/gcc_4_8_2_release)
4043
+++ b/src/gcc/testsuite/gcc.target/i386/pr59034-1.c (.../branches/gcc-4_8-branch)
4045
+/* { dg-do compile { target { ! { ia32 } } } } */
4046
+/* { dg-require-effective-target maybe_x32 } */
4047
+/* { dg-options "-O -mx32 -mtune=corei7 -maddress-mode=short" } */
4049
+extern int foo(int, ...);
4051
+ long double l = 1.2345E6;
4055
Index: gcc/testsuite/gcc.target/i386/pr58690.c
4056
===================================================================
4057
--- a/src/gcc/testsuite/gcc.target/i386/pr58690.c (.../tags/gcc_4_8_2_release)
4058
+++ b/src/gcc/testsuite/gcc.target/i386/pr58690.c (.../branches/gcc-4_8-branch)
4060
+/* { dg-do compile { target { ! { ia32 } } } } */
4061
+/* { dg-require-effective-target maybe_x32 } */
4062
+/* { dg-options "-O2 -mx32 -maddress-mode=short" } */
4068
+extern __thread struct gomp_thread gomp_tls_data;
4072
+ __builtin_memset (&gomp_tls_data, '\0', sizeof (gomp_tls_data));
4074
Index: gcc/testsuite/gcc.target/i386/pr59021.c
4075
===================================================================
4076
--- a/src/gcc/testsuite/gcc.target/i386/pr59021.c (.../tags/gcc_4_8_2_release)
4077
+++ b/src/gcc/testsuite/gcc.target/i386/pr59021.c (.../branches/gcc-4_8-branch)
4079
+/* { dg-do compile } */
4080
+/* { dg-options "-O2 -mavx -mvzeroupper" } */
4082
+extern void abort (void);
4090
+typedef double v4df __attribute__ ((vector_size (32)));
4092
+extern int foo (v4df, int i1, int i2, int i3, int i4, int i5, struct S s);
4094
+void bar (v4df v, struct S s)
4096
+ int r = foo (v, 1, 2, 3, 4, 5, s);
4101
+/* { dg-final { scan-assembler-not "vzeroupper" } } */
4102
Index: gcc/testsuite/gcc.target/i386/pr59034-2.c
4103
===================================================================
4104
--- a/src/gcc/testsuite/gcc.target/i386/pr59034-2.c (.../tags/gcc_4_8_2_release)
4105
+++ b/src/gcc/testsuite/gcc.target/i386/pr59034-2.c (.../branches/gcc-4_8-branch)
4107
+/* { dg-do compile { target { ! { ia32 } } } } */
4108
+/* { dg-require-effective-target maybe_x32 } */
4109
+/* { dg-options "-O -mx32 -mtune=corei7 -maddress-mode=long" } */
4111
+extern int foo(int, ...);
4113
+ long double l = 1.2345E6;
4117
Index: gcc/testsuite/gcc.target/i386/pr30315.c
4118
===================================================================
4119
--- a/src/gcc/testsuite/gcc.target/i386/pr30315.c (.../tags/gcc_4_8_2_release)
4120
+++ b/src/gcc/testsuite/gcc.target/i386/pr30315.c (.../branches/gcc-4_8-branch)
4122
/* { dg-do compile } */
4123
/* { dg-options "-O2" } */
4124
-/* { dg-final { scan-assembler-times "cmp" 4 } } */
4125
+/* { dg-final { scan-assembler-not "cmp" } } */
4127
extern void abort (void);
4131
#define PLUSCCONLY(T, t) PLUSCCONLY1(T, t, a) PLUSCCONLY1(T, t, b)
4133
-#define MINUSCC(T, t) \
4134
-T minuscc##t (T a, T b) \
4136
- T difference = a - b; \
4137
- if (difference > a) \
4139
- return difference; \
4142
-#define DECCC(T, t) \
4143
-T deccc##t (T a, T b) \
4145
- T difference = a - b; \
4146
- if (difference > a) \
4148
- return difference; \
4151
-#define MINUSCCONLY(T, t) \
4152
-void minuscconly##t (T a, T b) \
4154
- T difference = a - b; \
4155
- if (difference > a) \
4159
#define TEST(T, t) \
4164
- MINUSCCONLY(T, t) \
4168
TEST (unsigned long, l)
4169
TEST (unsigned int, i)
4175
-#define MINUSCCZEXT \
4176
-unsigned long minuscczext (unsigned int a, unsigned int b) \
4178
- unsigned int difference = a - b; \
4179
- if (difference > a) \
4181
- return difference; \
4185
Index: gcc/testsuite/gcc.target/s390/htm-xl-intrin-1.c
4186
===================================================================
4187
--- a/src/gcc/testsuite/gcc.target/s390/htm-xl-intrin-1.c (.../tags/gcc_4_8_2_release)
4188
+++ b/src/gcc/testsuite/gcc.target/s390/htm-xl-intrin-1.c (.../branches/gcc-4_8-branch)
4190
-/* This checks the availability of the XL compiler intrinsics for
4191
- transactional execution with the expected prototypes. */
4193
-/* { dg-do compile } */
4194
-/* { dg-options "-O3 -march=zEC12 -mzarch" } */
4196
-#include <htmxlintrin.h>
4204
- struct __htm_tdb *tdb_struct;
4205
- void * const tdb = tdb_struct;
4207
- unsigned char code;
4209
- result = __TM_simple_begin ();
4210
- result = __TM_begin (tdb);
4211
- result = __TM_end ();
4213
- __TM_named_abort (42);
4214
- __TM_non_transactional_store (&g, 42);
4215
- result = __TM_nesting_depth (tdb);
4217
- result = __TM_is_user_abort (tdb);
4218
- result = __TM_is_named_user_abort (tdb, &code);
4219
- result = __TM_is_illegal (tdb);
4220
- result = __TM_is_footprint_exceeded (tdb);
4221
- result = __TM_is_nested_too_deep (tdb);
4222
- result = __TM_is_conflict (tdb);
4223
- result = __TM_is_failure_persistent (result);
4224
- result = __TM_failure_address (tdb);
4225
- result = __TM_failure_code (tdb);
4227
Index: gcc/testsuite/gcc.target/s390/htm-1.c
4228
===================================================================
4229
--- a/src/gcc/testsuite/gcc.target/s390/htm-1.c (.../tags/gcc_4_8_2_release)
4230
+++ b/src/gcc/testsuite/gcc.target/s390/htm-1.c (.../branches/gcc-4_8-branch)
4232
-/* This checks the availability of the low-level builtins introduced
4233
- for transactional execution. */
4235
-/* { dg-do compile } */
4236
-/* { dg-options "-O3 -march=zEC12 -mzarch" } */
4238
-#include <stdint.h>
4239
-#include <htmintrin.h>
4243
-struct __htm_tdb global_tdb;
4246
-foo (struct __htm_tdb* tdb, int reg, int *mem, uint64_t *mem64)
4252
- cc = __builtin_tbegin (0);
4253
- cc = __builtin_tbegin (tdb);
4254
- cc = __builtin_tbegin (&global_tdb);
4256
- cc = __builtin_tbegin_nofloat (0);
4257
- cc = __builtin_tbegin_nofloat (&global_tdb);
4259
- cc = __builtin_tbegin_retry (0, 42);
4260
- cc = __builtin_tbegin_retry (0, reg);
4261
- cc = __builtin_tbegin_retry (0, *mem);
4262
- cc = __builtin_tbegin_retry (0, global);
4263
- cc = __builtin_tbegin_retry (tdb, 42);
4264
- cc = __builtin_tbegin_retry (&global_tdb, 42);
4266
- cc = __builtin_tbegin_retry_nofloat (0, 42);
4267
- cc = __builtin_tbegin_retry_nofloat (0, reg);
4268
- cc = __builtin_tbegin_retry_nofloat (0, *mem);
4269
- cc = __builtin_tbegin_retry_nofloat (0, global);
4270
- cc = __builtin_tbegin_retry_nofloat (&global_tdb, 42);
4272
- __builtin_tbeginc ();
4274
- n = __builtin_tx_nesting_depth();
4276
- __builtin_non_tx_store(&g, 23);
4277
- __builtin_non_tx_store(mem64, 23);
4278
- __builtin_non_tx_store(&g, reg);
4279
- __builtin_non_tx_store(&g, *mem);
4280
- __builtin_non_tx_store(&g, global);
4282
- __builtin_tabort (42 + 255);
4283
- __builtin_tabort (reg);
4284
- /* { dg-final { scan-assembler-times "tabort\t255" 1 } } */
4285
- __builtin_tabort (reg + 255);
4286
- __builtin_tabort (*mem);
4287
- __builtin_tabort (global);
4288
- /* Here global + 255 gets reloaded into a reg. Better would be to
4289
- just reload global or *mem and get the +255 for free as address
4291
- __builtin_tabort (*mem + 255);
4292
- __builtin_tabort (global + 255);
4296
- __builtin_tx_assist (23);
4297
- __builtin_tx_assist (reg);
4298
- __builtin_tx_assist (*mem);
4299
- __builtin_tx_assist (global);
4302
-/* Make sure the tdb NULL argument ends up as immediate value in the
4304
-/* { dg-final { scan-assembler-times "tbegin\t0," 10 } } */
4305
Index: gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c
4306
===================================================================
4307
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c (.../tags/gcc_4_8_2_release)
4308
+++ b/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c (.../branches/gcc-4_8-branch)
4310
+/* This checks the availability of the low-level builtins introduced
4311
+ for transactional execution. */
4313
+/* { dg-do compile } */
4314
+/* { dg-require-effective-target htm } */
4315
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
4317
+#include <stdint.h>
4318
+#include <htmintrin.h>
4322
+struct __htm_tdb global_tdb;
4325
+foo (struct __htm_tdb* tdb, int reg, int *mem, uint64_t *mem64)
4331
+ __builtin_tbegin ((void *)0);
4332
+ __builtin_tbegin ((void *)-99999);
4333
+ __builtin_tbegin ((void *)99999);
4334
+ while (__builtin_tbegin ((void *)0) != 0)
4337
+ cc = __builtin_tbegin ((void *)0x12345678);
4338
+ cc = __builtin_tbegin (tdb);
4339
+ cc = __builtin_tbegin (&global_tdb);
4340
+ cc = __builtin_tbegin ((void *)(long long)(reg + 0x12345678));
4341
+ cc = __builtin_tbegin ((void *)(long long)(reg));
4343
+ __builtin_tbegin_nofloat ((void *)0);
4344
+ __builtin_tbegin_nofloat ((void *)-99999);
4345
+ __builtin_tbegin_nofloat ((void *)99999);
4346
+ cc = __builtin_tbegin_nofloat ((void *)0x12345678);
4347
+ cc = __builtin_tbegin_nofloat (tdb);
4348
+ cc = __builtin_tbegin_nofloat (&global_tdb);
4349
+ cc = __builtin_tbegin_nofloat ((void *)(long long)(reg + 0x12345678));
4350
+ cc = __builtin_tbegin_nofloat ((void *)(long long)(reg));
4352
+ __builtin_tbegin_retry ((void *)0, 0);
4353
+ cc = __builtin_tbegin_retry ((void *)0, 1);
4354
+ cc = __builtin_tbegin_retry ((void *)0, -1);
4355
+ cc = __builtin_tbegin_retry ((void *)0, 42);
4356
+ cc = __builtin_tbegin_retry ((void *)0, reg);
4357
+ cc = __builtin_tbegin_retry ((void *)0, *mem);
4358
+ cc = __builtin_tbegin_retry ((void *)0, global);
4359
+ cc = __builtin_tbegin_retry (tdb, 42);
4360
+ cc = __builtin_tbegin_retry (&global_tdb, 42);
4361
+ cc = __builtin_tbegin_retry ((void *)0x12345678, global);
4362
+ cc = __builtin_tbegin_retry (
4363
+ (void *)(long long) (reg + 0x12345678), global + 1);
4364
+ cc = __builtin_tbegin_retry (
4365
+ (void *)(long long)(reg), global - 1);
4367
+ __builtin_tbegin_retry_nofloat ((void *)0, 0);
4368
+ cc = __builtin_tbegin_retry_nofloat ((void *)0, 1);
4369
+ cc = __builtin_tbegin_retry_nofloat ((void *)0, -1);
4370
+ cc = __builtin_tbegin_retry_nofloat ((void *)0, 42);
4371
+ cc = __builtin_tbegin_retry_nofloat ((void *)0, reg);
4372
+ cc = __builtin_tbegin_retry_nofloat ((void *)0, *mem);
4373
+ cc = __builtin_tbegin_retry_nofloat ((void *)0, global);
4374
+ cc = __builtin_tbegin_retry_nofloat (tdb, 42);
4375
+ cc = __builtin_tbegin_retry_nofloat (&global_tdb, 42);
4376
+ cc = __builtin_tbegin_retry_nofloat ((void *)0x12345678, global);
4377
+ cc = __builtin_tbegin_retry_nofloat (
4378
+ (void *)(long long) (reg + 0x12345678), global + 1);
4379
+ cc = __builtin_tbegin_retry_nofloat (
4380
+ (void *)(long long)(reg), global - 1);
4382
+ __builtin_tbeginc ();
4384
+ __builtin_tx_nesting_depth ();
4385
+ n = __builtin_tx_nesting_depth ();
4387
+ __builtin_non_tx_store (mem64, 0);
4389
+ const uint64_t val_var = 0x1122334455667788;
4391
+ __builtin_non_tx_store (mem64, val_var);
4393
+ __builtin_non_tx_store (mem64, (uint64_t)reg);
4394
+ __builtin_non_tx_store (mem64, g);
4395
+ __builtin_non_tx_store ((uint64_t *)0, 0);
4396
+ __builtin_non_tx_store ((uint64_t *)0x12345678, 0);
4397
+ __builtin_non_tx_store (&g, 23);
4398
+ __builtin_non_tx_store (&g, reg);
4399
+ __builtin_non_tx_store (&g, *mem);
4400
+ __builtin_non_tx_store (&g, global);
4404
+ __builtin_tx_assist (0);
4405
+ __builtin_tx_assist (1);
4406
+ __builtin_tx_assist (reg);
4407
+ __builtin_tx_assist (*mem);
4408
+ __builtin_tx_assist (global);
4411
+/* The taborts must go into separate function since they are
4417
+ __builtin_tabort (256);
4423
+ __builtin_tabort (reg);
4429
+ /* { dg-final { scan-assembler-times "tabort\t255" 1 } } */
4430
+ __builtin_tabort (reg + 255);
4436
+ __builtin_tabort (*mem);
4442
+ __builtin_tabort (global);
4448
+ /* Here global + 255 gets reloaded into a reg. Better would be to
4449
+ just reload global or *mem and get the +255 for free as address
4451
+ __builtin_tabort (*mem + 255);
4457
+ __builtin_tabort (global + 255);
4463
+ __builtin_tabort (-1);
4467
+/* Make sure the tdb NULL argument ends up as immediate value in the
4469
+/* { dg-final { scan-assembler-times "tbegin\t0," 17 } } */
4470
+/* { dg-final { scan-assembler-times "tbegin\t" 41 } } */
4471
+/* Check number of occurences of certain instructions. */
4472
+/* { dg-final { scan-assembler-times "tbeginc\t" 1 } } */
4473
+/* { dg-final { scan-assembler-times "tabort\t" 8 } } */
4474
+/* { dg-final { scan-assembler "ppa\t" } } */
4475
Index: gcc/testsuite/gcc.target/s390/htm-builtins-compile-2.c
4476
===================================================================
4477
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-2.c (.../tags/gcc_4_8_2_release)
4478
+++ b/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-2.c (.../branches/gcc-4_8-branch)
4480
+/* { dg-do compile } */
4481
+/* { dg-require-effective-target htm } */
4482
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
4484
+void must_not_compile1 (void)
4486
+ __builtin_tabort (0); /* { dg-error "Invalid transaction abort code:" } */
4489
+void must_not_compile2 (void)
4491
+ __builtin_tabort (255); /* { dg-error "Invalid transaction abort code:" } */
4493
Index: gcc/testsuite/gcc.target/s390/htm-builtins-compile-3.c
4494
===================================================================
4495
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-3.c (.../tags/gcc_4_8_2_release)
4496
+++ b/src/gcc/testsuite/gcc.target/s390/htm-builtins-compile-3.c (.../branches/gcc-4_8-branch)
4498
+/* This checks the availability of the XL compiler intrinsics for
4499
+ transactional execution with the expected prototypes. */
4501
+/* { dg-do compile } */
4502
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
4504
+#include <htmxlintrin.h>
4512
+ struct __htm_tdb *tdb_struct;
4513
+ void * const tdb = tdb_struct;
4515
+ unsigned char code;
4517
+ result = __TM_simple_begin ();
4518
+ result = __TM_begin (tdb);
4519
+ result = __TM_end ();
4521
+ __TM_named_abort (42);
4522
+ __TM_non_transactional_store (&g, 42);
4523
+ result = __TM_nesting_depth (tdb);
4525
+ result = __TM_is_user_abort (tdb);
4526
+ result = __TM_is_named_user_abort (tdb, &code);
4527
+ result = __TM_is_illegal (tdb);
4528
+ result = __TM_is_footprint_exceeded (tdb);
4529
+ result = __TM_is_nested_too_deep (tdb);
4530
+ result = __TM_is_conflict (tdb);
4531
+ result = __TM_is_failure_persistent (result);
4532
+ result = __TM_failure_address (tdb);
4533
+ result = __TM_failure_code (tdb);
4535
Index: gcc/testsuite/gcc.target/s390/s390.exp
4536
===================================================================
4537
--- a/src/gcc/testsuite/gcc.target/s390/s390.exp (.../tags/gcc_4_8_2_release)
4538
+++ b/src/gcc/testsuite/gcc.target/s390/s390.exp (.../branches/gcc-4_8-branch)
4540
# Load support procs.
4543
+# Return 1 if htm (etnd - extract nesting depth) instructions can be
4545
+proc check_effective_target_htm { } {
4546
+ if { ![check_runtime s390_check_htm [subst {
4549
+ unsigned int nd = 77;
4550
+ asm (".insn rre,0xb2ec0000,%0,0" : "=d" (nd));
4553
+ }]] } { return 0 } else { return 1 }
4556
# If a testcase doesn't have special options, use these.
4557
global DEFAULT_CFLAGS
4558
if ![info exists DEFAULT_CFLAGS] then {
4559
Index: gcc/testsuite/gcc.target/s390/htm-builtins-1.c
4560
===================================================================
4561
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-1.c (.../tags/gcc_4_8_2_release)
4562
+++ b/src/gcc/testsuite/gcc.target/s390/htm-builtins-1.c (.../branches/gcc-4_8-branch)
4564
+/* Functional tests of the htm __builtin_... macros. */
4566
+/* { dg-do run } */
4567
+/* { dg-require-effective-target htm } */
4568
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
4570
+/* ---------------------------- included header files ---------------------- */
4573
+#include <string.h>
4574
+#include <stdint.h>
4575
+#include <htmintrin.h>
4577
+/* ---------------------------- local definitions -------------------------- */
4579
+#define DEFAULT_MAX_REPETITIONS 5
4580
+#define DEFAULT_REQUIRED_QUORUM ((DEFAULT_MAX_REPETITIONS) - 1)
4581
+#define NUM_WARMUP_RUNS 10
4583
+/* ---------------------------- local macros ------------------------------- */
4585
+#define TEST_DF_REP(name) \
4586
+ { #name, name, DEFAULT_MAX_REPETITIONS, DEFAULT_REQUIRED_QUORUM }
4587
+#define TEST_NO_REP(name) { #name, name, 1, 1 }
4589
+/* ---------------------------- local types -------------------------------- */
4591
+typedef int (*test_func_t)(void);
4596
+ test_func_t test_func;
4597
+ int max_repetitions;
4598
+ int required_quorum;
4599
+} test_table_entry_t;
4601
+/* ---------------------------- local variables ---------------------------- */
4603
+__attribute__ ((aligned(256))) static struct __htm_tdb local_tdb256;
4604
+static struct __htm_tdb local_tdb;
4605
+static int do_dump_tdb = 0;
4607
+/* ---------------------------- exported variables (globals) --------------- */
4609
+__attribute__ ((aligned(256))) struct
4614
+} global = { 1.0, 2.5, 0.0 };
4616
+__attribute__ ((aligned(256))) struct
4618
+ volatile uint64_t c1;
4619
+ volatile uint64_t c2;
4620
+ volatile uint64_t c3;
4621
+} counters = { 0, 0, 0 };
4623
+/* ---------------------------- local helper functions --------------------- */
4625
+static void dump_tdb (struct __htm_tdb *tdb)
4631
+ if (do_dump_tdb == 0)
4635
+ p = (unsigned char *)tdb;
4636
+ for (i = 0; i < 16; i++)
4638
+ fprintf (stderr, "0x%02x ", i * 16);
4639
+ for (j = 0; j < 16; j++)
4641
+ fprintf (stderr, "%02x", (int)p[i * 16 + j]);
4644
+ fprintf (stderr, " ");
4648
+ fprintf (stderr, " ");
4651
+ fprintf (stderr, "\n");
4657
+/* ---------------------------- local test functions ----------------------- */
4659
+/* Check values of the constants defined in htmintrin.h. */
4660
+static int test_constants (void)
4662
+ if (_HTM_TBEGIN_STARTED != 0)
4664
+ return 100 * _HTM_TBEGIN_STARTED + 1;
4666
+ if (_HTM_TBEGIN_INDETERMINATE != 1)
4668
+ return 100 * _HTM_TBEGIN_INDETERMINATE + 2;
4670
+ if (_HTM_TBEGIN_TRANSIENT != 2)
4672
+ return 100 * _HTM_TBEGIN_TRANSIENT + 3;
4674
+ if (_HTM_TBEGIN_PERSISTENT != 3)
4676
+ return 100 * _HTM_TBEGIN_PERSISTENT + 4;
4682
+static int test_tbegin_ntstg_tend (void)
4688
+ if ((rc = __builtin_tbegin ((void *)0)) == 0)
4690
+ __builtin_non_tx_store ((uint64_t *)&counters.c1, 1);
4692
+ rc = __builtin_tend ();
4695
+ return 100 * rc + 5;
4697
+ if (counters.c1 != 1)
4699
+ return 100 * counters.c1 + 2;
4701
+ if (counters.c2 != 2)
4703
+ return 100 * counters.c2 + 3;
4708
+ return 100 * rc + 4;
4714
+static int test_tbegin_ntstg_tabort (void)
4721
+ if (__builtin_tbegin ((void *)0) == 0)
4723
+ __builtin_non_tx_store ((uint64_t *)&counters.c1, 1);
4726
+ __builtin_tabort (256);
4729
+ if (counters.c1 != 1)
4731
+ return 100 * counters.c1 + 2;
4733
+ if (counters.c2 != 0)
4735
+ return 100 * counters.c2 + 3;
4739
+ return 100 * f + 4;
4745
+static int test_tbegin_nofloat (void)
4751
+ if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
4753
+ __builtin_non_tx_store ((uint64_t *)&counters.c1, 1);
4755
+ rc = __builtin_tend ();
4758
+ return 100 * rc + 5;
4760
+ if (counters.c1 != 1)
4762
+ return 100 * counters.c1 + 2;
4764
+ if (counters.c2 != 2)
4766
+ return 100 * counters.c2 + 3;
4771
+ return 100 * rc + 4;
4777
+static int test_tbegin_retry (void)
4784
+ if ((rc = __builtin_tbegin_retry ((void *)0, 5)) == 0)
4788
+ do_abort = (counters.c1 == 0) ? 1 : 0;
4789
+ __builtin_non_tx_store (
4790
+ (uint64_t *)&counters.c1, counters.c1 + 1);
4791
+ if (do_abort == 1)
4793
+ __builtin_tabort (256);
4795
+ counters.c2 = counters.c2 + 10;
4796
+ __builtin_non_tx_store ((uint64_t *)&counters.c3, 3);
4797
+ rc = __builtin_tend ();
4800
+ return 100 * rc + 5;
4802
+ if (counters.c1 != 2)
4804
+ return 100 * counters.c1 + 2;
4806
+ if (counters.c2 != 10)
4808
+ return 100 * counters.c2 + 3;
4810
+ if (counters.c3 != 3)
4812
+ return 100 * counters.c3 + 6;
4817
+ return 100 * rc + 4;
4823
+static int test_tbegin_retry_nofloat (void)
4830
+ if ((rc = __builtin_tbegin_retry_nofloat ((void *)0, 5)) == 0)
4834
+ do_abort = (counters.c1 == 0) ? 1 : 0;
4835
+ __builtin_non_tx_store (
4836
+ (uint64_t *)&counters.c1, counters.c1 + 1);
4837
+ if (do_abort == 1)
4839
+ __builtin_tabort (256);
4841
+ counters.c2 = counters.c2 + 10;
4842
+ __builtin_non_tx_store ((uint64_t *)&counters.c3, 3);
4843
+ rc = __builtin_tend ();
4846
+ return 100 * rc + 5;
4848
+ if (counters.c1 != 2)
4850
+ return 100 * counters.c1 + 2;
4852
+ if (counters.c2 != 10)
4854
+ return 100 * counters.c2 + 3;
4856
+ if (counters.c3 != 3)
4858
+ return 100 * counters.c3 + 6;
4863
+ return 100 * rc + 4;
4869
+static int test_tbegin_aborts (void)
4875
+ if ((rc = __builtin_tbegin ((void *)0)) == 0)
4878
+ __builtin_tabort (256);
4890
+ if ((rc = __builtin_tbegin ((void *)0)) == 0)
4893
+ __builtin_tabort (257);
4898
+ return 100 * rc + 6;
4902
+ return 100 * f + 7;
4904
+ if ((rc = __builtin_tbegin ((void *)0)) == 0)
4906
+ global.float_3 = global.float_1 + global.float_2;
4907
+ rc = __builtin_tend ();
4910
+ return 100 * rc + 8;
4915
+ return 100 * rc + 9;
4917
+ if (global.float_3 != global.float_1 + global.float_2)
4919
+ return 100 * rc + 10;
4925
+static __attribute__((noinline)) void indirect_abort(int abort_code)
4927
+ __builtin_tabort (abort_code);
4932
+static int test_tbegin_indirect_aborts (void)
4938
+ if ((rc = __builtin_tbegin ((void *)0)) == 0)
4941
+ indirect_abort(256);
4946
+ return 100 * rc + 3;
4950
+ return 100 * rc + 4;
4953
+ if ((rc = __builtin_tbegin ((void *)0)) == 0)
4956
+ indirect_abort(257);
4961
+ return 100 * rc + 6;
4965
+ return 100 * f + 7;
4971
+static int test_tbegin_nofloat_aborts (void)
4975
+ if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
4977
+ __builtin_tabort (256);
4980
+ if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
4982
+ __builtin_tabort (257);
4987
+ return 1000 * rc + 6;
4993
+static int test_tbegin_nofloat_indirect_aborts (void)
4997
+ if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
4999
+ indirect_abort (256);
5002
+ if ((rc = __builtin_tbegin_nofloat ((void *)0)) == 0)
5004
+ indirect_abort (257);
5009
+ return 1000 * rc + 6;
5016
+int _test_tbegin_retry_aborts (int retries, uint64_t abort_code)
5021
+ if ((rc = __builtin_tbegin_retry ((void *)0, retries)) == 0)
5023
+ __builtin_non_tx_store ((uint64_t *)&counters.c1, counters.c1 + 1);
5024
+ __builtin_tabort (abort_code);
5029
+ if ((abort_code & 1) == 0)
5033
+ return 100 * rc + 2003;
5035
+ else if (counters.c1 != (uint64_t)retries + 1)
5037
+ return 1000 * counters.c1 + 100 * retries + 4;
5044
+ return 100 * rc + 3005;
5046
+ else if (counters.c1 != 1)
5048
+ return 1000 * counters.c1 + 100 * retries + 6;
5056
+static int test_tbegin_retry_aborts (void)
5061
+ for (retries = 1; retries <= 3; retries++)
5063
+ rc = _test_tbegin_retry_aborts (retries, 256);
5066
+ return 10000 + rc;
5069
+ for (retries = 1; retries <= 3; retries++)
5071
+ rc = _test_tbegin_retry_aborts (retries, 257);
5074
+ return 20000 + rc;
5077
+ if ((rc = __builtin_tbegin_retry ((void *)0, 5)) == 0)
5079
+ global.float_3 = global.float_1 + global.float_2;
5080
+ rc = __builtin_tend ();
5083
+ return 30000 + 100 * rc + 6;
5088
+ return 30000 + 100 * rc + 7;
5094
+static int _test_tbegin_retry_nofloat_aborts (int retries, uint64_t abort_code)
5099
+ if ((rc = __builtin_tbegin_retry_nofloat ((void *)0, retries)) == 0)
5101
+ __builtin_non_tx_store ((uint64_t *)&counters.c1, counters.c1 + 1);
5102
+ __builtin_tabort (abort_code);
5107
+ if ((abort_code & 1) == 0)
5111
+ return 100 * rc + 2003;
5113
+ else if (counters.c1 != (uint64_t)retries + 1)
5115
+ return 1000 * counters.c1 + 100 * retries + 4;
5122
+ return 100 * rc + 3005;
5124
+ else if (counters.c1 != 1)
5126
+ return 1000 * counters.c1 + 100 * retries + 6;
5134
+static int test_tbegin_retry_nofloat_aborts (void)
5139
+ for (retries = 1; retries <= 3; retries++)
5141
+ rc = _test_tbegin_retry_nofloat_aborts (retries, 256);
5144
+ return 10 * retries + rc;
5147
+ for (retries = 1; retries <= 3; retries++)
5149
+ rc = _test_tbegin_retry_nofloat_aborts (retries, 257);
5152
+ return 10000 + 10 * retries + rc;
5159
+static int test_tbegin_tdb (void)
5163
+ local_tdb.format = 0;
5164
+ if ((rc = __builtin_tbegin (&local_tdb)) == 0)
5166
+ rc = __builtin_tend ();
5169
+ return 100 * rc + 1;
5171
+ if (local_tdb.format != 0)
5173
+ dump_tdb (&local_tdb);
5174
+ return 100 * local_tdb.format + 2;
5179
+ return 100 * rc + 3;
5181
+ local_tdb.format = 0;
5182
+ if ((rc = __builtin_tbegin (&local_tdb)) == 0)
5184
+ __builtin_tabort (257);
5191
+ return 100 * rc + 5;
5193
+ if (local_tdb.format != 1)
5195
+ dump_tdb (&local_tdb);
5196
+ return 100 * local_tdb.format + 6;
5199
+ local_tdb256.format = 0;
5200
+ if ((rc = __builtin_tbegin (&local_tdb256)) == 0)
5202
+ rc = __builtin_tend ();
5205
+ return 1100 * rc + 1;
5207
+ if (local_tdb256.format != 0)
5209
+ dump_tdb (&local_tdb256);
5210
+ return 1100 * local_tdb256.format + 2;
5215
+ return 1100 * rc + 3;
5217
+ local_tdb256.format = 0;
5218
+ if ((rc = __builtin_tbegin (&local_tdb256)) == 0)
5220
+ __builtin_tabort (257);
5227
+ return 2100 * rc + 5;
5229
+ if (local_tdb256.format != 1)
5231
+ dump_tdb (&local_tdb256);
5232
+ return 2100 * local_tdb256.format + 6;
5239
+static int test_tbegin_nofloat_tdb (void)
5243
+ local_tdb.format = 0;
5244
+ if ((rc = __builtin_tbegin_nofloat (&local_tdb)) == 0)
5246
+ rc = __builtin_tend ();
5249
+ return 100 * rc + 1;
5251
+ if (local_tdb.format != 0)
5253
+ dump_tdb (&local_tdb);
5254
+ return 100 * local_tdb.format + 2;
5261
+ local_tdb.format = 0;
5262
+ if ((rc = __builtin_tbegin_nofloat (&local_tdb)) == 0)
5264
+ __builtin_tabort (257);
5271
+ return 100 * rc + 5;
5273
+ if (local_tdb.format != 1)
5275
+ dump_tdb (&local_tdb);
5276
+ return 100 * local_tdb.format + 6;
5279
+ local_tdb256.format = 0;
5280
+ if ((rc = __builtin_tbegin_nofloat (&local_tdb256)) == 0)
5282
+ rc = __builtin_tend ();
5285
+ return 1100 * rc + 1;
5287
+ if (local_tdb256.format != 0)
5289
+ dump_tdb (&local_tdb256);
5290
+ return 1100 * local_tdb256.format + 2;
5297
+ local_tdb256.format = 0;
5298
+ if ((rc = __builtin_tbegin_nofloat (&local_tdb256)) == 0)
5300
+ __builtin_tabort (257);
5307
+ return 2100 * rc + 5;
5309
+ if (local_tdb256.format != 1)
5311
+ dump_tdb (&local_tdb256);
5312
+ return 2100 * local_tdb256.format + 6;
5319
+static int test_tbegin_retry_tdb (void)
5323
+ local_tdb256.format = 0;
5324
+ if ((rc = __builtin_tbegin_retry (&local_tdb256, 2)) == 0)
5326
+ rc = __builtin_tend ();
5329
+ return 1100 * rc + 1;
5331
+ if (local_tdb256.format != 0)
5333
+ dump_tdb (&local_tdb256);
5334
+ return 1100 * local_tdb256.format + 2;
5341
+ local_tdb256.format = 0;
5342
+ if ((rc = __builtin_tbegin_retry (&local_tdb256, 2)) == 0)
5344
+ __builtin_tabort (257);
5351
+ return 2100 * rc + 5;
5353
+ if (local_tdb256.format != 1)
5355
+ dump_tdb (&local_tdb256);
5356
+ return 2100 * local_tdb256.format + 6;
5363
+static int test_tbegin_retry_nofloat_tdb (void)
5367
+ local_tdb.format = 0;
5368
+ if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb, 2)) == 0)
5370
+ rc = __builtin_tend ();
5373
+ return 100 * rc + 1;
5375
+ if (local_tdb.format != 0)
5377
+ dump_tdb (&local_tdb);
5378
+ return 100 * local_tdb.format + 2;
5383
+ return 100 * rc + 3;
5385
+ local_tdb.format = 0;
5386
+ if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb, 2)) == 0)
5388
+ __builtin_tabort (257);
5395
+ return 100 * rc + 5;
5397
+ if (local_tdb.format != 1)
5399
+ dump_tdb (&local_tdb);
5400
+ return 100 * local_tdb.format + 6;
5403
+ local_tdb256.format = 0;
5404
+ if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb256, 2)) == 0)
5406
+ rc = __builtin_tend ();
5409
+ return 1100 * rc + 1;
5411
+ if (local_tdb256.format != 0)
5413
+ dump_tdb (&local_tdb256);
5414
+ return 1100 * local_tdb256.format + 2;
5419
+ return 1100 * rc + 3;
5421
+ local_tdb256.format = 0;
5422
+ if ((rc = __builtin_tbegin_retry_nofloat (&local_tdb256, 2)) == 0)
5424
+ __builtin_tabort (257);
5431
+ return 2100 * rc + 5;
5433
+ if (local_tdb256.format != 1)
5435
+ dump_tdb (&local_tdb256);
5436
+ return 2100 * local_tdb256.format + 6;
5443
+static int test_etnd (void)
5450
+ if ((rc = __builtin_tbegin ((void *)0)) == 0)
5452
+ counters.c1 = __builtin_tx_nesting_depth ();
5453
+ if (__builtin_tbegin ((void *)0) == 0)
5455
+ counters.c2 = __builtin_tx_nesting_depth ();
5456
+ if (__builtin_tbegin ((void *)0) == 0)
5458
+ counters.c3 = __builtin_tx_nesting_depth ();
5459
+ __builtin_tend ();
5461
+ __builtin_tend ();
5463
+ __builtin_tend ();
5467
+ return 100 * rc + 1;
5469
+ if (counters.c1 != 1)
5471
+ return 100 * counters.c1 + 2;
5473
+ if (counters.c2 != 2)
5475
+ return 100 * counters.c2 + 3;
5477
+ if (counters.c3 != 3)
5479
+ return 100 * counters.c3 + 4;
5485
+static int test_tbeginc (void)
5490
+ __builtin_tbeginc ();
5492
+ rc = __builtin_tend ();
5495
+ return 10000 * rc + 1;
5497
+ if (counters.c1 != 1)
5499
+ return 100000 * counters.c1 + 3;
5505
+/* ---------------------------- local testing framework functions ---------- */
5507
+static int run_one_test (const test_table_entry_t *test_entry)
5509
+ int do_print_passes;
5514
+ /* Warmup run to get all necessary data and instruction pages into the page
5520
+ for (run = 0; run < NUM_WARMUP_RUNS; run++)
5522
+ test_entry->test_func ();
5526
+ do_print_passes = (
5527
+ test_entry->required_quorum != 1 ||
5528
+ test_entry->max_repetitions != 1);
5529
+ printf ("RRR RUN %s\n", test_entry->name);
5530
+ if (do_print_passes == 1)
5533
+ " (requires %d successful out of %d runs)\n",
5534
+ test_entry->required_quorum,
5535
+ test_entry->max_repetitions);
5539
+ for (rc = 0, i = 0; i < test_entry->max_repetitions; i++)
5541
+ if (do_print_passes == 1)
5552
+ rc = test_entry->test_func ();
5555
+ if (do_print_passes == 1)
5557
+ printf (" success");
5560
+ if (succeeded >= test_entry->required_quorum)
5567
+ printf (" failed (rc = %d)", rc);
5570
+ if (do_print_passes == 1 || rc != 0)
5574
+ if (succeeded >= test_entry->required_quorum)
5576
+ printf ("+++ OK %s\n", test_entry->name);
5582
+ printf ("--- FAIL %s\n", test_entry->name);
5584
+ return (rc != 0) ? rc : -1;
5588
+static int run_all_tests (const test_table_entry_t *test_table)
5590
+ const test_table_entry_t *test;
5594
+ rc = 0, test = &test_table[0];
5595
+ test->test_func != NULL && rc == 0; test++)
5597
+ rc = run_one_test (test);
5603
+/* ---------------------------- interface functions ------------------------ */
5607
+ const test_table_entry_t test_table[] = {
5608
+ TEST_NO_REP (test_constants),
5609
+ TEST_DF_REP (test_tbegin_ntstg_tend),
5610
+ TEST_DF_REP (test_tbegin_ntstg_tabort),
5611
+ TEST_DF_REP (test_tbegin_nofloat),
5612
+ TEST_NO_REP (test_tbegin_retry),
5613
+ TEST_NO_REP (test_tbegin_retry_nofloat),
5614
+ TEST_DF_REP (test_tbegin_aborts),
5615
+ TEST_DF_REP (test_tbegin_indirect_aborts),
5616
+ TEST_DF_REP (test_tbegin_nofloat_aborts),
5617
+ TEST_DF_REP (test_tbegin_nofloat_indirect_aborts),
5618
+ TEST_NO_REP (test_tbegin_retry_aborts),
5619
+ TEST_NO_REP (test_tbegin_retry_nofloat_aborts),
5620
+ TEST_DF_REP (test_tbegin_tdb),
5621
+ TEST_DF_REP (test_tbegin_nofloat_tdb),
5622
+ TEST_NO_REP (test_tbegin_retry_tdb),
5623
+ TEST_NO_REP (test_tbegin_retry_nofloat_tdb),
5624
+ TEST_DF_REP (test_etnd),
5625
+ TEST_DF_REP (test_tbeginc),
5626
+ { (void *)0, 0, 0 }
5632
+ rc = run_all_tests (test_table);
5637
Index: gcc/testsuite/gcc.target/s390/htm-builtins-2.c
5638
===================================================================
5639
--- a/src/gcc/testsuite/gcc.target/s390/htm-builtins-2.c (.../tags/gcc_4_8_2_release)
5640
+++ b/src/gcc/testsuite/gcc.target/s390/htm-builtins-2.c (.../branches/gcc-4_8-branch)
5642
+/* Functional tests of the htm __TM_... macros. */
5644
+/* { dg-do run } */
5645
+/* { dg-require-effective-target htm } */
5646
+/* { dg-options "-O3 -march=zEC12 -mzarch" } */
5648
+/* ---------------------------- included header files ---------------------- */
5651
+#include <string.h>
5652
+#include <inttypes.h>
5653
+#include <htmxlintrin.h>
5655
+/* ---------------------------- local definitions -------------------------- */
5657
+#define DEFAULT_MAX_REPETITIONS 5
5658
+#define DEFAULT_REQUIRED_QUORUM ((DEFAULT_MAX_REPETITIONS) - 1)
5659
+#define DEFAULT_ABORT_ADDRESS (0x12345678u)
5661
+/* ---------------------------- local macros ------------------------------- */
5663
+#define TEST_DF_REP(name) \
5664
+ { #name, name, DEFAULT_MAX_REPETITIONS, DEFAULT_REQUIRED_QUORUM }
5665
+#define TEST_NO_REP(name) { #name, name, 1, 1 }
5667
+/* ---------------------------- local types -------------------------------- */
5669
+typedef int (*test_func_t)(void);
5674
+ test_func_t test_func;
5675
+ int max_repetitions;
5676
+ int required_quorum;
5677
+} test_table_entry_t;
5681
+ ABORT_T_SYSTEM = 0,
5689
+ ABORT_T_FOOTPRINT_EXCEEDED,
5690
+ ABORT_T_NESTED_TOO_DEEP,
5693
+ ABORT_T_INVALID_ABORT_CODE
5696
+/* ---------------------------- local variables ---------------------------- */
5698
+__attribute__ ((aligned(256))) static struct __htm_tdb local_tdb256;
5699
+static struct __htm_tdb local_tdb;
5701
+static abort_t const abort_classes[] =
5703
+ ABORT_T_INVALID_ABORT_CODE,
5711
+ ABORT_T_FOOTPRINT_EXCEEDED,
5713
+ ABORT_T_FOOTPRINT_EXCEEDED,
5719
+ ABORT_T_NESTED_TOO_DEEP,
5726
+static size_t num_abort_classes = sizeof(abort_classes) / sizeof(abort_t);
5728
+/* ---------------------------- exported variables (globals) --------------- */
5730
+int global_int = 0;
5731
+uint64_t global_u64 = 0;
5732
+float global_float_1 = 1.0;
5733
+float global_float_2 = 2.5;
5734
+float global_float_3 = 0.0;
5735
+__attribute__ ((aligned(256))) struct
5737
+ volatile uint64_t c1;
5738
+ volatile uint64_t c2;
5739
+ volatile uint64_t c3;
5740
+} counters = { 0, 0, 0 };
5742
+/* ---------------------------- local helper functions --------------------- */
5744
+static void dump_tdb(struct __htm_tdb *tdb)
5750
+ p = (unsigned char *)tdb;
5751
+ for (i = 0; i < 16; i++)
5753
+ fprintf(stderr, "0x%02x ", i * 16);
5754
+ for (j = 0; j < 16; j++)
5756
+ fprintf(stderr, "%02x", (int)p[i * 16 + j]);
5759
+ fprintf(stderr, " ");
5763
+ fprintf(stderr, " ");
5766
+ fprintf(stderr, "\n");
5772
+static void make_fake_tdb(struct __htm_tdb *tdb)
5774
+ memset(tdb, 0, sizeof(*tdb));
5776
+ tdb->nesting_depth = 1;
5777
+ tdb->atia = DEFAULT_ABORT_ADDRESS;
5778
+ tdb->abort_code = 11;
5783
+static int check_abort_code_in_tdb(struct __htm_tdb *tdb, uint64_t abort_code)
5788
+ if (abort_code != 0)
5792
+ addr = __TM_failure_address(&local_tdb);
5793
+ if (addr != DEFAULT_ABORT_ADDRESS)
5799
+ long long tdb_abort_code;
5801
+ tdb_abort_code = __TM_failure_code(tdb);
5802
+ if ((uint64_t)tdb_abort_code != abort_code)
5805
+ stderr, "tm_ac %" PRIu64 ", ac %" PRIu64
5806
+ ", tdb_ac %" PRIu64 "\n",
5807
+ (uint64_t)tdb_abort_code, abort_code,
5808
+ (uint64_t)tdb->abort_code);
5812
+ expect_rc = (abort_code >= 256) ? 1 : 0;
5813
+ rc = __TM_is_user_abort(tdb);
5814
+ if (rc != expect_rc)
5816
+ fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
5820
+ unsigned char code;
5823
+ rc = __TM_is_named_user_abort(tdb, &code);
5824
+ if (rc != expect_rc)
5827
+ stderr, "rc %ld, expect_rc %ld\n", rc,
5831
+ if (expect_rc == 1 && code != abort_code - 256)
5836
+ if (abort_code > (uint64_t)num_abort_classes)
5838
+ abort_code = (uint64_t)num_abort_classes;
5840
+ expect_rc = (abort_classes[abort_code] == ABORT_T_ILLEGAL) ? 1 : 0;
5841
+ rc = __TM_is_illegal(tdb);
5842
+ if (rc != expect_rc)
5845
+ fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
5849
+ (abort_classes[abort_code] == ABORT_T_FOOTPRINT_EXCEEDED) ?
5851
+ rc = __TM_is_footprint_exceeded(tdb);
5852
+ if (rc != expect_rc)
5855
+ fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
5859
+ (abort_classes[abort_code] == ABORT_T_NESTED_TOO_DEEP) ? 1 : 0;
5860
+ rc = __TM_is_nested_too_deep(tdb);
5861
+ if (rc != expect_rc)
5864
+ fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
5867
+ expect_rc = (abort_classes[abort_code] == ABORT_T_CONFLICT) ? 1 : 0;
5868
+ rc = __TM_is_conflict(tdb);
5869
+ if (rc != expect_rc)
5872
+ fprintf(stderr, "rc %ld, expect_rc %ld\n", rc, expect_rc);
5879
+/* ---------------------------- local test functions ----------------------- */
5881
+/* Not a test; make sure that the involved global cachelines are reserved for
5883
+static int init_cache(void)
5885
+ make_fake_tdb(&local_tdb);
5886
+ make_fake_tdb(&local_tdb256);
5889
+ global_float_1 = 1.0;
5890
+ global_float_2 = 2.5;
5891
+ global_float_3 = 0.0;
5899
+static int test_abort_classification(void)
5903
+ make_fake_tdb(&local_tdb);
5904
+ for (i = 0; i <= 256; i++)
5908
+ local_tdb.abort_code = (uint64_t)i;
5909
+ rc = check_abort_code_in_tdb(&local_tdb, (uint64_t)i);
5912
+ return 100 * i + rc;
5919
+static int test_cc_classification(void)
5923
+ rc = __TM_is_failure_persistent(0);
5928
+ rc = __TM_is_failure_persistent(1);
5933
+ rc = __TM_is_failure_persistent(2);
5938
+ rc = __TM_is_failure_persistent(3);
5947
+static int test_tbegin_ntstg_tend(void)
5953
+ if ((rc = __TM_simple_begin()) == 0)
5955
+ __TM_non_transactional_store((uint64_t *)&counters.c1, 1);
5960
+ return 100 * rc + 5;
5962
+ if (counters.c1 != 1)
5964
+ return 100 * counters.c1 + 2;
5966
+ if (counters.c2 != 2)
5968
+ return 100 * counters.c2 + 3;
5973
+ return 100 * rc + 4;
5979
+static int test_tbegin_ntstg_tabort(void)
5986
+ if (__TM_simple_begin() == 0)
5988
+ __TM_non_transactional_store((uint64_t *)&counters.c1, 1);
5991
+ __TM_named_abort(0);
5994
+ if (counters.c1 != 1)
5996
+ return 100 * counters.c1 + 2;
5998
+ if (counters.c2 != 0)
6000
+ return 100 * counters.c2 + 3;
6004
+ return 100 * f + 4;
6010
+static int test_tbegin_aborts(void)
6016
+ if ((rc = __TM_simple_begin()) == 0)
6031
+ if ((rc = __TM_simple_begin()) == 0)
6034
+ __TM_named_abort(3);
6039
+ return 100 * rc + 6;
6043
+ return 100 * f + 7;
6045
+ if ((rc = __TM_simple_begin()) == 0)
6047
+ global_float_3 = global_float_1 + global_float_2;
6051
+ return 100 * rc + 8;
6056
+ return 100 * rc + 9;
6058
+ if (global_float_3 != global_float_1 + global_float_2)
6060
+ return 100 * rc + 10;
6066
+static int test_tbegin_tdb(void)
6070
+ local_tdb.format = 0;
6071
+ if ((rc = __TM_begin(&local_tdb)) == 0)
6076
+ return 100 * rc + 1;
6078
+ if (local_tdb.format != 0)
6080
+ dump_tdb(&local_tdb);
6081
+ return 100 * local_tdb.format + 2;
6086
+ return 100 * rc + 3;
6088
+ local_tdb.format = 0;
6089
+ if ((rc = __TM_begin(&local_tdb)) == 0)
6091
+ __TM_named_abort(1);
6098
+ return 100 * rc + 5;
6100
+ if (local_tdb.format != 1)
6102
+ dump_tdb(&local_tdb);
6103
+ return 100 * local_tdb.format + 6;
6106
+ local_tdb256.format = 0;
6107
+ if ((rc = __TM_begin(&local_tdb256)) == 0)
6112
+ return 1100 * rc + 1;
6114
+ if (local_tdb256.format != 0)
6116
+ dump_tdb(&local_tdb256);
6117
+ return 1100 * local_tdb256.format + 2;
6122
+ return 1100 * rc + 3;
6124
+#if 1 /*!!!does not work*/
6125
+ local_tdb256.format = 0;
6126
+ if ((rc = __TM_begin(&local_tdb256)) == 0)
6128
+ __TM_named_abort(1);
6135
+ return 2100 * rc + 5;
6137
+ if (local_tdb256.format != 1)
6139
+ dump_tdb(&local_tdb256);
6140
+ return 2100 * local_tdb256.format + 6;
6148
+static int test_etnd(void)
6155
+ make_fake_tdb(&local_tdb);
6156
+ local_tdb.nesting_depth = 0;
6157
+ nd = __TM_nesting_depth(&local_tdb);
6162
+ local_tdb.nesting_depth = 7;
6163
+ nd = __TM_nesting_depth(&local_tdb);
6168
+ local_tdb.format = 0;
6169
+ nd = __TM_nesting_depth(&local_tdb);
6179
+ if ((rc = __TM_simple_begin()) == 0)
6181
+ counters.c1 = __TM_nesting_depth(0);
6182
+ if (__TM_simple_begin() == 0)
6184
+ counters.c2 = __TM_nesting_depth(0);
6185
+ if (__TM_simple_begin() == 0)
6187
+ counters.c3 = __TM_nesting_depth(0);
6196
+ return 100 * rc + 1;
6198
+ if (counters.c1 != 1)
6200
+ return 100 * counters.c1 + 2;
6202
+ if (counters.c2 != 2)
6204
+ return 100 * counters.c2 + 3;
6206
+ if (counters.c3 != 3)
6208
+ return 100 * counters.c3 + 4;
6214
+/* ---------------------------- local testing framework functions ---------- */
6216
+static int run_one_test(const test_table_entry_t *test_entry)
6218
+ int do_print_passes;
6223
+ do_print_passes = (
6224
+ test_entry->required_quorum != 1 ||
6225
+ test_entry->max_repetitions != 1);
6226
+ printf("RRR RUN %s\n", test_entry->name);
6227
+ if (do_print_passes == 1)
6230
+ " (requires %d successful out of %d runs)\n",
6231
+ test_entry->required_quorum,
6232
+ test_entry->max_repetitions);
6236
+ for (rc = 0, i = 0; i < test_entry->max_repetitions; i++)
6238
+ if (do_print_passes == 1)
6249
+ rc = test_entry->test_func();
6252
+ if (do_print_passes == 1)
6254
+ printf(" success");
6257
+ if (succeeded >= test_entry->required_quorum)
6264
+ printf(" failed (rc = %d)", rc);
6267
+ if (do_print_passes == 1 || rc != 0)
6271
+ if (succeeded >= test_entry->required_quorum)
6273
+ printf("+++ OK %s\n", test_entry->name);
6279
+ printf("--- FAIL %s\n", test_entry->name);
6281
+ return (rc != 0) ? rc : -1;
6285
+static int run_all_tests(const test_table_entry_t *test_table)
6287
+ const test_table_entry_t *test;
6291
+ rc = 0, test = &test_table[0];
6292
+ test->test_func != NULL && rc == 0; test++)
6294
+ rc = run_one_test(test);
6300
+/* ---------------------------- interface functions ------------------------ */
6304
+ const test_table_entry_t test_table[] = {
6305
+ TEST_NO_REP(init_cache),
6306
+ TEST_NO_REP(test_abort_classification),
6307
+ TEST_NO_REP(test_cc_classification),
6308
+ TEST_DF_REP(test_tbegin_ntstg_tend),
6309
+ TEST_DF_REP(test_tbegin_ntstg_tabort),
6310
+ TEST_DF_REP(test_tbegin_aborts),
6311
+ TEST_DF_REP(test_tbegin_tdb),
6312
+ TEST_DF_REP(test_etnd),
6313
+ { (void *)0, 0, 0 }
6319
+ rc = run_all_tests(test_table);
6324
Index: gcc/testsuite/gcc.target/sh/pr54089-3.c
6325
===================================================================
6326
--- a/src/gcc/testsuite/gcc.target/sh/pr54089-3.c (.../tags/gcc_4_8_2_release)
6327
+++ b/src/gcc/testsuite/gcc.target/sh/pr54089-3.c (.../branches/gcc-4_8-branch)
6329
/* { dg-options "-O1" } */
6330
/* { dg-skip-if "" { "sh*-*-*" } { "*" } { "-m1*" "-m2" "-m2e*" } } */
6331
/* { dg-final { scan-assembler-not "and" } } */
6332
-/* { dg-final { scan-assembler-not "31" } } */
6333
+/* { dg-final { scan-assembler-not "#31" } } */
6336
test00 (unsigned int a, int* b, int c, int* d, unsigned int e)
6337
Index: gcc/testsuite/gfortran.dg/reshape_6.f90
6338
===================================================================
6339
--- a/src/gcc/testsuite/gfortran.dg/reshape_6.f90 (.../tags/gcc_4_8_2_release)
6340
+++ b/src/gcc/testsuite/gfortran.dg/reshape_6.f90 (.../branches/gcc-4_8-branch)
6342
+! { dg-do compile }
6347
+ real(8), dimension(4,4) :: fluxes
6348
+ real(8), dimension(2,2,2,2) :: f
6349
+ integer, dimension(3) :: dmmy
6350
+ integer, parameter :: indx(4)=(/2,2,2,2/)
6356
+ f = reshape(fluxes,(/dmmy,2/)) ! Caused an ICE
6357
+ f = reshape(fluxes,(/2,2,2,2/)) ! Works as expected
6358
+ f = reshape(fluxes,indx) ! Works as expected
6361
Index: gcc/testsuite/gfortran.dg/derived_external_function_1.f90
6362
===================================================================
6363
--- a/src/gcc/testsuite/gfortran.dg/derived_external_function_1.f90 (.../tags/gcc_4_8_2_release)
6364
+++ b/src/gcc/testsuite/gfortran.dg/derived_external_function_1.f90 (.../branches/gcc-4_8-branch)
6370
+! Contributed by Vittorio Secca <zeccav@gmail.com>
6372
+! ICEd on the write statement with f() because the derived type backend
6373
+! declaration not built.
6381
+type(t) function f() result(ff)
6387
+ character (20) :: line1, line2
6389
+ write (line1, *) f()
6390
+ write (line2, *) 42_4
6391
+ if (line1 .ne. line2) call abort
6393
Index: gcc/testsuite/gfortran.dg/constructor_9.f90
6394
===================================================================
6395
--- a/src/gcc/testsuite/gfortran.dg/constructor_9.f90 (.../tags/gcc_4_8_2_release)
6396
+++ b/src/gcc/testsuite/gfortran.dg/constructor_9.f90 (.../branches/gcc-4_8-branch)
6398
+! { dg-do compile }
6399
+! { dg-options "-Wall" }
6401
+! PR 58471: [4.8/4.9 Regression] ICE on invalid with missing type constructor and -Wall
6403
+! Contributed by Andrew Benson <abensonca@gmail.com>
6410
+ module procedure mdedc ! { dg-error "is neither function nor subroutine" }
6414
+ type(cfmde), pointer :: cfd
6415
+ cfd=cfmde() ! { dg-error "Can't convert" }
6419
+! { dg-final { cleanup-modules "cf" } }
6420
Index: gcc/testsuite/gfortran.dg/proc_ptr_43.f90
6421
===================================================================
6422
--- a/src/gcc/testsuite/gfortran.dg/proc_ptr_43.f90 (.../tags/gcc_4_8_2_release)
6423
+++ b/src/gcc/testsuite/gfortran.dg/proc_ptr_43.f90 (.../branches/gcc-4_8-branch)
6425
+! { dg-do compile }
6427
+! PR 58099: [4.8/4.9 Regression] [F03] over-zealous procedure-pointer error checking
6429
+! Contributed by Daniel Price <daniel.price@monash.edu>
6432
+ procedure(real), pointer :: wfunc
6438
+ pure real function w_cubic(q2)
6439
+ real, intent(in) :: q2
6444
Index: gcc/testsuite/gfortran.dg/extends_15.f90
6445
===================================================================
6446
--- a/src/gcc/testsuite/gfortran.dg/extends_15.f90 (.../tags/gcc_4_8_2_release)
6447
+++ b/src/gcc/testsuite/gfortran.dg/extends_15.f90 (.../branches/gcc-4_8-branch)
6449
+! { dg-do compile }
6451
+! PR 58355: [4.7/4.8/4.9 Regression] [F03] ICE with TYPE, EXTENDS before parent TYPE defined
6453
+! Contributed by Andrew Benson <abensonca@gmail.com>
6458
+ type, extends(t1) :: t2 ! { dg-error "has not been previously defined" }
6464
+! { dg-final { cleanup-modules "ct" } }
6465
Index: gcc/testsuite/gcc.c-torture/execute/pr58984.c
6466
===================================================================
6467
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr58984.c (.../tags/gcc_4_8_2_release)
6468
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr58984.c (.../branches/gcc-4_8-branch)
6470
+/* PR tree-optimization/58984 */
6472
+struct S { int f0 : 8; int : 6; int f1 : 5; };
6473
+struct T { char f0; int : 6; int f1 : 5; };
6475
+int a, *c = &a, e, n, b, m;
6480
+ const unsigned short *f[36];
6481
+ for (; e < 2; e++)
6483
+ const unsigned short **i = &f[0];
6497
+ const unsigned short *f[36];
6498
+ for (; e < 2; e++)
6500
+ const unsigned short **i = &f[0];
6514
+ struct S o = { 1, 1 };
6518
+ __builtin_abort ();
6520
+ struct T p = { 1, 1 };
6524
+ __builtin_abort ();
6527
Index: gcc/testsuite/gcc.c-torture/execute/pr59101.c
6528
===================================================================
6529
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr59101.c (.../tags/gcc_4_8_2_release)
6530
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr59101.c (.../branches/gcc-4_8-branch)
6532
+/* PR target/59101 */
6534
+__attribute__((noinline, noclone)) int
6537
+ return (~a & 4102790424LL) > 0 | 6;
6544
+ __builtin_abort ();
6547
Index: gcc/testsuite/gcc.c-torture/execute/pr58831.c
6548
===================================================================
6549
--- a/src/gcc/testsuite/gcc.c-torture/execute/pr58831.c (.../tags/gcc_4_8_2_release)
6550
+++ b/src/gcc/testsuite/gcc.c-torture/execute/pr58831.c (.../branches/gcc-4_8-branch)
6552
+#include <assert.h>
6554
+int a, *b, c, d, f, **i, p, q, *r;
6557
+static int __attribute__((noinline, noclone))
6558
+fn1 (int *p1, int **p2)
6570
+static int ** __attribute__((noinline, noclone))
6573
+ for (f = 0; f != 42; f++)
6575
+ int *g[3] = {0, 0, 0};
6576
+ for (o = 0; o; o--)
6579
+ int **h[1] = { &g[2] };
6592
Index: gcc/testsuite/gcc.c-torture/compile/pr58970-1.c
6593
===================================================================
6594
--- a/src/gcc/testsuite/gcc.c-torture/compile/pr58970-1.c (.../tags/gcc_4_8_2_release)
6595
+++ b/src/gcc/testsuite/gcc.c-torture/compile/pr58970-1.c (.../branches/gcc-4_8-branch)
6597
+/* PR middle-end/58970 */
6599
+struct T { int b : 1; };
6600
+struct S { struct T t[1]; };
6603
+foo (int x, struct S *s)
6608
Index: gcc/testsuite/gcc.c-torture/compile/pr58997.c
6609
===================================================================
6610
--- a/src/gcc/testsuite/gcc.c-torture/compile/pr58997.c (.../tags/gcc_4_8_2_release)
6611
+++ b/src/gcc/testsuite/gcc.c-torture/compile/pr58997.c (.../branches/gcc-4_8-branch)
6613
+/* PR rtl-optimization/58997 */
6624
+ d = a ? c : 1 % a;
6632
Index: gcc/testsuite/gcc.c-torture/compile/pr58970-2.c
6633
===================================================================
6634
--- a/src/gcc/testsuite/gcc.c-torture/compile/pr58970-2.c (.../tags/gcc_4_8_2_release)
6635
+++ b/src/gcc/testsuite/gcc.c-torture/compile/pr58970-2.c (.../branches/gcc-4_8-branch)
6637
+/* PR middle-end/58970 */
6639
+struct T { char a : 8; char b : 1; };
6640
+struct S { char x; struct T t[1]; };
6643
+foo (int x, struct S *s)
6648
Index: gcc/testsuite/gcc.dg/pr57518.c
6649
===================================================================
6650
--- a/src/gcc/testsuite/gcc.dg/pr57518.c (.../tags/gcc_4_8_2_release)
6651
+++ b/src/gcc/testsuite/gcc.dg/pr57518.c (.../branches/gcc-4_8-branch)
6653
-/* PR rtl-optimization/57130 */
6654
+/* PR rtl-optimization/57518 */
6656
/* { dg-do compile } */
6657
/* { dg-options "-O2 -fdump-rtl-ira" } */
6658
-/* { dg-final { scan-rtl-dump-not "REG_EQUIV.*mem.*\"ip\"" "ira" } } */
6659
+/* { dg-final { scan-rtl-dump-not "REG_EQUIV\[^\n\]*mem\[^\n\]*\"ip\".*subreg" "ira" } } */
6663
Index: gcc/testsuite/gcc.dg/atomic-store-6.c
6664
===================================================================
6665
--- a/src/gcc/testsuite/gcc.dg/atomic-store-6.c (.../tags/gcc_4_8_2_release)
6666
+++ b/src/gcc/testsuite/gcc.dg/atomic-store-6.c (.../branches/gcc-4_8-branch)
6668
+/* { dg-do run } */
6669
+/* { dg-require-effective-target sync_int_128_runtime } */
6670
+/* { dg-options "-mcx16" { target { i?86-*-* x86_64-*-* } } } */
6676
+ __atomic_store_16(&i, -1, 0);
6678
+ __builtin_abort();
6681
Index: gcc/testsuite/gcc.dg/pr58805.c
6682
===================================================================
6683
--- a/src/gcc/testsuite/gcc.dg/pr58805.c (.../tags/gcc_4_8_2_release)
6684
+++ b/src/gcc/testsuite/gcc.dg/pr58805.c (.../branches/gcc-4_8-branch)
6686
+/* { dg-do compile } */
6687
+/* { dg-options "-O2 -ftree-tail-merge -fdump-tree-pre" } */
6689
+/* Type that matches the 'p' constraint. */
6690
+#define TYPE void *
6696
+ __asm__ ("" : "=&p" (t), "=p" (*r));
6700
+foo (int n, TYPE *x, TYPE *y)
6708
+/* { dg-final { scan-tree-dump-times "__asm__" 2 "pre"} } */
6709
+/* { dg-final { cleanup-tree-dump "pre" } } */
6710
Index: gcc/testsuite/gcc.dg/torture/pr59047.c
6711
===================================================================
6712
--- a/src/gcc/testsuite/gcc.dg/torture/pr59047.c (.../tags/gcc_4_8_2_release)
6713
+++ b/src/gcc/testsuite/gcc.dg/torture/pr59047.c (.../branches/gcc-4_8-branch)
6715
+/* { dg-do run } */
6717
+extern void abort (void);
6726
+int b, c, *d, e, f;
6731
+ for (; b < 1; ++b)
6733
+ for (e = 0; e < 1; e = 1)
6754
Index: gcc/testsuite/gcc.dg/torture/pr57517.c
6755
===================================================================
6756
--- a/src/gcc/testsuite/gcc.dg/torture/pr57517.c (.../tags/gcc_4_8_2_release)
6757
+++ b/src/gcc/testsuite/gcc.dg/torture/pr57517.c (.../branches/gcc-4_8-branch)
6759
+/* { dg-do compile } */
6761
+int x[1024], y[1024], z[1024], w[1024];
6765
+ for (i = 1; i < 1024; ++i)
6772
+ z[i] = (a + b) + (c + d);
6775
Index: gcc/testsuite/gcc.dg/torture/pr58779.c
6776
===================================================================
6777
--- a/src/gcc/testsuite/gcc.dg/torture/pr58779.c (.../tags/gcc_4_8_2_release)
6778
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58779.c (.../branches/gcc-4_8-branch)
6780
+/* { dg-do run } */
6787
+ short d = (c <= 0) ^ e;
6788
+ if ((unsigned int) a - (a || d) <= (unsigned int) a)
6789
+ __builtin_abort ();
6792
Index: gcc/testsuite/gcc.dg/torture/pr58079.c
6793
===================================================================
6794
--- a/src/gcc/testsuite/gcc.dg/torture/pr58079.c (.../tags/gcc_4_8_2_release)
6795
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58079.c (.../branches/gcc-4_8-branch)
6797
+/* { dg-options "-mlong-calls" { target mips*-*-* } } */
6799
+typedef unsigned char u8;
6800
+typedef unsigned short u16;
6801
+typedef unsigned int __kernel_size_t;
6802
+typedef __kernel_size_t size_t;
6804
+ struct list_head *next;
6807
+struct dmx_ts_feed {
6810
+struct dmx_section_feed {
6816
+typedef int (*dmx_ts_cb) (
6817
+ const u8 * buffer1,
6818
+ size_t buffer1_length,
6819
+ const u8 * buffer2,
6820
+ size_t buffer2_length
6823
+struct dvb_demux_feed {
6825
+ struct dmx_ts_feed ts;
6826
+ struct dmx_section_feed sec;
6834
+ struct list_head list_head;
6838
+ int (*stop_feed)(struct dvb_demux_feed *feed);
6839
+ struct list_head feed_list;
6845
+__attribute__((always_inline))
6847
+payload(const u8 *tsp)
6849
+ if (tsp[3] & 0x20) {
6850
+ return 184 - 1 - tsp[4];
6857
+__attribute__((always_inline))
6859
+dvb_dmx_swfilter_payload(struct dvb_demux_feed *feed, const u8 *buf)
6861
+ int count = payload(buf);
6865
+ return feed->cb.ts(&buf[p], count, ((void *)0), 0);
6870
+__attribute__((always_inline))
6872
+dvb_dmx_swfilter_packet_type(struct dvb_demux_feed *feed, const u8 *buf)
6874
+ switch (feed->type) {
6876
+ if (feed->ts_type & 1) {
6877
+ dvb_dmx_swfilter_payload(feed, buf);
6879
+ if (dvb_dmx_swfilter_section_packet(feed, buf) < 0)
6880
+ feed->feed.sec.seclen = feed->feed.sec.secbufp = 0;
6886
+dvb_dmx_swfilter_packet(struct dvb_demux *demux, const u8 *buf)
6888
+ struct dvb_demux_feed *feed;
6891
+ 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) );})) {
6892
+ if (((((feed)->type == 0) && ((feed)->feed.ts.is_filtering) && (((feed)->ts_type & (1 | 8)) == 1))) && (dvr_done++))
6893
+ dvb_dmx_swfilter_packet_type(feed, buf);
6894
+ else if (feed->pid == 0x2000)
6895
+ feed->cb.ts(buf, 188, ((void *)0), 0);
6898
+void dvb_dmx_swfilter_packets(struct dvb_demux *demux, const u8 *buf, size_t count)
6901
+ dvb_dmx_swfilter_packet(demux, buf);
6904
Index: gcc/testsuite/gcc.dg/torture/pr58830.c
6905
===================================================================
6906
--- a/src/gcc/testsuite/gcc.dg/torture/pr58830.c (.../tags/gcc_4_8_2_release)
6907
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58830.c (.../branches/gcc-4_8-branch)
6909
+/* { dg-do run } */
6910
+/* { dg-additional-options "-ftree-pre -ftree-partial-pre" } */
6912
+extern void abort (void);
6914
+int b, c, d, f, g, h, i, j[6], *l = &b, *m, n, *o, r;
6928
+ for (f = 0; f < 2; f++)
6936
+ for (q = -8; q >= 5; q++)
6947
+ 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)
6951
Index: gcc/testsuite/gcc.dg/torture/pr58143-1.c
6952
===================================================================
6953
--- a/src/gcc/testsuite/gcc.dg/torture/pr58143-1.c (.../tags/gcc_4_8_2_release)
6954
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58143-1.c (.../branches/gcc-4_8-branch)
6956
+/* { dg-do run } */
6957
+/* { dg-additional-options "-fstrict-overflow" } */
6959
+extern void abort (void);
6961
+int a, b, c, d, e, f, g, h = 1, i;
6965
+ return p < 0 && a < - __INT_MAX__ - 1 - p ? 0 : 1;
6971
+ i = h ? 0 : 1 % h;
6972
+ for (j = 0; j < 1; j++)
6973
+ for (d = 0; d; d++)
6981
+ for (; b >= 0; b--)
6982
+ for (c = 1; c >= 0; c--)
6987
+ for (f = 0; f < 1; f++)
7007
Index: gcc/testsuite/gcc.dg/torture/pr58143-2.c
7008
===================================================================
7009
--- a/src/gcc/testsuite/gcc.dg/torture/pr58143-2.c (.../tags/gcc_4_8_2_release)
7010
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58143-2.c (.../branches/gcc-4_8-branch)
7012
+/* { dg-do run } */
7013
+/* { dg-additional-options "-fstrict-overflow" } */
7015
+int a, b, d, e, f, *g, h, i;
7018
+char foo (unsigned char p)
7025
+ for (h = 0; h < 3; h = foo (h))
7028
+ for (f = 0; f < 1; f++)
7030
+ i = a && 0 < -__INT_MAX__ - h ? 0 : 1;
7046
Index: gcc/testsuite/gcc.dg/torture/pr58941.c
7047
===================================================================
7048
--- a/src/gcc/testsuite/gcc.dg/torture/pr58941.c (.../tags/gcc_4_8_2_release)
7049
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58941.c (.../branches/gcc-4_8-branch)
7051
+/* { dg-do run } */
7053
+extern void abort (void);
7057
+ unsigned char data[1000];
7070
+ SData *pData = (SData*)(msg.data);
7071
+ unsigned int i = 0;
7072
+ for (i = 0; i < 1; i++)
7076
+ pData->d[i] |= 0x55;
7078
+ pData->d[i] |= 0xaa;
7080
+ if (pData->d[0] != 0xff)
7084
Index: gcc/testsuite/gcc.dg/torture/pr57488.c
7085
===================================================================
7086
--- a/src/gcc/testsuite/gcc.dg/torture/pr57488.c (.../tags/gcc_4_8_2_release)
7087
+++ b/src/gcc/testsuite/gcc.dg/torture/pr57488.c (.../branches/gcc-4_8-branch)
7089
+/* { dg-do run } */
7091
+extern void abort (void);
7093
+int i, j, *pj = &j, **ppj = &pj;
7096
+short s, *ps = &s, k;
7098
+unsigned short u, *pu = &u, **ppu = &pu;
7102
+unsigned char v = 48;
7115
+void __attribute__((noinline))
7118
+ for (; i <= 3; i++)
7123
+ for (k = 1; k >= 0; k--)
7127
+ for (l = 1; l < 5; l++)
7130
+ for (m = 6; m; m--)
7147
Index: gcc/testsuite/gcc.dg/torture/pr58143-3.c
7148
===================================================================
7149
--- a/src/gcc/testsuite/gcc.dg/torture/pr58143-3.c (.../tags/gcc_4_8_2_release)
7150
+++ b/src/gcc/testsuite/gcc.dg/torture/pr58143-3.c (.../branches/gcc-4_8-branch)
7152
+/* { dg-do run } */
7153
+/* { dg-additional-options "-fstrict-overflow" } */
7160
+ for (b = 4; b > -30; b--)
7164
+ e = a > __INT_MAX__ - b;
7170
Index: gcc/testsuite/gcc.dg/tree-ssa/predcom-6.c
7171
===================================================================
7172
--- a/src/gcc/testsuite/gcc.dg/tree-ssa/predcom-6.c (.../tags/gcc_4_8_2_release)
7173
+++ b/src/gcc/testsuite/gcc.dg/tree-ssa/predcom-6.c (.../branches/gcc-4_8-branch)
7175
+/* { dg-do run } */
7176
+/* { dg-options "-O3" } */
7184
+ for (d = 0; d < 2; d++)
7185
+ if (a ? 0 : e[c + 3][d] & e[c + 4][d])
7189
Index: gcc/testsuite/gcc.dg/tree-ssa/predcom-7.c
7190
===================================================================
7191
--- a/src/gcc/testsuite/gcc.dg/tree-ssa/predcom-7.c (.../tags/gcc_4_8_2_release)
7192
+++ b/src/gcc/testsuite/gcc.dg/tree-ssa/predcom-7.c (.../branches/gcc-4_8-branch)
7194
+/* { dg-do run } */
7195
+/* { dg-options "-O3 -fdump-tree-pcom-details" } */
7203
+ for (c = 0; c < 2; c++)
7204
+ if (d[b + 3][c] & d[b + 4][c])
7210
+/* { dg-final { scan-tree-dump "Executing predictive commoning" "pcom" } } */
7211
+/* { dg-final { cleanup-tree-dump "pcom" } } */
7212
Index: gcc/testsuite/ChangeLog
7213
===================================================================
7214
--- a/src/gcc/testsuite/ChangeLog (.../tags/gcc_4_8_2_release)
7215
+++ b/src/gcc/testsuite/ChangeLog (.../branches/gcc-4_8-branch)
7217
+2013-11-20 Dominik Vogt <vogt@linux.vnet.ibm.com>
7219
+ Backport from mainline
7220
+ * gcc.target/s390/htm-1.c: Rename to ...
7221
+ * gcc/testsuite/gcc.target/s390/htm-builtins-compile-1.c: ... this
7223
+ * gcc.target/s390/htm-xl-intrin-1.c: Rename to ...
7224
+ * gcc.target/s390/htm-builtins-compile-3.c: ... this one.
7225
+ * gcc.target/s390/htm-builtins-compile-2.c: New testcase.
7226
+ * gcc.target/s390/htm-builtins-1.c: New testcase.
7227
+ * gcc.target/s390/htm-builtins-2.c: New testcase.
7228
+ * gcc.target/s390/s390.exp: Add check for htm machine.
7230
+2013-11-19 Richard Biener <rguenther@suse.de>
7232
+ PR tree-optimization/57517
7233
+ * gfortran.fortran-torture/compile/pr57517.f90: New testcase.
7234
+ * gcc.dg/torture/pr57517.c: Likewise.
7236
+2013-11-19 Richard Biener <rguenther@suse.de>
7238
+ Backport from mainline
7239
+ 2013-11-05 Richard Biener <rguenther@suse.de>
7241
+ PR middle-end/58941
7242
+ * gcc.dg/torture/pr58941.c: New testcase.
7244
+2013-11-18 Richard Biener <rguenther@suse.de>
7246
+ Backport from mainline
7247
+ 2013-10-21 Richard Biener <rguenther@suse.de>
7249
+ PR tree-optimization/58794
7250
+ * c-c++-common/torture/pr58794-1.c: New testcase.
7251
+ * c-c++-common/torture/pr58794-2.c: Likewise.
7253
+ 2013-10-21 Richard Biener <rguenther@suse.de>
7255
+ PR middle-end/58742
7256
+ * c-c++-common/fold-divmul-1.c: New testcase.
7258
+ 2013-11-06 Richard Biener <rguenther@suse.de>
7260
+ PR tree-optimization/58653
7261
+ * gcc.dg/tree-ssa/predcom-6.c: New testcase.
7262
+ * gcc.dg/tree-ssa/predcom-7.c: Likewise.
7264
+ PR tree-optimization/59047
7265
+ * gcc.dg/torture/pr59047.c: New testcase.
7267
+ 2013-10-15 Richard Biener <rguenther@suse.de>
7269
+ PR tree-optimization/58143
7270
+ * gcc.dg/torture/pr58143-1.c: New testcase.
7271
+ * gcc.dg/torture/pr58143-2.c: Likewise.
7272
+ * gcc.dg/torture/pr58143-3.c: Likewise.
7274
+2013-11-17 Janus Weil <janus@gcc.gnu.org>
7276
+ Backport from mainline
7277
+ 2013-11-07 Janus Weil <janus@gcc.gnu.org>
7280
+ * gfortran.dg/constructor_9.f90: New.
7282
+2013-11-16 Janus Weil <janus@gcc.gnu.org>
7284
+ Backport from mainline
7285
+ 2013-09-20 Janus Weil <janus@gcc.gnu.org>
7288
+ * gfortran.dg/proc_ptr_43.f90: New.
7290
+2013-11-16 Paul Thomas <pault@gcc.gnu.org>
7293
+ * gfortran.dg/derived_external_function_1.f90 : New test
7295
+2013-11-14 Uros Bizjak <ubizjak@gmail.com>
7297
+ Backport from mainline
7298
+ 2013-11-06 Uros Bizjak <ubizjak@gmail.com>
7301
+ * gcc.target/i386/pr59021.c: New test.
7303
+2013-11-14 Jakub Jelinek <jakub@redhat.com>
7306
+ * gcc.c-torture/execute/pr59101.c: New test.
7308
+2013-11-11 Jakub Jelinek <jakub@redhat.com>
7310
+ Backported from mainline
7311
+ 2013-11-06 Jakub Jelinek <jakub@redhat.com>
7313
+ PR middle-end/58970
7314
+ * gcc.c-torture/compile/pr58970-1.c: New test.
7315
+ * gcc.c-torture/compile/pr58970-2.c: New test.
7317
+ 2013-11-05 Jakub Jelinek <jakub@redhat.com>
7319
+ PR rtl-optimization/58997
7320
+ * gcc.c-torture/compile/pr58997.c: New test.
7322
+2013-11-10 Wei Mi <wmi@google.com>
7324
+ * testsuite/gcc.dg/pr57518.c: Backport regex fix from r200720.
7326
+2013-11-07 H.J. Lu <hongjiu.lu@intel.com>
7328
+ Backport from mainline
7329
+ 2013-11-07 H.J. Lu <hongjiu.lu@intel.com>
7332
+ * gcc.target/i386/pr59034-1.c: New test.
7333
+ * gcc.target/i386/pr59034-2.c: Likewise.
7335
+2013-11-06 Wei Mi <wmi@google.com>
7337
+ PR regression/58985
7338
+ * testsuite/gcc.dg/pr57518.c: Add subreg in regexp pattern.
7340
+2013-11-05 Steven G. Kargl <kargl@gcc.gnu.org>
7343
+ * gfortran.dg/reshape_6.f90: New test.
7345
+2013-11-05 Jakub Jelinek <jakub@redhat.com>
7347
+ PR tree-optimization/58984
7348
+ * gcc.c-torture/execute/pr58984.c: New test.
7350
+2013-11-04 Marek Polacek <polacek@redhat.com>
7352
+ Backport from mainline
7353
+ 2013-11-04 Marek Polacek <polacek@redhat.com>
7356
+ * g++.dg/diagnostic/pr58979.C: New test.
7358
+2013-11-03 H.J. Lu <hongjiu.lu@intel.com>
7360
+ Backport from mainline
7361
+ 2013-10-12 H.J. Lu <hongjiu.lu@intel.com>
7364
+ * gcc.target/i386/pr58690.c: New test
7366
+2013-11-02 Janus Weil <janus@gcc.gnu.org>
7368
+ Backport from mainline
7369
+ 2013-09-23 Janus Weil <janus@gcc.gnu.org>
7372
+ * gfortran.dg/extends_15.f90: New.
7374
+2013-10-29 Uros Bizjak <ubizjak@gmail.com>
7376
+ Backport from mainline
7377
+ 2013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
7379
+ PR rtl-optimization/58079
7380
+ * gcc.dg/torture/pr58079.c: New test.
7382
+2013-10-28 Tom de Vries <tom@codesourcery.com>
7384
+ * gcc.target/arm/require-pic-register-loc.c: New test.
7386
+2013-10-26 Uros Bizjak <ubizjak@gmail.com>
7388
+ Backport from mainline
7389
+ 2013-10-22 Uros Bizjak <ubizjak@gmail.com>
7392
+ * gcc.target/i386/pr30315.c: Remove MINUSCC, DECCC, MINUSCCONLY
7393
+ and MINUSCCZEXT defines. Update scan-assembler dg directive.
7394
+ * gcc.dg/torture/pr58779.c: New test.
7396
+2013-10-25 Richard Henderson <rth@redhat.com>
7399
+ * gcc.dg/atomic-store-6.c: New.
7401
+2013-10-25 Tom de Vries <tom@codesourcery.com>
7404
+ * g++.dg/tm/noexcept-6.C: New test.
7406
+2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
7408
+ * gcc.c-torture/execute/pr58831.c: New test.
7410
+2013-10-23 Tom de Vries <tom@codesourcery.com>
7412
+ PR tree-optimization/58805
7413
+ * gcc.dg/pr58805.c: New test.
7415
+2013-10-23 Richard Biener <rguenther@suse.de>
7417
+ * gcc.dg/torture/pr58830.c: New testcase.
7419
+ Backport from mainline
7420
+ 2013-06-24 Richard Biener <rguenther@suse.de>
7422
+ PR tree-optimization/57488
7423
+ * gcc.dg/torture/pr57488.c: New testcase.
7425
+2013-10-19 Oleg Endo <olegendo@gcc.gnu.org>
7427
+ * gcc.target/sh/pr54089-3.c: Fix test for load of constant 31.
7429
+2013-10-17 Paolo Carlini <paolo.carlini@oracle.com>
7432
+ * g++.dg/cpp0x/lambda/lambda-nsdmi5.C: New
7434
+2013-10-16 Paolo Carlini <paolo.carlini@oracle.com>
7437
+ * g++.dg/cpp0x/decltype57.C: New.
7438
+ * g++.dg/cpp0x/enum18.C: Revert r174385 changes.
7440
2013-10-16 Release Manager
7442
* GCC 4.8.2 released.
7444
Backport from mainline
7445
2013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7447
- * gcc.target/s390/htm-1.c: New file.
7448
- * gcc.target/s390/htm-nofloat-1.c: New file.
7449
- * gcc.target/s390/htm-xl-intrin-1.c: New file.
7450
+ * gcc.target/s390/htm-1.c: New file.
7451
+ * gcc.target/s390/htm-nofloat-1.c: New file.
7452
+ * gcc.target/s390/htm-xl-intrin-1.c: New file.
7454
2013-10-04 Tobias Burnus <burnus@net-b.de>
7457
Backport from mainline
7458
2013-08-12 Perez Read <netfirewall@gmail.com>
7461
- * gcc.target/i386/movabs-1.c: New test.
7463
+ * gcc.target/i386/movabs-1.c: New test.
7465
2013-08-11 Janus Weil <janus@gcc.gnu.org>
7469
2013-05-09 Martin Jambor <mjambor@suse.cz>
7471
- PR middle-end/56988
7472
- * gcc.dg/ipa/pr56988.c: New test.
7473
+ PR middle-end/56988
7474
+ * gcc.dg/ipa/pr56988.c: New test.
7476
2013-05-08 Marc Glisse <marc.glisse@inria.fr>
7479
2013-04-25 Marek Polacek <polacek@redhat.com>
7481
PR tree-optimization/57066
7482
- * gcc.dg/torture/builtin-logb-1.c: Adjust testcase.
7483
+ * gcc.dg/torture/builtin-logb-1.c: Adjust testcase.
7485
2013-05-02 Jakub Jelinek <jakub@redhat.com>
7487
@@ -727,32 +950,32 @@
7488
Backport from mainline
7489
2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
7491
- PR rtl-optimizations/57046
7492
- * gcc.target/i386/pr57046.c: New test.
7493
+ PR rtl-optimizations/57046
7494
+ * gcc.target/i386/pr57046.c: New test.
7496
2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
7498
Backport from mainline
7499
2013-04-22 Vladimir Makarov <vmakarov@redhat.com>
7502
- * gcc.target/i386/pr57018.c: New test.
7504
+ * gcc.target/i386/pr57018.c: New test.
7506
2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
7508
Backport from mainline
7509
2013-04-18 Jakub Jelinek <jakub@redhat.com>
7511
- PR rtl-optimization/56999
7512
- * g++.dg/opt/pr56999.C: New test.
7513
+ PR rtl-optimization/56999
7514
+ * g++.dg/opt/pr56999.C: New test.
7516
2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
7518
Backport from mainline
7519
2013-04-19 Vladimir Makarov <vmakarov@redhat.com>
7521
- PR rtl-optimization/56847
7522
- * gcc.dg/pr56847.c: New test.
7523
+ PR rtl-optimization/56847
7524
+ * gcc.dg/pr56847.c: New test.
7526
2013-05-02 Ian Bolton <ian.bolton@arm.com>
7528
Index: gcc/testsuite/gfortran.fortran-torture/compile/pr57517.f90
7529
===================================================================
7530
--- a/src/gcc/testsuite/gfortran.fortran-torture/compile/pr57517.f90 (.../tags/gcc_4_8_2_release)
7531
+++ b/src/gcc/testsuite/gfortran.fortran-torture/compile/pr57517.f90 (.../branches/gcc-4_8-branch)
7533
+SUBROUTINE cal_helicity (uh, ph, phb, wavg, ims, ime, its, ite)
7534
+ INTEGER, INTENT( IN ) :: ims, ime, its, ite
7535
+ REAL, DIMENSION( ims:ime), INTENT( IN ) :: ph, phb, wavg
7536
+ REAL, DIMENSION( ims:ime), INTENT( INOUT ) :: uh
7540
+ zu = (ph(i ) + phb(i)) + (ph(i-1) + phb(i-1))
7541
+ IF (wavg(i) .GT. 0) THEN
7542
+ uh(i) = uh(i) + zu
7545
+END SUBROUTINE cal_helicity
7546
Index: gcc/testsuite/g++.dg/diagnostic/pr58979.C
7547
===================================================================
7548
--- a/src/gcc/testsuite/g++.dg/diagnostic/pr58979.C (.../tags/gcc_4_8_2_release)
7549
+++ b/src/gcc/testsuite/g++.dg/diagnostic/pr58979.C (.../branches/gcc-4_8-branch)
7552
+// { dg-do compile }
7554
+int i = 0->*0; // { dg-error "invalid type argument of" }
7555
Index: gcc/testsuite/g++.dg/tm/noexcept-6.C
7556
===================================================================
7557
--- a/src/gcc/testsuite/g++.dg/tm/noexcept-6.C (.../tags/gcc_4_8_2_release)
7558
+++ b/src/gcc/testsuite/g++.dg/tm/noexcept-6.C (.../branches/gcc-4_8-branch)
7560
+// { dg-do compile }
7561
+// { dg-options "-fno-exceptions -fgnu-tm -O -std=c++0x -fdump-tree-tmlower" }
7565
+ static constexpr bool v() { return true; }
7570
+template<typename T> int foo()
7572
+ return __transaction_atomic noexcept(T::v()) (global + 1);
7577
+ return foo<TrueFalse>();
7580
+/* { dg-final { scan-tree-dump-times "eh_must_not_throw" 0 "tmlower" } } */
7581
+/* { dg-final { scan-tree-dump-times "__transaction_atomic" 1 "tmlower" } } */
7582
+/* { dg-final { cleanup-tree-dump "tmlower" } } */
7583
Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi5.C
7584
===================================================================
7585
--- a/src/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi5.C (.../tags/gcc_4_8_2_release)
7586
+++ b/src/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nsdmi5.C (.../branches/gcc-4_8-branch)
7589
+// { dg-do compile { target c++11 } }
7593
+ int i = [] { return decltype(i)(); }();
7595
Index: gcc/testsuite/g++.dg/cpp0x/enum18.C
7596
===================================================================
7597
--- a/src/gcc/testsuite/g++.dg/cpp0x/enum18.C (.../tags/gcc_4_8_2_release)
7598
+++ b/src/gcc/testsuite/g++.dg/cpp0x/enum18.C (.../branches/gcc-4_8-branch)
7603
- ev.e::~e_u(); // { dg-error "e_u. has not been declared" }
7604
+ ev.e::~e_u(); // { dg-error "" }
7606
Index: gcc/testsuite/g++.dg/cpp0x/decltype57.C
7607
===================================================================
7608
--- a/src/gcc/testsuite/g++.dg/cpp0x/decltype57.C (.../tags/gcc_4_8_2_release)
7609
+++ b/src/gcc/testsuite/g++.dg/cpp0x/decltype57.C (.../branches/gcc-4_8-branch)
7612
+// { dg-do compile { target c++11 } }
7617
+ decltype(i.I::~I())* p;
7619
Index: gcc/testsuite/c-c++-common/fold-divmul-1.c
7620
===================================================================
7621
--- a/src/gcc/testsuite/c-c++-common/fold-divmul-1.c (.../tags/gcc_4_8_2_release)
7622
+++ b/src/gcc/testsuite/c-c++-common/fold-divmul-1.c (.../branches/gcc-4_8-branch)
7624
+/* { dg-do compile } */
7625
+/* { dg-options "-fdump-tree-original" } */
7628
+fx (int *b, int *e)
7630
+ return b + (e - b);
7633
+/* { dg-final { scan-tree-dump-not "/\\\[ex\\\]" "original" } } */
7634
+/* { dg-final { cleanup-tree-dump "original" } } */
7635
Index: gcc/testsuite/c-c++-common/torture/pr58794-1.c
7636
===================================================================
7637
--- a/src/gcc/testsuite/c-c++-common/torture/pr58794-1.c (.../tags/gcc_4_8_2_release)
7638
+++ b/src/gcc/testsuite/c-c++-common/torture/pr58794-1.c (.../branches/gcc-4_8-branch)
7640
+/* { dg-do compile } */
7658
+static int *c[1][2] = {{0, (int *)&a.g.f2}};
7664
+ for (d = 0; d < 1; d++)
7665
+ for (b.g.f1.f = 0; b.g.f1.f < 1; b.g.f1.f++)
7666
+ *c[b.g.f1.f][d + 1] = 0;
7669
Index: gcc/testsuite/c-c++-common/torture/pr58794-2.c
7670
===================================================================
7671
--- a/src/gcc/testsuite/c-c++-common/torture/pr58794-2.c (.../tags/gcc_4_8_2_release)
7672
+++ b/src/gcc/testsuite/c-c++-common/torture/pr58794-2.c (.../branches/gcc-4_8-branch)
7674
+/* { dg-do compile } */
7683
+static int *c[1][2] = {{0, (int *)&a.f}};
7684
+static unsigned int d;
7689
+ for (; d < 1; d++)
7690
+ for (; b < 1; b++)
7695
Index: gcc/cp/typeck.c
7696
===================================================================
7697
--- a/src/gcc/cp/typeck.c (.../tags/gcc_4_8_2_release)
7698
+++ b/src/gcc/cp/typeck.c (.../branches/gcc-4_8-branch)
7699
@@ -7611,7 +7611,7 @@
7700
/* Handle null pointer to member function conversions. */
7701
if (null_ptr_cst_p (pfn))
7703
- pfn = build_c_cast (input_location, type, pfn);
7704
+ pfn = cp_build_c_cast (type, pfn, complain);
7705
return build_ptrmemfunc1 (to_type,
7708
Index: gcc/cp/except.c
7709
===================================================================
7710
--- a/src/gcc/cp/except.c (.../tags/gcc_4_8_2_release)
7711
+++ b/src/gcc/cp/except.c (.../branches/gcc-4_8-branch)
7714
tree type = body ? TREE_TYPE (body) : void_type_node;
7716
+ if (!flag_exceptions)
7719
if (cond && !value_dependent_expression_p (cond))
7721
cond = cxx_constant_value (cond);
7722
Index: gcc/cp/ChangeLog
7723
===================================================================
7724
--- a/src/gcc/cp/ChangeLog (.../tags/gcc_4_8_2_release)
7725
+++ b/src/gcc/cp/ChangeLog (.../branches/gcc-4_8-branch)
7727
+2013-11-11 Paolo Carlini <paolo.carlini@oracle.com>
7729
+ * cvt.c (cp_convert_to_pointer): Call build_ptrmemfunc before
7730
+ maybe_warn_zero_as_null_pointer_constant to avoid duplicate
7731
+ -Wzero-as-null-pointer-constant diagnostics.
7733
+ * typeck.c (build_ptrmemfunc): Use cp_build_c_cast.
7735
+2013-10-25 Tom de Vries <tom@codesourcery.com>
7738
+ * except.c (build_must_not_throw_expr): Handle
7741
+2013-10-17 Paolo Carlini <paolo.carlini@oracle.com>
7744
+ * semantics.c (lambda_expr_this_capture): Handle NSDMIs in the
7745
+ cp_unevaluated_operand case.
7747
+2013-10-16 Paolo Carlini <paolo.carlini@oracle.com>
7750
+ * parser.c (cp_parser_pseudo_destructor_name): Revert r174385 changes.
7752
+2013-10-16 Jason Merrill <jason@redhat.com>
7755
+ * decl2.c (dump_tu): Split out from...
7756
+ (cp_write_global_declarations): ...here. Call it in PCH mode.
7758
2013-10-16 Release Manager
7760
* GCC 4.8.2 released.
7761
Index: gcc/cp/semantics.c
7762
===================================================================
7763
--- a/src/gcc/cp/semantics.c (.../tags/gcc_4_8_2_release)
7764
+++ b/src/gcc/cp/semantics.c (.../branches/gcc-4_8-branch)
7765
@@ -9481,7 +9481,14 @@
7766
/* In unevaluated context this isn't an odr-use, so just return the
7768
if (cp_unevaluated_operand)
7769
- return lookup_name (this_identifier);
7771
+ /* In an NSDMI the fake 'this' pointer that we're using for
7772
+ parsing is in scope_chain. */
7773
+ if (LAMBDA_EXPR_EXTRA_SCOPE (lambda)
7774
+ && TREE_CODE (LAMBDA_EXPR_EXTRA_SCOPE (lambda)) == FIELD_DECL)
7775
+ return scope_chain->x_current_class_ptr;
7776
+ return lookup_name (this_identifier);
7779
/* Try to default capture 'this' if we can. */
7781
Index: gcc/cp/decl2.c
7782
===================================================================
7783
--- a/src/gcc/cp/decl2.c (.../tags/gcc_4_8_2_release)
7784
+++ b/src/gcc/cp/decl2.c (.../branches/gcc-4_8-branch)
7785
@@ -3960,6 +3960,22 @@
7786
expand_or_defer_fn (finish_function (0));
7789
+/* The entire file is now complete. If requested, dump everything
7796
+ FILE *stream = dump_begin (TDI_tu, &flags);
7800
+ dump_node (global_namespace, flags & ~TDF_SLIM, stream);
7801
+ dump_end (TDI_tu, stream);
7805
/* This routine is called at the end of compilation.
7806
Its job is to create all the code needed to initialize and
7807
destroy the global aggregates. We do the destruction
7808
@@ -3990,6 +4006,7 @@
7811
c_common_write_pch ();
7816
@@ -4359,17 +4376,8 @@
7818
/* The entire file is now complete. If requested, dump everything
7822
- FILE *stream = dump_begin (TDI_tu, &flags);
7827
- dump_node (global_namespace, flags & ~TDF_SLIM, stream);
7828
- dump_end (TDI_tu, stream);
7832
if (flag_detailed_statistics)
7834
dump_tree_statistics ();
7835
Index: gcc/cp/parser.c
7836
===================================================================
7837
--- a/src/gcc/cp/parser.c (.../tags/gcc_4_8_2_release)
7838
+++ b/src/gcc/cp/parser.c (.../branches/gcc-4_8-branch)
7839
@@ -6421,10 +6421,6 @@
7840
/* Look for the `~'. */
7841
cp_parser_require (parser, CPP_COMPL, RT_COMPL);
7843
- /* Once we see the ~, this has to be a pseudo-destructor. */
7844
- if (!processing_template_decl && !cp_parser_error_occurred (parser))
7845
- cp_parser_commit_to_tentative_parse (parser);
7847
/* Look for the type-name again. We are not responsible for
7848
checking that it matches the first type-name. */
7849
*type = cp_parser_nonclass_name (parser);
7851
===================================================================
7852
--- a/src/gcc/cp/cvt.c (.../tags/gcc_4_8_2_release)
7853
+++ b/src/gcc/cp/cvt.c (.../branches/gcc-4_8-branch)
7854
@@ -203,13 +203,13 @@
7856
if (null_ptr_cst_p (expr))
7858
- if (complain & tf_warning)
7859
- maybe_warn_zero_as_null_pointer_constant (expr, loc);
7861
if (TYPE_PTRMEMFUNC_P (type))
7862
return build_ptrmemfunc (TYPE_PTRMEMFUNC_FN_TYPE (type), expr, 0,
7863
/*c_cast_p=*/false, complain);
7865
+ if (complain & tf_warning)
7866
+ maybe_warn_zero_as_null_pointer_constant (expr, loc);
7868
/* A NULL pointer-to-data-member is represented by -1, not by
7870
tree val = (TYPE_PTRDATAMEM_P (type)
7871
Index: gcc/mode-switching.c
7872
===================================================================
7873
--- a/src/gcc/mode-switching.c (.../tags/gcc_4_8_2_release)
7874
+++ b/src/gcc/mode-switching.c (.../branches/gcc-4_8-branch)
7875
@@ -568,12 +568,15 @@
7877
info[bb->index].computing = last_mode;
7878
/* Check for blocks without ANY mode requirements.
7879
- N.B. because of MODE_AFTER, last_mode might still be different
7881
+ N.B. because of MODE_AFTER, last_mode might still
7882
+ be different from no_mode, in which case we need to
7883
+ mark the block as nontransparent. */
7884
if (!any_set_required)
7886
ptr = new_seginfo (no_mode, BB_END (bb), bb->index, live_now);
7887
add_seginfo (info + bb->index, ptr);
7888
+ if (last_mode != no_mode)
7889
+ bitmap_clear_bit (transp[bb->index], j);
7892
#if defined (MODE_ENTRY) && defined (MODE_EXIT)
7894
===================================================================
7895
--- a/src/gcc/expr.c (.../tags/gcc_4_8_2_release)
7896
+++ b/src/gcc/expr.c (.../branches/gcc-4_8-branch)
7897
@@ -4551,19 +4551,19 @@
7898
- tree_low_cst (DECL_FIELD_BIT_OFFSET (repr), 1));
7900
/* If the adjustment is larger than bitpos, we would have a negative bit
7901
- position for the lower bound and this may wreak havoc later. This can
7902
- occur only if we have a non-null offset, so adjust offset and bitpos
7903
- to make the lower bound non-negative. */
7904
+ position for the lower bound and this may wreak havoc later. Adjust
7905
+ offset and bitpos to make the lower bound non-negative in that case. */
7906
if (bitoffset > *bitpos)
7908
HOST_WIDE_INT adjust = bitoffset - *bitpos;
7910
gcc_assert ((adjust % BITS_PER_UNIT) == 0);
7911
- gcc_assert (*offset != NULL_TREE);
7915
- = size_binop (MINUS_EXPR, *offset, size_int (adjust / BITS_PER_UNIT));
7916
+ if (*offset == NULL_TREE)
7917
+ *offset = size_int (-adjust / BITS_PER_UNIT);
7920
+ = size_binop (MINUS_EXPR, *offset, size_int (adjust / BITS_PER_UNIT));
7924
@@ -4698,6 +4698,15 @@
7925
tem = get_inner_reference (to, &bitsize, &bitpos, &offset, &mode1,
7926
&unsignedp, &volatilep, true);
7928
+ /* Make sure bitpos is not negative, it can wreak havoc later. */
7931
+ gcc_assert (offset == NULL_TREE);
7932
+ offset = size_int (bitpos >> (BITS_PER_UNIT == 8
7933
+ ? 3 : exact_log2 (BITS_PER_UNIT)));
7934
+ bitpos &= BITS_PER_UNIT - 1;
7937
if (TREE_CODE (to) == COMPONENT_REF
7938
&& DECL_BIT_FIELD_TYPE (TREE_OPERAND (to, 1)))
7939
get_bit_range (&bitregion_start, &bitregion_end, to, &bitpos, &offset);
7940
Index: gcc/go/go-gcc.cc
7941
===================================================================
7942
--- a/src/gcc/go/go-gcc.cc (.../tags/gcc_4_8_2_release)
7943
+++ b/src/gcc/go/go-gcc.cc (.../branches/gcc-4_8-branch)
7946
convert_expression(Btype* type, Bexpression* expr, Location);
7949
+ function_code_expression(Bfunction*, Location);
7954
@@ -334,6 +337,17 @@
7956
label_address(Blabel*, Location);
7962
+ { return this->make_function(error_mark_node); }
7965
+ function(Btype* fntype, const std::string& name, const std::string& asm_name,
7966
+ bool is_visible, bool is_declaration, bool is_inlinable,
7967
+ bool disable_split_stack, bool in_unique_section, Location);
7970
// Make a Bexpression from a tree.
7972
@@ -350,6 +364,10 @@
7974
{ return new Btype(t); }
7977
+ make_function(tree t)
7978
+ { return new Bfunction(t); }
7981
fill_in_struct(Btype*, const std::vector<Btyped_identifier>&);
7983
@@ -966,6 +984,19 @@
7984
return tree_to_expr(ret);
7987
+// Get the address of a function.
7990
+Gcc_backend::function_code_expression(Bfunction* bfunc, Location location)
7992
+ tree func = bfunc->get_tree();
7993
+ if (func == error_mark_node)
7994
+ return this->error_expression();
7996
+ tree ret = build_fold_addr_expr_loc(location.gcc_location(), func);
7997
+ return this->make_expression(ret);
8000
// An expression as a statement.
8003
@@ -1724,6 +1755,56 @@
8004
return this->make_expression(ret);
8007
+// Declare or define a new function.
8010
+Gcc_backend::function(Btype* fntype, const std::string& name,
8011
+ const std::string& asm_name, bool is_visible,
8012
+ bool is_declaration, bool is_inlinable,
8013
+ bool disable_split_stack, bool in_unique_section,
8014
+ Location location)
8016
+ tree functype = fntype->get_tree();
8017
+ if (functype != error_mark_node)
8019
+ gcc_assert(FUNCTION_POINTER_TYPE_P(functype));
8020
+ functype = TREE_TYPE(functype);
8022
+ tree id = get_identifier_from_string(name);
8023
+ if (functype == error_mark_node || id == error_mark_node)
8024
+ return this->error_function();
8026
+ tree decl = build_decl(location.gcc_location(), FUNCTION_DECL, id, functype);
8027
+ if (!asm_name.empty())
8028
+ SET_DECL_ASSEMBLER_NAME(decl, get_identifier_from_string(asm_name));
8030
+ TREE_PUBLIC(decl) = 1;
8031
+ if (is_declaration)
8032
+ DECL_EXTERNAL(decl) = 1;
8035
+ tree restype = TREE_TYPE(functype);
8037
+ build_decl(location.gcc_location(), RESULT_DECL, NULL_TREE, restype);
8038
+ DECL_ARTIFICIAL(resdecl) = 1;
8039
+ DECL_IGNORED_P(resdecl) = 1;
8040
+ DECL_CONTEXT(resdecl) = decl;
8041
+ DECL_RESULT(decl) = resdecl;
8043
+ if (!is_inlinable)
8044
+ DECL_UNINLINABLE(decl) = 1;
8045
+ if (disable_split_stack)
8047
+ tree attr = get_identifier("__no_split_stack__");
8048
+ DECL_ATTRIBUTES(decl) = tree_cons(attr, NULL_TREE, NULL_TREE);
8050
+ if (in_unique_section)
8051
+ resolve_unique_section(decl, 0, 1);
8053
+ go_preserve_from_gc(decl);
8054
+ return new Bfunction(decl);
8057
// The single backend.
8059
static Gcc_backend gcc_backend;
8060
@@ -1799,3 +1880,9 @@
8062
return bv->get_tree();
8066
+function_to_tree(Bfunction* bf)
8068
+ return bf->get_tree();
8070
Index: gcc/go/ChangeLog
8071
===================================================================
8072
--- a/src/gcc/go/ChangeLog (.../tags/gcc_4_8_2_release)
8073
+++ b/src/gcc/go/ChangeLog (.../branches/gcc-4_8-branch)
8075
+2013-10-16 Ian Lance Taylor <iant@google.com>
8077
+ Bring in from mainline:
8079
+ 2013-10-11 Chris Manghane <cmang@google.com>
8080
+ * go-gcc.cc (Gcc_backend::function_code_expression): New
8083
+ 2013-10-10 Chris Manghane <cmang@google.com>
8084
+ * go-gcc.cc (Backend::error_function): New function.
8085
+ (Backend::function): New function.
8086
+ (Backend::make_function): New function.
8087
+ (function_to_tree): New function.
8089
2013-10-16 Release Manager
8091
* GCC 4.8.2 released.
8092
Index: gcc/go/gofrontend/gogo.cc
8093
===================================================================
8094
--- a/src/gcc/go/gofrontend/gogo.cc (.../tags/gcc_4_8_2_release)
8095
+++ b/src/gcc/go/gofrontend/gogo.cc (.../branches/gcc-4_8-branch)
8096
@@ -3320,7 +3320,8 @@
8097
closure_var_(NULL), block_(block), location_(location), labels_(),
8098
local_type_count_(0), descriptor_(NULL), fndecl_(NULL), defer_stack_(NULL),
8099
is_sink_(false), results_are_named_(false), nointerface_(false),
8100
- calls_recover_(false), is_recover_thunk_(false), has_recover_thunk_(false),
8101
+ is_unnamed_type_stub_method_(false), calls_recover_(false),
8102
+ is_recover_thunk_(false), has_recover_thunk_(false),
8103
in_unique_section_(false)
8106
@@ -3819,6 +3820,81 @@
8107
*presults = results;
8110
+// Get the backend representation.
8113
+Function::get_or_make_decl(Gogo* gogo, Named_object* no)
8115
+ if (this->fndecl_ == NULL)
8117
+ std::string asm_name;
8118
+ bool is_visible = false;
8119
+ if (no->package() != NULL)
8121
+ else if (this->enclosing_ != NULL || Gogo::is_thunk(no))
8123
+ else if (Gogo::unpack_hidden_name(no->name()) == "init"
8124
+ && !this->type_->is_method())
8126
+ else if (Gogo::unpack_hidden_name(no->name()) == "main"
8127
+ && gogo->is_main_package())
8128
+ is_visible = true;
8129
+ // Methods have to be public even if they are hidden because
8130
+ // they can be pulled into type descriptors when using
8131
+ // anonymous fields.
8132
+ else if (!Gogo::is_hidden_name(no->name())
8133
+ || this->type_->is_method())
8135
+ if (!this->is_unnamed_type_stub_method_)
8136
+ is_visible = true;
8137
+ std::string pkgpath = gogo->pkgpath_symbol();
8138
+ if (this->type_->is_method()
8139
+ && Gogo::is_hidden_name(no->name())
8140
+ && Gogo::hidden_name_pkgpath(no->name()) != gogo->pkgpath())
8142
+ // This is a method we created for an unexported
8143
+ // method of an imported embedded type. We need to
8144
+ // use the pkgpath of the imported package to avoid
8145
+ // a possible name collision. See bug478 for a test
8147
+ pkgpath = Gogo::hidden_name_pkgpath(no->name());
8148
+ pkgpath = Gogo::pkgpath_for_symbol(pkgpath);
8151
+ asm_name = pkgpath;
8152
+ asm_name.append(1, '.');
8153
+ asm_name.append(Gogo::unpack_hidden_name(no->name()));
8154
+ if (this->type_->is_method())
8156
+ asm_name.append(1, '.');
8157
+ Type* rtype = this->type_->receiver()->type();
8158
+ asm_name.append(rtype->mangled_name(gogo));
8162
+ // If a function calls the predeclared recover function, we
8163
+ // can't inline it, because recover behaves differently in a
8164
+ // function passed directly to defer. If this is a recover
8165
+ // thunk that we built to test whether a function can be
8166
+ // recovered, we can't inline it, because that will mess up
8167
+ // our return address comparison.
8168
+ bool is_inlinable = !(this->calls_recover_ || this->is_recover_thunk_);
8170
+ // If this is a thunk created to call a function which calls
8171
+ // the predeclared recover function, we need to disable
8172
+ // stack splitting for the thunk.
8173
+ bool disable_split_stack = this->is_recover_thunk_;
8175
+ Btype* functype = this->type_->get_backend_fntype(gogo);
8177
+ gogo->backend()->function(functype, no->get_id(gogo), asm_name,
8178
+ is_visible, false, is_inlinable,
8179
+ disable_split_stack,
8180
+ this->in_unique_section_, this->location());
8182
+ return this->fndecl_;
8187
Block::Block(Block* enclosing, Location location)
8188
@@ -5110,6 +5186,75 @@
8193
+// Return the external identifier for this object.
8196
+Named_object::get_id(Gogo* gogo)
8198
+ go_assert(!this->is_variable() && !this->is_result_variable());
8199
+ std::string decl_name;
8200
+ if (this->is_function_declaration()
8201
+ && !this->func_declaration_value()->asm_name().empty())
8202
+ decl_name = this->func_declaration_value()->asm_name();
8203
+ else if (this->is_type()
8204
+ && Linemap::is_predeclared_location(this->type_value()->location()))
8206
+ // We don't need the package name for builtin types.
8207
+ decl_name = Gogo::unpack_hidden_name(this->name_);
8211
+ std::string package_name;
8212
+ if (this->package_ == NULL)
8213
+ package_name = gogo->package_name();
8215
+ package_name = this->package_->package_name();
8217
+ // Note that this will be misleading if this is an unexported
8218
+ // method generated for an embedded imported type. In that case
8219
+ // the unexported method should have the package name of the
8220
+ // package from which it is imported, but we are going to give
8221
+ // it our package name. Fixing this would require knowing the
8222
+ // package name, but we only know the package path. It might be
8223
+ // better to use package paths here anyhow. This doesn't affect
8224
+ // the assembler code, because we always set that name in
8225
+ // Function::get_or_make_decl anyhow. FIXME.
8227
+ decl_name = package_name + '.' + Gogo::unpack_hidden_name(this->name_);
8229
+ Function_type* fntype;
8230
+ if (this->is_function())
8231
+ fntype = this->func_value()->type();
8232
+ else if (this->is_function_declaration())
8233
+ fntype = this->func_declaration_value()->type();
8236
+ if (fntype != NULL && fntype->is_method())
8238
+ decl_name.push_back('.');
8239
+ decl_name.append(fntype->receiver()->type()->mangled_name(gogo));
8242
+ if (this->is_type())
8244
+ unsigned int index;
8245
+ const Named_object* in_function = this->type_value()->in_function(&index);
8246
+ if (in_function != NULL)
8248
+ decl_name += '$' + Gogo::unpack_hidden_name(in_function->name());
8252
+ snprintf(buf, sizeof buf, "%u", index);
8263
Bindings::Bindings(Bindings* enclosing)
8264
Index: gcc/go/gofrontend/runtime.def
8265
===================================================================
8266
--- a/src/gcc/go/gofrontend/runtime.def (.../tags/gcc_4_8_2_release)
8267
+++ b/src/gcc/go/gofrontend/runtime.def (.../branches/gcc-4_8-branch)
8269
P1(STRING), R1(SLICE))
8272
+// Complex division.
8273
+DEF_GO_RUNTIME(COMPLEX64_DIV, "__go_complex64_div",
8274
+ P2(COMPLEX64, COMPLEX64), R1(COMPLEX64))
8275
+DEF_GO_RUNTIME(COMPLEX128_DIV, "__go_complex128_div",
8276
+ P2(COMPLEX128, COMPLEX128), R1(COMPLEX128))
8279
DEF_GO_RUNTIME(MAKESLICE1, "__go_make_slice1", P2(TYPE, UINTPTR), R1(SLICE))
8280
DEF_GO_RUNTIME(MAKESLICE2, "__go_make_slice2", P3(TYPE, UINTPTR, UINTPTR),
8281
Index: gcc/go/gofrontend/gogo.h
8282
===================================================================
8283
--- a/src/gcc/go/gofrontend/gogo.h (.../tags/gcc_4_8_2_release)
8284
+++ b/src/gcc/go/gofrontend/gogo.h (.../branches/gcc-4_8-branch)
8291
// This file declares the basic classes used to hold the internal
8292
// representation of Go which is built by the parser.
8293
@@ -952,6 +953,15 @@
8294
this->nointerface_ = true;
8297
+ // Record that this function is a stub method created for an unnamed
8300
+ set_is_unnamed_type_stub_method()
8302
+ go_assert(this->is_method());
8303
+ this->is_unnamed_type_stub_method_ = true;
8306
// Add a new field to the closure variable.
8308
add_closure_field(Named_object* var, Location loc)
8309
@@ -1089,17 +1099,13 @@
8310
this->descriptor_ = descriptor;
8313
- // Return the function's decl given an identifier.
8315
- get_or_make_decl(Gogo*, Named_object*, tree id);
8316
+ // Return the backend representation.
8318
+ get_or_make_decl(Gogo*, Named_object*);
8320
// Return the function's decl after it has been built.
8324
- go_assert(this->fndecl_ != NULL);
8325
- return this->fndecl_;
8329
// Set the function decl to hold a tree of the function code.
8331
@@ -1170,7 +1176,7 @@
8332
// The function descriptor, if any.
8333
Expression* descriptor_;
8334
// The function decl.
8336
+ Bfunction* fndecl_;
8337
// The defer stack variable. A pointer to this variable is used to
8338
// distinguish the defer stack for one function from another. This
8339
// is NULL unless we actually need a defer stack.
8340
@@ -1181,6 +1187,9 @@
8341
bool results_are_named_ : 1;
8342
// True if this method should not be included in the type descriptor.
8343
bool nointerface_ : 1;
8344
+ // True if this function is a stub method created for an unnamed
8346
+ bool is_unnamed_type_stub_method_ : 1;
8347
// True if this function calls the predeclared recover function.
8348
bool calls_recover_ : 1;
8349
// True if this a thunk built for a function which calls recover.
8350
@@ -1265,9 +1274,9 @@
8351
has_descriptor() const
8352
{ return this->descriptor_ != NULL; }
8354
- // Return a decl for the function given an identifier.
8356
- get_or_make_decl(Gogo*, Named_object*, tree id);
8357
+ // Return a backend representation.
8359
+ get_or_make_decl(Gogo*, Named_object*);
8361
// If there is a descriptor, build it into the backend
8363
@@ -1290,7 +1299,7 @@
8364
// The function descriptor, if any.
8365
Expression* descriptor_;
8366
// The function decl if needed.
8368
+ Bfunction* fndecl_;
8372
@@ -2181,8 +2190,8 @@
8374
get_backend_variable(Gogo*, Named_object* function);
8376
- // Return a tree for the external identifier for this object.
8378
+ // Return the external identifier for this object.
8382
// Return a tree representing this object.
8383
Index: gcc/go/gofrontend/types.h
8384
===================================================================
8385
--- a/src/gcc/go/gofrontend/types.h (.../tags/gcc_4_8_2_release)
8386
+++ b/src/gcc/go/gofrontend/types.h (.../branches/gcc-4_8-branch)
8387
@@ -1717,7 +1717,8 @@
8388
Typed_identifier_list* results, Location location)
8389
: Type(TYPE_FUNCTION),
8390
receiver_(receiver), parameters_(parameters), results_(results),
8391
- location_(location), is_varargs_(false), is_builtin_(false)
8392
+ location_(location), is_varargs_(false), is_builtin_(false),
8396
// Get the receiver.
8397
@@ -1798,6 +1799,11 @@
8399
make_function_type_descriptor_type();
8401
+ // Return the backend representation of this function type. This is used
8402
+ // as the real type of a backend function declaration or defintion.
8404
+ get_backend_fntype(Gogo*);
8408
do_traverse(Traverse*);
8409
@@ -1851,6 +1857,9 @@
8410
// Whether this is a special builtin function which can not simply
8411
// be called. This is used for len, cap, etc.
8413
+ // The backend representation of this type for backend function
8414
+ // declarations and definitions.
8418
// The type of a pointer.
8419
@@ -1915,7 +1924,7 @@
8422
explicit Struct_field(const Typed_identifier& typed_identifier)
8423
- : typed_identifier_(typed_identifier), tag_(NULL)
8424
+ : typed_identifier_(typed_identifier), tag_(NULL), is_imported_(false)
8428
@@ -1926,6 +1935,10 @@
8430
is_field_name(const std::string& name) const;
8432
+ // Return whether this struct field is an unexported field named NAME.
8434
+ is_unexported_field_name(Gogo*, const std::string& name) const;
8436
// Return whether this struct field is an embedded built-in type.
8438
is_embedded_builtin(Gogo*) const;
8439
@@ -1963,6 +1976,11 @@
8440
set_tag(const std::string& tag)
8441
{ this->tag_ = new std::string(tag); }
8443
+ // Record that this field is defined in an imported struct.
8446
+ { this->is_imported_ = true; }
8448
// Set the type. This is only used in error cases.
8450
set_type(Type* type)
8451
@@ -1973,6 +1991,8 @@
8452
Typed_identifier typed_identifier_;
8453
// The field tag. This is NULL if the field has no tag.
8455
+ // Whether this field is defined in an imported struct.
8456
+ bool is_imported_;
8459
// A list of struct fields.
8460
Index: gcc/go/gofrontend/parse.cc
8461
===================================================================
8462
--- a/src/gcc/go/gofrontend/parse.cc (.../tags/gcc_4_8_2_release)
8463
+++ b/src/gcc/go/gofrontend/parse.cc (.../branches/gcc-4_8-branch)
8468
+ if (receiver != NULL)
8469
+ names[receiver->name()] = receiver;
8471
this->check_signature_names(params, &names);
8472
if (results != NULL)
8473
Index: gcc/go/gofrontend/import.h
8474
===================================================================
8475
--- a/src/gcc/go/gofrontend/import.h (.../tags/gcc_4_8_2_release)
8476
+++ b/src/gcc/go/gofrontend/import.h (.../branches/gcc-4_8-branch)
8477
@@ -149,6 +149,11 @@
8479
{ return this->location_; }
8481
+ // Return the package we are importing.
8484
+ { return this->package_; }
8486
// Return the next character.
8489
Index: gcc/go/gofrontend/runtime.cc
8490
===================================================================
8491
--- a/src/gcc/go/gofrontend/runtime.cc (.../tags/gcc_4_8_2_release)
8492
+++ b/src/gcc/go/gofrontend/runtime.cc (.../branches/gcc-4_8-branch)
8495
// Go type float64, C type double.
8497
+ // Go type complex64, C type __complex float.
8499
// Go type complex128, C type __complex double.
8501
// Go type string, C type struct __go_string.
8502
@@ -126,6 +128,10 @@
8503
t = Type::lookup_float_type("float64");
8506
+ case RFT_COMPLEX64:
8507
+ t = Type::lookup_complex_type("complex64");
8510
case RFT_COMPLEX128:
8511
t = Type::lookup_complex_type("complex128");
8517
+ case RFT_COMPLEX64:
8518
case RFT_COMPLEX128:
8521
Index: gcc/go/gofrontend/expressions.h
8522
===================================================================
8523
--- a/src/gcc/go/gofrontend/expressions.h (.../tags/gcc_4_8_2_release)
8524
+++ b/src/gcc/go/gofrontend/expressions.h (.../branches/gcc-4_8-branch)
8525
@@ -1514,8 +1514,8 @@
8527
{ return this->closure_; }
8529
- // Return a tree for the code for a function.
8531
+ // Return a backend expression for the code of a function.
8532
+ static Bexpression*
8533
get_code_pointer(Gogo*, Named_object* function, Location loc);
8536
Index: gcc/go/gofrontend/gogo-tree.cc
8537
===================================================================
8538
--- a/src/gcc/go/gofrontend/gogo-tree.cc (.../tags/gcc_4_8_2_release)
8539
+++ b/src/gcc/go/gofrontend/gogo-tree.cc (.../branches/gcc-4_8-branch)
8540
@@ -985,74 +985,6 @@
8544
-// Get a tree for the identifier for a named object.
8547
-Named_object::get_id(Gogo* gogo)
8549
- go_assert(!this->is_variable() && !this->is_result_variable());
8550
- std::string decl_name;
8551
- if (this->is_function_declaration()
8552
- && !this->func_declaration_value()->asm_name().empty())
8553
- decl_name = this->func_declaration_value()->asm_name();
8554
- else if (this->is_type()
8555
- && Linemap::is_predeclared_location(this->type_value()->location()))
8557
- // We don't need the package name for builtin types.
8558
- decl_name = Gogo::unpack_hidden_name(this->name_);
8562
- std::string package_name;
8563
- if (this->package_ == NULL)
8564
- package_name = gogo->package_name();
8566
- package_name = this->package_->package_name();
8568
- // Note that this will be misleading if this is an unexported
8569
- // method generated for an embedded imported type. In that case
8570
- // the unexported method should have the package name of the
8571
- // package from which it is imported, but we are going to give
8572
- // it our package name. Fixing this would require knowing the
8573
- // package name, but we only know the package path. It might be
8574
- // better to use package paths here anyhow. This doesn't affect
8575
- // the assembler code, because we always set that name in
8576
- // Function::get_or_make_decl anyhow. FIXME.
8578
- decl_name = package_name + '.' + Gogo::unpack_hidden_name(this->name_);
8580
- Function_type* fntype;
8581
- if (this->is_function())
8582
- fntype = this->func_value()->type();
8583
- else if (this->is_function_declaration())
8584
- fntype = this->func_declaration_value()->type();
8587
- if (fntype != NULL && fntype->is_method())
8589
- decl_name.push_back('.');
8590
- decl_name.append(fntype->receiver()->type()->mangled_name(gogo));
8593
- if (this->is_type())
8595
- unsigned int index;
8596
- const Named_object* in_function = this->type_value()->in_function(&index);
8597
- if (in_function != NULL)
8599
- decl_name += '$' + Gogo::unpack_hidden_name(in_function->name());
8603
- snprintf(buf, sizeof buf, "%u", index);
8609
- return get_identifier_from_string(decl_name);
8612
// Get a tree for a named object.
8615
@@ -1067,11 +999,6 @@
8616
return error_mark_node;
8620
- if (this->classification_ == NAMED_OBJECT_TYPE)
8623
- name = this->get_id(gogo);
8625
switch (this->classification_)
8627
@@ -1099,6 +1026,7 @@
8628
decl = error_mark_node;
8629
else if (INTEGRAL_TYPE_P(TREE_TYPE(expr_tree)))
8631
+ tree name = get_identifier_from_string(this->get_id(gogo));
8632
decl = build_decl(named_constant->location().gcc_location(),
8633
CONST_DECL, name, TREE_TYPE(expr_tree));
8634
DECL_INITIAL(decl) = expr_tree;
8635
@@ -1161,7 +1089,7 @@
8636
case NAMED_OBJECT_FUNC:
8638
Function* func = this->u_.func_value;
8639
- decl = func->get_or_make_decl(gogo, this, name);
8640
+ decl = function_to_tree(func->get_or_make_decl(gogo, this));
8641
if (decl != error_mark_node)
8643
if (func->block() != NULL)
8644
@@ -1286,124 +1214,13 @@
8648
-// Get a tree for a function decl.
8649
+// Get the backend representation.
8652
-Function::get_or_make_decl(Gogo* gogo, Named_object* no, tree id)
8654
+Function_declaration::get_or_make_decl(Gogo* gogo, Named_object* no)
8656
- if (this->fndecl_ == NULL_TREE)
8657
+ if (this->fndecl_ == NULL)
8659
- tree functype = type_to_tree(this->type_->get_backend(gogo));
8661
- if (functype != error_mark_node)
8663
- // The type of a function comes back as a pointer to a
8664
- // struct whose first field is the function, but we want the
8665
- // real function type for a function declaration.
8666
- go_assert(POINTER_TYPE_P(functype)
8667
- && TREE_CODE(TREE_TYPE(functype)) == RECORD_TYPE);
8668
- functype = TREE_TYPE(TYPE_FIELDS(TREE_TYPE(functype)));
8669
- go_assert(FUNCTION_POINTER_TYPE_P(functype));
8670
- functype = TREE_TYPE(functype);
8673
- if (functype == error_mark_node)
8674
- this->fndecl_ = error_mark_node;
8677
- tree decl = build_decl(this->location().gcc_location(), FUNCTION_DECL,
8680
- this->fndecl_ = decl;
8682
- if (no->package() != NULL)
8684
- else if (this->enclosing_ != NULL || Gogo::is_thunk(no))
8686
- else if (Gogo::unpack_hidden_name(no->name()) == "init"
8687
- && !this->type_->is_method())
8689
- else if (Gogo::unpack_hidden_name(no->name()) == "main"
8690
- && gogo->is_main_package())
8691
- TREE_PUBLIC(decl) = 1;
8692
- // Methods have to be public even if they are hidden because
8693
- // they can be pulled into type descriptors when using
8694
- // anonymous fields.
8695
- else if (!Gogo::is_hidden_name(no->name())
8696
- || this->type_->is_method())
8698
- TREE_PUBLIC(decl) = 1;
8699
- std::string pkgpath = gogo->pkgpath_symbol();
8700
- if (this->type_->is_method()
8701
- && Gogo::is_hidden_name(no->name())
8702
- && Gogo::hidden_name_pkgpath(no->name()) != gogo->pkgpath())
8704
- // This is a method we created for an unexported
8705
- // method of an imported embedded type. We need to
8706
- // use the pkgpath of the imported package to avoid
8707
- // a possible name collision. See bug478 for a test
8709
- pkgpath = Gogo::hidden_name_pkgpath(no->name());
8710
- pkgpath = Gogo::pkgpath_for_symbol(pkgpath);
8713
- std::string asm_name = pkgpath;
8714
- asm_name.append(1, '.');
8715
- asm_name.append(Gogo::unpack_hidden_name(no->name()));
8716
- if (this->type_->is_method())
8718
- asm_name.append(1, '.');
8719
- Type* rtype = this->type_->receiver()->type();
8720
- asm_name.append(rtype->mangled_name(gogo));
8722
- SET_DECL_ASSEMBLER_NAME(decl,
8723
- get_identifier_from_string(asm_name));
8726
- // Why do we have to do this in the frontend?
8727
- tree restype = TREE_TYPE(functype);
8729
- build_decl(this->location().gcc_location(), RESULT_DECL, NULL_TREE,
8731
- DECL_ARTIFICIAL(resdecl) = 1;
8732
- DECL_IGNORED_P(resdecl) = 1;
8733
- DECL_CONTEXT(resdecl) = decl;
8734
- DECL_RESULT(decl) = resdecl;
8736
- // If a function calls the predeclared recover function, we
8737
- // can't inline it, because recover behaves differently in a
8738
- // function passed directly to defer. If this is a recover
8739
- // thunk that we built to test whether a function can be
8740
- // recovered, we can't inline it, because that will mess up
8741
- // our return address comparison.
8742
- if (this->calls_recover_ || this->is_recover_thunk_)
8743
- DECL_UNINLINABLE(decl) = 1;
8745
- // If this is a thunk created to call a function which calls
8746
- // the predeclared recover function, we need to disable
8747
- // stack splitting for the thunk.
8748
- if (this->is_recover_thunk_)
8750
- tree attr = get_identifier("__no_split_stack__");
8751
- DECL_ATTRIBUTES(decl) = tree_cons(attr, NULL_TREE, NULL_TREE);
8754
- if (this->in_unique_section_)
8755
- resolve_unique_section (decl, 0, 1);
8757
- go_preserve_from_gc(decl);
8760
- return this->fndecl_;
8763
-// Get a tree for a function declaration.
8766
-Function_declaration::get_or_make_decl(Gogo* gogo, Named_object* no, tree id)
8768
- if (this->fndecl_ == NULL_TREE)
8770
// Let Go code use an asm declaration to pick up a builtin
8772
if (!this->asm_name_.empty())
8773
@@ -1412,58 +1229,46 @@
8774
builtin_functions.find(this->asm_name_);
8775
if (p != builtin_functions.end())
8777
- this->fndecl_ = p->second;
8778
+ this->fndecl_ = tree_to_function(p->second);
8779
return this->fndecl_;
8783
- tree functype = type_to_tree(this->fntype_->get_backend(gogo));
8784
+ std::string asm_name;
8785
+ if (this->asm_name_.empty())
8787
+ asm_name = (no->package() == NULL
8788
+ ? gogo->pkgpath_symbol()
8789
+ : no->package()->pkgpath_symbol());
8790
+ asm_name.append(1, '.');
8791
+ asm_name.append(Gogo::unpack_hidden_name(no->name()));
8792
+ if (this->fntype_->is_method())
8794
+ asm_name.append(1, '.');
8795
+ Type* rtype = this->fntype_->receiver()->type();
8796
+ asm_name.append(rtype->mangled_name(gogo));
8800
- if (functype != error_mark_node)
8802
- // The type of a function comes back as a pointer to a
8803
- // struct whose first field is the function, but we want the
8804
- // real function type for a function declaration.
8805
- go_assert(POINTER_TYPE_P(functype)
8806
- && TREE_CODE(TREE_TYPE(functype)) == RECORD_TYPE);
8807
- functype = TREE_TYPE(TYPE_FIELDS(TREE_TYPE(functype)));
8808
- go_assert(FUNCTION_POINTER_TYPE_P(functype));
8809
- functype = TREE_TYPE(functype);
8811
+ Btype* functype = this->fntype_->get_backend_fntype(gogo);
8813
+ gogo->backend()->function(functype, no->get_id(gogo), asm_name,
8814
+ true, true, true, false, false,
8815
+ this->location());
8819
- if (functype == error_mark_node)
8820
- decl = error_mark_node;
8823
- decl = build_decl(this->location().gcc_location(), FUNCTION_DECL, id,
8825
- TREE_PUBLIC(decl) = 1;
8826
- DECL_EXTERNAL(decl) = 1;
8828
- if (this->asm_name_.empty())
8830
- std::string asm_name = (no->package() == NULL
8831
- ? gogo->pkgpath_symbol()
8832
- : no->package()->pkgpath_symbol());
8833
- asm_name.append(1, '.');
8834
- asm_name.append(Gogo::unpack_hidden_name(no->name()));
8835
- if (this->fntype_->is_method())
8837
- asm_name.append(1, '.');
8838
- Type* rtype = this->fntype_->receiver()->type();
8839
- asm_name.append(rtype->mangled_name(gogo));
8841
- SET_DECL_ASSEMBLER_NAME(decl,
8842
- get_identifier_from_string(asm_name));
8845
- this->fndecl_ = decl;
8846
- go_preserve_from_gc(decl);
8848
return this->fndecl_;
8851
+// Return the function's decl after it has been built.
8854
+Function::get_decl() const
8856
+ go_assert(this->fndecl_ != NULL);
8857
+ return function_to_tree(this->fndecl_);
8860
// We always pass the receiver to a method as a pointer. If the
8861
// receiver is actually declared as a non-pointer type, then we copy
8862
// the value into a local variable, so that it has the right type. In
8863
@@ -1558,7 +1363,7 @@
8865
Function::build_tree(Gogo* gogo, Named_object* named_function)
8867
- tree fndecl = this->fndecl_;
8868
+ tree fndecl = this->get_decl();
8869
go_assert(fndecl != NULL_TREE);
8871
tree params = NULL_TREE;
8872
@@ -1796,7 +1601,7 @@
8875
set = fold_build2_loc(end_loc.gcc_location(), MODIFY_EXPR, void_type_node,
8876
- DECL_RESULT(this->fndecl_), retval);
8877
+ DECL_RESULT(this->get_decl()), retval);
8878
tree ret_stmt = fold_build1_loc(end_loc.gcc_location(), RETURN_EXPR,
8879
void_type_node, set);
8880
append_to_statement_list(ret_stmt, &stmt_list);
8881
@@ -1851,7 +1656,7 @@
8882
retval = this->return_value(gogo, named_function, end_loc,
8884
set = fold_build2_loc(end_loc.gcc_location(), MODIFY_EXPR, void_type_node,
8885
- DECL_RESULT(this->fndecl_), retval);
8886
+ DECL_RESULT(this->get_decl()), retval);
8887
ret_stmt = fold_build1_loc(end_loc.gcc_location(), RETURN_EXPR,
8888
void_type_node, set);
8890
@@ -1869,7 +1674,7 @@
8894
-// Return the value to assign to DECL_RESULT(this->fndecl_). This may
8895
+// Return the value to assign to DECL_RESULT(this->get_decl()). This may
8896
// also add statements to STMT_LIST, which need to be executed before
8897
// the assignment. This is used for a return statement with no
8899
@@ -1902,7 +1707,7 @@
8903
- tree rettype = TREE_TYPE(DECL_RESULT(this->fndecl_));
8904
+ tree rettype = TREE_TYPE(DECL_RESULT(this->get_decl()));
8905
retval = create_tmp_var(rettype, "RESULT");
8906
tree field = TYPE_FIELDS(rettype);
8908
@@ -2323,18 +2128,14 @@
8909
go_assert(m != NULL);
8911
Named_object* no = m->named_object();
8913
- tree fnid = no->get_id(this);
8917
if (no->is_function())
8918
- fndecl = no->func_value()->get_or_make_decl(this, no, fnid);
8919
+ bf = no->func_value()->get_or_make_decl(this, no);
8920
else if (no->is_function_declaration())
8921
- fndecl = no->func_declaration_value()->get_or_make_decl(this, no,
8923
+ bf = no->func_declaration_value()->get_or_make_decl(this, no);
8926
- fndecl = build_fold_addr_expr(fndecl);
8927
+ tree fndecl = build_fold_addr_expr(function_to_tree(bf));
8929
elt = pointers->quick_push(empty);
8930
elt->index = size_int(i);
8931
@@ -2353,10 +2154,11 @@
8932
TREE_CONSTANT(decl) = 1;
8933
DECL_INITIAL(decl) = constructor;
8935
- // If the interface type has hidden methods, then this is the only
8936
- // definition of the table. Otherwise it is a comdat table which
8937
- // may be defined in multiple packages.
8938
- if (has_hidden_methods)
8939
+ // If the interface type has hidden methods, and the table is for a
8940
+ // named type, then this is the only definition of the table.
8941
+ // Otherwise it is a comdat table which may be defined in multiple
8943
+ if (has_hidden_methods && type->named_type() != NULL)
8944
TREE_PUBLIC(decl) = 1;
8947
Index: gcc/go/gofrontend/lex.cc
8948
===================================================================
8949
--- a/src/gcc/go/gofrontend/lex.cc (.../tags/gcc_4_8_2_release)
8950
+++ b/src/gcc/go/gofrontend/lex.cc (.../branches/gcc-4_8-branch)
8951
@@ -873,7 +873,28 @@
8952
&& (cc < 'a' || cc > 'z')
8954
&& (cc < '0' || cc > '9'))
8957
+ // Check for an invalid character here, as we get better
8958
+ // error behaviour if we swallow them as part of the
8959
+ // identifier we are building.
8960
+ if ((cc >= ' ' && cc < 0x7f)
8966
+ this->lineoff_ = p - this->linebuf_;
8967
+ error_at(this->location(),
8968
+ "invalid character 0x%x in identifier",
8970
+ if (!has_non_ascii_char)
8972
+ buf.assign(pstart, p - pstart);
8973
+ has_non_ascii_char = true;
8975
+ if (!Lex::is_invalid_identifier(buf))
8976
+ buf.append("$INVALID$");
8981
Index: gcc/go/gofrontend/backend.h
8982
===================================================================
8983
--- a/src/gcc/go/gofrontend/backend.h (.../tags/gcc_4_8_2_release)
8984
+++ b/src/gcc/go/gofrontend/backend.h (.../branches/gcc-4_8-branch)
8986
// The backend representation of a statement.
8989
-// The backend representation of a function definition.
8990
+// The backend representation of a function definition or declaration.
8993
// The backend representation of a block.
8994
@@ -266,6 +266,11 @@
8995
virtual Bexpression*
8996
convert_expression(Btype* type, Bexpression* expr, Location) = 0;
8998
+ // Create an expression for the address of a function. This is used to
8999
+ // get the address of the code for a function.
9000
+ virtual Bexpression*
9001
+ function_code_expression(Bfunction*, Location) = 0;
9005
// Create an error statement. This is used for cases which should
9006
@@ -498,6 +503,32 @@
9008
virtual Bexpression*
9009
label_address(Blabel*, Location) = 0;
9013
+ // Create an error function. This is used for cases which should
9014
+ // not occur in a correct program, in order to keep the compilation
9015
+ // going without crashing.
9016
+ virtual Bfunction*
9017
+ error_function() = 0;
9019
+ // Declare or define a function of FNTYPE.
9020
+ // NAME is the Go name of the function. ASM_NAME, if not the empty string, is
9021
+ // the name that should be used in the symbol table; this will be non-empty if
9022
+ // a magic extern comment is used.
9023
+ // IS_VISIBLE is true if this function should be visible outside of the
9024
+ // current compilation unit. IS_DECLARATION is true if this is a function
9025
+ // declaration rather than a definition; the function definition will be in
9026
+ // another compilation unit.
9027
+ // IS_INLINABLE is true if the function can be inlined.
9028
+ // DISABLE_SPLIT_STACK is true if this function may not split the stack; this
9029
+ // is used for the implementation of recover.
9030
+ // IN_UNIQUE_SECTION is true if this function should be put into a unique
9031
+ // location if possible; this is used for field tracking.
9032
+ virtual Bfunction*
9033
+ function(Btype* fntype, const std::string& name, const std::string& asm_name,
9034
+ bool is_visible, bool is_declaration, bool is_inlinable,
9035
+ bool disable_split_stack, bool in_unique_section, Location) = 0;
9038
// The backend interface has to define this function.
9040
extern tree stat_to_tree(Bstatement*);
9041
extern tree block_to_tree(Bblock*);
9042
extern tree var_to_tree(Bvariable*);
9043
+extern tree function_to_tree(Bfunction*);
9045
#endif // !defined(GO_BACKEND_H)
9046
Index: gcc/go/gofrontend/types.cc
9047
===================================================================
9048
--- a/src/gcc/go/gofrontend/types.cc (.../tags/gcc_4_8_2_release)
9049
+++ b/src/gcc/go/gofrontend/types.cc (.../branches/gcc-4_8-branch)
9050
@@ -3383,6 +3383,68 @@
9051
// Get the backend representation for a function type.
9054
+Function_type::get_backend_fntype(Gogo* gogo)
9056
+ if (this->fnbtype_ == NULL)
9058
+ Backend::Btyped_identifier breceiver;
9059
+ if (this->receiver_ != NULL)
9061
+ breceiver.name = Gogo::unpack_hidden_name(this->receiver_->name());
9063
+ // We always pass the address of the receiver parameter, in
9064
+ // order to make interface calls work with unknown types.
9065
+ Type* rtype = this->receiver_->type();
9066
+ if (rtype->points_to() == NULL)
9067
+ rtype = Type::make_pointer_type(rtype);
9068
+ breceiver.btype = rtype->get_backend(gogo);
9069
+ breceiver.location = this->receiver_->location();
9072
+ std::vector<Backend::Btyped_identifier> bparameters;
9073
+ if (this->parameters_ != NULL)
9075
+ bparameters.resize(this->parameters_->size());
9077
+ for (Typed_identifier_list::const_iterator p =
9078
+ this->parameters_->begin(); p != this->parameters_->end();
9081
+ bparameters[i].name = Gogo::unpack_hidden_name(p->name());
9082
+ bparameters[i].btype = p->type()->get_backend(gogo);
9083
+ bparameters[i].location = p->location();
9085
+ go_assert(i == bparameters.size());
9088
+ std::vector<Backend::Btyped_identifier> bresults;
9089
+ if (this->results_ != NULL)
9091
+ bresults.resize(this->results_->size());
9093
+ for (Typed_identifier_list::const_iterator p =
9094
+ this->results_->begin(); p != this->results_->end();
9097
+ bresults[i].name = Gogo::unpack_hidden_name(p->name());
9098
+ bresults[i].btype = p->type()->get_backend(gogo);
9099
+ bresults[i].location = p->location();
9101
+ go_assert(i == bresults.size());
9104
+ this->fnbtype_ = gogo->backend()->function_type(breceiver, bparameters,
9106
+ this->location());
9110
+ return this->fnbtype_;
9113
+// Get the backend representation for a Go function type.
9116
Function_type::do_get_backend(Gogo* gogo)
9118
// When we do anything with a function value other than call it, it
9119
@@ -3395,57 +3457,9 @@
9120
gogo->backend()->placeholder_struct_type("__go_descriptor", loc);
9121
Btype* ptr_struct_type = gogo->backend()->pointer_type(struct_type);
9123
- Backend::Btyped_identifier breceiver;
9124
- if (this->receiver_ != NULL)
9126
- breceiver.name = Gogo::unpack_hidden_name(this->receiver_->name());
9128
- // We always pass the address of the receiver parameter, in
9129
- // order to make interface calls work with unknown types.
9130
- Type* rtype = this->receiver_->type();
9131
- if (rtype->points_to() == NULL)
9132
- rtype = Type::make_pointer_type(rtype);
9133
- breceiver.btype = rtype->get_backend(gogo);
9134
- breceiver.location = this->receiver_->location();
9137
- std::vector<Backend::Btyped_identifier> bparameters;
9138
- if (this->parameters_ != NULL)
9140
- bparameters.resize(this->parameters_->size());
9142
- for (Typed_identifier_list::const_iterator p = this->parameters_->begin();
9143
- p != this->parameters_->end();
9146
- bparameters[i].name = Gogo::unpack_hidden_name(p->name());
9147
- bparameters[i].btype = p->type()->get_backend(gogo);
9148
- bparameters[i].location = p->location();
9150
- go_assert(i == bparameters.size());
9153
- std::vector<Backend::Btyped_identifier> bresults;
9154
- if (this->results_ != NULL)
9156
- bresults.resize(this->results_->size());
9158
- for (Typed_identifier_list::const_iterator p = this->results_->begin();
9159
- p != this->results_->end();
9162
- bresults[i].name = Gogo::unpack_hidden_name(p->name());
9163
- bresults[i].btype = p->type()->get_backend(gogo);
9164
- bresults[i].location = p->location();
9166
- go_assert(i == bresults.size());
9169
- Btype* fntype = gogo->backend()->function_type(breceiver, bparameters,
9171
std::vector<Backend::Btyped_identifier> fields(1);
9172
fields[0].name = "code";
9173
- fields[0].btype = fntype;
9174
+ fields[0].btype = this->get_backend_fntype(gogo);
9175
fields[0].location = loc;
9176
if (!gogo->backend()->set_placeholder_struct_type(struct_type, fields))
9177
return gogo->backend()->error_type();
9178
@@ -4195,7 +4209,8 @@
9180
// This is a horrible hack caused by the fact that we don't pack
9181
// the names of builtin types. FIXME.
9183
+ if (!this->is_imported_
9186
&& nt->name() == Gogo::unpack_hidden_name(name))
9188
@@ -4204,6 +4219,36 @@
9192
+// Return whether this field is an unexported field named NAME.
9195
+Struct_field::is_unexported_field_name(Gogo* gogo,
9196
+ const std::string& name) const
9198
+ const std::string& field_name(this->field_name());
9199
+ if (Gogo::is_hidden_name(field_name)
9200
+ && name == Gogo::unpack_hidden_name(field_name)
9201
+ && gogo->pack_hidden_name(name, false) != field_name)
9204
+ // Check for the name of a builtin type. This is like the test in
9205
+ // is_field_name, only there we return false if this->is_imported_,
9206
+ // and here we return true.
9207
+ if (this->is_imported_ && this->is_anonymous())
9209
+ Type* t = this->typed_identifier_.type();
9210
+ if (t->points_to() != NULL)
9211
+ t = t->points_to();
9212
+ Named_type* nt = t->named_type();
9214
+ && nt->is_builtin()
9215
+ && nt->name() == Gogo::unpack_hidden_name(name))
9222
// Return whether this field is an embedded built-in type.
9225
@@ -4264,13 +4309,8 @@
9228
Type* t = p->type();
9229
- if (t->is_undefined())
9230
+ if (p->is_anonymous())
9232
- error_at(p->location(), "struct field type is incomplete");
9233
- p->set_type(Type::make_error_type());
9235
- else if (p->is_anonymous())
9237
if (t->named_type() != NULL && t->points_to() != NULL)
9239
error_at(p->location(), "embedded type may not be a pointer");
9240
@@ -4641,13 +4681,8 @@
9241
for (Struct_field_list::const_iterator pf = fields->begin();
9242
pf != fields->end();
9245
- const std::string& field_name(pf->field_name());
9246
- if (Gogo::is_hidden_name(field_name)
9247
- && name == Gogo::unpack_hidden_name(field_name)
9248
- && gogo->pack_hidden_name(name, false) != field_name)
9251
+ if (pf->is_unexported_field_name(gogo, name))
9256
@@ -5250,6 +5285,7 @@
9257
Type* ftype = imp->read_type();
9259
Struct_field sf(Typed_identifier(name, ftype, imp->location()));
9260
+ sf.set_is_imported();
9262
if (imp->peek_char() == ' ')
9264
@@ -9022,6 +9058,8 @@
9265
fntype->is_varargs(), location);
9266
gogo->finish_function(fntype->location());
9268
+ if (type->named_type() == NULL && stub->is_function())
9269
+ stub->func_value()->set_is_unnamed_type_stub_method();
9270
if (m->nointerface() && stub->is_function())
9271
stub->func_value()->set_nointerface();
9273
@@ -9289,7 +9327,9 @@
9277
- if (!Gogo::is_hidden_name(name))
9278
+ // The test for 'a' and 'z' is to handle builtin names,
9279
+ // which are not hidden.
9280
+ if (!Gogo::is_hidden_name(name) && (name[0] < 'a' || name[0] > 'z'))
9281
is_unexported = false;
9284
Index: gcc/go/gofrontend/expressions.cc
9285
===================================================================
9286
--- a/src/gcc/go/gofrontend/expressions.cc (.../tags/gcc_4_8_2_release)
9287
+++ b/src/gcc/go/gofrontend/expressions.cc (.../branches/gcc-4_8-branch)
9288
@@ -1219,7 +1219,7 @@
9290
// Get the tree for the code of a function expression.
9294
Func_expression::get_code_pointer(Gogo* gogo, Named_object* no, Location loc)
9296
Function_type* fntype;
9297
@@ -1237,25 +1237,18 @@
9299
"invalid use of special builtin function %qs; must be called",
9300
no->message_name().c_str());
9301
- return error_mark_node;
9302
+ return gogo->backend()->error_expression();
9305
- tree id = no->get_id(gogo);
9306
- if (id == error_mark_node)
9307
- return error_mark_node;
9310
+ Bfunction* fndecl;
9311
if (no->is_function())
9312
- fndecl = no->func_value()->get_or_make_decl(gogo, no, id);
9313
+ fndecl = no->func_value()->get_or_make_decl(gogo, no);
9314
else if (no->is_function_declaration())
9315
- fndecl = no->func_declaration_value()->get_or_make_decl(gogo, no, id);
9316
+ fndecl = no->func_declaration_value()->get_or_make_decl(gogo, no);
9320
- if (fndecl == error_mark_node)
9321
- return error_mark_node;
9323
- return build_fold_addr_expr_loc(loc.gcc_location(), fndecl);
9324
+ return gogo->backend()->function_code_expression(fndecl, loc);
9327
// Get the tree for a function expression. This is used when we take
9328
@@ -1492,8 +1485,10 @@
9330
Func_code_reference_expression::do_get_tree(Translate_context* context)
9332
- return Func_expression::get_code_pointer(context->gogo(), this->function_,
9333
- this->location());
9334
+ Bexpression* ret =
9335
+ Func_expression::get_code_pointer(context->gogo(), this->function_,
9336
+ this->location());
9337
+ return expr_to_tree(ret);
9340
// Make a reference to the code of a function.
9341
@@ -3055,8 +3050,7 @@
9342
do_lower(Gogo*, Named_object*, Statement_inserter*, int);
9345
- do_is_constant() const
9346
- { return this->expr_->is_constant(); }
9347
+ do_is_constant() const;
9350
do_numeric_constant_value(Numeric_constant*) const;
9351
@@ -3198,6 +3192,27 @@
9355
+// Return whether a type conversion is a constant.
9358
+Type_conversion_expression::do_is_constant() const
9360
+ if (!this->expr_->is_constant())
9363
+ // A conversion to a type that may not be used as a constant is not
9364
+ // a constant. For example, []byte(nil).
9365
+ Type* type = this->type_;
9366
+ if (type->integer_type() == NULL
9367
+ && type->float_type() == NULL
9368
+ && type->complex_type() == NULL
9369
+ && !type->is_boolean_type()
9370
+ && !type->is_string_type())
9376
// Return the constant numeric value if there is one.
9379
@@ -5586,6 +5601,15 @@
9380
subcontext.type = NULL;
9383
+ if (this->op_ == OPERATOR_ANDAND || this->op_ == OPERATOR_OROR)
9385
+ // For a logical operation, the context does not determine the
9386
+ // types of the operands. The operands must be some boolean
9387
+ // type but if the context has a boolean type they do not
9388
+ // inherit it. See http://golang.org/issue/3924.
9389
+ subcontext.type = NULL;
9392
// Set the context for the left hand operand.
9395
@@ -5967,6 +5991,43 @@
9399
+ // For complex division Go wants slightly different results than the
9400
+ // GCC library provides, so we have our own runtime routine.
9401
+ if (this->op_ == OPERATOR_DIV && this->left_->type()->complex_type() != NULL)
9406
+ static tree complex64_div_decl;
9407
+ static tree complex128_div_decl;
9408
+ switch (this->left_->type()->complex_type()->bits())
9411
+ name = "__go_complex64_div";
9412
+ pdecl = &complex64_div_decl;
9413
+ ctype = Type::lookup_complex_type("complex64");
9416
+ name = "__go_complex128_div";
9417
+ pdecl = &complex128_div_decl;
9418
+ ctype = Type::lookup_complex_type("complex128");
9423
+ Btype* cbtype = ctype->get_backend(gogo);
9424
+ tree ctype_tree = type_to_tree(cbtype);
9425
+ return Gogo::call_builtin(pdecl,
9431
+ fold_convert_loc(gccloc, ctype_tree, left),
9433
+ fold_convert_loc(gccloc, ctype_tree, right));
9436
tree compute_type = excess_precision_type(type);
9437
if (compute_type != NULL_TREE)
9439
@@ -7191,6 +7252,15 @@
9440
if (this->code_ == BUILTIN_OFFSETOF)
9442
Expression* arg = this->one_arg();
9444
+ if (arg->bound_method_expression() != NULL
9445
+ || arg->interface_field_reference_expression() != NULL)
9447
+ this->report_error(_("invalid use of method value as argument "
9452
Field_reference_expression* farg = arg->field_reference_expression();
9453
while (farg != NULL)
9455
@@ -7200,7 +7270,8 @@
9456
// it must not be reached through pointer indirections.
9457
if (farg->expr()->deref() != farg->expr())
9459
- this->report_error(_("argument of Offsetof implies indirection of an embedded field"));
9460
+ this->report_error(_("argument of Offsetof implies "
9461
+ "indirection of an embedded field"));
9464
// Go up until we reach the original base.
9465
@@ -7476,7 +7547,7 @@
9466
switch (nc.to_unsigned_long(&v))
9468
case Numeric_constant::NC_UL_VALID:
9471
case Numeric_constant::NC_UL_NOTINT:
9472
error_at(e->location(), "non-integer %s argument to make",
9473
is_length ? "len" : "cap");
9474
@@ -7488,8 +7559,23 @@
9475
case Numeric_constant::NC_UL_BIG:
9476
// We don't want to give a compile-time error for a 64-bit
9477
// value on a 32-bit target.
9483
+ if (!nc.to_int(&val))
9485
+ int bits = mpz_sizeinbase(val, 2);
9487
+ Type* int_type = Type::lookup_integer_type("int");
9488
+ if (bits >= int_type->integer_type()->bits())
9490
+ error_at(e->location(), "%s argument too large for make",
9491
+ is_length ? "len" : "cap");
9498
if (e->type()->integer_type() != NULL)
9499
@@ -7595,6 +7681,8 @@
9501
Builtin_call_expression::do_is_constant() const
9503
+ if (this->is_error_expression())
9505
switch (this->code_)
9508
@@ -9744,15 +9832,9 @@
9511
tree fntype_tree = type_to_tree(fntype->get_backend(gogo));
9512
- if (fntype_tree == error_mark_node)
9513
+ tree fnfield_type = type_to_tree(fntype->get_backend_fntype(gogo));
9514
+ if (fntype_tree == error_mark_node || fnfield_type == error_mark_node)
9515
return error_mark_node;
9516
- go_assert(POINTER_TYPE_P(fntype_tree));
9517
- if (TREE_TYPE(fntype_tree) == error_mark_node)
9518
- return error_mark_node;
9519
- go_assert(TREE_CODE(TREE_TYPE(fntype_tree)) == RECORD_TYPE);
9520
- tree fnfield_type = TREE_TYPE(TYPE_FIELDS(TREE_TYPE(fntype_tree)));
9521
- if (fnfield_type == error_mark_node)
9522
- return error_mark_node;
9523
go_assert(FUNCTION_POINTER_TYPE_P(fnfield_type));
9524
tree rettype = TREE_TYPE(TREE_TYPE(fnfield_type));
9525
if (rettype == error_mark_node)
9526
@@ -9763,7 +9845,7 @@
9529
Named_object* no = func->named_object();
9530
- fn = Func_expression::get_code_pointer(gogo, no, location);
9531
+ fn = expr_to_tree(Func_expression::get_code_pointer(gogo, no, location));
9533
closure_tree = NULL_TREE;
9535
@@ -10817,11 +10899,20 @@
9537
String_index_expression::do_check_types(Gogo*)
9539
- if (this->start_->type()->integer_type() == NULL)
9540
+ Numeric_constant nc;
9542
+ if (this->start_->type()->integer_type() == NULL
9543
+ && !this->start_->type()->is_error()
9544
+ && (!this->start_->numeric_constant_value(&nc)
9545
+ || nc.to_unsigned_long(&v) == Numeric_constant::NC_UL_NOTINT))
9546
this->report_error(_("index must be integer"));
9547
if (this->end_ != NULL
9548
&& this->end_->type()->integer_type() == NULL
9549
- && !this->end_->is_nil_expression())
9550
+ && !this->end_->type()->is_error()
9551
+ && !this->end_->is_nil_expression()
9552
+ && !this->end_->is_error_expression()
9553
+ && (!this->end_->numeric_constant_value(&nc)
9554
+ || nc.to_unsigned_long(&v) == Numeric_constant::NC_UL_NOTINT))
9555
this->report_error(_("slice end must be integer"));
9559
===================================================================
9560
--- a/src/gcc/recog.c (.../tags/gcc_4_8_2_release)
9561
+++ b/src/gcc/recog.c (.../branches/gcc-4_8-branch)
9562
@@ -3061,6 +3061,9 @@
9566
+/* Regno offset to be used in the register search. */
9567
+static int search_ofs;
9569
/* Try to find a hard register of mode MODE, matching the register class in
9570
CLASS_STR, which is available at the beginning of insn CURRENT_INSN and
9571
remains available until the end of LAST_INSN. LAST_INSN may be NULL_RTX,
9572
@@ -3076,7 +3079,6 @@
9573
peep2_find_free_register (int from, int to, const char *class_str,
9574
enum machine_mode mode, HARD_REG_SET *reg_set)
9576
- static int search_ofs;
9580
@@ -3541,6 +3543,7 @@
9581
/* Initialize the regsets we're going to use. */
9582
for (i = 0; i < MAX_INSNS_PER_PEEP2 + 1; ++i)
9583
peep2_insn_data[i].live_before = BITMAP_ALLOC (®_obstack);
9585
live = BITMAP_ALLOC (®_obstack);
9587
FOR_EACH_BB_REVERSE (bb)
9588
Index: gcc/ada/ChangeLog
9589
===================================================================
9590
--- a/src/gcc/ada/ChangeLog (.../tags/gcc_4_8_2_release)
9591
+++ b/src/gcc/ada/ChangeLog (.../branches/gcc-4_8-branch)
9593
+2013-10-19 Eric Botcazou <ebotcazou@adacore.com>
9595
+ * gcc-interface/utils.c (scale_by_factor_of): New function.
9596
+ (rest_of_record_type_compilation): Use scale_by_factor_of in order to
9597
+ scale the original offset for both rounding cases; in the second case,
9598
+ take into accout the addend to compute the alignment. Tidy up.
9600
+2013-10-19 Eric Botcazou <ebotcazou@adacore.com>
9602
+ * gcc-interface/utils.c (gnat_set_type_context): New function.
9603
+ (gnat_pushdecl): Use it to set the context of the type.
9605
2013-10-16 Release Manager
9607
* GCC 4.8.2 released.
9608
Index: gcc/ada/gcc-interface/utils.c
9609
===================================================================
9610
--- a/src/gcc/ada/gcc-interface/utils.c (.../tags/gcc_4_8_2_release)
9611
+++ b/src/gcc/ada/gcc-interface/utils.c (.../branches/gcc-4_8-branch)
9613
static tree split_plus (tree, tree *);
9614
static tree float_type_for_precision (int, enum machine_mode);
9615
static tree convert_to_fat_pointer (tree, tree);
9616
+static unsigned int scale_by_factor_of (tree, unsigned int);
9617
static bool potential_alignment_gap (tree, tree, tree);
9618
static void process_attributes (tree, struct attrib *);
9620
@@ -532,6 +533,22 @@
9621
free_binding_level = level;
9624
+/* Set the context of TYPE and its parallel types (if any) to CONTEXT. */
9627
+gnat_set_type_context (tree type, tree context)
9629
+ tree decl = TYPE_STUB_DECL (type);
9631
+ TYPE_CONTEXT (type) = context;
9633
+ while (decl && DECL_PARALLEL_TYPE (decl))
9635
+ TYPE_CONTEXT (DECL_PARALLEL_TYPE (decl)) = context;
9636
+ decl = TYPE_STUB_DECL (DECL_PARALLEL_TYPE (decl));
9640
/* Record DECL as belonging to the current lexical scope and use GNAT_NODE
9641
for location information and flag propagation. */
9644
if (TREE_CODE (t) == POINTER_TYPE)
9645
TYPE_NEXT_PTR_TO (t) = tt;
9646
TYPE_NAME (tt) = DECL_NAME (decl);
9647
- TYPE_CONTEXT (tt) = DECL_CONTEXT (decl);
9648
+ gnat_set_type_context (tt, DECL_CONTEXT (decl));
9649
TYPE_STUB_DECL (tt) = TYPE_STUB_DECL (t);
9650
DECL_ORIGINAL_TYPE (decl) = tt;
9653
/* We need a variant for the placeholder machinery to work. */
9654
tree tt = build_variant_type_copy (t);
9655
TYPE_NAME (tt) = decl;
9656
- TYPE_CONTEXT (tt) = DECL_CONTEXT (decl);
9657
+ gnat_set_type_context (tt, DECL_CONTEXT (decl));
9658
TREE_USED (tt) = TREE_USED (t);
9659
TREE_TYPE (decl) = tt;
9660
if (DECL_ORIGINAL_TYPE (TYPE_NAME (t)))
9662
if (!(TYPE_NAME (t) && TREE_CODE (TYPE_NAME (t)) == TYPE_DECL))
9664
TYPE_NAME (t) = decl;
9665
- TYPE_CONTEXT (t) = DECL_CONTEXT (decl);
9666
+ gnat_set_type_context (t, DECL_CONTEXT (decl));
9670
@@ -1692,93 +1709,74 @@
9671
TYPE_SIZE_UNIT (new_record_type)
9672
= size_int (TYPE_ALIGN (record_type) / BITS_PER_UNIT);
9674
- /* Now scan all the fields, replacing each field with a new
9675
- field corresponding to the new encoding. */
9676
+ /* Now scan all the fields, replacing each field with a new field
9677
+ corresponding to the new encoding. */
9678
for (old_field = TYPE_FIELDS (record_type); old_field;
9679
old_field = DECL_CHAIN (old_field))
9681
tree field_type = TREE_TYPE (old_field);
9682
tree field_name = DECL_NAME (old_field);
9684
tree curpos = bit_position (old_field);
9685
+ tree pos, new_field;
9687
unsigned int align = 0;
9690
+ /* We're going to do some pattern matching below so remove as many
9691
+ conversions as possible. */
9692
+ curpos = remove_conversions (curpos, true);
9694
/* See how the position was modified from the last position.
9696
- There are two basic cases we support: a value was added
9697
- to the last position or the last position was rounded to
9698
- a boundary and they something was added. Check for the
9699
- first case first. If not, see if there is any evidence
9700
- of rounding. If so, round the last position and try
9702
+ There are two basic cases we support: a value was added
9703
+ to the last position or the last position was rounded to
9704
+ a boundary and they something was added. Check for the
9705
+ first case first. If not, see if there is any evidence
9706
+ of rounding. If so, round the last position and retry.
9708
- If this is a union, the position can be taken as zero. */
9710
- /* Some computations depend on the shape of the position expression,
9711
- so strip conversions to make sure it's exposed. */
9712
- curpos = remove_conversions (curpos, true);
9714
+ If this is a union, the position can be taken as zero. */
9715
if (TREE_CODE (new_record_type) == UNION_TYPE)
9716
- pos = bitsize_zero_node, align = 0;
9717
+ pos = bitsize_zero_node;
9719
pos = compute_related_constant (curpos, last_pos);
9721
- if (!pos && TREE_CODE (curpos) == MULT_EXPR
9723
+ && TREE_CODE (curpos) == MULT_EXPR
9724
&& host_integerp (TREE_OPERAND (curpos, 1), 1))
9726
tree offset = TREE_OPERAND (curpos, 0);
9727
align = tree_low_cst (TREE_OPERAND (curpos, 1), 1);
9729
- /* An offset which is a bitwise AND with a mask increases the
9730
- alignment according to the number of trailing zeros. */
9731
- offset = remove_conversions (offset, true);
9732
- if (TREE_CODE (offset) == BIT_AND_EXPR
9733
- && TREE_CODE (TREE_OPERAND (offset, 1)) == INTEGER_CST)
9735
- unsigned HOST_WIDE_INT mask
9736
- = TREE_INT_CST_LOW (TREE_OPERAND (offset, 1));
9739
- for (i = 0; i < HOST_BITS_PER_WIDE_INT; i++)
9748
- pos = compute_related_constant (curpos,
9749
- round_up (last_pos, align));
9750
+ align = scale_by_factor_of (offset, align);
9751
+ last_pos = round_up (last_pos, align);
9752
+ pos = compute_related_constant (curpos, last_pos);
9754
- else if (!pos && TREE_CODE (curpos) == PLUS_EXPR
9755
- && TREE_CODE (TREE_OPERAND (curpos, 1)) == INTEGER_CST
9757
+ && TREE_CODE (curpos) == PLUS_EXPR
9758
+ && host_integerp (TREE_OPERAND (curpos, 1), 1)
9759
&& TREE_CODE (TREE_OPERAND (curpos, 0)) == MULT_EXPR
9760
- && host_integerp (TREE_OPERAND
9761
- (TREE_OPERAND (curpos, 0), 1),
9764
+ (TREE_OPERAND (TREE_OPERAND (curpos, 0), 1), 1))
9766
+ tree offset = TREE_OPERAND (TREE_OPERAND (curpos, 0), 0);
9767
+ unsigned HOST_WIDE_INT addend
9768
+ = tree_low_cst (TREE_OPERAND (curpos, 1), 1);
9771
- (TREE_OPERAND (TREE_OPERAND (curpos, 0), 1), 1);
9772
- pos = compute_related_constant (curpos,
9773
- round_up (last_pos, align));
9774
+ = tree_low_cst (TREE_OPERAND (TREE_OPERAND (curpos, 0), 1), 1);
9775
+ align = scale_by_factor_of (offset, align);
9776
+ align = MIN (align, addend & -addend);
9777
+ last_pos = round_up (last_pos, align);
9778
+ pos = compute_related_constant (curpos, last_pos);
9780
- else if (potential_alignment_gap (prev_old_field, old_field,
9782
+ else if (potential_alignment_gap (prev_old_field, old_field, pos))
9784
align = TYPE_ALIGN (field_type);
9785
- pos = compute_related_constant (curpos,
9786
- round_up (last_pos, align));
9787
+ last_pos = round_up (last_pos, align);
9788
+ pos = compute_related_constant (curpos, last_pos);
9791
/* If we can't compute a position, set it to zero.
9793
- ??? We really should abort here, but it's too much work
9794
- to get this correct for all cases. */
9796
+ ??? We really should abort here, but it's too much work
9797
+ to get this correct for all cases. */
9799
pos = bitsize_zero_node;
9801
@@ -2553,6 +2551,32 @@
9805
+/* Return VALUE scaled by the biggest power-of-2 factor of EXPR. */
9807
+static unsigned int
9808
+scale_by_factor_of (tree expr, unsigned int value)
9810
+ expr = remove_conversions (expr, true);
9812
+ /* An expression which is a bitwise AND with a mask has a power-of-2 factor
9813
+ corresponding to the number of trailing zeros of the mask. */
9814
+ if (TREE_CODE (expr) == BIT_AND_EXPR
9815
+ && TREE_CODE (TREE_OPERAND (expr, 1)) == INTEGER_CST)
9817
+ unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (TREE_OPERAND (expr, 1));
9818
+ unsigned int i = 0;
9820
+ while ((mask & 1) == 0 && i < HOST_BITS_PER_WIDE_INT)
9831
/* Given two consecutive field decls PREV_FIELD and CURR_FIELD, return true
9832
unless we can prove these 2 fields are laid out in such a way that no gap
9833
exist between the end of PREV_FIELD and the beginning of CURR_FIELD. OFFSET
9834
Index: gcc/fortran/interface.c
9835
===================================================================
9836
--- a/src/gcc/fortran/interface.c (.../tags/gcc_4_8_2_release)
9837
+++ b/src/gcc/fortran/interface.c (.../branches/gcc-4_8-branch)
9838
@@ -1245,7 +1245,8 @@
9842
- if (r1->ts.u.cl->length)
9843
+ if (s1->ts.u.cl && s1->ts.u.cl->length
9844
+ && s2->ts.u.cl && s2->ts.u.cl->length)
9846
int compval = gfc_dep_compare_expr (r1->ts.u.cl->length,
9847
r2->ts.u.cl->length);
9848
@@ -1367,8 +1368,8 @@
9849
if (s1->attr.function && s2->attr.function)
9851
/* If both are functions, check result characteristics. */
9852
- if (check_result_characteristics (s1, s2, errmsg, err_len)
9854
+ if (check_result_characteristics (s1, s2, errmsg, err_len) == FAILURE
9855
+ || check_result_characteristics (s2, s1, errmsg, err_len) == FAILURE)
9859
Index: gcc/fortran/decl.c
9860
===================================================================
9861
--- a/src/gcc/fortran/decl.c (.../tags/gcc_4_8_2_release)
9862
+++ b/src/gcc/fortran/decl.c (.../branches/gcc-4_8-branch)
9863
@@ -7384,6 +7384,7 @@
9866
/* Check a derived type that is being extended. */
9869
check_extended_derived_type (char *name)
9871
@@ -7395,14 +7396,15 @@
9875
+ extended = gfc_find_dt_in_generic (extended);
9880
- gfc_error ("No such symbol in TYPE definition at %C");
9881
+ gfc_error ("Symbol '%s' at %C has not been previously defined", name);
9885
- extended = gfc_find_dt_in_generic (extended);
9887
if (extended->attr.flavor != FL_DERIVED)
9889
gfc_error ("'%s' in EXTENDS expression at %C is not a "
9890
Index: gcc/fortran/ChangeLog
9891
===================================================================
9892
--- a/src/gcc/fortran/ChangeLog (.../tags/gcc_4_8_2_release)
9893
+++ b/src/gcc/fortran/ChangeLog (.../branches/gcc-4_8-branch)
9895
+2013-11-17 Janus Weil <janus@gcc.gnu.org>
9897
+ Backport from mainline
9898
+ 2013-11-07 Janus Weil <janus@gcc.gnu.org>
9901
+ * primary.c (gfc_expr_attr): Check for result symbol.
9903
+2013-11-16 Janus Weil <janus@gcc.gnu.org>
9905
+ Backport from mainline
9906
+ 2013-09-20 Janus Weil <janus@gcc.gnu.org>
9909
+ * expr.c (gfc_check_pointer_assign): Remove second call to
9910
+ 'gfc_compare_interfaces' with swapped arguments.
9911
+ * interface.c (gfc_compare_interfaces): Symmetrize the call to
9912
+ 'check_result_characteristics' by calling it with swapped arguments.
9914
+2013-11-16 Paul Thomas <pault@gcc.gnu.org>
9917
+ * trans-io.c (transfer_expr): If the backend_decl for a derived
9918
+ type is missing, build it with gfc_typenode_for_spec.
9920
+2013-11-05 Steven G. Kargl <kargl@gcc.gnu.org>
9923
+ * check.c (gfc_check_reshape): ensure that shape is a constant
9926
+2013-11-02 Janus Weil <janus@gcc.gnu.org>
9928
+ Backport from mainline
9929
+ 2013-09-23 Janus Weil <janus@gcc.gnu.org>
9932
+ * decl.c (check_extended_derived_type): Prevent segfault, modify error
9935
2013-10-16 Release Manager
9937
* GCC 4.8.2 released.
9938
Index: gcc/fortran/expr.c
9939
===================================================================
9940
--- a/src/gcc/fortran/expr.c (.../tags/gcc_4_8_2_release)
9941
+++ b/src/gcc/fortran/expr.c (.../branches/gcc-4_8-branch)
9942
@@ -3555,14 +3555,6 @@
9946
- if (!gfc_compare_interfaces (s2, s1, name, 0, 1,
9947
- err, sizeof(err), NULL, NULL))
9949
- gfc_error ("Interface mismatch in procedure pointer assignment "
9950
- "at %L: %s", &rvalue->where, err);
9957
Index: gcc/fortran/trans-io.c
9958
===================================================================
9959
--- a/src/gcc/fortran/trans-io.c (.../tags/gcc_4_8_2_release)
9960
+++ b/src/gcc/fortran/trans-io.c (.../branches/gcc-4_8-branch)
9961
@@ -243,16 +243,16 @@
9963
/* The code to generate the error. */
9964
gfc_start_block (&block);
9967
arg1 = gfc_build_addr_expr (NULL_TREE, var);
9970
arg2 = build_int_cst (integer_type_node, error_code),
9973
asprintf (&message, "%s", _(msgid));
9974
arg3 = gfc_build_addr_expr (pchar_type_node,
9975
gfc_build_localized_cstring_const (message));
9979
tmp = build_call_expr_loc (input_location,
9980
gfor_fndecl_generate_error, 3, arg1, arg2, arg3);
9983
gfc_trans_io_runtime_check (cond, var, LIBERROR_BAD_UNIT,
9984
"Unit number in I/O statement too small",
9988
/* UNIT numbers should be less than the max. */
9989
val = gfc_conv_mpz_to_tree (gfc_integer_kinds[i].huge, 4);
9990
cond = fold_build2_loc (input_location, GT_EXPR, boolean_type_node,
9991
@@ -1000,7 +1000,7 @@
9993
mask |= set_string (&block, &post_block, var, IOPARM_open_convert,
9998
mask |= set_parameter_ref (&block, &post_block, var, IOPARM_open_newunit,
10000
@@ -1234,7 +1234,7 @@
10002
mask |= set_parameter_ref (&block, &post_block, var, IOPARM_inquire_exist,
10006
if (p->unit && !p->iostat)
10008
p->iostat = create_dummy_iostat ();
10009
@@ -1322,7 +1322,7 @@
10011
mask |= set_string (&block, &post_block, var, IOPARM_inquire_pad,
10016
mask |= set_string (&block, &post_block, var, IOPARM_inquire_convert,
10018
@@ -1547,7 +1547,7 @@
10021
tree decl = NULL_TREE;
10027
@@ -2032,7 +2032,7 @@
10028
if (gfc_notification_std (GFC_STD_GNU) != SILENT)
10030
gfc_error_now ("Derived type '%s' at %L has PRIVATE components",
10031
- ts->u.derived->name, code != NULL ? &(code->loc) :
10032
+ ts->u.derived->name, code != NULL ? &(code->loc) :
10033
&gfc_current_locus);
10036
@@ -2041,7 +2041,7 @@
10037
ts->kind = ts->u.derived->ts.kind;
10038
ts->f90_type = ts->u.derived->ts.f90_type;
10045
@@ -2123,7 +2123,7 @@
10046
function = iocall[IOCALL_X_CHARACTER_WIDE];
10048
function = iocall[IOCALL_X_CHARACTER_WIDE_WRITE];
10051
tmp = gfc_build_addr_expr (NULL_TREE, dt_parm);
10052
tmp = build_call_expr_loc (input_location,
10053
function, 4, tmp, addr_expr, arg2, arg3);
10054
@@ -2158,6 +2158,12 @@
10055
expr = build_fold_indirect_ref_loc (input_location,
10058
+ /* Make sure that the derived type has been built. An external
10059
+ function, if only referenced in an io statement requires this
10060
+ check (see PR58771). */
10061
+ if (ts->u.derived->backend_decl == NULL_TREE)
10062
+ tmp = gfc_typenode_for_spec (ts);
10064
for (c = ts->u.derived->components; c; c = c->next)
10066
field = c->backend_decl;
10067
Index: gcc/fortran/check.c
10068
===================================================================
10069
--- a/src/gcc/fortran/check.c (.../tags/gcc_4_8_2_release)
10070
+++ b/src/gcc/fortran/check.c (.../branches/gcc-4_8-branch)
10071
@@ -3208,7 +3208,7 @@
10072
"than %d elements", &shape->where, GFC_MAX_DIMENSIONS);
10075
- else if (shape->expr_type == EXPR_ARRAY)
10076
+ else if (shape->expr_type == EXPR_ARRAY && gfc_is_constant_expr (shape))
10080
Index: gcc/fortran/primary.c
10081
===================================================================
10082
--- a/src/gcc/fortran/primary.c (.../tags/gcc_4_8_2_release)
10083
+++ b/src/gcc/fortran/primary.c (.../branches/gcc-4_8-branch)
10084
@@ -2252,7 +2252,7 @@
10085
case EXPR_FUNCTION:
10086
gfc_clear_attr (&attr);
10088
- if (e->value.function.esym != NULL)
10089
+ if (e->value.function.esym && e->value.function.esym->result)
10091
gfc_symbol *sym = e->value.function.esym->result;
10093
Index: gcc/configure.ac
10094
===================================================================
10095
--- a/src/gcc/configure.ac (.../tags/gcc_4_8_2_release)
10096
+++ b/src/gcc/configure.ac (.../branches/gcc-4_8-branch)
10097
@@ -5193,15 +5193,15 @@
10098
AC_MSG_CHECKING([for exported symbols])
10099
if test "x$export_sym_check" != x; then
10100
echo "int main() {return 0;} int foobar() {return 0;}" > conftest.c
10101
- ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest > /dev/null 2>&1
10102
- if $export_sym_check conftest | grep foobar > /dev/null; then
10103
+ ${CC} ${CFLAGS} ${LDFLAGS} conftest.c -o conftest$ac_exeext > /dev/null 2>&1
10104
+ if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then
10105
: # No need to use a flag
10106
AC_MSG_RESULT([yes])
10108
AC_MSG_RESULT([yes])
10109
AC_MSG_CHECKING([for -rdynamic])
10110
- ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest > /dev/null 2>&1
10111
- if $export_sym_check conftest | grep foobar > /dev/null; then
10112
+ ${CC} ${CFLAGS} ${LDFLAGS} -rdynamic conftest.c -o conftest$ac_exeext > /dev/null 2>&1
10113
+ if $export_sym_check conftest$ac_exeext | grep -q foobar > /dev/null; then
10114
plugin_rdynamic=yes
10115
pluginlibs="-rdynamic"
10118
===================================================================
10119
--- a/src/gcc/alias.c (.../tags/gcc_4_8_2_release)
10120
+++ b/src/gcc/alias.c (.../branches/gcc-4_8-branch)
10121
@@ -2871,17 +2871,14 @@
10122
/* Wipe the reg_seen array clean. */
10123
bitmap_clear (reg_seen);
10125
- /* Mark all hard registers which may contain an address.
10126
- The stack, frame and argument pointers may contain an address.
10127
- An argument register which can hold a Pmode value may contain
10128
- an address even if it is not in BASE_REGS.
10129
+ /* Initialize the alias information for this pass. */
10130
+ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
10131
+ if (static_reg_base_value[i])
10133
+ new_reg_base_value[i] = static_reg_base_value[i];
10134
+ bitmap_set_bit (reg_seen, i);
10137
- The address expression is VOIDmode for an argument and
10138
- Pmode for other registers. */
10140
- memcpy (new_reg_base_value, static_reg_base_value,
10141
- FIRST_PSEUDO_REGISTER * sizeof (rtx));
10143
/* Walk the insns adding values to the new_reg_base_value array. */
10144
for (i = 0; i < rpo_cnt; i++)
10146
Index: gcc/tree-dfa.c
10147
===================================================================
10148
--- a/src/gcc/tree-dfa.c (.../tags/gcc_4_8_2_release)
10149
+++ b/src/gcc/tree-dfa.c (.../branches/gcc-4_8-branch)
10150
@@ -386,7 +386,6 @@
10151
double_int bit_offset = double_int_zero;
10152
HOST_WIDE_INT hbit_offset;
10153
bool seen_variable_array_ref = false;
10156
/* First get the final access size from just the outermost expression. */
10157
if (TREE_CODE (exp) == COMPONENT_REF)
10158
@@ -417,8 +416,6 @@
10159
and find the ultimate containing object. */
10162
- base_type = TREE_TYPE (exp);
10164
switch (TREE_CODE (exp))
10166
case BIT_FIELD_REF:
10167
@@ -543,7 +540,38 @@
10168
case VIEW_CONVERT_EXPR:
10171
+ case TARGET_MEM_REF:
10172
+ /* Via the variable index or index2 we can reach the
10173
+ whole object. Still hand back the decl here. */
10174
+ if (TREE_CODE (TMR_BASE (exp)) == ADDR_EXPR
10175
+ && (TMR_INDEX (exp) || TMR_INDEX2 (exp)))
10177
+ exp = TREE_OPERAND (TMR_BASE (exp), 0);
10178
+ bit_offset = double_int_zero;
10184
+ /* We need to deal with variable arrays ending structures such as
10185
+ struct { int length; int a[1]; } x; x.a[d]
10186
+ struct { struct { int a; int b; } a[1]; } x; x.a[d].a
10187
+ struct { struct { int a[1]; } a[1]; } x; x.a[0][d], x.a[d][0]
10188
+ struct { int len; union { int a[1]; struct X x; } u; } x; x.u.a[d]
10189
+ where we do not know maxsize for variable index accesses to
10190
+ the array. The simplest way to conservatively deal with this
10191
+ is to punt in the case that offset + maxsize reaches the
10192
+ base type boundary. This needs to include possible trailing
10193
+ padding that is there for alignment purposes. */
10194
+ if (seen_variable_array_ref
10196
+ && (!bit_offset.fits_shwi ()
10197
+ || !host_integerp (TYPE_SIZE (TREE_TYPE (exp)), 1)
10198
+ || (bit_offset.to_shwi () + maxsize
10199
+ == (HOST_WIDE_INT) TREE_INT_CST_LOW
10200
+ (TYPE_SIZE (TREE_TYPE (exp))))))
10203
/* Hand back the decl for MEM[&decl, off]. */
10204
if (TREE_CODE (TREE_OPERAND (exp, 0)) == ADDR_EXPR)
10206
@@ -565,45 +593,24 @@
10210
- case TARGET_MEM_REF:
10211
- /* Hand back the decl for MEM[&decl, off]. */
10212
- if (TREE_CODE (TMR_BASE (exp)) == ADDR_EXPR)
10214
- /* Via the variable index or index2 we can reach the
10216
- if (TMR_INDEX (exp) || TMR_INDEX2 (exp))
10218
- exp = TREE_OPERAND (TMR_BASE (exp), 0);
10219
- bit_offset = double_int_zero;
10223
- if (integer_zerop (TMR_OFFSET (exp)))
10224
- exp = TREE_OPERAND (TMR_BASE (exp), 0);
10227
- double_int off = mem_ref_offset (exp);
10228
- off = off.alshift (BITS_PER_UNIT == 8
10229
- ? 3 : exact_log2 (BITS_PER_UNIT),
10230
- HOST_BITS_PER_DOUBLE_INT);
10231
- off += bit_offset;
10232
- if (off.fits_shwi ())
10234
- bit_offset = off;
10235
- exp = TREE_OPERAND (TMR_BASE (exp), 0);
10245
exp = TREE_OPERAND (exp, 0);
10248
+ /* We need to deal with variable arrays ending structures. */
10249
+ if (seen_variable_array_ref
10251
+ && (!bit_offset.fits_shwi ()
10252
+ || !host_integerp (TYPE_SIZE (TREE_TYPE (exp)), 1)
10253
+ || (bit_offset.to_shwi () + maxsize
10254
+ == (HOST_WIDE_INT)
10255
+ TREE_INT_CST_LOW (TYPE_SIZE (TREE_TYPE (exp))))))
10260
if (!bit_offset.fits_shwi ())
10263
@@ -615,24 +622,6 @@
10265
hbit_offset = bit_offset.to_shwi ();
10267
- /* We need to deal with variable arrays ending structures such as
10268
- struct { int length; int a[1]; } x; x.a[d]
10269
- struct { struct { int a; int b; } a[1]; } x; x.a[d].a
10270
- struct { struct { int a[1]; } a[1]; } x; x.a[0][d], x.a[d][0]
10271
- struct { int len; union { int a[1]; struct X x; } u; } x; x.u.a[d]
10272
- where we do not know maxsize for variable index accesses to
10273
- the array. The simplest way to conservatively deal with this
10274
- is to punt in the case that offset + maxsize reaches the
10275
- base type boundary. This needs to include possible trailing padding
10276
- that is there for alignment purposes. */
10278
- if (seen_variable_array_ref
10280
- && (!host_integerp (TYPE_SIZE (base_type), 1)
10281
- || (hbit_offset + maxsize
10282
- == (signed) TREE_INT_CST_LOW (TYPE_SIZE (base_type)))))
10285
/* In case of a decl or constant base object we can do better. */
10288
Index: gcc/gimple-fold.c
10289
===================================================================
10290
--- a/src/gcc/gimple-fold.c (.../tags/gcc_4_8_2_release)
10291
+++ b/src/gcc/gimple-fold.c (.../branches/gcc-4_8-branch)
10292
@@ -178,7 +178,7 @@
10293
/* Make sure we create a cgraph node for functions we'll reference.
10294
They can be non-existent if the reference comes from an entry
10295
of an external vtable for example. */
10296
- cgraph_get_create_node (base);
10297
+ cgraph_get_create_real_symbol_node (base);
10299
/* Fixup types in global initializers. */
10300
if (TREE_TYPE (TREE_TYPE (cval)) != TREE_TYPE (TREE_OPERAND (cval, 0)))
10301
Index: gcc/cfgexpand.c
10302
===================================================================
10303
--- a/src/gcc/cfgexpand.c (.../tags/gcc_4_8_2_release)
10304
+++ b/src/gcc/cfgexpand.c (.../branches/gcc-4_8-branch)
10305
@@ -4707,14 +4707,18 @@
10308
rebuild_jump_labels_chain (e->insns.r);
10309
- /* Avoid putting insns before parm_birth_insn. */
10310
+ /* Put insns after parm birth, but before
10311
+ NOTE_INSNS_FUNCTION_BEG. */
10312
if (e->src == ENTRY_BLOCK_PTR
10313
- && single_succ_p (ENTRY_BLOCK_PTR)
10314
- && parm_birth_insn)
10315
+ && single_succ_p (ENTRY_BLOCK_PTR))
10317
rtx insns = e->insns.r;
10318
e->insns.r = NULL_RTX;
10319
- emit_insn_after_noloc (insns, parm_birth_insn, e->dest);
10320
+ if (NOTE_P (parm_birth_insn)
10321
+ && NOTE_KIND (parm_birth_insn) == NOTE_INSN_FUNCTION_BEG)
10322
+ emit_insn_before_noloc (insns, parm_birth_insn, e->dest);
10324
+ emit_insn_after_noloc (insns, parm_birth_insn, e->dest);
10327
commit_one_edge_insertion (e);
10328
Index: gcc/tree-ssa-pre.c
10329
===================================================================
10330
--- a/src/gcc/tree-ssa-pre.c (.../tags/gcc_4_8_2_release)
10331
+++ b/src/gcc/tree-ssa-pre.c (.../branches/gcc-4_8-branch)
10332
@@ -3664,6 +3664,12 @@
10333
if (dump_file && dump_flags & TDF_DETAILS)
10334
fprintf (dump_file, "Starting insert iteration %d\n", num_iterations);
10335
new_stuff = insert_aux (ENTRY_BLOCK_PTR);
10337
+ /* Clear the NEW sets before the next iteration. We have already
10338
+ fully propagated its contents. */
10341
+ bitmap_set_free (NEW_SETS (bb));
10343
statistics_histogram_event (cfun, "insert iterations", num_iterations);
10345
Index: gcc/tree-predcom.c
10346
===================================================================
10347
--- a/src/gcc/tree-predcom.c (.../tags/gcc_4_8_2_release)
10348
+++ b/src/gcc/tree-predcom.c (.../branches/gcc-4_8-branch)
10349
@@ -1323,90 +1323,43 @@
10350
gsi_insert_after (&bsi, new_stmt, GSI_NEW_STMT);
10353
-/* Returns the reference to the address of REF in the ITER-th iteration of
10354
- LOOP, or NULL if we fail to determine it (ITER may be negative). We
10355
- try to preserve the original shape of the reference (not rewrite it
10356
- as an indirect ref to the address), to make tree_could_trap_p in
10357
- prepare_initializers_chain return false more often. */
10358
+/* Returns a memory reference to DR in the ITER-th iteration of
10359
+ the loop it was analyzed in. Append init stmts to STMTS. */
10362
-ref_at_iteration (struct loop *loop, tree ref, int iter)
10364
+ref_at_iteration (data_reference_p dr, int iter, gimple_seq *stmts)
10366
- tree idx, *idx_p, type, val, op0 = NULL_TREE, ret;
10370
- if (handled_component_p (ref))
10371
+ tree off = DR_OFFSET (dr);
10372
+ tree coff = DR_INIT (dr);
10375
+ else if (TREE_CODE (DR_STEP (dr)) == INTEGER_CST)
10376
+ coff = size_binop (PLUS_EXPR, coff,
10377
+ size_binop (MULT_EXPR, DR_STEP (dr), ssize_int (iter)));
10379
+ off = size_binop (PLUS_EXPR, off,
10380
+ size_binop (MULT_EXPR, DR_STEP (dr), ssize_int (iter)));
10381
+ tree addr = fold_build_pointer_plus (DR_BASE_ADDRESS (dr), off);
10382
+ addr = force_gimple_operand_1 (addr, stmts, is_gimple_mem_ref_addr,
10384
+ tree alias_ptr = fold_convert (reference_alias_ptr_type (DR_REF (dr)), coff);
10385
+ /* While data-ref analysis punts on bit offsets it still handles
10386
+ bitfield accesses at byte boundaries. Cope with that. Note that
10387
+ we cannot simply re-apply the outer COMPONENT_REF because the
10388
+ byte-granular portion of it is already applied via DR_INIT and
10389
+ DR_OFFSET, so simply build a BIT_FIELD_REF knowing that the bits
10390
+ start at offset zero. */
10391
+ if (TREE_CODE (DR_REF (dr)) == COMPONENT_REF
10392
+ && DECL_BIT_FIELD (TREE_OPERAND (DR_REF (dr), 1)))
10394
- op0 = ref_at_iteration (loop, TREE_OPERAND (ref, 0), iter);
10396
- return NULL_TREE;
10397
+ tree field = TREE_OPERAND (DR_REF (dr), 1);
10398
+ return build3 (BIT_FIELD_REF, TREE_TYPE (DR_REF (dr)),
10399
+ build2 (MEM_REF, DECL_BIT_FIELD_TYPE (field),
10400
+ addr, alias_ptr),
10401
+ DECL_SIZE (field), bitsize_zero_node);
10403
- else if (!INDIRECT_REF_P (ref)
10404
- && TREE_CODE (ref) != MEM_REF)
10405
- return unshare_expr (ref);
10407
- if (TREE_CODE (ref) == MEM_REF)
10409
- ret = unshare_expr (ref);
10410
- idx = TREE_OPERAND (ref, 0);
10411
- idx_p = &TREE_OPERAND (ret, 0);
10413
- else if (TREE_CODE (ref) == COMPONENT_REF)
10415
- /* Check that the offset is loop invariant. */
10416
- if (TREE_OPERAND (ref, 2)
10417
- && !expr_invariant_in_loop_p (loop, TREE_OPERAND (ref, 2)))
10418
- return NULL_TREE;
10420
- return build3 (COMPONENT_REF, TREE_TYPE (ref), op0,
10421
- unshare_expr (TREE_OPERAND (ref, 1)),
10422
- unshare_expr (TREE_OPERAND (ref, 2)));
10424
- else if (TREE_CODE (ref) == ARRAY_REF)
10426
- /* Check that the lower bound and the step are loop invariant. */
10427
- if (TREE_OPERAND (ref, 2)
10428
- && !expr_invariant_in_loop_p (loop, TREE_OPERAND (ref, 2)))
10429
- return NULL_TREE;
10430
- if (TREE_OPERAND (ref, 3)
10431
- && !expr_invariant_in_loop_p (loop, TREE_OPERAND (ref, 3)))
10432
- return NULL_TREE;
10434
- ret = build4 (ARRAY_REF, TREE_TYPE (ref), op0, NULL_TREE,
10435
- unshare_expr (TREE_OPERAND (ref, 2)),
10436
- unshare_expr (TREE_OPERAND (ref, 3)));
10437
- idx = TREE_OPERAND (ref, 1);
10438
- idx_p = &TREE_OPERAND (ret, 1);
10441
- return NULL_TREE;
10443
- ok = simple_iv (loop, loop, idx, &iv, true);
10445
- return NULL_TREE;
10446
- iv.base = expand_simple_operations (iv.base);
10447
- if (integer_zerop (iv.step))
10448
- *idx_p = unshare_expr (iv.base);
10451
- type = TREE_TYPE (iv.base);
10452
- if (POINTER_TYPE_P (type))
10454
- val = fold_build2 (MULT_EXPR, sizetype, iv.step,
10455
- size_int (iter));
10456
- val = fold_build_pointer_plus (iv.base, val);
10460
- val = fold_build2 (MULT_EXPR, type, iv.step,
10461
- build_int_cst_type (type, iter));
10462
- val = fold_build2 (PLUS_EXPR, type, iv.base, val);
10464
- *idx_p = unshare_expr (val);
10468
+ return fold_build2 (MEM_REF, TREE_TYPE (DR_REF (dr)), addr, alias_ptr);
10471
/* Get the initialization expression for the INDEX-th temporary variable
10472
@@ -2068,7 +2021,11 @@
10474
stmt = find_common_use_stmt (&name1, &name2);
10478
+ /* A simple post-dominance check - make sure the combination
10479
+ is executed under the same condition as the references. */
10480
+ || (gimple_bb (stmt) != gimple_bb (r1->stmt)
10481
+ && gimple_bb (stmt) != gimple_bb (r2->stmt)))
10484
acode = gimple_assign_rhs_code (stmt);
10485
@@ -2365,14 +2322,10 @@
10486
if (chain->inits[i] != NULL_TREE)
10489
- init = ref_at_iteration (loop, DR_REF (dr), (int) i - n);
10493
+ init = ref_at_iteration (dr, (int) i - n, &stmts);
10494
if (!chain->all_always_accessed && tree_could_trap_p (init))
10497
- init = force_gimple_operand (init, &stmts, false, NULL_TREE);
10499
gsi_insert_seq_on_edge_immediate (entry, stmts);
10501
Index: gcc/loop-iv.c
10502
===================================================================
10503
--- a/src/gcc/loop-iv.c (.../tags/gcc_4_8_2_release)
10504
+++ b/src/gcc/loop-iv.c (.../branches/gcc-4_8-branch)
10505
@@ -425,7 +425,9 @@
10506
&& !iv->first_special)
10508
rtx val = get_iv_value (iv, const0_rtx);
10509
- val = lowpart_subreg (mode, val, iv->extend_mode);
10510
+ val = lowpart_subreg (mode, val,
10511
+ iv->extend == IV_UNKNOWN_EXTEND
10512
+ ? iv->mode : iv->extend_mode);
10515
iv->extend = IV_UNKNOWN_EXTEND;
10516
@@ -465,8 +467,14 @@
10517
&& !iv->first_special)
10519
rtx val = get_iv_value (iv, const0_rtx);
10520
+ if (iv->extend_mode != iv->mode
10521
+ && iv->extend != IV_UNKNOWN_EXTEND
10522
+ && iv->extend != extend)
10523
+ val = lowpart_subreg (iv->mode, val, iv->extend_mode);
10524
val = simplify_gen_unary (iv_extend_to_rtx_code (extend), mode,
10525
- val, iv->extend_mode);
10527
+ iv->extend == extend
10528
+ ? iv->extend_mode : iv->mode);
10530
iv->extend = IV_UNKNOWN_EXTEND;
10531
iv->mode = iv->extend_mode = mode;
10532
Index: gcc/ipa-prop.c
10533
===================================================================
10534
--- a/src/gcc/ipa-prop.c (.../tags/gcc_4_8_2_release)
10535
+++ b/src/gcc/ipa-prop.c (.../branches/gcc-4_8-branch)
10536
@@ -740,7 +740,7 @@
10537
ipa_load_from_parm_agg_1 (vec<ipa_param_descriptor_t> descriptors,
10538
struct param_analysis_info *parms_ainfo, gimple stmt,
10539
tree op, int *index_p, HOST_WIDE_INT *offset_p,
10541
+ HOST_WIDE_INT *size_p, bool *by_ref_p)
10544
HOST_WIDE_INT size, max_size;
10545
@@ -758,6 +758,8 @@
10554
@@ -800,6 +802,8 @@
10563
@@ -814,7 +818,7 @@
10566
return ipa_load_from_parm_agg_1 (info->descriptors, NULL, stmt, op, index_p,
10567
- offset_p, by_ref_p);
10568
+ offset_p, NULL, by_ref_p);
10571
/* Given that an actual argument is an SSA_NAME (given in NAME) and is a result
10572
@@ -1646,7 +1650,7 @@
10573
if (gimple_assign_single_p (def)
10574
&& ipa_load_from_parm_agg_1 (info->descriptors, parms_ainfo, def,
10575
gimple_assign_rhs1 (def), &index, &offset,
10579
struct cgraph_edge *cs = ipa_note_param_call (node, index, call);
10580
cs->indirect_info->offset = offset;
10581
@@ -2126,7 +2130,6 @@
10582
we may create the first reference to the object in the unit. */
10583
if (!callee || callee->global.inlined_to)
10585
- struct cgraph_node *first_clone = callee;
10587
/* We are better to ensure we can refer to it.
10588
In the case of static functions we are out of luck, since we already
10589
@@ -2142,31 +2145,7 @@
10590
xstrdup (cgraph_node_name (ie->callee)), ie->callee->uid);
10594
- /* Create symbol table node. Even if inline clone exists, we can not take
10595
- it as a target of non-inlined call. */
10596
- callee = cgraph_create_node (target);
10598
- /* OK, we previously inlined the function, then removed the offline copy and
10599
- now we want it back for external call. This can happen when devirtualizing
10600
- while inlining function called once that happens after extern inlined and
10601
- virtuals are already removed. In this case introduce the external node
10602
- and make it available for call. */
10605
- first_clone->clone_of = callee;
10606
- callee->clones = first_clone;
10607
- symtab_prevail_in_asm_name_hash ((symtab_node)callee);
10608
- symtab_insert_node_to_hashtable ((symtab_node)callee);
10610
- fprintf (dump_file, "ipa-prop: Introduced new external node "
10611
- "(%s/%i) and turned into root of the clone tree.\n",
10612
- xstrdup (cgraph_node_name (callee)), callee->uid);
10614
- else if (dump_file)
10615
- fprintf (dump_file, "ipa-prop: Introduced new external node "
10617
- xstrdup (cgraph_node_name (callee)), callee->uid);
10618
+ callee = cgraph_get_create_real_symbol_node (target);
10620
ipa_check_create_node_params ();
10622
@@ -3902,7 +3881,7 @@
10623
struct ipa_agg_replacement_value *v;
10624
gimple stmt = gsi_stmt (gsi);
10626
- HOST_WIDE_INT offset;
10627
+ HOST_WIDE_INT offset, size;
10631
@@ -3929,13 +3908,15 @@
10634
if (!ipa_load_from_parm_agg_1 (descriptors, parms_ainfo, stmt,
10635
- rhs, &index, &offset, &by_ref))
10636
+ rhs, &index, &offset, &size, &by_ref))
10638
for (v = aggval; v; v = v->next)
10639
if (v->index == index
10640
&& v->offset == offset)
10642
- if (!v || v->by_ref != by_ref)
10644
+ || v->by_ref != by_ref
10645
+ || tree_low_cst (TYPE_SIZE (TREE_TYPE (v->value)), 0) != size)
10648
gcc_checking_assert (is_gimple_ip_invariant (v->value));
10649
Index: gcc/combine.c
10650
===================================================================
10651
--- a/src/gcc/combine.c (.../tags/gcc_4_8_2_release)
10652
+++ b/src/gcc/combine.c (.../branches/gcc-4_8-branch)
10653
@@ -5798,8 +5798,15 @@
10657
- /* If the code changed, return a whole new comparison. */
10658
- if (new_code != code)
10659
+ /* If the code changed, return a whole new comparison.
10660
+ We also need to avoid using SUBST in cases where
10661
+ simplify_comparison has widened a comparison with a CONST_INT,
10662
+ since in that case the wider CONST_INT may fail the sanity
10663
+ checks in do_SUBST. */
10664
+ if (new_code != code
10665
+ || (CONST_INT_P (op1)
10666
+ && GET_MODE (op0) != GET_MODE (XEXP (x, 0))
10667
+ && GET_MODE (op0) != GET_MODE (XEXP (x, 1))))
10668
return gen_rtx_fmt_ee (new_code, mode, op0, op1);
10670
/* Otherwise, keep this operation, but maybe change its operands.
10671
Index: gcc/Makefile.in
10672
===================================================================
10673
--- a/src/gcc/Makefile.in (.../tags/gcc_4_8_2_release)
10674
+++ b/src/gcc/Makefile.in (.../branches/gcc-4_8-branch)
10675
@@ -3037,7 +3037,7 @@
10676
$(TM_H) coretypes.h $(GIMPLE_H) \
10677
$(TREE_PASS_H) $(FLAGS_H) $(EXPR_H) $(BASIC_BLOCK_H) \
10678
$(GGC_H) $(OBSTACK_H) $(PARAMS_H) $(CPPLIB_H) $(PARAMS_H) \
10679
- $(GIMPLE_PRETTY_PRINT_H) langhooks.h
10680
+ $(GIMPLE_PRETTY_PRINT_H) langhooks.h $(OPTABS_H)
10681
tree-complex.o : tree-complex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \
10682
$(TM_H) $(FLAGS_H) $(TREE_FLOW_H) $(GIMPLE_H) \
10683
tree-iterator.h $(TREE_PASS_H) tree-ssa-propagate.h
10684
@@ -3276,12 +3276,12 @@
10685
$(TM_H) $(RTL_H) $(REGS_H) insn-config.h insn-codes.h $(DF_H) \
10686
$(RECOG_H) output.h addresses.h $(REGS_H) hard-reg-set.h $(FLAGS_H) \
10687
$(FUNCTION_H) $(EXPR_H) $(BASIC_BLOCK_H) $(TM_P_H) $(EXCEPT_H) \
10688
- ira.h rtl-error.h $(LRA_INT_H)
10689
+ ira.h rtl-error.h $(LRA_INT_H) $(OPTABS_H)
10690
lra-eliminations.o : lra-eliminations.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
10691
$(TM_H) $(RTL_H) $(REGS_H) insn-config.h $(DF_H) \
10692
$(RECOG_H) output.h $(REGS_H) hard-reg-set.h $(FLAGS_H) $(FUNCTION_H) \
10693
$(EXPR_H) $(BASIC_BLOCK_H) $(TM_P_H) $(EXCEPT_H) ira.h \
10694
- rtl-error.h $(LRA_INT_H)
10695
+ rtl-error.h $(LRA_INT_H) $(OPTABS_H)
10696
lra-lives.o : lra-lives.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
10697
$(RTL_H) $(REGS_H) insn-config.h $(DF_H) \
10698
$(RECOG_H) output.h $(REGS_H) hard-reg-set.h $(FLAGS_H) $(FUNCTION_H) \
10699
Index: gcc/config/s390/s390.c
10700
===================================================================
10701
--- a/src/gcc/config/s390/s390.c (.../tags/gcc_4_8_2_release)
10702
+++ b/src/gcc/config/s390/s390.c (.../branches/gcc-4_8-branch)
10703
@@ -883,7 +883,8 @@
10705
/* For CCRAWmode put the required cc mask into the second
10707
- if (GET_MODE (XVECEXP (*op0, 0, 0)) == CCRAWmode)
10708
+ if (GET_MODE (XVECEXP (*op0, 0, 0)) == CCRAWmode
10709
+ && INTVAL (*op1) >= 0 && INTVAL (*op1) <= 3)
10710
*op1 = gen_rtx_CONST_INT (VOIDmode, 1 << (3 - INTVAL (*op1)));
10711
*op0 = XVECEXP (*op0, 0, 0);
10713
@@ -7846,6 +7847,9 @@
10715
bb = BASIC_BLOCK (bb_index);
10720
FOR_BB_INSNS (bb, insn)
10722
rtx ite, cc, pat, target;
10723
@@ -7959,7 +7963,10 @@
10727
- PATTERN (tbegin_insn) = XVECEXP (PATTERN (tbegin_insn), 0, 0);
10728
+ PATTERN (tbegin_insn) = gen_rtx_PARALLEL (VOIDmode,
10730
+ XVECEXP (PATTERN (tbegin_insn), 0, 0),
10731
+ XVECEXP (PATTERN (tbegin_insn), 0, 1)));
10732
INSN_CODE (tbegin_insn) = -1;
10733
df_insn_rescan (tbegin_insn);
10735
@@ -9573,6 +9580,7 @@
10736
const int CC3 = 1 << 0;
10737
rtx abort_label = gen_label_rtx ();
10738
rtx leave_label = gen_label_rtx ();
10739
+ rtx retry_plus_two = gen_reg_rtx (SImode);
10740
rtx retry_reg = gen_reg_rtx (SImode);
10741
rtx retry_label = NULL_RTX;
10743
@@ -9581,16 +9589,17 @@
10744
if (retry != NULL_RTX)
10746
emit_move_insn (retry_reg, retry);
10747
+ emit_insn (gen_addsi3 (retry_plus_two, retry_reg, const2_rtx));
10748
+ emit_insn (gen_addsi3 (retry_reg, retry_reg, const1_rtx));
10749
retry_label = gen_label_rtx ();
10750
emit_label (retry_label);
10753
if (clobber_fprs_p)
10754
- emit_insn (gen_tbegin_1 (tdb,
10755
- gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK)));
10756
+ emit_insn (gen_tbegin_1 (gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK), tdb));
10758
- emit_insn (gen_tbegin_nofloat_1 (tdb,
10759
- gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK)));
10760
+ emit_insn (gen_tbegin_nofloat_1 (gen_rtx_CONST_INT (VOIDmode, TBEGIN_MASK),
10763
jump = s390_emit_jump (abort_label,
10764
gen_rtx_NE (VOIDmode,
10765
@@ -9611,6 +9620,10 @@
10766
/* Abort handler code. */
10768
emit_label (abort_label);
10769
+ emit_move_insn (dest, gen_rtx_UNSPEC (SImode,
10770
+ gen_rtvec (1, gen_rtx_REG (CCRAWmode,
10772
+ UNSPEC_CC_TO_INT));
10773
if (retry != NULL_RTX)
10775
rtx count = gen_reg_rtx (SImode);
10776
@@ -9622,7 +9635,7 @@
10777
add_reg_note (jump, REG_BR_PROB, very_unlikely);
10779
/* CC2 - transient failure. Perform retry with ppa. */
10780
- emit_move_insn (count, retry);
10781
+ emit_move_insn (count, retry_plus_two);
10782
emit_insn (gen_subsi3 (count, count, retry_reg));
10783
emit_insn (gen_tx_assist (count));
10784
jump = emit_jump_insn (gen_doloop_si64 (retry_label,
10785
@@ -9632,10 +9645,6 @@
10786
LABEL_NUSES (retry_label) = 1;
10789
- emit_move_insn (dest, gen_rtx_UNSPEC (SImode,
10790
- gen_rtvec (1, gen_rtx_REG (CCRAWmode,
10792
- UNSPEC_CC_TO_INT));
10793
emit_label (leave_label);
10796
@@ -9674,6 +9683,9 @@
10797
s390_init_builtins (void)
10799
tree ftype, uint64_type;
10800
+ tree returns_twice_attr = tree_cons (get_identifier ("returns_twice"),
10802
+ tree noreturn_attr = tree_cons (get_identifier ("noreturn"), NULL, NULL);
10804
/* void foo (void) */
10805
ftype = build_function_type_list (void_type_node, NULL_TREE);
10806
@@ -9684,17 +9696,17 @@
10807
ftype = build_function_type_list (void_type_node, integer_type_node,
10809
add_builtin_function ("__builtin_tabort", ftype,
10810
- S390_BUILTIN_TABORT, BUILT_IN_MD, NULL, NULL_TREE);
10811
+ S390_BUILTIN_TABORT, BUILT_IN_MD, NULL, noreturn_attr);
10812
add_builtin_function ("__builtin_tx_assist", ftype,
10813
S390_BUILTIN_TX_ASSIST, BUILT_IN_MD, NULL, NULL_TREE);
10815
/* int foo (void *) */
10816
ftype = build_function_type_list (integer_type_node, ptr_type_node, NULL_TREE);
10817
add_builtin_function ("__builtin_tbegin", ftype, S390_BUILTIN_TBEGIN,
10818
- BUILT_IN_MD, NULL, NULL_TREE);
10819
+ BUILT_IN_MD, NULL, returns_twice_attr);
10820
add_builtin_function ("__builtin_tbegin_nofloat", ftype,
10821
S390_BUILTIN_TBEGIN_NOFLOAT,
10822
- BUILT_IN_MD, NULL, NULL_TREE);
10823
+ BUILT_IN_MD, NULL, returns_twice_attr);
10825
/* int foo (void *, int) */
10826
ftype = build_function_type_list (integer_type_node, ptr_type_node,
10827
@@ -9702,11 +9714,11 @@
10828
add_builtin_function ("__builtin_tbegin_retry", ftype,
10829
S390_BUILTIN_TBEGIN_RETRY,
10831
- NULL, NULL_TREE);
10832
+ NULL, returns_twice_attr);
10833
add_builtin_function ("__builtin_tbegin_retry_nofloat", ftype,
10834
S390_BUILTIN_TBEGIN_RETRY_NOFLOAT,
10836
- NULL, NULL_TREE);
10837
+ NULL, returns_twice_attr);
10839
/* int foo (void) */
10840
ftype = build_function_type_list (integer_type_node, NULL_TREE);
10841
Index: gcc/config/s390/s390.md
10842
===================================================================
10843
--- a/src/gcc/config/s390/s390.md (.../tags/gcc_4_8_2_release)
10844
+++ b/src/gcc/config/s390/s390.md (.../branches/gcc-4_8-branch)
10845
@@ -147,6 +147,7 @@
10847
; Transactional Execution support
10849
+ UNSPECV_TBEGIN_TDB
10853
@@ -9896,9 +9897,10 @@
10855
(define_insn "tbegin_1"
10856
[(set (reg:CCRAW CC_REGNUM)
10857
- (unspec_volatile:CCRAW [(match_operand:BLK 0 "memory_operand" "=Q")
10858
- (match_operand 1 "const_int_operand" " D")]
10859
+ (unspec_volatile:CCRAW [(match_operand 0 "const_int_operand" "D")]
10861
+ (set (match_operand:BLK 1 "memory_operand" "=Q")
10862
+ (unspec_volatile:BLK [(match_dup 0)] UNSPECV_TBEGIN_TDB))
10863
(clobber (reg:DF 16))
10864
(clobber (reg:DF 17))
10865
(clobber (reg:DF 18))
10866
@@ -9917,18 +9919,19 @@
10867
(clobber (reg:DF 31))]
10868
; CONST_OK_FOR_CONSTRAINT_P does not work with D constraint since D is
10869
; not supposed to be used for immediates (see genpreds.c).
10870
- "TARGET_HTM && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 0xffff"
10872
+ "TARGET_HTM && INTVAL (operands[0]) >= 0 && INTVAL (operands[0]) <= 0xffff"
10874
[(set_attr "op_type" "SIL")])
10876
; Same as above but without the FPR clobbers
10877
(define_insn "tbegin_nofloat_1"
10878
[(set (reg:CCRAW CC_REGNUM)
10879
- (unspec_volatile:CCRAW [(match_operand:BLK 0 "memory_operand" "=Q")
10880
- (match_operand 1 "const_int_operand" " D")]
10881
- UNSPECV_TBEGIN))]
10882
- "TARGET_HTM && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 0xffff"
10884
+ (unspec_volatile:CCRAW [(match_operand 0 "const_int_operand" "D")]
10886
+ (set (match_operand:BLK 1 "memory_operand" "=Q")
10887
+ (unspec_volatile:BLK [(match_dup 0)] UNSPECV_TBEGIN_TDB))]
10888
+ "TARGET_HTM && INTVAL (operands[0]) >= 0 && INTVAL (operands[0]) <= 0xffff"
10890
[(set_attr "op_type" "SIL")])
10893
@@ -10012,15 +10015,12 @@
10894
; Transaction perform processor assist
10896
(define_expand "tx_assist"
10897
- [(set (match_dup 1) (const_int 0))
10898
- (unspec_volatile [(match_operand:SI 0 "register_operand" "")
10900
+ [(unspec_volatile [(match_operand:SI 0 "register_operand" "")
10901
+ (reg:SI GPR0_REGNUM)
10906
- operands[1] = gen_reg_rtx (SImode);
10910
(define_insn "*ppa"
10911
[(unspec_volatile [(match_operand:SI 0 "register_operand" "d")
10912
@@ -10028,5 +10028,5 @@
10913
(match_operand 2 "const_int_operand" "I")]
10915
"TARGET_HTM && INTVAL (operands[2]) < 16"
10918
[(set_attr "op_type" "RRF")])
10919
Index: gcc/config/s390/htmxlintrin.h
10920
===================================================================
10921
--- a/src/gcc/config/s390/htmxlintrin.h (.../tags/gcc_4_8_2_release)
10922
+++ b/src/gcc/config/s390/htmxlintrin.h (.../branches/gcc-4_8-branch)
10923
@@ -33,13 +33,20 @@
10924
the IBM XL compiler. For documentation please see the "z/OS XL
10925
C/C++ Programming Guide" publically available on the web. */
10927
-extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
10928
+/* FIXME: __TM_simple_begin and __TM_begin should be marked
10929
+ __always_inline__ as well but this currently produces an error
10930
+ since the tbegin builtins are "returns_twice" and setjmp_call_p
10931
+ (calls.c) therefore identifies the functions as calling setjmp.
10932
+ The tree inliner currently refuses to inline functions calling
10936
__TM_simple_begin ()
10938
return __builtin_tbegin_nofloat (0);
10941
-extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
10943
__TM_begin (void* const tdb)
10945
return __builtin_tbegin_nofloat (tdb);
10950
- if (tdb->format == 0)
10951
+ if (tdb->format != 1)
10953
return tdb->nesting_depth;
10957
struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
10959
- if (tdb->format == 0)
10960
+ if (tdb->format != 1)
10963
return !!(tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE);
10964
@@ -101,7 +108,7 @@
10966
struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
10968
- if (tdb->format == 0)
10969
+ if (tdb->format != 1)
10972
if (tdb->abort_code >= _HTM_FIRST_USER_ABORT_CODE)
10973
@@ -117,7 +124,7 @@
10975
struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
10977
- return (tdb->format == 0
10978
+ return (tdb->format == 1
10979
&& (tdb->abort_code == 4 /* unfiltered program interruption */
10980
|| tdb->abort_code == 11 /* restricted instruction */));
10982
@@ -127,7 +134,7 @@
10984
struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
10986
- return (tdb->format == 0
10987
+ return (tdb->format == 1
10988
&& (tdb->abort_code == 7 /* fetch overflow */
10989
|| tdb->abort_code == 8 /* store overflow */));
10991
@@ -137,7 +144,7 @@
10993
struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
10995
- return tdb->format == 0 && tdb->abort_code == 13; /* depth exceeded */
10996
+ return tdb->format == 1 && tdb->abort_code == 13; /* depth exceeded */
10999
extern __inline long __attribute__((__gnu_inline__, __always_inline__, __artificial__))
11000
@@ -145,7 +152,7 @@
11002
struct __htm_tdb *tdb = (struct __htm_tdb*)tdb_ptr;
11004
- return (tdb->format == 0
11005
+ return (tdb->format == 1
11006
&& (tdb->abort_code == 9 /* fetch conflict */
11007
|| tdb->abort_code == 10 /* store conflict */));
11009
Index: gcc/config/sparc/sparc.c
11010
===================================================================
11011
--- a/src/gcc/config/sparc/sparc.c (.../tags/gcc_4_8_2_release)
11012
+++ b/src/gcc/config/sparc/sparc.c (.../branches/gcc-4_8-branch)
11013
@@ -10355,7 +10355,8 @@
11014
tmp = e0.add_with_sign (tmp, false, &add1_ovf);
11015
if (tmp.is_negative ())
11016
tmp = tmp.neg_with_overflow (&neg2_ovf);
11019
+ neg2_ovf = false;
11020
result = result.add_with_sign (tmp, false, &add2_ovf);
11021
overflow |= neg1_ovf | neg2_ovf | add1_ovf | add2_ovf;
11023
Index: gcc/config/i386/i386.md
11024
===================================================================
11025
--- a/src/gcc/config/i386/i386.md (.../tags/gcc_4_8_2_release)
11026
+++ b/src/gcc/config/i386/i386.md (.../branches/gcc-4_8-branch)
11027
@@ -1570,7 +1570,7 @@
11028
split_double_mode (DImode, &operands[1], 1, &operands[2], &operands[3]);
11030
operands[1] = gen_lowpart (DImode, operands[2]);
11031
- operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (DImode, stack_pointer_rtx,
11032
+ operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (Pmode, stack_pointer_rtx,
11036
@@ -1587,7 +1587,7 @@
11037
split_double_mode (DImode, &operands[1], 1, &operands[2], &operands[3]);
11039
operands[1] = gen_lowpart (DImode, operands[2]);
11040
- operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (DImode, stack_pointer_rtx,
11041
+ operands[2] = gen_rtx_MEM (SImode, gen_rtx_PLUS (Pmode, stack_pointer_rtx,
11045
@@ -6589,7 +6589,7 @@
11046
(set_attr "use_carry" "1")
11047
(set_attr "mode" "<MODE>")])
11049
-;; Overflow setting add and subtract instructions
11050
+;; Overflow setting add instructions
11052
(define_insn "*add<mode>3_cconly_overflow"
11053
[(set (reg:CCC FLAGS_REG)
11054
@@ -6604,43 +6604,31 @@
11055
[(set_attr "type" "alu")
11056
(set_attr "mode" "<MODE>")])
11058
-(define_insn "*sub<mode>3_cconly_overflow"
11059
+(define_insn "*add<mode>3_cc_overflow"
11060
[(set (reg:CCC FLAGS_REG)
11063
- (match_operand:SWI 0 "nonimmediate_operand" "<r>m,<r>")
11064
- (match_operand:SWI 1 "<general_operand>" "<r><i>,<r>m"))
11067
- "cmp{<imodesuffix>}\t{%1, %0|%0, %1}"
11068
- [(set_attr "type" "icmp")
11069
- (set_attr "mode" "<MODE>")])
11071
-(define_insn "*<plusminus_insn><mode>3_cc_overflow"
11072
- [(set (reg:CCC FLAGS_REG)
11075
- (match_operand:SWI 1 "nonimmediate_operand" "<comm>0,0")
11077
+ (match_operand:SWI 1 "nonimmediate_operand" "%0,0")
11078
(match_operand:SWI 2 "<general_operand>" "<r><i>,<r>m"))
11080
(set (match_operand:SWI 0 "nonimmediate_operand" "=<r>m,<r>")
11081
- (plusminus:SWI (match_dup 1) (match_dup 2)))]
11082
- "ix86_binary_operator_ok (<CODE>, <MODE>mode, operands)"
11083
- "<plusminus_mnemonic>{<imodesuffix>}\t{%2, %0|%0, %2}"
11084
+ (plus:SWI (match_dup 1) (match_dup 2)))]
11085
+ "ix86_binary_operator_ok (PLUS, <MODE>mode, operands)"
11086
+ "add{<imodesuffix>}\t{%2, %0|%0, %2}"
11087
[(set_attr "type" "alu")
11088
(set_attr "mode" "<MODE>")])
11090
-(define_insn "*<plusminus_insn>si3_zext_cc_overflow"
11091
+(define_insn "*addsi3_zext_cc_overflow"
11092
[(set (reg:CCC FLAGS_REG)
11095
- (match_operand:SI 1 "nonimmediate_operand" "<comm>0")
11097
+ (match_operand:SI 1 "nonimmediate_operand" "%0")
11098
(match_operand:SI 2 "x86_64_general_operand" "rme"))
11100
(set (match_operand:DI 0 "register_operand" "=r")
11101
- (zero_extend:DI (plusminus:SI (match_dup 1) (match_dup 2))))]
11102
- "TARGET_64BIT && ix86_binary_operator_ok (<CODE>, SImode, operands)"
11103
- "<plusminus_mnemonic>{l}\t{%2, %k0|%k0, %2}"
11104
+ (zero_extend:DI (plus:SI (match_dup 1) (match_dup 2))))]
11105
+ "TARGET_64BIT && ix86_binary_operator_ok (PLUS, SImode, operands)"
11106
+ "add{l}\t{%2, %k0|%k0, %2}"
11107
[(set_attr "type" "alu")
11108
(set_attr "mode" "SI")])
11110
@@ -8012,7 +8000,18 @@
11112
(set (match_operand:DI 0 "nonimmediate_operand" "=r,r,rm")
11113
(and:DI (match_dup 1) (match_dup 2)))]
11114
- "TARGET_64BIT && ix86_match_ccmode (insn, CCNOmode)
11116
+ && ix86_match_ccmode
11118
+ /* If we are going to emit andl instead of andq, and the operands[2]
11119
+ constant might have the SImode sign bit set, make sure the sign
11120
+ flag isn't tested, because the instruction will set the sign flag
11121
+ based on bit 31 rather than bit 63. If it isn't CONST_INT,
11122
+ conservatively assume it might have bit 31 set. */
11123
+ (satisfies_constraint_Z (operands[2])
11124
+ && (!CONST_INT_P (operands[2])
11125
+ || val_signbit_known_set_p (SImode, INTVAL (operands[2]))))
11126
+ ? CCZmode : CCNOmode)
11127
&& ix86_binary_operator_ok (AND, DImode, operands)"
11129
and{l}\t{%k2, %k0|%k0, %k2}
11130
Index: gcc/config/i386/t-rtems
11131
===================================================================
11132
--- a/src/gcc/config/i386/t-rtems (.../tags/gcc_4_8_2_release)
11133
+++ b/src/gcc/config/i386/t-rtems (.../branches/gcc-4_8-branch)
11134
@@ -17,11 +17,10 @@
11135
# <http://www.gnu.org/licenses/>.
11138
-MULTILIB_OPTIONS = mtune=i486/mtune=pentium/mtune=pentiumpro \
11140
+MULTILIB_OPTIONS = mtune=i486/mtune=pentium/mtune=pentiumpro msoft-float
11141
MULTILIB_DIRNAMES= m486 mpentium mpentiumpro soft-float
11142
-MULTILIB_MATCHES = msoft-float=mno-m80387
11143
-MULTILIB_MATCHES += mtune?pentium=mtune?k6 mtune?pentiumpro=mtune?mathlon
11144
+MULTILIB_MATCHES = msoft-float=mno-80387
11145
+MULTILIB_MATCHES += mtune?pentium=mtune?k6 mtune?pentiumpro=mtune?athlon
11146
MULTILIB_EXCEPTIONS = \
11147
mtune=pentium/*msoft-float* \
11148
mtune=pentiumpro/*msoft-float*
11149
Index: gcc/config/i386/i386.c
11150
===================================================================
11151
--- a/src/gcc/config/i386/i386.c (.../tags/gcc_4_8_2_release)
11152
+++ b/src/gcc/config/i386/i386.c (.../branches/gcc-4_8-branch)
11153
@@ -1894,10 +1894,10 @@
11154
m_PPRO | m_P4_NOCONA | m_CORE_ALL | m_ATOM | m_AMDFAM10 | m_BDVER | m_GENERIC,
11156
/* X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL */
11157
- m_COREI7 | m_AMDFAM10 | m_BDVER | m_BTVER,
11158
+ m_COREI7 | m_HASWELL | m_AMDFAM10 | m_BDVER | m_BTVER,
11160
/* X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL */
11161
- m_COREI7 | m_BDVER,
11162
+ m_COREI7 | m_HASWELL| m_BDVER,
11164
/* X86_TUNE_SSE_PACKED_SINGLE_INSN_OPTIMAL */
11166
@@ -2983,7 +2983,7 @@
11167
{"bdver3", PROCESSOR_BDVER3, CPU_BDVER3,
11168
PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
11169
| PTA_SSE4A | PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1
11170
- | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX
11171
+ | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX | PTA_FMA4
11172
| PTA_XOP | PTA_LWP | PTA_BMI | PTA_TBM | PTA_F16C
11173
| PTA_FMA | PTA_PRFCHW | PTA_FXSR | PTA_XSAVE
11175
@@ -7235,9 +7235,15 @@
11183
+ return TARGET_64BIT && ix86_abi != MS_ABI;
11185
- case FIRST_FLOAT_REG:
11186
+ /* Complex values are returned in %st(0)/%st(1) pair. */
11189
/* TODO: The function should depend on current function ABI but
11190
builtins.c would need updating then. Therefore we use the
11192
@@ -7245,10 +7251,12 @@
11194
return TARGET_FLOAT_RETURNS_IN_80387;
11196
- case FIRST_SSE_REG:
11197
+ /* Complex values are returned in %xmm0/%xmm1 pair. */
11202
- case FIRST_MMX_REG:
11204
if (TARGET_MACHO || TARGET_64BIT)
11207
@@ -11561,30 +11569,6 @@
11211
-/* Determine if op is suitable SUBREG RTX for address. */
11214
-ix86_address_subreg_operand (rtx op)
11216
- enum machine_mode mode;
11221
- mode = GET_MODE (op);
11223
- if (GET_MODE_CLASS (mode) != MODE_INT)
11226
- /* Don't allow SUBREGs that span more than a word. It can lead to spill
11227
- failures when the register is one word out of a two word structure. */
11228
- if (GET_MODE_SIZE (mode) > UNITS_PER_WORD)
11231
- /* Allow only SUBREGs of non-eliminable hard registers. */
11232
- return register_no_elim_operand (op, mode);
11235
/* Extract the parts of an RTL expression that is a valid memory address
11236
for an instruction. Return 0 if the structure of the address is
11237
grossly off. Return -1 if the address contains ASHIFT, so it is not
11238
@@ -11641,7 +11625,7 @@
11240
else if (GET_CODE (addr) == SUBREG)
11242
- if (ix86_address_subreg_operand (SUBREG_REG (addr)))
11243
+ if (REG_P (SUBREG_REG (addr)))
11247
@@ -11705,7 +11689,7 @@
11251
- if (!ix86_address_subreg_operand (SUBREG_REG (op)))
11252
+ if (!REG_P (SUBREG_REG (op)))
11256
@@ -11750,19 +11734,6 @@
11257
scale = 1 << scale;
11260
- else if (CONST_INT_P (addr))
11262
- if (!x86_64_immediate_operand (addr, VOIDmode))
11265
- /* Constant addresses are sign extended to 64bit, we have to
11266
- prevent addresses from 0x80000000 to 0xffffffff in x32 mode. */
11268
- && val_signbit_known_set_p (SImode, INTVAL (addr)))
11274
disp = addr; /* displacement */
11276
@@ -11771,18 +11742,12 @@
11279
else if (GET_CODE (index) == SUBREG
11280
- && ix86_address_subreg_operand (SUBREG_REG (index)))
11281
+ && REG_P (SUBREG_REG (index)))
11287
-/* Address override works only on the (%reg) part of %fs:(%reg). */
11288
- if (seg != SEG_DEFAULT
11289
- && ((base && GET_MODE (base) != word_mode)
11290
- || (index && GET_MODE (index) != word_mode)))
11293
/* Extract the integral value of scale. */
11296
@@ -12258,6 +12223,45 @@
11300
+/* Determine if op is suitable RTX for an address register.
11301
+ Return naked register if a register or a register subreg is
11302
+ found, otherwise return NULL_RTX. */
11305
+ix86_validate_address_register (rtx op)
11307
+ enum machine_mode mode = GET_MODE (op);
11309
+ /* Only SImode or DImode registers can form the address. */
11310
+ if (mode != SImode && mode != DImode)
11315
+ else if (GET_CODE (op) == SUBREG)
11317
+ rtx reg = SUBREG_REG (op);
11319
+ if (!REG_P (reg))
11322
+ mode = GET_MODE (reg);
11324
+ /* Don't allow SUBREGs that span more than a word. It can
11325
+ lead to spill failures when the register is one word out
11326
+ of a two word structure. */
11327
+ if (GET_MODE_SIZE (mode) > UNITS_PER_WORD)
11330
+ /* Allow only SUBREGs of non-eliminable hard registers. */
11331
+ if (register_no_elim_operand (reg, mode))
11335
+ /* Op is not a register. */
11339
/* Recognizes RTL expressions that are valid memory addresses for an
11340
instruction. The MODE argument is the machine mode for the MEM
11341
expression that wants to use this address.
11342
@@ -12273,6 +12277,7 @@
11343
struct ix86_address parts;
11344
rtx base, index, disp;
11345
HOST_WIDE_INT scale;
11346
+ enum ix86_address_seg seg;
11348
if (ix86_decompose_address (addr, &parts) <= 0)
11349
/* Decomposition failed. */
11350
@@ -12282,23 +12287,16 @@
11351
index = parts.index;
11353
scale = parts.scale;
11356
/* Validate base register. */
11360
+ rtx reg = ix86_validate_address_register (base);
11362
- if (REG_P (base))
11364
- else if (GET_CODE (base) == SUBREG && REG_P (SUBREG_REG (base)))
11365
- reg = SUBREG_REG (base);
11367
- /* Base is not a register. */
11368
+ if (reg == NULL_RTX)
11371
- if (GET_MODE (base) != SImode && GET_MODE (base) != DImode)
11374
if ((strict && ! REG_OK_FOR_BASE_STRICT_P (reg))
11375
|| (! strict && ! REG_OK_FOR_BASE_NONSTRICT_P (reg)))
11376
/* Base is not valid. */
11377
@@ -12308,19 +12306,11 @@
11378
/* Validate index register. */
11382
+ rtx reg = ix86_validate_address_register (index);
11384
- if (REG_P (index))
11386
- else if (GET_CODE (index) == SUBREG && REG_P (SUBREG_REG (index)))
11387
- reg = SUBREG_REG (index);
11389
- /* Index is not a register. */
11390
+ if (reg == NULL_RTX)
11393
- if (GET_MODE (index) != SImode && GET_MODE (index) != DImode)
11396
if ((strict && ! REG_OK_FOR_INDEX_STRICT_P (reg))
11397
|| (! strict && ! REG_OK_FOR_INDEX_NONSTRICT_P (reg)))
11398
/* Index is not valid. */
11399
@@ -12332,6 +12322,12 @@
11400
&& GET_MODE (base) != GET_MODE (index))
11403
+ /* Address override works only on the (%reg) part of %fs:(%reg). */
11404
+ if (seg != SEG_DEFAULT
11405
+ && ((base && GET_MODE (base) != word_mode)
11406
+ || (index && GET_MODE (index) != word_mode)))
11409
/* Validate scale factor. */
11412
@@ -12453,6 +12449,12 @@
11413
&& !x86_64_immediate_operand (disp, VOIDmode))
11414
/* Displacement is out of range. */
11416
+ /* In x32 mode, constant addresses are sign extended to 64bit, so
11417
+ we have to prevent addresses from 0x80000000 to 0xffffffff. */
11418
+ else if (TARGET_X32 && !(index || base)
11419
+ && CONST_INT_P (disp)
11420
+ && val_signbit_known_set_p (SImode, INTVAL (disp)))
11424
/* Everything looks valid. */
11425
@@ -13817,8 +13819,6 @@
11426
Those same assemblers have the same but opposite lossage on cmov. */
11427
if (mode == CCmode)
11428
suffix = fp ? "nbe" : "a";
11429
- else if (mode == CCCmode)
11432
gcc_unreachable ();
11434
@@ -13840,8 +13840,12 @@
11438
- gcc_assert (mode == CCmode || mode == CCCmode);
11440
+ if (mode == CCmode)
11442
+ else if (mode == CCCmode)
11445
+ gcc_unreachable ();
11449
@@ -13861,20 +13865,20 @@
11453
- /* ??? As above. */
11454
- gcc_assert (mode == CCmode || mode == CCCmode);
11455
- suffix = fp ? "nb" : "ae";
11456
+ if (mode == CCmode)
11457
+ suffix = fp ? "nb" : "ae";
11458
+ else if (mode == CCCmode)
11461
+ gcc_unreachable ();
11464
gcc_assert (mode == CCmode || mode == CCGCmode || mode == CCNOmode);
11468
- /* ??? As above. */
11469
if (mode == CCmode)
11471
- else if (mode == CCCmode)
11472
- suffix = fp ? "nb" : "ae";
11474
gcc_unreachable ();
11476
@@ -15340,7 +15344,7 @@
11477
rtx arg = XEXP (XEXP (link, 0), 0);
11479
if (ix86_check_avx256_register (&arg, NULL))
11480
- return AVX_U128_ANY;
11481
+ return AVX_U128_DIRTY;
11485
@@ -15460,8 +15464,8 @@
11487
bool avx_reg256_found = false;
11488
note_stores (pat, ix86_check_avx256_stores, &avx_reg256_found);
11489
- if (!avx_reg256_found)
11490
- return AVX_U128_CLEAN;
11492
+ return avx_reg256_found ? AVX_U128_DIRTY : AVX_U128_CLEAN;
11495
/* Otherwise, return current mode. Remember that if insn
11496
@@ -18486,12 +18490,7 @@
11498
case GTU: /* CF=0 & ZF=0 */
11499
case LEU: /* CF=1 | ZF=1 */
11500
- /* Detect overflow checks. They need just the carry flag. */
11501
- if (GET_CODE (op0) == MINUS
11502
- && rtx_equal_p (op1, XEXP (op0, 0)))
11507
/* Codes possibly doable only with sign flag when
11508
comparing against zero. */
11509
case GE: /* SF=OF or SF=0 */
11510
@@ -21740,6 +21739,21 @@
11514
+/* Copy the address to a Pmode register. This is used for x32 to
11515
+ truncate DImode TLS address to a SImode register. */
11518
+ix86_copy_addr_to_reg (rtx addr)
11520
+ if (GET_MODE (addr) == Pmode)
11521
+ return copy_addr_to_reg (addr);
11524
+ gcc_assert (GET_MODE (addr) == DImode && Pmode == SImode);
11525
+ return gen_rtx_SUBREG (SImode, copy_to_mode_reg (DImode, addr), 0);
11529
/* When SRCPTR is non-NULL, output simple loop to move memory
11530
pointer to SRCPTR to DESTPTR via chunks of MODE unrolled UNROLL times,
11531
overall size is COUNT specified in bytes. When SRCPTR is NULL, output the
11532
@@ -22728,8 +22742,8 @@
11533
gcc_assert (alg != no_stringop);
11535
count_exp = copy_to_mode_reg (GET_MODE (count_exp), count_exp);
11536
- destreg = copy_addr_to_reg (XEXP (dst, 0));
11537
- srcreg = copy_addr_to_reg (XEXP (src, 0));
11538
+ destreg = ix86_copy_addr_to_reg (XEXP (dst, 0));
11539
+ srcreg = ix86_copy_addr_to_reg (XEXP (src, 0));
11543
@@ -23119,7 +23133,7 @@
11544
gcc_assert (alg != no_stringop);
11546
count_exp = copy_to_mode_reg (counter_mode (count_exp), count_exp);
11547
- destreg = copy_addr_to_reg (XEXP (dst, 0));
11548
+ destreg = ix86_copy_addr_to_reg (XEXP (dst, 0));
11552
Index: gcc/config/sh/sh.opt
11553
===================================================================
11554
--- a/src/gcc/config/sh/sh.opt (.../tags/gcc_4_8_2_release)
11555
+++ b/src/gcc/config/sh/sh.opt (.../branches/gcc-4_8-branch)
11557
;; Used for various architecture options.
11560
-;; Set if the default precision of th FPU is single.
11561
+;; Set if the default precision of the FPU is single.
11564
;; Set if the a double-precision FPU is present but is restricted to
11565
Index: gcc/config/rs6000/rs6000.md
11566
===================================================================
11567
--- a/src/gcc/config/rs6000/rs6000.md (.../tags/gcc_4_8_2_release)
11568
+++ b/src/gcc/config/rs6000/rs6000.md (.../branches/gcc-4_8-branch)
11569
@@ -2412,7 +2412,7 @@
11570
(match_operand:SI 2 "gpc_reg_operand" "r,r"))
11572
(clobber (match_scratch:SI 3 "=r,r"))]
11578
@@ -2425,7 +2425,7 @@
11579
(match_operand:SI 2 "gpc_reg_operand" ""))
11581
(clobber (match_scratch:SI 3 ""))]
11582
- "reload_completed"
11583
+ "TARGET_32BIT && reload_completed"
11584
[(set (match_dup 3)
11585
(mult:SI (match_dup 1) (match_dup 2)))
11587
@@ -2440,7 +2440,7 @@
11589
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
11590
(mult:SI (match_dup 1) (match_dup 2)))]
11596
@@ -2454,7 +2454,7 @@
11598
(set (match_operand:SI 0 "gpc_reg_operand" "")
11599
(mult:SI (match_dup 1) (match_dup 2)))]
11600
- "reload_completed"
11601
+ "TARGET_32BIT && reload_completed"
11602
[(set (match_dup 0)
11603
(mult:SI (match_dup 1) (match_dup 2)))
11605
Index: gcc/config/arm/arm.c
11606
===================================================================
11607
--- a/src/gcc/config/arm/arm.c (.../tags/gcc_4_8_2_release)
11608
+++ b/src/gcc/config/arm/arm.c (.../branches/gcc-4_8-branch)
11609
@@ -23555,6 +23555,7 @@
11610
num_regs = bit_count (saved_regs_mask);
11611
if ((offsets->outgoing_args != (1 + num_regs)) || cfun->calls_alloca)
11613
+ emit_insn (gen_blockage ());
11614
/* Unwind the stack to just below the saved registers. */
11615
emit_insn (gen_addsi3 (stack_pointer_rtx,
11616
hard_frame_pointer_rtx,
11617
Index: libgo/configure
11618
===================================================================
11619
--- a/src/libgo/configure (.../tags/gcc_4_8_2_release)
11620
+++ b/src/libgo/configure (.../branches/gcc-4_8-branch)
11621
@@ -14700,7 +14700,7 @@
11625
-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
11626
+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
11628
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
11629
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
11630
Index: libgo/Makefile.in
11631
===================================================================
11632
--- a/src/libgo/Makefile.in (.../tags/gcc_4_8_2_release)
11633
+++ b/src/libgo/Makefile.in (.../branches/gcc-4_8-branch)
11634
@@ -195,7 +195,7 @@
11635
@LIBGO_IS_LINUX_TRUE@am__objects_5 = getncpu-linux.lo
11636
am__objects_6 = go-append.lo go-assert.lo go-assert-interface.lo \
11637
go-byte-array-to-string.lo go-breakpoint.lo go-caller.lo \
11638
- go-callers.lo go-can-convert-interface.lo go-cgo.lo \
11639
+ go-callers.lo go-can-convert-interface.lo go-cdiv.lo go-cgo.lo \
11640
go-check-interface.lo go-construct-map.lo \
11641
go-convert-interface.lo go-copy.lo go-defer.lo \
11642
go-deferred-recover.lo go-eface-compare.lo \
11643
@@ -757,6 +757,7 @@
11644
runtime/go-caller.c \
11645
runtime/go-callers.c \
11646
runtime/go-can-convert-interface.c \
11647
+ runtime/go-cdiv.c \
11649
runtime/go-check-interface.c \
11650
runtime/go-construct-map.c \
11651
@@ -2368,6 +2369,7 @@
11652
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-caller.Plo@am__quote@
11653
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-callers.Plo@am__quote@
11654
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-can-convert-interface.Plo@am__quote@
11655
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-cdiv.Plo@am__quote@
11656
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-cgo.Plo@am__quote@
11657
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-check-interface.Plo@am__quote@
11658
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/go-construct-map.Plo@am__quote@
11659
@@ -2554,6 +2556,13 @@
11660
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
11661
@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
11663
+go-cdiv.lo: runtime/go-cdiv.c
11664
+@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
11665
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/go-cdiv.Tpo $(DEPDIR)/go-cdiv.Plo
11666
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/go-cdiv.c' object='go-cdiv.lo' libtool=yes @AMDEPBACKSLASH@
11667
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
11668
+@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
11670
go-cgo.lo: runtime/go-cgo.c
11671
@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
11672
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/go-cgo.Tpo $(DEPDIR)/go-cgo.Plo
11673
Index: libgo/runtime/go-nosys.c
11674
===================================================================
11675
--- a/src/libgo/runtime/go-nosys.c (.../tags/gcc_4_8_2_release)
11676
+++ b/src/libgo/runtime/go-nosys.c (.../branches/gcc-4_8-branch)
11683
+dup3 (int oldfd __attribute__ ((unused)),
11684
+ int newfd __attribute__ ((unused)),
11685
+ int flags __attribute__ ((unused)))
11692
#ifndef HAVE_EPOLL_CREATE1
11694
epoll_create1 (int flags __attribute__ ((unused)))
11695
@@ -112,6 +123,18 @@
11699
+#ifndef HAVE_GETXATTR
11701
+getxattr (const char *path __attribute__ ((unused)),
11702
+ const char *name __attribute__ ((unused)),
11703
+ void *value __attribute__ ((unused)),
11704
+ size_t size __attribute__ ((unused)))
11711
#ifndef HAVE_INOTIFY_ADD_WATCH
11713
inotify_add_watch (int fd __attribute__ ((unused)),
11714
@@ -151,6 +174,17 @@
11718
+#ifndef HAVE_LISTXATTR
11720
+listxattr (const char *path __attribute__ ((unused)),
11721
+ char *list __attribute__ ((unused)),
11722
+ size_t size __attribute__ ((unused)))
11729
#ifndef HAVE_MKDIRAT
11731
mkdirat (int dirfd __attribute__ ((unused)),
11732
@@ -196,6 +230,16 @@
11736
+#ifndef HAVE_REMOVEXATTR
11738
+removexattr (const char *path __attribute__ ((unused)),
11739
+ const char *name __attribute__ ((unused)))
11746
#ifndef HAVE_RENAMEAT
11748
renameat (int olddirfd __attribute__ ((unused)),
11749
@@ -208,6 +252,19 @@
11753
+#ifndef HAVE_SETXATTR
11755
+setxattr (const char *path __attribute__ ((unused)),
11756
+ const char *name __attribute__ ((unused)),
11757
+ const void *value __attribute__ ((unused)),
11758
+ size_t size __attribute__ ((unused)),
11759
+ int flags __attribute__ ((unused)))
11766
#ifndef HAVE_SPLICE
11768
splice (int fd __attribute__ ((unused)),
11769
Index: libgo/runtime/go-signal.c
11770
===================================================================
11771
--- a/src/libgo/runtime/go-signal.c (.../tags/gcc_4_8_2_release)
11772
+++ b/src/libgo/runtime/go-signal.c (.../branches/gcc-4_8-branch)
11773
@@ -399,6 +399,9 @@
11777
+#ifdef USING_SPLIT_STACK
11778
+ void *stack_context[10];
11781
/* We are now running on the stack registered via sigaltstack.
11782
(Actually there is a small span of time between runtime_siginit
11783
@@ -409,7 +412,7 @@
11786
#ifdef USING_SPLIT_STACK
11787
- __splitstack_getcontext (&gp->stack_context[0]);
11788
+ __splitstack_getcontext (&stack_context[0]);
11792
@@ -432,7 +435,7 @@
11795
#ifdef USING_SPLIT_STACK
11796
- __splitstack_setcontext (&gp->stack_context[0]);
11797
+ __splitstack_setcontext (&stack_context[0]);
11801
Index: libgo/runtime/go-cdiv.c
11802
===================================================================
11803
--- a/src/libgo/runtime/go-cdiv.c (.../tags/gcc_4_8_2_release)
11804
+++ b/src/libgo/runtime/go-cdiv.c (.../branches/gcc-4_8-branch)
11806
+/* go-cdiv.c -- complex division routines
11808
+ Copyright 2013 The Go Authors. All rights reserved.
11809
+ Use of this source code is governed by a BSD-style
11810
+ license that can be found in the LICENSE file. */
11812
+/* Calls to these functions are generated by the Go frontend for
11813
+ division of complex64 or complex128. We use these because Go's
11814
+ complex division expects slightly different results from the GCC
11815
+ default. When dividing NaN+1.0i / 0+0i, Go expects NaN+NaNi but
11816
+ GCC generates NaN+Infi. NaN+Infi seems wrong seems the rules of
11817
+ C99 Annex G specify that if either side of a complex number is Inf,
11818
+ the the whole number is Inf, but an operation involving NaN ought
11819
+ to result in NaN, not Inf. */
11822
+__go_complex64_div (__complex float a, __complex float b)
11824
+ if (__builtin_expect (b == 0+0i, 0))
11826
+ if (!__builtin_isinff (__real__ a)
11827
+ && !__builtin_isinff (__imag__ a)
11828
+ && (__builtin_isnanf (__real__ a) || __builtin_isnanf (__imag__ a)))
11830
+ /* Pass "1" to nanf to match math/bits.go. */
11831
+ return __builtin_nanf("1") + __builtin_nanf("1")*1i;
11838
+__go_complex128_div (__complex double a, __complex double b)
11840
+ if (__builtin_expect (b == 0+0i, 0))
11842
+ if (!__builtin_isinf (__real__ a)
11843
+ && !__builtin_isinf (__imag__ a)
11844
+ && (__builtin_isnan (__real__ a) || __builtin_isnan (__imag__ a)))
11846
+ /* Pass "1" to nan to match math/bits.go. */
11847
+ return __builtin_nan("1") + __builtin_nan("1")*1i;
11852
Index: libgo/runtime/go-make-slice.c
11853
===================================================================
11854
--- a/src/libgo/runtime/go-make-slice.c (.../tags/gcc_4_8_2_release)
11855
+++ b/src/libgo/runtime/go-make-slice.c (.../branches/gcc-4_8-branch)
11857
std = (const struct __go_slice_type *) td;
11859
ilen = (intgo) len;
11860
- if (ilen < 0 || (uintptr_t) ilen != len)
11862
+ || (uintptr_t) ilen != len
11863
+ || (std->__element_type->__size > 0
11864
+ && len > MaxMem / std->__element_type->__size))
11865
runtime_panicstring ("makeslice: len out of range");
11867
icap = (intgo) cap;
11868
Index: libgo/mksysinfo.sh
11869
===================================================================
11870
--- a/src/libgo/mksysinfo.sh (.../tags/gcc_4_8_2_release)
11871
+++ b/src/libgo/mksysinfo.sh (.../branches/gcc-4_8-branch)
11872
@@ -1035,6 +1035,10 @@
11873
grep '^const _LOCK_' gen-sysinfo.go |
11874
sed -e 's/^\(const \)_\(LOCK_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}
11876
+# The PRIO constants.
11877
+grep '^const _PRIO_' gen-sysinfo.go | \
11878
+ sed -e 's/^\(const \)_\(PRIO_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}
11880
# The GNU/Linux LINUX_REBOOT flags.
11881
grep '^const _LINUX_REBOOT_' gen-sysinfo.go |
11882
sed -e 's/^\(const \)_\(LINUX_REBOOT_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}
11883
Index: libgo/config.h.in
11884
===================================================================
11885
--- a/src/libgo/config.h.in (.../tags/gcc_4_8_2_release)
11886
+++ b/src/libgo/config.h.in (.../branches/gcc-4_8-branch)
11888
/* Define to 1 if you have the `dl_iterate_phdr' function. */
11889
#undef HAVE_DL_ITERATE_PHDR
11891
+/* Define to 1 if you have the `dup3' function. */
11894
/* Define to 1 if you have the `epoll_create1' function. */
11895
#undef HAVE_EPOLL_CREATE1
11898
/* Define if _Unwind_GetIPInfo is available. */
11899
#undef HAVE_GETIPINFO
11901
+/* Define to 1 if you have the `getxattr' function. */
11902
+#undef HAVE_GETXATTR
11904
/* Define to 1 if you have the `inotify_add_watch' function. */
11905
#undef HAVE_INOTIFY_ADD_WATCH
11907
@@ -111,6 +117,9 @@
11908
/* Define to 1 if you have the <linux/rtnetlink.h> header file. */
11909
#undef HAVE_LINUX_RTNETLINK_H
11911
+/* Define to 1 if you have the `listxattr' function. */
11912
+#undef HAVE_LISTXATTR
11914
/* Define to 1 if the system has the type `loff_t'. */
11917
@@ -171,6 +180,9 @@
11918
/* Define to 1 if you have the `pipe2' function. */
11921
+/* Define to 1 if you have the `removexattr' function. */
11922
+#undef HAVE_REMOVEXATTR
11924
/* Define to 1 if you have the `renameat' function. */
11925
#undef HAVE_RENAMEAT
11927
@@ -180,6 +192,9 @@
11928
/* Define to 1 if you have the `setenv' function. */
11931
+/* Define to 1 if you have the `setxattr' function. */
11932
+#undef HAVE_SETXATTR
11934
/* Define to 1 if you have the `sinl' function. */
11937
Index: libgo/configure.ac
11938
===================================================================
11939
--- a/src/libgo/configure.ac (.../tags/gcc_4_8_2_release)
11940
+++ b/src/libgo/configure.ac (.../branches/gcc-4_8-branch)
11941
@@ -503,7 +503,7 @@
11942
AM_CONDITIONAL(HAVE_STRERROR_R, test "$ac_cv_func_strerror_r" = yes)
11943
AM_CONDITIONAL(HAVE_WAIT4, test "$ac_cv_func_wait4" = yes)
11945
-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)
11946
+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)
11948
AC_CHECK_TYPES([loff_t])
11950
Index: libgo/go/syscall/libcall_linux.go
11951
===================================================================
11952
--- a/src/libgo/go/syscall/libcall_linux.go (.../tags/gcc_4_8_2_release)
11953
+++ b/src/libgo/go/syscall/libcall_linux.go (.../branches/gcc-4_8-branch)
11954
@@ -190,6 +190,9 @@
11955
//sys Adjtimex(buf *Timex) (state int, err error)
11956
//adjtimex(buf *Timex) _C_int
11958
+//sysnb Dup3(oldfd int, newfd int, flags int) (err error)
11959
+//dup3(oldfd _C_int, newfd _C_int, flags _C_int) _C_int
11961
//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error)
11962
//faccessat(dirfd _C_int, pathname *byte, mode _C_int, flags _C_int) _C_int
11964
@@ -268,6 +271,9 @@
11965
return origlen - len(buf), count, names
11968
+//sys Getxattr(path string, attr string, dest []byte) (sz int, err error)
11969
+//getxattr(path *byte, attr *byte, buf *byte, count Size_t) Ssize_t
11971
//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error)
11972
//inotify_add_watch(fd _C_int, pathname *byte, mask uint32) _C_int
11974
@@ -283,6 +289,9 @@
11975
//sys Klogctl(typ int, buf []byte) (n int, err error)
11976
//klogctl(typ _C_int, bufp *byte, len _C_int) _C_int
11978
+//sys Listxattr(path string, dest []byte) (sz int, err error)
11979
+//listxattr(path *byte, list *byte, size Size_t) Ssize_t
11981
//sys Mkdirat(dirfd int, path string, mode uint32) (err error)
11982
//mkdirat(dirfd _C_int, path *byte, mode Mode_t) _C_int
11984
@@ -305,6 +314,9 @@
11985
//sys PivotRoot(newroot string, putold string) (err error)
11986
//pivot_root(newroot *byte, putold *byte) _C_int
11988
+//sys Removexattr(path string, attr string) (err error)
11989
+//removexattr(path *byte, name *byte) _C_int
11991
//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
11992
//renameat(olddirfd _C_int, oldpath *byte, newdirfd _C_int, newpath *byte) _C_int
11994
@@ -338,6 +350,9 @@
11995
//sysnb Setresuid(ruid int, eguid int, suid int) (err error)
11996
//setresuid(ruid Uid_t, euid Uid_t, suid Uid_t) _C_int
11998
+//sys Setxattr(path string, attr string, data []byte, flags int) (err error)
11999
+//setxattr(path *byte, name *byte, value *byte, size Size_t, flags _C_int) _C_int
12001
//sys splice(rfd int, roff *_loff_t, wfd int, woff *_loff_t, len int, flags int) (n int64, err error)
12002
//splice(rfd _C_int, roff *_loff_t, wfd _C_int, woff *_loff_t, len Size_t, flags _C_uint) Ssize_t
12003
func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
12004
Index: libgo/go/syscall/libcall_posix.go
12005
===================================================================
12006
--- a/src/libgo/go/syscall/libcall_posix.go (.../tags/gcc_4_8_2_release)
12007
+++ b/src/libgo/go/syscall/libcall_posix.go (.../branches/gcc-4_8-branch)
12008
@@ -238,6 +238,9 @@
12009
//sysnb Getppid() (ppid int)
12012
+//sys Getpriority(which int, who int) (prio int, err error)
12013
+//getpriority(which _C_int, who _C_int) _C_int
12015
//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
12016
//getrlimit(resource _C_int, rlim *Rlimit) _C_int
12018
@@ -307,6 +310,9 @@
12019
//sysnb Setpgid(pid int, pgid int) (err error)
12020
//setpgid(pid Pid_t, pgid Pid_t) _C_int
12022
+//sys Setpriority(which int, who int, prio int) (err error)
12023
+//setpriority(which _C_int, who _C_int, prio _C_int) _C_int
12025
//sysnb Setreuid(ruid int, euid int) (err error)
12026
//setreuid(ruid Uid_t, euid Uid_t) _C_int
12028
Index: libgo/Makefile.am
12029
===================================================================
12030
--- a/src/libgo/Makefile.am (.../tags/gcc_4_8_2_release)
12031
+++ b/src/libgo/Makefile.am (.../branches/gcc-4_8-branch)
12032
@@ -424,6 +424,7 @@
12033
runtime/go-caller.c \
12034
runtime/go-callers.c \
12035
runtime/go-can-convert-interface.c \
12036
+ runtime/go-cdiv.c \
12038
runtime/go-check-interface.c \
12039
runtime/go-construct-map.c \
12040
Index: libcpp/po/ChangeLog
12041
===================================================================
12042
--- a/src/libcpp/po/ChangeLog (.../tags/gcc_4_8_2_release)
12043
+++ b/src/libcpp/po/ChangeLog (.../branches/gcc-4_8-branch)
12045
+2013-11-01 Joseph Myers <joseph@codesourcery.com>
12049
2013-10-16 Release Manager
12051
* GCC 4.8.2 released.
12052
Index: libcpp/po/tr.po
12053
===================================================================
12054
--- a/src/libcpp/po/tr.po (.../tags/gcc_4_8_2_release)
12055
+++ b/src/libcpp/po/tr.po (.../branches/gcc-4_8-branch)
12057
# Turkish translations for cpplib messages.
12058
# Copyright (C) 2007 Free Software Foundation, Inc.
12059
+# This file is distributed under the same license as the gcc package.
12061
# Nilgün Belma Bugüner <nilgun@buguner.name.tr>, 2001, ..., 2007.
12062
+# Volkan Gezer <vlkngzr@gmail.com>, 2013.
12065
-"Project-Id-Version: cpplib 4.2.0\n"
12066
+"Project-Id-Version: cpplib 4.8.0\n"
12067
"Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n"
12068
-"POT-Creation-Date: 2013-02-24 01:05+0000\n"
12069
-"PO-Revision-Date: 2007-05-23 01:17+0300\n"
12070
-"Last-Translator: Nilgün Belma Bugüner <nilgun@buguner.name.tr>\n"
12071
+"POT-Creation-Date: 2013-03-15 17:42+0000\n"
12072
+"PO-Revision-Date: 2013-11-01 22:29+0100\n"
12073
+"Last-Translator: Volkan Gezer <vlkngzr@gmail.com>\n"
12074
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
12076
"MIME-Version: 1.0\n"
12077
"Content-Type: text/plain; charset=UTF-8\n"
12078
"Content-Transfer-Encoding: 8bit\n"
12079
-"X-Generator: KBabel 1.11.4\n"
12080
+"X-Generator: Lokalize 1.5\n"
12081
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
12084
@@ -121,10 +123,9 @@
12085
msgstr "ISO standardı olmayan önceleme dizgesi, '\\%c'"
12088
-#, fuzzy, c-format
12089
-#| msgid "unknown escape sequence '\\%c'"
12091
msgid "unknown escape sequence: '\\%c'"
12092
-msgstr "bilinmeyen önceleme dizgesi '\\%c'"
12093
+msgstr "bilinmeyen kaçış dizgesi: '\\%c'"
12097
@@ -163,10 +164,9 @@
12098
msgstr "#%s bir GCC uzantısıdır"
12100
#: directives.c:362
12101
-#, fuzzy, c-format
12102
-#| msgid "#%s is a GCC extension"
12104
msgid "#%s is a deprecated GCC extension"
12105
-msgstr "#%s bir GCC uzantısıdır"
12106
+msgstr "#%s eskimiş bir GCC uzantısıdır"
12108
#: directives.c:375
12109
msgid "suggest not using #elif in traditional C"
12110
@@ -247,7 +247,7 @@
12112
#: directives.c:909
12113
msgid "unexpected end of file after #line"
12115
+msgstr "#line satırından sonra beklenmeyen dosya sonu"
12117
#: directives.c:912
12119
@@ -271,7 +271,7 @@
12120
#: directives.c:1068 directives.c:1070 directives.c:1072 directives.c:1658
12126
#: directives.c:1096
12128
@@ -312,16 +312,12 @@
12129
msgstr "main dosyasında '#pragma once'"
12131
#: directives.c:1462
12133
-#| msgid "invalid #pragma GCC poison directive"
12134
msgid "invalid #pragma push_macro directive"
12135
-msgstr "geçersiz #pragma GCC poison yönergesi"
12136
+msgstr "geçersiz #pragma güdümlü_makro yönergesi"
12138
#: directives.c:1517
12140
-#| msgid "invalid #pragma GCC poison directive"
12141
msgid "invalid #pragma pop_macro directive"
12142
-msgstr "geçersiz #pragma GCC poison yönergesi"
12143
+msgstr "geçersiz #pragma güdümlü_makro yönergesi"
12145
#: directives.c:1572
12146
msgid "invalid #pragma GCC poison directive"
12147
@@ -347,10 +343,9 @@
12148
msgstr "mevcut dosya %s den daha eski"
12150
#: directives.c:1653
12151
-#, fuzzy, c-format
12152
-#| msgid "invalid #pragma GCC poison directive"
12154
msgid "invalid \"#pragma GCC %s\" directive"
12155
-msgstr "geçersiz #pragma GCC poison yönergesi"
12156
+msgstr "geçersiz \"#pragma GCC %s\" yönergesi"
12158
#: directives.c:1847
12159
msgid "_Pragma takes a parenthesized string literal"
12160
@@ -405,7 +400,7 @@
12161
msgid "\"%s\" re-asserted"
12162
msgstr "\"%s\" tekrar olumlanmış"
12164
-#: directives.c:2566
12165
+#: directives.c:2567
12167
msgid "unterminated #%s"
12168
msgstr "sonlandırılmamış #%s"
12169
@@ -424,16 +419,12 @@
12172
#: expr.c:479 expr.c:577
12174
-#| msgid "imaginary constants are a GCC extension"
12175
msgid "fixed-point constants are a GCC extension"
12176
-msgstr "sanal sabitler bir GCC genişletmesidir"
12177
+msgstr "sabit noktalı sabitler bir GCC uzantısıdır"
12181
-#| msgid "invalid suffix \"%.*s\" on floating constant"
12182
msgid "invalid prefix \"0b\" for floating constant"
12183
-msgstr "gerçel sabitin \"%.*s\" soneki geçersiz"
12184
+msgstr "kayan nokta için geçerisz \"0b\" öntakısı"
12187
msgid "use of C99 hexadecimal floating constant"
12188
@@ -450,10 +441,8 @@
12189
msgstr "geleneksel C \"%.*s\" sonekini kullanmaz"
12193
-#| msgid "imaginary constants are a GCC extension"
12194
msgid "suffix for double constant is a GCC extension"
12195
-msgstr "sanal sabitler bir GCC genişletmesidir"
12196
+msgstr "çift sabit için öntakı bir GCC uzantısıdır"
12200
@@ -461,10 +450,8 @@
12201
msgstr "onaltılık kayan sabitli \"%.*s\" soneki geçersiz"
12205
-#| msgid "imaginary constants are a GCC extension"
12206
msgid "decimal float constants are a GCC extension"
12207
-msgstr "sanal sabitler bir GCC genişletmesidir"
12208
+msgstr "onluk kayan sabitler bir GCC uzantısıdır"
12212
@@ -472,10 +459,8 @@
12213
msgstr "tamsayı sabitte sonek \"%.*s\" soneki geçersiz"
12217
-#| msgid "use of C99 long long integer constant"
12218
msgid "use of C++0x long long integer constant"
12219
-msgstr "ISO C99 long long tamsayı sabitleri yasaklar"
12220
+msgstr "ISO C++0x long long tamsayı sabitlerinin kullanımı"
12223
msgid "use of C99 long long integer constant"
12224
@@ -486,10 +471,8 @@
12225
msgstr "sanal sabitler bir GCC genişletmesidir"
12229
-#| msgid "imaginary constants are a GCC extension"
12230
msgid "binary constants are a GCC extension"
12231
-msgstr "sanal sabitler bir GCC genişletmesidir"
12232
+msgstr "ikili sabitler bir GCC uzantısıdır"
12235
msgid "integer constant is too large for its type"
12236
@@ -517,10 +500,8 @@
12237
msgstr "\"defined\" bu kullanımıyla uyarlanabilir olmayabilir"
12241
-#| msgid "integer overflow in preprocessor expression"
12242
msgid "user-defined literal in preprocessor expression"
12243
-msgstr "önişlemci ifadesinde tamsayı taşması"
12244
+msgstr "önişleyici ifadesinde kullanıcı tanımlı bağımlı"
12247
msgid "floating constant in preprocessor expression"
12248
@@ -536,20 +517,17 @@
12249
msgstr "\"%s\" tanımlı değil"
12253
-#| msgid "#%s is a GCC extension"
12254
msgid "assertions are a GCC extension"
12255
-msgstr "#%s bir GCC uzantısıdır"
12256
+msgstr "belirteçler bir GCC uzantısıdır"
12259
msgid "assertions are a deprecated extension"
12261
+msgstr "belirteçler artık kullanılmayan bir ifadedir"
12264
-#, fuzzy, c-format
12265
-#| msgid "unbalanced stack in #if"
12267
msgid "unbalanced stack in %s"
12268
-msgstr "#if ifadesinde karşılıksız yığın"
12269
+msgstr "%s içinde dengelenmemiş yığın"
12273
@@ -594,39 +572,39 @@
12274
msgid "division by zero in #if"
12275
msgstr "#if içinde sıfırla bölme"
12279
msgid "NULL directory in find_file"
12280
msgstr "find_file içinde boş dizin"
12284
msgid "one or more PCH files were found, but they were invalid"
12285
msgstr "bir veya daha fazla PCH dosyası bulundu ama bunlar geçersiz"
12289
msgid "use -Winvalid-pch for more information"
12290
msgstr "daha fazla bilgi almak için -Winvalid-pch kullanın"
12295
msgid "%s is a block device"
12296
msgstr "%s bir blok aygıtıdır"
12301
msgid "%s is too large"
12302
msgstr "%s çok büyük"
12307
msgid "%s is shorter than expected"
12308
msgstr "%s beklenenden daha kısa"
12313
msgid "no include path in which to search for %s"
12314
msgstr "%s için aranacaklar içinde başlık dosyaları yolu yok"
12318
msgid "Multiple include guards may be useful for:\n"
12319
msgstr "Çoklu include önlemleri aşağıdakiler için kullanışlı olabilir:\n"
12321
@@ -717,27 +695,24 @@
12322
#: lex.c:1178 lex.c:1255
12324
msgid "identifier \"%s\" is a special operator name in C++"
12326
+msgstr "\"%s\" belirteci, C++'da özel bir işleç adıdır"
12329
msgid "raw string delimiter longer than 16 characters"
12331
+msgstr "ham dizge ayracı 16 karakterden uzun"
12334
-#, fuzzy, c-format
12335
-#| msgid "universal character %.*s is not valid in an identifier"
12337
msgid "invalid character '%c' in raw string delimiter"
12338
-msgstr "evrensel karakter %.*s bir belirteç içinde geçerli değil"
12339
+msgstr "ham dizge ayracında geçersiz karakter '%c'"
12341
#: lex.c:1525 lex.c:1547
12343
-#| msgid "unterminated #%s"
12344
msgid "unterminated raw string"
12345
-msgstr "sonlandırılmamış #%s"
12346
+msgstr "bitirilmemiş ham dizge"
12348
#: lex.c:1573 lex.c:1706
12349
msgid "invalid suffix on literal; C++11 requires a space between literal and identifier"
12351
+msgstr "geçersiz ifade soneki; C++11 ifade ve tanımlayıcı arasında bir boşluk gerektirir"
12354
msgid "null character(s) preserved in literal"
12355
@@ -785,7 +760,7 @@
12358
msgid "__COUNTER__ expanded inside directive with -fdirectives-only"
12360
+msgstr "__COUNTER__ -fdirectives-only ile talimat içerisinde genişletildi"
12363
msgid "invalid string literal, ignoring final '\\'"
12364
@@ -823,7 +798,7 @@
12367
msgid "invoking macro %s argument %d: empty macro arguments are undefined in ISO C90 and ISO C++98"
12369
+msgstr "%s makrosu %d argümanı uygulanıyor: ISO C90 ve ISO C++98 içerisinde boş makro argümanları tanımsızdır"
12373
@@ -890,38 +865,36 @@
12374
msgid "invalid hash type %d in cpp_macro_definition"
12375
msgstr "cpp_macro_definition içindeki isimli yapı türü %d geçersiz"
12377
-#: pch.c:87 pch.c:335 pch.c:347 pch.c:365 pch.c:371 pch.c:380 pch.c:387
12378
+#: pch.c:87 pch.c:345 pch.c:359 pch.c:377 pch.c:383 pch.c:392 pch.c:399
12379
msgid "while writing precompiled header"
12380
msgstr "önderlemeli başlık yazılırken"
12383
-#, fuzzy, c-format
12384
-#| msgid "%s: not used because `%s' is defined"
12387
msgid "%s: not used because `%.*s' is poisoned"
12388
-msgstr "%s: `%s' tanımlı olduğundan kullanılmadı"
12389
+msgstr "%s: `%.*s' zehirli olduğu için kullanılmadı"
12394
msgid "%s: not used because `%.*s' not defined"
12395
msgstr "%s: `%.*s' tanımlı olmadığından kullanılmadı"
12400
msgid "%s: not used because `%.*s' defined as `%s' not `%.*s'"
12401
msgstr "%s: `%.*s' kullanılmadı çünkü `%s' olarak tanımlı, `%.*s' değil"
12406
msgid "%s: not used because `%s' is defined"
12407
msgstr "%s: `%s' tanımlı olduğundan kullanılmadı"
12410
-#, fuzzy, c-format
12411
-#| msgid "%s: not used because `%s' is defined"
12414
msgid "%s: not used because `__COUNTER__' is invalid"
12415
-msgstr "%s: `%s' tanımlı olduğundan kullanılmadı"
12416
+msgstr "%s: `__COUNTER__' geçersiz olduğundan kullanılmadı"
12418
-#: pch.c:711 pch.c:886
12419
+#: pch.c:723 pch.c:898
12420
msgid "while reading precompiled header"
12421
msgstr "önderlemeli başlık okunurken"
12424
===================================================================
12425
--- a/src/. (.../tags/gcc_4_8_2_release)
12426
+++ b/src/. (.../branches/gcc-4_8-branch)
12428
Property changes on: .
12429
___________________________________________________________________
12430
Modified: svn:mergeinfo
12431
Merged /trunk:r202766,204547